From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Zhong Subject: [PATCH v4 07/13] drm: rockchip: Support Synopsys DesignWare MIPI DSI host controller Date: Fri, 20 Nov 2015 16:15:33 +0800 Message-ID: <1448007339-10966-8-git-send-email-zyw@rock-chips.com> References: <1448007339-10966-1-git-send-email-zyw@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1448007339-10966-1-git-send-email-zyw@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: heiko@sntech.de, linux-rockchip@lists.infradead.org, mark.yao@rock-chips.com, treding@nvidia.com, emil.l.velikov@gmail.com Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Chris Zhong , rmk+kernel@arm.linux.org.uk, ajaykumar.rs@samsung.com, linux-arm-kernel@lists.infradead.org List-Id: linux-rockchip.vger.kernel.org QWRkIHN1cHBvcnQgZm9yIFN5bm9wc3lzIERlc2lnbldhcmUgTUlQSSBEU0kgaG9zdCBjb250cm9s bGVyIHdoaWNoIGlzCmVtYmVkZGVkIGluIHRoZSByazMyODggU29Dcy4KClNpZ25lZC1vZmYtYnk6 IENocmlzIFpob25nIDx6eXdAcm9jay1jaGlwcy5jb20+Ci0tLQoKQ2hhbmdlcyBpbiB2NDogTm9u ZQpDaGFuZ2VzIGluIHYzOiBOb25lCkNoYW5nZXMgaW4gdjI6IE5vbmUKCiBkcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvS2NvbmZpZyAgICAgICAgICAgICAgICB8ICAxMCArCiBkcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvTWFrZWZpbGUgICAgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvZHdfbWlwaV9kc2lfcm9ja2NoaXAuYyB8IDI0OSArKysrKysrKysrKysrKysr KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgICAg IHwgICAzICsKIDQgZmlsZXMgY2hhbmdlZCwgMjYzIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHdfbWlwaV9kc2lfcm9ja2NoaXAuYwoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9LY29uZmlnIGIvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL0tjb25maWcKaW5kZXggMzUyMTVmNi4uMjQzOTVmMyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL0tjb25maWcKQEAgLTI1LDMgKzI1LDEzIEBAIGNvbmZpZyBST0NLQ0hJUF9EV19I RE1JCiAJICBmb3IgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgSERNSSBkcml2ZXIuIElmIHlvdSB3 YW50IHRvCiAJICBlbmFibGUgSERNSSBvbiBSSzMyODggYmFzZWQgU29DLCB5b3Ugc2hvdWxkIHNl bGV0IHRoaXMKIAkgIG9wdGlvbi4KKworY29uZmlnIFJPQ0tDSElQX0RXX01JUElfRFNJCisJYm9v bCAiUm9ja2NoaXAgc3BlY2lmaWMgZXh0ZW5zaW9ucyBmb3IgU3lub3BzeXMgRFcgTUlQSSBEU0ki CisJZGVwZW5kcyBvbiBEUk1fUk9DS0NISVAKKwlzZWxlY3QgRFJNX0RXX01JUElfRFNJCisJaGVs cAorCSBUaGlzIHNlbGVjdHMgc3VwcG9ydCBmb3IgUm9ja2NoaXAgU29DIHNwZWNpZmljIGV4dGVu c2lvbnMKKwkgZm9yIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIEhETUkgZHJpdmVyLiBJZiB5b3Ug d2FudCB0bworCSBlbmFibGUgTUlQSSBEU0kgb24gUkszMjg4IGJhc2VkIFNvQywgeW91IHNob3Vs ZCBzZWxldCB0aGlzCisJIG9wdGlvbi4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9NYWtlZmlsZQppbmRleCBm M2Q4YTE5Li42YTk3MDU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvTWFr ZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL01ha2VmaWxlCkBAIC02LDUgKzYs NiBAQCByb2NrY2hpcGRybS15IDo9IHJvY2tjaGlwX2RybV9kcnYubyByb2NrY2hpcF9kcm1fZmIu byByb2NrY2hpcF9kcm1fZmJkZXYubyBcCiAJCXJvY2tjaGlwX2RybV9nZW0ubwogCiBvYmotJChD T05GSUdfUk9DS0NISVBfRFdfSERNSSkgKz0gZHdfaGRtaS1yb2NrY2hpcC5vCitvYmotJChDT05G SUdfUk9DS0NISVBfRFdfTUlQSV9EU0kpICs9IGR3X21pcGlfZHNpX3JvY2tjaGlwLm8KIAogb2Jq LSQoQ09ORklHX0RSTV9ST0NLQ0hJUCkgKz0gcm9ja2NoaXBkcm0ubyByb2NrY2hpcF9kcm1fdm9w Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kd19taXBpX2RzaV9yb2Nr Y2hpcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X21pcGlfZHNpX3JvY2tjaGlwLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBiYjRlYgotLS0gL2Rldi9udWxs CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kd19taXBpX2RzaV9yb2NrY2hpcC5jCkBA IC0wLDAgKzEsMjQ5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDE0LCBGdXpob3UgUm9ja2No aXAgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2Yg dGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor ICovCisKKyNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KKyNpbmNsdWRlIDxsaW51eC9tZmQv c3lzY29uLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvb2Zf ZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisjaW5jbHVkZSA8bGludXgvdmlk ZW9kZXYyLmg+CisjaW5jbHVkZSA8ZHJtL2JyaWRnZS9kd19taXBpX2RzaS5oPgorI2luY2x1ZGUg PGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZHNpLmg+Cisj aW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgorCisjaW5j bHVkZSAicm9ja2NoaXBfZHJtX2Rydi5oIgorI2luY2x1ZGUgInJvY2tjaGlwX2RybV92b3AuaCIK KworI2RlZmluZSBEUklWRVJfTkFNRQkicm9ja2NoaXAtbWlwaS1kc2kiCisKKyNkZWZpbmUgR1JG X1NPQ19DT042ICAgICAgICAgICAgICAgICAgICAweDAyNWMKKyNkZWZpbmUgRFNJMF9TRUxfVk9Q X0xJVCAgICAgICAgICAgICAgICAoMSA8PCA2KQorI2RlZmluZSBEU0kxX1NFTF9WT1BfTElUICAg ICAgICAgICAgICAgICgxIDw8IDkpCisKK3N0cnVjdCByb2NrY2hpcF9taXBpX2RzaSB7CisJc3Ry dWN0IGRybV9lbmNvZGVyIGVuY29kZXI7CisJc3RydWN0IGRldmljZSAqZGV2OworCXN0cnVjdCBy ZWdtYXAgKnJlZ21hcDsKK307CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHJvY2tjaGlwX21pcGlf ZHNpICplbmNfdG9fZHNpKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jKQoreworCXJldHVybiBjb250 YWluZXJfb2YoZW5jLCBzdHJ1Y3Qgcm9ja2NoaXBfbWlwaV9kc2ksIGVuY29kZXIpOworfQorCitz dGF0aWMgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIHJvY2tjaGlwX21pcGlfZHNpX2VuY29kZXJf ZnVuY3MgPSB7CisJLmRlc3Ryb3kgPSBkcm1fZW5jb2Rlcl9jbGVhbnVwLAorfTsKKworc3RhdGlj IGludCByb2NrY2hpcF9taXBpX3BhcnNlX2R0KHN0cnVjdCByb2NrY2hpcF9taXBpX2RzaSAqZHNp KQoreworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBkc2ktPmRldi0+b2Zfbm9kZTsKKworCWRz aS0+cmVnbWFwID0gc3lzY29uX3JlZ21hcF9sb29rdXBfYnlfcGhhbmRsZShucCwgInJvY2tjaGlw LGdyZiIpOworCWlmIChJU19FUlIoZHNpLT5yZWdtYXApKSB7CisJCWRldl9lcnIoZHNpLT5kZXYs ICJVbmFibGUgdG8gZ2V0IHJvY2tjaGlwLGdyZlxuIik7CisJCXJldHVybiBQVFJfRVJSKGRzaS0+ cmVnbWFwKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGJvb2wgcm9ja2NoaXBfbWlw aV9kc2lfZW5jb2Rlcl9tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwkJ CQkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisJCQkJCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQoreworCXJldHVybiB0cnVlOworfQorCitzdGF0 aWMgdm9pZCByb2NrY2hpcF9taXBpX2RzaV9lbmNvZGVyX3ByZXBhcmUoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQoreworCXUzMiBlbmNvZGVyX3BpeF9mbXQsIGludGVyZmFjZV9waXhfZm10 OworCisJZW5jb2Rlcl9waXhfZm10ID0gZHdfbWlwaV9kc2lfZ2V0X2VuY29kZXJfcGl4ZWxfZm9y bWF0KGVuY29kZXIpOworCisJc3dpdGNoIChlbmNvZGVyX3BpeF9mbXQpIHsKKwljYXNlIE1JUElf RFNJX0ZNVF9SR0I4ODg6CisJCWludGVyZmFjZV9waXhfZm10ID0gUk9DS0NISVBfT1VUX01PREVf UDg4ODsKKwkJYnJlYWs7CisJY2FzZSBNSVBJX0RTSV9GTVRfUkdCNjY2OgorCQlpbnRlcmZhY2Vf cGl4X2ZtdCA9IFJPQ0tDSElQX09VVF9NT0RFX1A2NjY7CisJCWJyZWFrOworCWNhc2UgTUlQSV9E U0lfRk1UX1JHQjU2NToKKwkJaW50ZXJmYWNlX3BpeF9mbXQgPSBST0NLQ0hJUF9PVVRfTU9ERV9Q NTY1OworCQlicmVhazsKKwlkZWZhdWx0OgorCQlXQVJOX09OKDEpOworCQlyZXR1cm47CisJfQor CisJcm9ja2NoaXBfZHJtX2NydGNfbW9kZV9jb25maWcoZW5jb2Rlci0+Y3J0YywgRFJNX01PREVf Q09OTkVDVE9SX0RTSSwKKwkJCQkgICAgICBpbnRlcmZhY2VfcGl4X2ZtdCk7Cit9CisKK3N0YXRp YyB2b2lkIHJvY2tjaGlwX21pcGlfZHNpX2VuY29kZXJfbW9kZV9zZXQoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLAorCQkJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKKwkJCQkJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCit7Cit9CisKK3N0YXRpYyB2 b2lkIHJvY2tjaGlwX21pcGlfZHNpX2VuY29kZXJfY29tbWl0KHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcikKK3sKKwlzdHJ1Y3Qgcm9ja2NoaXBfbWlwaV9kc2kgKmRzaSA9IGVuY190b19kc2ko ZW5jb2Rlcik7CisJdTMyIHZhbDsKKwlpbnQgbXV4ICA9IHJvY2tjaGlwX2RybV9lbmNvZGVyX2dl dF9tdXhfaWQoZHNpLT5kZXYtPm9mX25vZGUsIGVuY29kZXIpOworCisJaWYgKG11eCkKKwkJdmFs ID0gRFNJMF9TRUxfVk9QX0xJVCB8IChEU0kwX1NFTF9WT1BfTElUIDw8IDE2KTsKKwllbHNlCisJ CXZhbCA9IERTSTBfU0VMX1ZPUF9MSVQgPDwgMTY7CisKKwlyZWdtYXBfd3JpdGUoZHNpLT5yZWdt YXAsIEdSRl9TT0NfQ09ONiwgdmFsKTsKKwlkZXZfZGJnKGRzaS0+ZGV2LCAidm9wICVzIG91dHB1 dCB0byBkc2kwXG4iLAorCQkobXV4KSA/ICJMSVQiIDogIkJJRyIpOworfQorCitzdGF0aWMgdm9p ZCByb2NrY2hpcF9taXBpX2RzaV9lbmNvZGVyX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKQoreworfQorCitzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcwor cm9ja2NoaXBfbWlwaV9kc2lfZW5jb2Rlcl9oZWxwZXJfZnVuY3MgPSB7CisJLm1vZGVfZml4dXAg PSByb2NrY2hpcF9taXBpX2RzaV9lbmNvZGVyX21vZGVfZml4dXAsCisJLnByZXBhcmUgPSByb2Nr Y2hpcF9taXBpX2RzaV9lbmNvZGVyX3ByZXBhcmUsCisJLm1vZGVfc2V0ID0gcm9ja2NoaXBfbWlw aV9kc2lfZW5jb2Rlcl9tb2RlX3NldCwKKwkuY29tbWl0ID0gcm9ja2NoaXBfbWlwaV9kc2lfZW5j b2Rlcl9jb21taXQsCisJLmRpc2FibGUgPSByb2NrY2hpcF9taXBpX2RzaV9lbmNvZGVyX2Rpc2Fi bGUsCit9OworCitzdGF0aWMgaW50IHJvY2tjaGlwX21pcGlfZHNpX3JlZ2lzdGVyKHN0cnVjdCBk cm1fZGV2aWNlICpkcm0sCisJCQkJICAgICAgc3RydWN0IHJvY2tjaGlwX21pcGlfZHNpICpkc2kp Cit7CisJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmRzaS0+ZW5jb2RlcjsKKwlzdHJ1 Y3QgZGV2aWNlICpkZXYgPSBkc2ktPmRldjsKKworCWVuY29kZXItPnBvc3NpYmxlX2NydGNzID0g ZHJtX29mX2ZpbmRfcG9zc2libGVfY3J0Y3MoZHJtLAorCQkJCQkJCSAgICAgZGV2LT5vZl9ub2Rl KTsKKwkvKgorCSAqIElmIHdlIGZhaWxlZCB0byBmaW5kIHRoZSBDUlRDKHMpIHdoaWNoIHRoaXMg ZW5jb2RlciBpcworCSAqIHN1cHBvc2VkIHRvIGJlIGNvbm5lY3RlZCB0bywgaXQncyBiZWNhdXNl IHRoZSBDUlRDIGhhcworCSAqIG5vdCBiZWVuIHJlZ2lzdGVyZWQgeWV0LiAgRGVmZXIgcHJvYmlu ZywgYW5kIGhvcGUgdGhhdAorCSAqIHRoZSByZXF1aXJlZCBDUlRDIGlzIGFkZGVkIGxhdGVyLgor CSAqLworCWlmIChlbmNvZGVyLT5wb3NzaWJsZV9jcnRjcyA9PSAwKQorCQlyZXR1cm4gLUVQUk9C RV9ERUZFUjsKKworCWRybV9lbmNvZGVyX2hlbHBlcl9hZGQoJmRzaS0+ZW5jb2RlciwKKwkJCSAg ICAgICAmcm9ja2NoaXBfbWlwaV9kc2lfZW5jb2Rlcl9oZWxwZXJfZnVuY3MpOworCWRybV9lbmNv ZGVyX2luaXQoZHJtLCAmZHNpLT5lbmNvZGVyLCAmcm9ja2NoaXBfbWlwaV9kc2lfZW5jb2Rlcl9m dW5jcywKKwkJCSBEUk1fTU9ERV9FTkNPREVSX0RTSSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBlbnVtIGRybV9tb2RlX3N0YXR1cyByb2NrY2hpcF9taXBpX2RzaV9tb2RlX3ZhbGlkKAorCQkJ CQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCQlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZSkKK3sKKwkvKgorCSAqIFRoZSBWSURfUEtUX1NJWkUgZmllbGQgaW4gdGhl IERTSV9WSURfUEtUX0NGRworCSAqIHJlZ2lzdGVyIGlzIDExLWJpdC4KKwkgKi8KKwlpZiAobW9k ZS0+aGRpc3BsYXkgPiAweDdmZikKKwkJcmV0dXJuIE1PREVfQkFEX0hWQUxVRTsKKworCS8qCisJ ICogVGhlIFZfQUNUSVZFX0xJTkVTIGZpZWxkIGluIHRoZSBEU0lfVlRJTUlOR19DRkcKKwkgKiBy ZWdpc3RlciBpcyAxMS1iaXQuCisJICovCisJaWYgKG1vZGUtPnZkaXNwbGF5ID4gMHg3ZmYpCisJ CXJldHVybiBNT0RFX0JBRF9WVkFMVUU7CisKKwlyZXR1cm4gTU9ERV9PSzsKK30KKworc3RhdGlj IHN0cnVjdCBkd19taXBpX2RzaV9wbGF0X2RhdGEgcmszMjg4X21pcGlfZHNpX2Rydl9kYXRhID0g eworCS5tYXhfZGF0YV9sYW5lcyA9IDQsCisJLm1vZGVfdmFsaWQgPSByb2NrY2hpcF9taXBpX2Rz aV9tb2RlX3ZhbGlkLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcm9j a2NoaXBfbWlwaV9kc2lfZHRfaWRzW10gPSB7CisJeworCSAuY29tcGF0aWJsZSA9ICJyb2NrY2hp cCxyazMyODgtbWlwaS1kc2kiLAorCSAuZGF0YSA9ICZyazMyODhfbWlwaV9kc2lfZHJ2X2RhdGEs CisJfSwKKwl7IC8qIHNlbnRpbmVsICovIH0KK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBy b2NrY2hpcF9taXBpX2RzaV9kdF9pZHMpOworCitzdGF0aWMgaW50IHJvY2tjaGlwX21pcGlfZHNp X2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCisJCQkgICAg IHZvaWQgKmRhdGEpCit7CisJY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqb2ZfaWQgPQorCQkJ b2ZfbWF0Y2hfZGV2aWNlKHJvY2tjaGlwX21pcGlfZHNpX2R0X2lkcywgZGV2KTsKKwljb25zdCBz dHJ1Y3QgZHdfbWlwaV9kc2lfcGxhdF9kYXRhICpwZGF0YSA9IG9mX2lkLT5kYXRhOworCXN0cnVj dCBkcm1fZGV2aWNlICpkcm0gPSBkYXRhOworCXN0cnVjdCByb2NrY2hpcF9taXBpX2RzaSAqZHNp OworCWludCByZXQ7CisKKwlkc2kgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmRzaSksIEdG UF9LRVJORUwpOworCWlmICghZHNpKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRzaS0+ZGV2ID0g ZGV2OworCisJcmV0ID0gcm9ja2NoaXBfbWlwaV9kc2lfcmVnaXN0ZXIoZHJtLCBkc2kpOworCWlm IChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSByb2NrY2hpcF9taXBpX3BhcnNlX2R0KGRz aSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWRldl9zZXRfZHJ2ZGF0YShkZXYsIGRz aSk7CisKKwlyZXR1cm4gZHdfbWlwaV9kc2lfYmluZChkZXYsIG1hc3RlciwgZGF0YSwgJmRzaS0+ ZW5jb2RlciwgcGRhdGEpOworfQorCitzdGF0aWMgdm9pZCByb2NrY2hpcF9taXBpX2RzaV91bmJp bmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCisJdm9pZCAqZGF0 YSkKK3sKKwlyZXR1cm4gZHdfbWlwaV9kc2lfdW5iaW5kKGRldiwgbWFzdGVyLCBkYXRhKTsKK30K Kworc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfb3BzIHJvY2tjaGlwX21pcGlfZHNpX29w cyA9IHsKKwkuYmluZAk9IHJvY2tjaGlwX21pcGlfZHNpX2JpbmQsCisJLnVuYmluZAk9IHJvY2tj aGlwX21pcGlfZHNpX3VuYmluZCwKK307CisKK3N0YXRpYyBpbnQgcm9ja2NoaXBfbWlwaV9kc2lf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gY29tcG9uZW50 X2FkZCgmcGRldi0+ZGV2LCAmcm9ja2NoaXBfbWlwaV9kc2lfb3BzKTsKK30KKworc3RhdGljIGlu dCByb2NrY2hpcF9taXBpX2RzaV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK K3sKKwljb21wb25lbnRfZGVsKCZwZGV2LT5kZXYsICZyb2NrY2hpcF9taXBpX2RzaV9vcHMpOwor CXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciByb2NrY2hpcF9t aXBpX2RzaV9kcml2ZXIgPSB7CisJLnByb2JlCQk9IHJvY2tjaGlwX21pcGlfZHNpX3Byb2JlLAor CS5yZW1vdmUJCT0gcm9ja2NoaXBfbWlwaV9kc2lfcmVtb3ZlLAorCS5kcml2ZXIJCT0geworCQku b2ZfbWF0Y2hfdGFibGUgPSByb2NrY2hpcF9taXBpX2RzaV9kdF9pZHMsCisJCS5uYW1lCT0gRFJJ VkVSX05BTUUsCisJfSwKK307Cittb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHJvY2tjaGlwX21pcGlf ZHNpX2RyaXZlcik7CisKK01PRFVMRV9ERVNDUklQVElPTigiUk9DS0NISVAgTUlQSSBEU0kgaG9z dCBjb250cm9sbGVyIGRyaXZlciIpOworTU9EVUxFX0FVVEhPUigiQ2hyaXMgWmhvbmcgPHp5d0By b2NrLWNoaXBzLmNvbT4iKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9BTElBUygi cGxhdGZvcm06IiBEUklWRVJfTkFNRSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2RybV92b3AuYwppbmRleCBlZmY1NDViLi5iZmFhMzFhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKQEAgLTExOTksNiArMTE5OSw5IEBAIHN0YXRp YyBpbnQgdm9wX2NydGNfbW9kZV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWNhc2UgRFJN X01PREVfQ09OTkVDVE9SX0hETUlBOgogCQlWT1BfQ1RSTF9TRVQodm9wLCBoZG1pX2VuLCAxKTsK IAkJYnJlYWs7CisJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfRFNJOgorCQlWT1BfQ1RSTF9TRVQo dm9wLCBtaXBpX2VuLCAxKTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJRFJNX0VSUk9SKCJ1bnN1 cHBvcnQgY29ubmVjdG9yX3R5cGVbJWRdXG4iLAogCQkJICB2b3AtPmNvbm5lY3Rvcl90eXBlKTsK LS0gCjIuNi4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=