From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephane Viau Subject: [PATCH 2/2] drm/msm/mdp5: Add hardware cursor support Date: Tue, 13 Jan 2015 17:18:04 -0500 Message-ID: <1421187484-13875-3-git-send-email-sviau@codeaurora.org> References: <1421187484-13875-1-git-send-email-sviau@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1421187484-13875-1-git-send-email-sviau@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: gbeeresh@codeaurora.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org RnJvbTogQmVlcmVzaCBHb3BhbCA8Z2JlZXJlc2hAY29kZWF1cm9yYS5vcmc+CgpUaGlzIHBhdGNo IGltcGxlbWVudHMgdGhlIGhhcmR3YXJlIGFjY2VsYXJhdGVkIGN1cnNvcgpzdXBwb3J0IGZvciBN RFA1IHBsYXRmb3Jtcy4KClNpZ25lZC1vZmYtYnk6IEJlZXJlc2ggR29wYWwgPGdiZWVyZXNoQGNv ZGVhdXJvcmEub3JnPgpTaWduZWQtb2ZmLWJ5OiBXZW50YW8gWHUgPHdlbnRhb3hAY29kZWF1cm9y YS5vcmc+ClNpZ25lZC1vZmYtYnk6IFN0ZXBoYW5lIFZpYXUgPHN2aWF1QGNvZGVhdXJvcmEub3Jn PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jcnRjLmMgfCAxNjQgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE2NCBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2Ny dGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jcnRjLmMKaW5kZXggZjAy MWY5Ni4uMjAyMWYwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9t ZHA1X2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY3J0Yy5j CkBAIC0yNCw2ICsyNCw5IEBACiAjaW5jbHVkZSAiZHJtX2NydGNfaGVscGVyLmgiCiAjaW5jbHVk ZSAiZHJtX2ZsaXBfd29yay5oIgogCisjZGVmaW5lIENVUlNPUl9XSURUSAk2NAorI2RlZmluZSBD VVJTT1JfSEVJR0hUCTY0CisKICNkZWZpbmUgU1NQUF9NQVgJKFNTUFBfUkdCMyArIDEpIC8qIFRP RE86IEFkZCBTU1BQX01BWCBpbiBtZHA1LnhtbC5oICovCiAKIHN0cnVjdCBtZHA1X2NydGMgewpA QCAtNDcsOCArNTAsMjEgQEAgc3RydWN0IG1kcDVfY3J0YyB7CiAjZGVmaW5lIFBFTkRJTkdfRkxJ UCAgIDB4MgogCWF0b21pY190IHBlbmRpbmc7CiAKKwkvKiBmb3IgdW5yZWYnaW5nIGN1cnNvciBi bydzIGFmdGVyIHNjYW5vdXQgY29tcGxldGVzOiAqLworCXN0cnVjdCBkcm1fZmxpcF93b3JrIHVu cmVmX2N1cnNvcl93b3JrOworCiAJc3RydWN0IG1kcF9pcnEgdmJsYW5rOwogCXN0cnVjdCBtZHBf aXJxIGVycjsKKworCXN0cnVjdCB7CisJCS8qIHByb3RlY3QgUkVHX01EUDVfTE1fQ1VSU09SKiBy ZWdpc3RlcnMgYW5kIGN1cnNvciBzY2Fub3V0X2JvKi8KKwkJc3BpbmxvY2tfdCBsb2NrOworCisJ CS8qIGN1cnJlbnQgY3Vyc29yIGJlaW5nIHNjYW5uZWQgb3V0OiAqLworCQlzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKnNjYW5vdXRfYm87CisJCXVpbnQzMl90IHdpZHRoOworCQl1aW50MzJfdCBoZWln aHQ7CisJfSBjdXJzb3I7CiB9OwogI2RlZmluZSB0b19tZHA1X2NydGMoeCkgY29udGFpbmVyX29m KHgsIHN0cnVjdCBtZHA1X2NydGMsIGJhc2UpCiAKQEAgLTEyOSwxMSArMTQ1LDIyIEBAIHN0YXRp YyB2b2lkIGNvbXBsZXRlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGUpCiAJfQogfQogCitzdGF0aWMgdm9pZCB1bnJlZl9jdXJzb3Jfd29ya2VyKHN0cnVj dCBkcm1fZmxpcF93b3JrICp3b3JrLCB2b2lkICp2YWwpCit7CisJc3RydWN0IG1kcDVfY3J0YyAq bWRwNV9jcnRjID0KKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtZHA1X2NydGMsIHVucmVm X2N1cnNvcl93b3JrKTsKKwlzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21zID0gZ2V0X2ttcygmbWRw NV9jcnRjLT5iYXNlKTsKKworCW1zbV9nZW1fcHV0X2lvdmEodmFsLCBtZHA1X2ttcy0+aWQpOwor CWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKHZhbCk7Cit9CisKIHN0YXRpYyB2 b2lkIG1kcDVfY3J0Y19kZXN0cm95KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3Qg bWRwNV9jcnRjICptZHA1X2NydGMgPSB0b19tZHA1X2NydGMoY3J0Yyk7CiAKIAlkcm1fY3J0Y19j bGVhbnVwKGNydGMpOworCWRybV9mbGlwX3dvcmtfY2xlYW51cCgmbWRwNV9jcnRjLT51bnJlZl9j dXJzb3Jfd29yayk7CiAKIAlrZnJlZShtZHA1X2NydGMpOwogfQpAQCAtMzg0LDYgKzQxMSwxMzIg QEAgc3RhdGljIGludCBtZHA1X2NydGNfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIAorc3RhdGljIGludCBtZHA1X2NydGNfY3Vyc29yX3Nl dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZSwgdWludDMy X3QgaGFuZGxlLAorCQl1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0KQoreworCXN0cnVj dCBtZHA1X2NydGMgKm1kcDVfY3J0YyA9IHRvX21kcDVfY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OworCXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMgPSBn ZXRfa21zKGNydGMpOworCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqY3Vyc29yX2JvLCAqb2xkX2Jv OworCXVpbnQzMl90IGJsZW5kY2ZnLCBjdXJzb3JfYWRkciwgc3RyaWRlOworCWludCByZXQsIGJw cCwgbG07CisJdW5zaWduZWQgaW50IGRlcHRoOworCWVudW0gbWRwNV9jdXJzb3JfYWxwaGEgY3Vy X2FscGhhID0gQ1VSU09SX0FMUEhBX1BFUl9QSVhFTDsKKwl1aW50MzJfdCBmbHVzaF9tYXNrID0g bWRwX2N0bF9mbHVzaF9tYXNrX2N1cnNvcigwKTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJ aWYgKCh3aWR0aCA+IENVUlNPUl9XSURUSCkgfHwgKGhlaWdodCA+IENVUlNPUl9IRUlHSFQpKSB7 CisJCWRldl9lcnIoZGV2LT5kZXYsICJiYWQgY3Vyc29yIHNpemU6ICVkeCVkXG4iLCB3aWR0aCwg aGVpZ2h0KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKE5VTEwgPT0gbWRwNV9jcnRj LT5jdGwpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFoYW5kbGUpIHsKKwkJREJHKCJDdXJz b3Igb2ZmIik7CisJCXJldHVybiBtZHA1X2N0bF9zZXRfY3Vyc29yKG1kcDVfY3J0Yy0+Y3RsLCBm YWxzZSk7CisJfQorCisJY3Vyc29yX2JvID0gZHJtX2dlbV9vYmplY3RfbG9va3VwKGRldiwgZmls ZSwgaGFuZGxlKTsKKwlpZiAoIWN1cnNvcl9ibykKKwkJcmV0dXJuIC1FTk9FTlQ7CisKKwlyZXQg PSBtc21fZ2VtX2dldF9pb3ZhKGN1cnNvcl9ibywgbWRwNV9rbXMtPmlkLCAmY3Vyc29yX2FkZHIp OworCWlmIChyZXQpCisJCXJldHVybiAtRUlOVkFMOworCisJbG0gPSBtZHA1X2NydGMtPmxtOwor CWRybV9mYl9nZXRfYnBwX2RlcHRoKERSTV9GT1JNQVRfQVJHQjg4ODgsICZkZXB0aCwgJmJwcCk7 CisJc3RyaWRlID0gd2lkdGggKiAoYnBwID4+IDMpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJm1k cDVfY3J0Yy0+Y3Vyc29yLmxvY2ssIGZsYWdzKTsKKwlvbGRfYm8gPSBtZHA1X2NydGMtPmN1cnNv ci5zY2Fub3V0X2JvOworCisJbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVfTE1fQ1VSU09S X1NUUklERShsbSksIHN0cmlkZSk7CisJbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVfTE1f Q1VSU09SX0ZPUk1BVChsbSksCisJCQlNRFA1X0xNX0NVUlNPUl9GT1JNQVRfRk9STUFUKENVUlNP Ul9GTVRfQVJHQjg4ODgpKTsKKwltZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQNV9MTV9DVVJT T1JfSU1HX1NJWkUobG0pLAorCQkJTURQNV9MTV9DVVJTT1JfSU1HX1NJWkVfU1JDX0goaGVpZ2h0 KSB8CisJCQlNRFA1X0xNX0NVUlNPUl9JTUdfU0laRV9TUkNfVyh3aWR0aCkpOworCW1kcDVfd3Jp dGUobWRwNV9rbXMsIFJFR19NRFA1X0xNX0NVUlNPUl9TSVpFKGxtKSwKKwkJCU1EUDVfTE1fQ1VS U09SX1NJWkVfUk9JX0goaGVpZ2h0KSB8CisJCQlNRFA1X0xNX0NVUlNPUl9TSVpFX1JPSV9XKHdp ZHRoKSk7CisJbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVfTE1fQ1VSU09SX0JBU0VfQURE UihsbSksIGN1cnNvcl9hZGRyKTsKKworCisJYmxlbmRjZmcgPSBNRFA1X0xNX0NVUlNPUl9CTEVO RF9DT05GSUdfQkxFTkRfRU47CisJYmxlbmRjZmcgfD0gTURQNV9MTV9DVVJTT1JfQkxFTkRfQ09O RklHX0JMRU5EX1RSQU5TUF9FTjsKKwlibGVuZGNmZyB8PSBNRFA1X0xNX0NVUlNPUl9CTEVORF9D T05GSUdfQkxFTkRfQUxQSEFfU0VMKGN1cl9hbHBoYSk7CisJbWRwNV93cml0ZShtZHA1X2ttcywg UkVHX01EUDVfTE1fQ1VSU09SX0JMRU5EX0NPTkZJRyhsbSksIGJsZW5kY2ZnKTsKKworCW1kcDVf Y3J0Yy0+Y3Vyc29yLnNjYW5vdXRfYm8gPSBjdXJzb3JfYm87CisJbWRwNV9jcnRjLT5jdXJzb3Iu d2lkdGggPSB3aWR0aDsKKwltZHA1X2NydGMtPmN1cnNvci5oZWlnaHQgPSBoZWlnaHQ7CisJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmbWRwNV9jcnRjLT5jdXJzb3IubG9jaywgZmxhZ3MpOworCisJ cmV0ID0gbWRwNV9jdGxfc2V0X2N1cnNvcihtZHA1X2NydGMtPmN0bCwgdHJ1ZSk7CisJaWYgKHJl dCkKKwkJZ290byBlbmQ7CisKKwlmbHVzaF9tYXNrIHw9IG1kcDVfY3RsX2dldF9mbHVzaChtZHA1 X2NydGMtPmN0bCk7CisJY3J0Y19mbHVzaChjcnRjLCBmbHVzaF9tYXNrKTsKKworZW5kOgorCWlm IChvbGRfYm8pIHsKKwkJZHJtX2ZsaXBfd29ya19xdWV1ZSgmbWRwNV9jcnRjLT51bnJlZl9jdXJz b3Jfd29yaywgb2xkX2JvKTsKKwkJLyogZW5hYmxlIHZibGFuayB0byBjb21wbGV0ZSBjdXJzb3Ig d29yazogKi8KKwkJcmVxdWVzdF9wZW5kaW5nKGNydGMsIFBFTkRJTkdfQ1VSU09SKTsKKwl9CisJ cmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBtZHA1X2NydGNfY3Vyc29yX21vdmUoc3RydWN0 IGRybV9jcnRjICpjcnRjLCBpbnQgeCwgaW50IHkpCit7CisJc3RydWN0IG1kcDVfa21zICptZHA1 X2ttcyA9IGdldF9rbXMoY3J0Yyk7CisJc3RydWN0IG1kcDVfY3J0YyAqbWRwNV9jcnRjID0gdG9f bWRwNV9jcnRjKGNydGMpOworCXVpbnQzMl90IGZsdXNoX21hc2sgPSBtZHBfY3RsX2ZsdXNoX21h c2tfY3Vyc29yKDApOworCXVpbnQzMl90IHhyZXMgPSBjcnRjLT5tb2RlLmhkaXNwbGF5OworCXVp bnQzMl90IHlyZXMgPSBjcnRjLT5tb2RlLnZkaXNwbGF5OworCXVpbnQzMl90IHJvaV93OworCXVp bnQzMl90IHJvaV9oOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwl4ID0gKHggPiAwKSA/IHgg OiAwOworCXkgPSAoeSA+IDApID8geSA6IDA7CisKKwkvKgorCSAqIEN1cnNvciBSZWdpb24gT2Yg SW50ZXJlc3QgKFJPSSkgaXMgYSBwbGFuZSByZWFkIGZyb20gY3Vyc29yCisJICogYnVmZmVyIHRv IHJlbmRlci4gVGhlIFJPSSByZWdpb24gaXMgZGV0ZXJtaW5lZCBieSB0aGUgdmlzaWJsaXR5IG9m CisJICogdGhlIGN1cnNvciBwb2ludC4gSW4gdGhlIGRlZmF1bHQgQ3Vyc29yIGltYWdlIHRoZSBj dXJzb3IgcG9pbnQgd2lsbAorCSAqIGJlIGF0IHRoZSB0b3AgbGVmdCBvZiB0aGUgY3Vyc29yIGlt YWdlLCB1bmxlc3MgaXQgaXMgc3BlY2lmaWVkCisJICogb3RoZXJ3aXNlIHVzaW5nIGhvdHNwb3Qg ZmVhdHVyZS4KKwkgKgorCSAqIElmIHRoZSBjdXJzb3IgcG9pbnQgcmVhY2hlcyB0aGUgcmlnaHQg KHhyZXMgLSB4IDwgY3Vyc29yLndpZHRoKSBvcgorCSAqIGJvdHRvbSAoeXJlcyAtIHkgPCBjdXJz b3IuaGVpZ2h0KSBib3VuZGFyeSBvZiB0aGUgc2NyZWVuLCB0aGVuIFJPSQorCSAqIHdpZHRoIGFu ZCBST0kgaGVpZ2h0IG5lZWQgdG8gYmUgZXZhbHVhdGVkIHRvIGNyb3AgdGhlIGN1cnNvciBpbWFn ZQorCSAqIGFjY29yZGluZ2x5LgorCSAqICh4cmVzLXgpIHdpbGwgYmUgbmV3IGN1cnNvciB3aWR0 aCB3aGVuIHggPiAoeHJlcyAtIGN1cnNvci53aWR0aCkKKwkgKiAoeXJlcy15KSB3aWxsIGJlIG5l dyBjdXJzb3IgaGVpZ2h0IHdoZW4geSA+ICh5cmVzIC0gY3Vyc29yLmhlaWdodCkKKwkgKi8KKwly b2lfdyA9IG1pbihtZHA1X2NydGMtPmN1cnNvci53aWR0aCwgeHJlcyAtIHgpOworCXJvaV9oID0g bWluKG1kcDVfY3J0Yy0+Y3Vyc29yLmhlaWdodCwgeXJlcyAtIHkpOworCisJc3Bpbl9sb2NrX2ly cXNhdmUoJm1kcDVfY3J0Yy0+Y3Vyc29yLmxvY2ssIGZsYWdzKTsKKwltZHA1X3dyaXRlKG1kcDVf a21zLCBSRUdfTURQNV9MTV9DVVJTT1JfU0laRShtZHA1X2NydGMtPmxtKSwKKwkJCU1EUDVfTE1f Q1VSU09SX1NJWkVfUk9JX0gocm9pX2gpIHwKKwkJCU1EUDVfTE1fQ1VSU09SX1NJWkVfUk9JX1co cm9pX3cpKTsKKwltZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQNV9MTV9DVVJTT1JfU1RBUlRf WFkobWRwNV9jcnRjLT5sbSksCisJCQlNRFA1X0xNX0NVUlNPUl9TVEFSVF9YWV9ZX1NUQVJUKHkp IHwKKwkJCU1EUDVfTE1fQ1VSU09SX1NUQVJUX1hZX1hfU1RBUlQoeCkpOworCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJm1kcDVfY3J0Yy0+Y3Vyc29yLmxvY2ssIGZsYWdzKTsKKworCWNydGNfZmx1 c2goY3J0YywgZmx1c2hfbWFzayk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fY3J0Y19mdW5jcyBtZHA1X2NydGNfZnVuY3MgPSB7CiAJLnNldF9jb25maWcgPSBk cm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnLAogCS5kZXN0cm95ID0gbWRwNV9jcnRjX2Rlc3Ry b3ksCkBAIC0zOTIsNiArNTQ1LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5j cyBtZHA1X2NydGNfZnVuY3MgPSB7CiAJLnJlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19y ZXNldCwKIAkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2NydGNf ZHVwbGljYXRlX3N0YXRlLAogCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVs cGVyX2NydGNfZGVzdHJveV9zdGF0ZSwKKwkuY3Vyc29yX3NldCA9IG1kcDVfY3J0Y19jdXJzb3Jf c2V0LAorCS5jdXJzb3JfbW92ZSA9IG1kcDVfY3J0Y19jdXJzb3JfbW92ZSwKIH07CiAKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIG1kcDVfY3J0Y19oZWxwZXJfZnVu Y3MgPSB7CkBAIC00MTIsNiArNTY3LDcgQEAgc3RhdGljIHZvaWQgbWRwNV9jcnRjX3ZibGFua19p cnEoc3RydWN0IG1kcF9pcnEgKmlycSwgdWludDMyX3QgaXJxc3RhdHVzKQogewogCXN0cnVjdCBt ZHA1X2NydGMgKm1kcDVfY3J0YyA9IGNvbnRhaW5lcl9vZihpcnEsIHN0cnVjdCBtZHA1X2NydGMs IHZibGFuayk7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJm1kcDVfY3J0Yy0+YmFzZTsKKwlz dHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAl1 bnNpZ25lZCBwZW5kaW5nOwogCiAJbWRwX2lycV91bnJlZ2lzdGVyKCZnZXRfa21zKGNydGMpLT5i YXNlLCAmbWRwNV9jcnRjLT52YmxhbmspOwpAQCAtNDIxLDYgKzU3Nyw5IEBAIHN0YXRpYyB2b2lk IG1kcDVfY3J0Y192YmxhbmtfaXJxKHN0cnVjdCBtZHBfaXJxICppcnEsIHVpbnQzMl90IGlycXN0 YXR1cykKIAlpZiAocGVuZGluZyAmIFBFTkRJTkdfRkxJUCkgewogCQljb21wbGV0ZV9mbGlwKGNy dGMsIE5VTEwpOwogCX0KKworCWlmIChwZW5kaW5nICYgUEVORElOR19DVVJTT1IpCisJCWRybV9m bGlwX3dvcmtfY29tbWl0KCZtZHA1X2NydGMtPnVucmVmX2N1cnNvcl93b3JrLCBwcml2LT53cSk7 CiB9CiAKIHN0YXRpYyB2b2lkIG1kcDVfY3J0Y19lcnJfaXJxKHN0cnVjdCBtZHBfaXJxICppcnEs IHVpbnQzMl90IGlycXN0YXR1cykKQEAgLTUyMCw2ICs2NzksNyBAQCBzdHJ1Y3QgZHJtX2NydGMg Km1kcDVfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJbWRwNV9jcnRjLT5sbSA9 IEdFVF9MTV9JRChpZCk7CiAKIAlzcGluX2xvY2tfaW5pdCgmbWRwNV9jcnRjLT5sbV9sb2NrKTsK KwlzcGluX2xvY2tfaW5pdCgmbWRwNV9jcnRjLT5jdXJzb3IubG9jayk7CiAKIAltZHA1X2NydGMt PnZibGFuay5pcnEgPSBtZHA1X2NydGNfdmJsYW5rX2lycTsKIAltZHA1X2NydGMtPmVyci5pcnEg PSBtZHA1X2NydGNfZXJyX2lycTsKQEAgLTUyOCw2ICs2ODgsMTAgQEAgc3RydWN0IGRybV9jcnRj ICptZHA1X2NydGNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJcGlwZTJuYW1lKG1k cDVfcGxhbmVfcGlwZShwbGFuZSkpLCBpZCk7CiAKIAlkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVz KGRldiwgY3J0YywgcGxhbmUsIE5VTEwsICZtZHA1X2NydGNfZnVuY3MpOworCisJZHJtX2ZsaXBf d29ya19pbml0KCZtZHA1X2NydGMtPnVucmVmX2N1cnNvcl93b3JrLAorCQkJInVucmVmIGN1cnNv ciIsIHVucmVmX2N1cnNvcl93b3JrZXIpOworCiAJZHJtX2NydGNfaGVscGVyX2FkZChjcnRjLCAm bWRwNV9jcnRjX2hlbHBlcl9mdW5jcyk7CiAJcGxhbmUtPmNydGMgPSBjcnRjOwogCi0tIApRdWFs Y29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLgoKVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2Vu dGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwgYSBMaW51eCBG b3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK