From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [RFC 4/5] drm/tinydrm: Add mipi-dbi support Date: Wed, 16 Mar 2016 14:34:18 +0100 Message-ID: <1458135259-31050-5-git-send-email-noralf@tronnes.org> References: <1458135259-31050-1-git-send-email-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from asav22.altibox.net (asav22.altibox.net [109.247.116.9]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9CF5F6E92D for ; Wed, 16 Mar 2016 13:40:56 +0000 (UTC) In-Reply-To: <1458135259-31050-1-git-send-email-noralf@tronnes.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: thomas.petazzoni@free-electrons.com List-Id: dri-devel@lists.freedesktop.org QWRkIHN1cHBvcnQgZm9yIE1JUEkgREJJIGludGVyZmFjZWQgY29udHJvbGxlcnMuCgpTaWduZWQt b2ZmLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vdGlueWRybS9LY29uZmlnICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS90aW55 ZHJtL01ha2VmaWxlICAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vbWlwaS1kYmku YyB8IDIzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2Ry bS90aW55ZHJtL21pcGktZGJpLmggICAgIHwgIDI0ICsrKysKIDQgZmlsZXMgY2hhbmdlZCwgMjYx IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdGlueWRy bS9taXBpLWRiaS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0vdGlueWRybS9taXBp LWRiaS5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vS2NvbmZpZyBiL2Ry aXZlcnMvZ3B1L2RybS90aW55ZHJtL0tjb25maWcKaW5kZXggNjcxMjM5Zi4uYTc5MjllMCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vS2NvbmZpZworKysgYi9kcml2ZXJzL2dw dS9kcm0vdGlueWRybS9LY29uZmlnCkBAIC0xMCw0ICsxMCw3IEBAIG1lbnVjb25maWcgRFJNX1RJ TllEUk0KIAkgIENob29zZSB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBhIHRpbnlkcm0gc3VwcG9y dGVkIGRpc3BsYXkuCiAJICBJZiBNIGlzIHNlbGVjdGVkIHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxs ZWQgdGlueWRybS4KIAorY29uZmlnIFRJTllEUk1fTUlQSV9EQkkKKwl0cmlzdGF0ZQorCiBzb3Vy Y2UgImRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2xjZHJlZy9LY29uZmlnIgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRy bS9NYWtlZmlsZQppbmRleCBmNGE5MmQ5Li4zNWJhODIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vdGlueWRybS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9NYWtl ZmlsZQpAQCAtMSwyICsxLDUgQEAKIG9iai0kKENPTkZJR19EUk1fVElOWURSTSkJCSs9IGNvcmUv CiBvYmotJChDT05GSUdfTENEUkVHKQkJCSs9IGxjZHJlZy8KKworIyBDb250cm9sbGVycworb2Jq LSQoQ09ORklHX1RJTllEUk1fTUlQSV9EQkkpCQkrPSBtaXBpLWRiaS5vCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdGlueWRybS9taXBpLWRiaS5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlk cm0vbWlwaS1kYmkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDIxMzQ5 Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vbWlwaS1kYmkuYwpA QCAtMCwwICsxLDIzMSBAQAorLy8jZGVmaW5lIERFQlVHCisvKgorICogTUlQSSBEaXNwbGF5IEJ1 cyBJbnRlcmZhY2UgKERCSSkgTENEIGNvbnRyb2xsZXIgc3VwcG9ydAorICoKKyAqIENvcHlyaWdo dCAyMDE2IE5vcmFsZiBUcsO4bm5lcworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0 aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg Ki8KKworI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0v dGlueWRybS9sY2RyZWcuaD4KKyNpbmNsdWRlIDxkcm0vdGlueWRybS90aW55ZHJtLmg+CisjaW5j bHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVy Lmg+CisjaW5jbHVkZSA8bGludXgvc3dhYi5oPgorI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxh eS5oPgorCisjZGVmaW5lIERDU19QT1dFUl9NT0RFX0RJU1BMQVkJCQlCSVQoMikKKyNkZWZpbmUg RENTX1BPV0VSX01PREVfRElTUExBWV9OT1JNQUxfTU9ERQlCSVQoMykKKyNkZWZpbmUgRENTX1BP V0VSX01PREVfU0xFRVBfTU9ERQkJQklUKDQpCisjZGVmaW5lIERDU19QT1dFUl9NT0RFX1BBUlRJ QUxfTU9ERQkJQklUKDUpCisjZGVmaW5lIERDU19QT1dFUl9NT0RFX0lETEVfTU9ERQkJQklUKDYp CisjZGVmaW5lIERDU19QT1dFUl9NT0RFX1JFU0VSVkVEX01BU0sJCShCSVQoMCkgfCBCSVQoMSkg fCBCSVQoNykpCisKKy8qIFRPRE86IE1vdmUgY29tbW9uIGZ1bmN0aW9ucyB0byBhIHNlcGFyYXRl IG1vZHVsZSAqLwordm9pZCB0aW55ZHJtX3hyZ2I4ODg4X3RvX3JnYjU2NSh1MzIgKnNyYywgdTE2 ICpkc3QsIHVuc2lnbmVkIG51bV9waXhlbHMsIGJvb2wgc3dhcF9ieXRlcykKK3sKKwlpbnQgaTsK KworCWZvciAoaSA9IDA7IGkgPCBudW1fcGl4ZWxzOyBpKyspIHsKKwkJKmRzdCA9ICgoKnNyYyAm IDB4MDBGODAwMDApID4+IDgpIHwKKwkJICAgICAgICgoKnNyYyAmIDB4MDAwMEZDMDApID4+IDUp IHwKKwkJICAgICAgICgoKnNyYyAmIDB4MDAwMDAwRjgpID4+IDMpOworCQlpZiAoc3dhcF9ieXRl cykKKwkJCSpkc3QgPSBzd2FiMTYoKmRzdCk7CisJCXNyYysrOworCQlkc3QrKzsKKwl9Cit9CisK Ky8vIFRPRE86IFBhc3MgaW4gcmVnbnIKK2ludCB0aW55ZHJtX3VwZGF0ZV9yZ2I1NjVfbGNkcmVn KHN0cnVjdCB0aW55ZHJtX2RldmljZSAqdGRldiwgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIs IHZvaWQgKnZtZW0sIHN0cnVjdCBkcm1fY2xpcF9yZWN0ICpjbGlwKQoreworCXVuc2lnbmVkIG51 bV9waXhlbHMgPSAoY2xpcC0+eDIgLSBjbGlwLT54MSArIDEpICoKKwkJCSAgICAgIChjbGlwLT55 MiAtIGNsaXAtPnkxICsgMSk7CisJc3RydWN0IGxjZHJlZ190cmFuc2ZlciB0ciA9IHsKKwkJLmlu ZGV4ID0gMSwKKwkJLndpZHRoID0gMTYsCisJCS5jb3VudCA9IG51bV9waXhlbHMKKwl9OworCWJv b2wgYnl0ZV9zd2FwID0gZmFsc2U7CisJdTE2ICpidWYgPSBOVUxMOworCWludCByZXQ7CisKKwlk ZXZfZXJyX29uY2UodGRldi0+YmFzZS0+ZGV2LCAicGl4ZWxfZm9ybWF0ID0gJXMsIGJwdyA9IDB4 JTA4eFxuIiwgZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+cGl4ZWxfZm9ybWF0KSwgdGRldi0+bGNk cmVnLT5iaXRzX3Blcl93b3JkX21hc2spOworCisJc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7 CisJY2FzZSBEUk1fRk9STUFUX1JHQjU2NToKKwkJdHIuYnVmID0gdm1lbTsKKwkJYnJlYWs7CisJ Y2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4OgorCQlidWYgPSBrbWFsbG9jKG51bV9waXhlbHMgKiBz aXplb2YodTE2KSwgR0ZQX0tFUk5FTCk7CisJCWlmICghYnVmKQorCQkJcmV0dXJuIC1FTk9NRU07 CisKKyNpZiBkZWZpbmVkKF9fTElUVExFX0VORElBTikKKwkJYnl0ZV9zd2FwID0gIWxjZHJlZ19i cHdfc3VwcG9ydGVkKHRkZXYtPmxjZHJlZywgMTYpOworI2VuZGlmCisJCXRpbnlkcm1feHJnYjg4 ODhfdG9fcmdiNTY1KHZtZW0sIGJ1ZiwgbnVtX3BpeGVscywgYnl0ZV9zd2FwKTsKKwkJdHIuYnVm ID0gYnVmOworCQlpZiAoYnl0ZV9zd2FwKSB7CisJCQl0ci53aWR0aCA9IDg7CisJCQl0ci5jb3Vu dCAqPSAyOworCQl9CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl9lcnJfb25jZSh0ZGV2LT5i YXNlLT5kZXYsCisJCQkgICAgICJwaXhlbF9mb3JtYXQgJyVzJyBpcyBub3Qgc3VwcG9ydGVkXG4i LAorCQkJICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZiLT5waXhlbF9mb3JtYXQpKTsKKwkJcmV0 dXJuIC1FSU5WQUw7CisJfQorCisJcmV0ID0gbGNkcmVnX3dyaXRlKHRkZXYtPmxjZHJlZywgTUlQ SV9EQ1NfV1JJVEVfTUVNT1JZX1NUQVJULCAmdHIpOworCWtmcmVlKGJ1Zik7CisKKwlyZXR1cm4g cmV0OworfQorCitzdGF0aWMgdm9pZCBtaXBpX2RiaV9kZWZlcnJlZF91cGRhdGUoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCB0aW55ZHJtX2RldmljZSAqdGRldiA9IHdvcmtf dG9fdGlueWRybSh3b3JrKTsKKwlzdHJ1Y3QgbGNkcmVnICpyZWcgPSB0ZGV2LT5sY2RyZWc7CisJ c3RydWN0IHRpbnlkcm1fZmJfY2xpcCBmYl9jbGlwOworCXN0cnVjdCBkcm1fY2xpcF9yZWN0ICpj bGlwID0gJmZiX2NsaXAuY2xpcDsKKwlpbnQgcmV0OworCisJZGV2X2RiZyh0ZGV2LT5iYXNlLT5k ZXYsICIlc1xuIiwgX19mdW5jX18pOworCisJaWYgKCF0aW55ZHJtX2RlZmVycmVkX2JlZ2luKHRk ZXYsICZmYl9jbGlwKSkKKwkJcmV0dXJuOworCisJZGV2X2RiZyh0ZGV2LT5iYXNlLT5kZXYsICIl czogdm1lbT0lcCwgeDE9JXUsIHgyPSV1LCB5MT0ldSwgeTI9JXVcbiIsIF9fZnVuY19fLCBmYl9j bGlwLnZtZW0sIGNsaXAtPngxLCBjbGlwLT54MiwgY2xpcC0+eTEsIGNsaXAtPnkyKTsKKworCWxj ZHJlZ193cml0ZXJlZyhyZWcsIE1JUElfRENTX1NFVF9DT0xVTU5fQUREUkVTUywKKwkJCShjbGlw LT54MSA+PiA4KSAmIDB4RkYsIGNsaXAtPngxICYgMHhGRiwKKwkJCShjbGlwLT54MiA+PiA4KSAm IDB4RkYsIGNsaXAtPngyICYgMHhGRik7CisJbGNkcmVnX3dyaXRlcmVnKHJlZywgTUlQSV9EQ1Nf U0VUX1BBR0VfQUREUkVTUywKKwkJCShjbGlwLT55MSA+PiA4KSAmIDB4RkYsIGNsaXAtPnkxICYg MHhGRiwKKwkJCShjbGlwLT55MiA+PiA4KSAmIDB4RkYsIGNsaXAtPnkyICYgMHhGRik7CisKKwly ZXQgPSB0aW55ZHJtX3VwZGF0ZV9yZ2I1NjVfbGNkcmVnKHRkZXYsIGZiX2NsaXAuZmIsIGZiX2Ns aXAudm1lbSwgY2xpcCk7CisJaWYgKHJldCkKKwkJZGV2X2Vycl9vbmNlKHRkZXYtPmJhc2UtPmRl diwgIkZhaWxlZCB0byB1cGRhdGUgZGlzcGxheSAlZFxuIiwgcmV0KTsKKworCXRpbnlkcm1fZGVm ZXJyZWRfZW5kKHRkZXYpOworfQorCitpbnQgbWlwaV9kYmlfaW5pdChzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCB0aW55ZHJtX2RldmljZSAqdGRldikKK3sKKwl0ZGV2LT5kZWZlcnJlZCA9IGRl dm1fa3phbGxvYyhkZXYsIHNpemVvZigqdGRldi0+ZGVmZXJyZWQpLAorCQkJCSAgICAgIEdGUF9L RVJORUwpOworCWlmICghdGRldi0+ZGVmZXJyZWQpCisJCXJldHVybiAtRU5PTUVNOworCisJSU5J VF9ERUxBWUVEX1dPUksoJnRkZXYtPmRlZmVycmVkLT5kd29yaywgbWlwaV9kYmlfZGVmZXJyZWRf dXBkYXRlKTsKKwl0aW55ZHJtX3Jlc2V0X2NsaXAoJnRkZXYtPmRlZmVycmVkLT5mYl9jbGlwLmNs aXApOworCXRkZXYtPmxjZHJlZy0+ZGVmX3dpZHRoID0gODsKKwl0ZGV2LT5kaXJ0eWZiID0gdGlu eWRybV9kaXJ0eWZiOworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKG1pcGlfZGJpX2lu aXQpOworCisvKiBSZXR1cm5zIHRydWUgaWYgdGhlIGRpc3BsYXkgY2FuIGJlIHZlcmlmaWVkIHRv IGJlIG9uICovCitib29sIG1pcGlfZGJpX2Rpc3BsYXlfaXNfb24oc3RydWN0IGxjZHJlZyAqcmVn KQoreworCXUzMiB2YWw7CisKKwlpZiAoIWxjZHJlZ19pc19yZWFkYWJsZShyZWcpKQorCQlyZXR1 cm4gZmFsc2U7CisKKwlpZiAobGNkcmVnX3JlYWRyZWdfYnVmMzIocmVnLCBNSVBJX0RDU19HRVRf UE9XRVJfTU9ERSwgJnZhbCwgMSkpCisJCXJldHVybiBmYWxzZTsKKworCXZhbCAmPSB+RENTX1BP V0VSX01PREVfUkVTRVJWRURfTUFTSzsKKworCWlmICh2YWwgIT0gKERDU19QT1dFUl9NT0RFX0RJ U1BMQVkgfAorCSAgICBEQ1NfUE9XRVJfTU9ERV9ESVNQTEFZX05PUk1BTF9NT0RFIHwgRENTX1BP V0VSX01PREVfU0xFRVBfTU9ERSkpCisJCXJldHVybiBmYWxzZTsKKworCURSTV9ERUJVR19EUklW RVIoIkRpc3BsYXkgaXMgT05cbiIpOworCisJcmV0dXJuIHRydWU7Cit9CitFWFBPUlRfU1lNQk9M KG1pcGlfZGJpX2Rpc3BsYXlfaXNfb24pOworCit2b2lkIG1pcGlfZGJpX2RlYnVnX2R1bXBfcmVn cyhzdHJ1Y3QgbGNkcmVnICpyZWcpCit7CisJdTMyIHZhbFs0XTsKKwlpbnQgcmV0OworCisJaWYg KCEobGNkcmVnX2lzX3JlYWRhYmxlKHJlZykgJiYgKGRybV9kZWJ1ZyAmIERSTV9VVF9EUklWRVIp KSkKKwkJcmV0dXJuOworCisJcmV0ID0gbGNkcmVnX3JlYWRyZWdfYnVmMzIocmVnLCBNSVBJX0RD U19HRVRfRElTUExBWV9JRCwgdmFsLCAzKTsKKwlpZiAocmV0KSB7CisJCWRldl93YXJuKHJlZy0+ ZGV2LAorCQkJICJmYWlsZWQgdG8gcmVhZCBmcm9tIGNvbnRyb2xsZXI6ICVkIiwgcmV0KTsKKwkJ cmV0dXJuOworCX0KKworCS8qIFJERElEIGlzIG5vdCBwYXJ0IG9mIHRoZSBNSVBJIHN0YW5kYXJk LCBidXQgc2VlbXMgdG8gYmUgY29tbW9uICovCisJRFJNX0RFQlVHX0RSSVZFUigiRGlzcGxheSBJ RCAoJTAyeCk6ICUwMnggJTAyeCAlMDJ4XG4iLAorCQkJIE1JUElfRENTX0dFVF9ESVNQTEFZX0lE LCB2YWxbMF0sIHZhbFsxXSwgdmFsWzJdKTsKKworCWxjZHJlZ19yZWFkcmVnX2J1ZjMyKHJlZywg TUlQSV9EQ1NfR0VUX0RJU1BMQVlfU1RBVFVTLCB2YWwsIDQpOworCURSTV9ERUJVR19EUklWRVIo IkRpc3BsYXkgc3RhdHVzICglMDJ4KTogJTAyeCAlMDJ4ICUwMnggJTAyeFxuIiwKKwkJCSBNSVBJ X0RDU19HRVRfRElTUExBWV9TVEFUVVMsIHZhbFswXSwgdmFsWzFdLCB2YWxbMl0sIHZhbFszXSk7 CisKKwlsY2RyZWdfcmVhZHJlZ19idWYzMihyZWcsIE1JUElfRENTX0dFVF9QT1dFUl9NT0RFLCB2 YWwsIDEpOworCURSTV9ERUJVR19EUklWRVIoIlBvd2VyIG1vZGUgKCUwMngpOiAlMDJ4XG4iLAor CQkJIE1JUElfRENTX0dFVF9QT1dFUl9NT0RFLCB2YWxbMF0pOworCisJbGNkcmVnX3JlYWRyZWdf YnVmMzIocmVnLCBNSVBJX0RDU19HRVRfQUREUkVTU19NT0RFLCB2YWwsIDEpOworCURSTV9ERUJV R19EUklWRVIoIkFkZHJlc3MgbW9kZSAoJTAyeCk6ICUwMnhcbiIsCisJCQkgTUlQSV9EQ1NfR0VU X0FERFJFU1NfTU9ERSwgdmFsWzBdKTsKKworCWxjZHJlZ19yZWFkcmVnX2J1ZjMyKHJlZywgTUlQ SV9EQ1NfR0VUX1BJWEVMX0ZPUk1BVCwgdmFsLCAxKTsKKwlEUk1fREVCVUdfRFJJVkVSKCJQaXhl bCBmb3JtYXQgKCUwMngpOiAlMDJ4XG4iLAorCQkJIE1JUElfRENTX0dFVF9QSVhFTF9GT1JNQVQs IHZhbFswXSk7CisKKwlsY2RyZWdfcmVhZHJlZ19idWYzMihyZWcsIE1JUElfRENTX0dFVF9ESVNQ TEFZX01PREUsIHZhbCwgMSk7CisJRFJNX0RFQlVHX0RSSVZFUigiRGlzcGxheSBtb2RlICglMDJ4 KTogJTAyeFxuIiwKKwkJCSBNSVBJX0RDU19HRVRfRElTUExBWV9NT0RFLCB2YWxbMF0pOworCisJ bGNkcmVnX3JlYWRyZWdfYnVmMzIocmVnLCBNSVBJX0RDU19HRVRfU0lHTkFMX01PREUsIHZhbCwg MSk7CisJRFJNX0RFQlVHX0RSSVZFUigiRGlzcGxheSBzaWduYWwgbW9kZSAoJTAyeCk6ICUwMnhc biIsCisJCQkgTUlQSV9EQ1NfR0VUX1NJR05BTF9NT0RFLCB2YWxbMF0pOworCisJbGNkcmVnX3Jl YWRyZWdfYnVmMzIocmVnLCBNSVBJX0RDU19HRVRfRElBR05PU1RJQ19SRVNVTFQsIHZhbCwgMSk7 CisJRFJNX0RFQlVHX0RSSVZFUigiRGlhZ25vc3RpYyByZXN1bHQgKCUwMngpOiAlMDJ4XG4iLAor CQkJIE1JUElfRENTX0dFVF9ESUFHTk9TVElDX1JFU1VMVCwgdmFsWzBdKTsKK30KK0VYUE9SVF9T WU1CT0wobWlwaV9kYmlfZGVidWdfZHVtcF9yZWdzKTsKKworaW50IG1pcGlfZGJpX3BhbmVsX3Vu cHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3QgdGlueWRybV9kZXZp Y2UgKnRkZXYgPSB0aW55ZHJtX2Zyb21fcGFuZWwocGFuZWwpOworCXN0cnVjdCBsY2RyZWcgKnJl ZyA9IHRkZXYtPmxjZHJlZzsKKworCS8qCisJICogT25seSBkbyB0aGlzIGlmIHdlIGhhdmUgdHVy bmVkIG9mZiBiYWNrbGlnaHQgYmVjYXVzZSBpZiBpdCdzIG9uIHRoZQorCSAqIGRpc3BsYXkgd2ls bCBpbiBtb3N0IGNhc2VzIHR1cm4gYWxsIHdoaXRlIHdoZW4gdGhlIHBpeGVscyBhcmUKKwkgKiB0 dXJuZWQgb2ZmLgorCSAqLworCWlmICh0ZGV2LT5iYWNrbGlnaHQpIHsKKwkJbGNkcmVnX3dyaXRl cmVnKHJlZywgTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT0ZGKTsKKwkJbGNkcmVnX3dyaXRlcmVnKHJl ZywgTUlQSV9EQ1NfRU5URVJfU0xFRVBfTU9ERSk7CisJfQorCisJaWYgKHRkZXYtPnJlZ3VsYXRv cikKKwkJcmVndWxhdG9yX2Rpc2FibGUodGRldi0+cmVndWxhdG9yKTsKKworCXJldHVybiAwOwor fQorRVhQT1JUX1NZTUJPTChtaXBpX2RiaV9wYW5lbF91bnByZXBhcmUpOworCitNT0RVTEVfTElD RU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90aW55ZHJtL21pcGktZGJpLmgg Yi9pbmNsdWRlL2RybS90aW55ZHJtL21pcGktZGJpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMTA4YTczYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZHJtL3Rpbnlk cm0vbWlwaS1kYmkuaApAQCAtMCwwICsxLDI0IEBACisvKgorICogTUlQSSBEaXNwbGF5IEJ1cyBJ bnRlcmZhY2UgKERCSSkgTENEIGNvbnRyb2xsZXIgc3VwcG9ydAorICoKKyAqIENvcHlyaWdodCAy MDE2IE5vcmFsZiBUcsO4bm5lcworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUg TGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKi8K KworI2lmbmRlZiBfX0xJTlVYX01JUElfREJJX0gKKyNkZWZpbmUgX19MSU5VWF9NSVBJX0RCSV9I CisKK3N0cnVjdCB0aW55ZHJtX2RldmljZTsKK3N0cnVjdCBkcm1fcGFuZWw7CitzdHJ1Y3QgbGNk cmVnOworCitpbnQgbWlwaV9kYmlfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB0aW55 ZHJtX2RldmljZSAqdGRldik7Citib29sIG1pcGlfZGJpX2Rpc3BsYXlfaXNfb24oc3RydWN0IGxj ZHJlZyAqcmVnKTsKK3ZvaWQgbWlwaV9kYmlfZGVidWdfZHVtcF9yZWdzKHN0cnVjdCBsY2RyZWcg KnJlZyk7CitpbnQgbWlwaV9kYmlfcGFuZWxfdW5wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBh bmVsKTsKKworI2VuZGlmIC8qIF9fTElOVVhfTUlQSV9EQklfSCAqLwotLSAKMi4yLjIKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=