From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [RFC v2 2/5] drm/mediatke: add support for Mediatek SoC MT2701 Date: Fri, 20 May 2016 23:05:33 +0800 Message-ID: <1463756736-46573-3-git-send-email-yt.shen@mediatek.com> References: <1463756736-46573-1-git-send-email-yt.shen@mediatek.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1463756736-46573-1-git-send-email-yt.shen@mediatek.com> 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, Philipp Zabel Cc: Mark Rutland , devicetree@vger.kernel.org, Russell King , srv_heupstream@mediatek.com, Pawel Moll , Ian Campbell , emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, Mao Huang , YT Shen , Rob Herring , linux-mediatek@lists.infradead.org, Kumar Gala , Matthias Brugger , yingjoe.chen@mediatek.com, Sascha Hauer , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org RnJvbTogWVQgU2hlbiA8eXQuc2hlbkBtZWRpYXRlay5jb20+CgpUaGlzIHBhdGNoIGFkZCBzdXBw b3J0IGZvciB0aGUgTWVkaWF0ZWsgTVQyNzAxIERJU1Agc3Vic3lzdGVtLgpUaGVyZSBpcyBvbmx5 IG9uZSBPVkwgZW5naW5lIGluIE1UMjcwMS4KClNpZ25lZC1vZmYtYnk6IFlUIFNoZW4gPHl0LnNo ZW5AbWVkaWF0ZWsuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rk cC5jICAgICAgfCAgIDYzICsrKysrKysrKysrKysrKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYyB8ICAgIDIgKwogZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcm1fZGRwX2NvbXAuaCB8ICAgIDIgKwogZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kcm1fZHJ2LmMgICAgICB8ICAgNzAgKysrKysrKysrKysrKysrKysrKysrKy0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCAgICAgIHwgICAgOCArKysK IDUgZmlsZXMgY2hhbmdlZCwgMTI2IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcC5jIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmMKaW5kZXggZDZhYWZkNC4uNTI5NTY5ZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmMKQEAgLTMxLDYgKzMxLDEwIEBA CiAjZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUExX01PVVRfRU4JMHgwYzgKICNkZWZp bmUgRElTUF9SRUdfQ09ORklHX01NU1lTX0NHX0NPTjAJCTB4MTAwCiAKKyNkZWZpbmUgRElTUF9S RUdfQ09ORklHX0RJU1BfT1ZMX01PVVRfRU4JMHgwMzAKKyNkZWZpbmUgRElTUF9SRUdfQ09ORklH X09VVF9TRUwJCQkweDA0YworI2RlZmluZSBESVNQX1JFR19DT05GSUdfRFNJX1NFTAkJCTB4MDUw CisKICNkZWZpbmUgRElTUF9SRUdfTVVURVhfRU4obikJKDB4MjAgKyAweDIwICogKG4pKQogI2Rl ZmluZSBESVNQX1JFR19NVVRFWF9SU1QobikJKDB4MjggKyAweDIwICogKG4pKQogI2RlZmluZSBE SVNQX1JFR19NVVRFWF9NT0QobikJKDB4MmMgKyAweDIwICogKG4pKQpAQCAtNTIsNiArNTYsMTMg QEAKICNkZWZpbmUgTVVURVhfTU9EX0RJU1BfUFdNMV9NVDgxNzMJCUJJVCgyNCkKICNkZWZpbmUg TVVURVhfTU9EX0RJU1BfT0RfTVQ4MTczCQlCSVQoMjUpCiAKKyNkZWZpbmUgTVVURVhfTU9EX0RJ U1BfT1ZMX01UMjcwMQkJQklUKDMpCisjZGVmaW5lIE1VVEVYX01PRF9ESVNQX1dETUFfTVQyNzAx CQlCSVQoNikKKyNkZWZpbmUgTVVURVhfTU9EX0RJU1BfQ09MT1JfTVQyNzAxCQlCSVQoNykKKyNk ZWZpbmUgTVVURVhfTU9EX0RJU1BfQkxTX01UMjcwMQkJQklUKDkpCisjZGVmaW5lIE1VVEVYX01P RF9ESVNQX1JETUEwX01UMjcwMQkJQklUKDEwKQorI2RlZmluZSBNVVRFWF9NT0RfRElTUF9SRE1B MV9NVDI3MDEJCUJJVCgxMikKKwogI2RlZmluZSBNVVRFWF9TT0ZfU0lOR0xFX01PREUJCTAKICNk ZWZpbmUgTVVURVhfU09GX0RTSTAJCQkxCiAjZGVmaW5lIE1VVEVYX1NPRl9EU0kxCQkJMgpAQCAt NjcsNiArNzgsMTAgQEAKICNkZWZpbmUgRFBJMF9TRUxfSU5fUkRNQTEJCTB4MQogI2RlZmluZSBD T0xPUjFfU0VMX0lOX09WTDEJCTB4MQogCisjZGVmaW5lIE9WTF9NT1VUX0VOX1JETUEJCTB4MQor I2RlZmluZSBCTFNfVE9fRFNJX1JETUExX1RPX0RQSTEJMHg4CisjZGVmaW5lIERTSV9TRUxfSU5f QkxTCQkJMHgwCisKIHN0cnVjdCBtdGtfZGlzcF9tdXRleCB7CiAJaW50IGlkOwogCWJvb2wgY2xh aW1lZDsKQEAgLTc3LDYgKzkyLDE2IEBAIHN0cnVjdCBtdGtfZGRwIHsKIAlzdHJ1Y3QgY2xrCQkJ KmNsazsKIAl2b2lkIF9faW9tZW0JCQkqcmVnczsKIAlzdHJ1Y3QgbXRrX2Rpc3BfbXV0ZXgJCW11 dGV4WzEwXTsKKwljb25zdCB1bnNpZ25lZCBpbnQJCSptdXRleF9tb2Q7Cit9OworCitzdGF0aWMg Y29uc3QgdW5zaWduZWQgaW50IG11dGV4X21vZF9tdDI3MDFbRERQX0NPTVBPTkVOVF9JRF9NQVhd ID0geworCVtERFBfQ09NUE9ORU5UX0JMU10gPSBNVVRFWF9NT0RfRElTUF9CTFNfTVQyNzAxLAor CVtERFBfQ09NUE9ORU5UX0NPTE9SMF0gPSBNVVRFWF9NT0RfRElTUF9DT0xPUl9NVDI3MDEsCisJ W0REUF9DT01QT05FTlRfT1ZMMF0gPSBNVVRFWF9NT0RfRElTUF9PVkxfTVQyNzAxLAorCVtERFBf Q09NUE9ORU5UX1JETUEwXSA9IE1VVEVYX01PRF9ESVNQX1JETUEwX01UMjcwMSwKKwlbRERQX0NP TVBPTkVOVF9SRE1BMV0gPSBNVVRFWF9NT0RfRElTUF9SRE1BMV9NVDI3MDEsCisJW0REUF9DT01Q T05FTlRfV0RNQTBdID0gTVVURVhfTU9EX0RJU1BfV0RNQV9NVDI3MDEsCiB9OwogCiBzdGF0aWMg Y29uc3QgdW5zaWduZWQgaW50IG11dGV4X21vZF9tdDgxNzNbRERQX0NPTVBPTkVOVF9JRF9NQVhd ID0gewpAQCAtMTA2LDYgKzEzMSw5IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbXRrX2RkcF9tb3V0 X2VuKGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwKIAlpZiAoY3VyID09IEREUF9DT01QT05FTlRf T1ZMMCAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfQ09MT1IwKSB7CiAJCSphZGRyID0gRElTUF9S RUdfQ09ORklHX0RJU1BfT1ZMMF9NT1VUX0VOOwogCQl2YWx1ZSA9IE9WTDBfTU9VVF9FTl9DT0xP UjA7CisJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9PVkwwICYmIG5leHQgPT0gRERQ X0NPTVBPTkVOVF9SRE1BMCkgeworCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX09WTF9N T1VUX0VOOworCQl2YWx1ZSA9IE9WTF9NT1VUX0VOX1JETUE7CiAJfSBlbHNlIGlmIChjdXIgPT0g RERQX0NPTVBPTkVOVF9PRCAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfUkRNQTApIHsKIAkJKmFk ZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9PRF9NT1VUX0VOOwogCQl2YWx1ZSA9IE9EX01PVVRf RU5fUkRNQTA7CkBAIC0xNDMsNiArMTcxLDkgQEAgc3RhdGljIHVuc2lnbmVkIGludCBtdGtfZGRw X3NlbF9pbihlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsCiAJfSBlbHNlIGlmIChjdXIgPT0gRERQ X0NPTVBPTkVOVF9PVkwxICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9DT0xPUjEpIHsKIAkJKmFk ZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9DT0xPUjFfU0VMX0lOOwogCQl2YWx1ZSA9IENPTE9S MV9TRUxfSU5fT1ZMMTsKKwl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX0JMUyAmJiBu ZXh0ID09IEREUF9DT01QT05FTlRfRFNJMCkgeworCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19E U0lfU0VMOworCQl2YWx1ZSA9IERTSV9TRUxfSU5fQkxTOwogCX0gZWxzZSB7CiAJCXZhbHVlID0g MDsKIAl9CkBAIC0xNTAsNiArMTgxLDE1IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbXRrX2RkcF9z ZWxfaW4oZW51bSBtdGtfZGRwX2NvbXBfaWQgY3VyLAogCXJldHVybiB2YWx1ZTsKIH0KIAorc3Rh dGljIHZvaWQgbXRrX2RkcF9tdXhfc2VsKHZvaWQgX19pb21lbSAqY29uZmlnX3JlZ3MsCisJCQkg ICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgY3VyLCBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0KQor eworCWlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9CTFMgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5U X0RTSTApIHsKKwkJd3JpdGVsX3JlbGF4ZWQoQkxTX1RPX0RTSV9SRE1BMV9UT19EUEkxLAorCQkJ ICAgICAgIGNvbmZpZ19yZWdzICsgRElTUF9SRUdfQ09ORklHX09VVF9TRUwpOworCX0KK30KKwog dm9pZCBtdGtfZGRwX2FkZF9jb21wX3RvX3BhdGgodm9pZCBfX2lvbWVtICpjb25maWdfcmVncywK IAkJCSAgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwKIAkJCSAgICAgIGVudW0gbXRrX2Rk cF9jb21wX2lkIG5leHQpCkBAIC0xNjIsNiArMjAyLDggQEAgdm9pZCBtdGtfZGRwX2FkZF9jb21w X3RvX3BhdGgodm9pZCBfX2lvbWVtICpjb25maWdfcmVncywKIAkJd3JpdGVsX3JlbGF4ZWQocmVn LCBjb25maWdfcmVncyArIGFkZHIpOwogCX0KIAorCW10a19kZHBfbXV4X3NlbChjb25maWdfcmVn cywgY3VyLCBuZXh0KTsKKwogCXZhbHVlID0gbXRrX2RkcF9zZWxfaW4oY3VyLCBuZXh0LCAmYWRk cik7CiAJaWYgKHZhbHVlKSB7CiAJCXJlZyA9IHJlYWRsX3JlbGF4ZWQoY29uZmlnX3JlZ3MgKyBh ZGRyKSB8IHZhbHVlOwpAQCAtMjQ3LDcgKzI4OSw3IEBAIHZvaWQgbXRrX2Rpc3BfbXV0ZXhfYWRk X2NvbXAoc3RydWN0IG10a19kaXNwX211dGV4ICptdXRleCwKIAkJYnJlYWs7CiAJZGVmYXVsdDoK IAkJcmVnID0gcmVhZGxfcmVsYXhlZChkZHAtPnJlZ3MgKyBESVNQX1JFR19NVVRFWF9NT0QobXV0 ZXgtPmlkKSk7Ci0JCXJlZyB8PSBtdXRleF9tb2RbaWRdOworCQlyZWcgfD0gZGRwLT5tdXRleF9t b2RbaWRdOwogCQl3cml0ZWxfcmVsYXhlZChyZWcsIGRkcC0+cmVncyArIERJU1BfUkVHX01VVEVY X01PRChtdXRleC0+aWQpKTsKIAkJcmV0dXJuOwogCX0KQEAgLTI3Myw3ICszMTUsNyBAQCB2b2lk IG10a19kaXNwX211dGV4X3JlbW92ZV9jb21wKHN0cnVjdCBtdGtfZGlzcF9tdXRleCAqbXV0ZXgs CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJlZyA9IHJlYWRsX3JlbGF4ZWQoZGRwLT5yZWdzICsg RElTUF9SRUdfTVVURVhfTU9EKG11dGV4LT5pZCkpOwotCQlyZWcgJj0gfm11dGV4X21vZFtpZF07 CisJCXJlZyAmPSB+KGRkcC0+bXV0ZXhfbW9kW2lkXSk7CiAJCXdyaXRlbF9yZWxheGVkKHJlZywg ZGRwLT5yZWdzICsgRElTUF9SRUdfTVVURVhfTU9EKG11dGV4LT5pZCkpOwogCQlicmVhazsKIAl9 CkBAIC0yOTksOCArMzQxLDE2IEBAIHZvaWQgbXRrX2Rpc3BfbXV0ZXhfZGlzYWJsZShzdHJ1Y3Qg bXRrX2Rpc3BfbXV0ZXggKm11dGV4KQogCXdyaXRlbCgwLCBkZHAtPnJlZ3MgKyBESVNQX1JFR19N VVRFWF9FTihtdXRleC0+aWQpKTsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2Vf aWQgZGRwX2RyaXZlcl9kdF9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWss bXQyNzAxLWRpc3AtbXV0ZXgiLCAuZGF0YSA9IG11dGV4X21vZF9tdDI3MDF9LAorCXsgLmNvbXBh dGlibGUgPSAibWVkaWF0ZWssbXQ4MTczLWRpc3AtbXV0ZXgiLCAuZGF0YSA9IG11dGV4X21vZF9t dDgxNzN9LAorCXt9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGRkcF9kcml2ZXJfZHRf bWF0Y2gpOworCiBzdGF0aWMgaW50IG10a19kZHBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKIHsKKwljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICpvZl9pZDsKIAlzdHJ1Y3Qg ZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OwogCXN0cnVjdCBtdGtfZGRwICpkZHA7CiAJc3RydWN0 IHJlc291cmNlICpyZWdzOwpAQCAtMzI2LDYgKzM3Niw5IEBAIHN0YXRpYyBpbnQgbXRrX2RkcF9w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gUFRSX0VSUihkZHAt PnJlZ3MpOwogCX0KIAorCW9mX2lkID0gb2ZfbWF0Y2hfZGV2aWNlKGRkcF9kcml2ZXJfZHRfbWF0 Y2gsICZwZGV2LT5kZXYpOworCWRkcC0+bXV0ZXhfbW9kID0gb2ZfaWQtPmRhdGE7CisKIAlwbGF0 Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBkZHApOwogCiAJcmV0dXJuIDA7CkBAIC0zMzYsMTIgKzM4 OSw2IEBAIHN0YXRpYyBpbnQgbXRrX2RkcF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg ZGRwX2RyaXZlcl9kdF9tYXRjaFtdID0gewotCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4 MTczLWRpc3AtbXV0ZXgiIH0sCi0Je30sCi19OwotTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZGRw X2RyaXZlcl9kdF9tYXRjaCk7Ci0KIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2RkcF9kcml2 ZXIgPSB7CiAJLnByb2JlCQk9IG10a19kZHBfcHJvYmUsCiAJLnJlbW92ZQkJPSBtdGtfZGRwX3Jl bW92ZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9j b21wLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5jCmluZGV4 IDM5NzBmY2YuLjAzNjBmZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHJtX2RkcF9jb21wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1f ZGRwX2NvbXAuYwpAQCAtMTAzLDYgKzEwMyw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg bXRrX2RkcF9jb21wX3N0ZW1bTVRLX0REUF9DT01QX1RZUEVfTUFYXSA9IHsKIAlbTVRLX0RJU1Bf UFdNXSA9ICJwd20iLAogCVtNVEtfRElTUF9NVVRFWF0gPSAibXV0ZXgiLAogCVtNVEtfRElTUF9P RF0gPSAib2QiLAorCVtNVEtfRElTUF9CTFNdID0gImJscyIsCiB9OwogCiBzdHJ1Y3QgbXRrX2Rk cF9jb21wX21hdGNoIHsKQEAgLTExMyw2ICsxMTQsNyBAQCBzdHJ1Y3QgbXRrX2RkcF9jb21wX21h dGNoIHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZGRwX2NvbXBfbWF0Y2ggbXRrX2RkcF9t YXRjaGVzW0REUF9DT01QT05FTlRfSURfTUFYXSA9IHsKIAlbRERQX0NPTVBPTkVOVF9BQUxdCT0g eyBNVEtfRElTUF9BQUwsCTAsIE5VTEwgfSwKKwlbRERQX0NPTVBPTkVOVF9CTFNdCT0geyBNVEtf RElTUF9CTFMsCTAsIE5VTEwgfSwKIAlbRERQX0NPTVBPTkVOVF9DT0xPUjBdCT0geyBNVEtfRElT UF9DT0xPUiwJMCwgJmRkcF9jb2xvciB9LAogCVtERFBfQ09NUE9ORU5UX0NPTE9SMV0JPSB7IE1U S19ESVNQX0NPTE9SLAkxLCAmZGRwX2NvbG9yIH0sCiAJW0REUF9DT01QT05FTlRfRFBJMF0JPSB7 IE1US19EUEksCQkwLCBOVUxMIH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX2RybV9kZHBfY29tcC5oIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1f ZGRwX2NvbXAuaAppbmRleCA2YjEzYmE5Li4xYzM0NGU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmgKQEAgLTM1LDYgKzM1LDcgQEAgZW51bSBtdGtfZGRw X2NvbXBfdHlwZSB7CiAJTVRLX0RJU1BfUFdNLAogCU1US19ESVNQX01VVEVYLAogCU1US19ESVNQ X09ELAorCU1US19ESVNQX0JMUywKIAlNVEtfRERQX0NPTVBfVFlQRV9NQVgsCiB9OwogCkBAIC01 Nyw2ICs1OCw3IEBAIGVudW0gbXRrX2RkcF9jb21wX2lkIHsKIAlERFBfQ09NUE9ORU5UX1VGT0Us CiAJRERQX0NPTVBPTkVOVF9XRE1BMCwKIAlERFBfQ09NUE9ORU5UX1dETUExLAorCUREUF9DT01Q T05FTlRfQkxTLAogCUREUF9DT01QT05FTlRfSURfTUFYLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RybV9kcnYuYwppbmRleCAyNzc0Y2JkLi44YjU2MmFiIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYwpAQCAtMTA5LDcgKzEwOSwyMCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyBtdGtfZHJtX21vZGVfY29uZmlnX2Z1bmNz ID0gewogCS5hdG9taWNfY29tbWl0ID0gbXRrX2F0b21pY19jb21taXQsCiB9OwogCi1zdGF0aWMg Y29uc3QgZW51bSBtdGtfZGRwX2NvbXBfaWQgbXRrX2RkcF9tYWluW10gPSB7CitzdGF0aWMgY29u c3QgZW51bSBtdGtfZGRwX2NvbXBfaWQgbXRrX2RkcF9tYWluXzI3MDFbXSA9IHsKKwlERFBfQ09N UE9ORU5UX09WTDAsCisJRERQX0NPTVBPTkVOVF9SRE1BMCwKKwlERFBfQ09NUE9ORU5UX0NPTE9S MCwKKwlERFBfQ09NUE9ORU5UX0JMUywKKwlERFBfQ09NUE9ORU5UX0RTSTAsCit9OworCitzdGF0 aWMgY29uc3QgZW51bSBtdGtfZGRwX2NvbXBfaWQgbXRrX2RkcF9leHRfMjcwMVtdID0geworCURE UF9DT01QT05FTlRfT1ZMMCwKKwlERFBfQ09NUE9ORU5UX0RTSTAsCit9OworCitzdGF0aWMgY29u c3QgZW51bSBtdGtfZGRwX2NvbXBfaWQgbXRrX2RkcF9tYWluXzgxNzNbXSA9IHsKIAlERFBfQ09N UE9ORU5UX09WTDAsCiAJRERQX0NPTVBPTkVOVF9DT0xPUjAsCiAJRERQX0NPTVBPTkVOVF9BQUws CkBAIC0xMjAsNyArMTMzLDcgQEAgc3RhdGljIGNvbnN0IGVudW0gbXRrX2RkcF9jb21wX2lkIG10 a19kZHBfbWFpbltdID0gewogCUREUF9DT01QT05FTlRfUFdNMCwKIH07CiAKLXN0YXRpYyBjb25z dCBlbnVtIG10a19kZHBfY29tcF9pZCBtdGtfZGRwX2V4dFtdID0geworc3RhdGljIGNvbnN0IGVu dW0gbXRrX2RkcF9jb21wX2lkIG10a19kZHBfZXh0XzgxNzNbXSA9IHsKIAlERFBfQ09NUE9ORU5U X09WTDEsCiAJRERQX0NPTVBPTkVOVF9DT0xPUjEsCiAJRERQX0NPTVBPTkVOVF9HQU1NQSwKQEAg LTEyOCw2ICsxNDEsMjAgQEAgc3RhdGljIGNvbnN0IGVudW0gbXRrX2RkcF9jb21wX2lkIG10a19k ZHBfZXh0W10gPSB7CiAJRERQX0NPTVBPTkVOVF9EUEkwLAogfTsKIAorc3RhdGljIGNvbnN0IHN0 cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgbXQyNzAxX21tc3lzX2RyaXZlcl9kYXRhID0gewor CS5tYWluX3BhdGggPSBtdGtfZGRwX21haW5fMjcwMSwKKwkubWFpbl9sZW4gPSBBUlJBWV9TSVpF KG10a19kZHBfbWFpbl8yNzAxKSwKKwkuZXh0X3BhdGggPSBtdGtfZGRwX2V4dF8yNzAxLAorCS5l eHRfbGVuID0gQVJSQVlfU0laRShtdGtfZGRwX2V4dF8yNzAxKSwKK307CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRhIG10ODE3M19tbXN5c19kcml2ZXJfZGF0YSA9 IHsKKwkubWFpbl9wYXRoID0gbXRrX2RkcF9tYWluXzgxNzMsCisJLm1haW5fbGVuID0gQVJSQVlf U0laRShtdGtfZGRwX21haW5fODE3MyksCisJLmV4dF9wYXRoID0gbXRrX2RkcF9leHRfODE3MywK KwkuZXh0X2xlbiA9IEFSUkFZX1NJWkUobXRrX2RkcF9leHRfODE3MyksCit9OworCiBzdGF0aWMg aW50IG10a19kcm1fa21zX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKIHsKIAlzdHJ1Y3Qg bXRrX2RybV9wcml2YXRlICpwcml2YXRlID0gZHJtLT5kZXZfcHJpdmF0ZTsKQEAgLTE3MCwxNyAr MTk3LDE5IEBAIHN0YXRpYyBpbnQgbXRrX2RybV9rbXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZHJtKQogCSAqIGFuZCBlYWNoIHN0YXRpY2FsbHkgYXNzaWduZWQgdG8gYSBjcnRjOgogCSAqIE9W TDAgLT4gQ09MT1IwIC0+IEFBTCAtPiBPRCAtPiBSRE1BMCAtPiBVRk9FIC0+IERTSTAgLi4uCiAJ ICovCi0JcmV0ID0gbXRrX2RybV9jcnRjX2NyZWF0ZShkcm0sIG10a19kZHBfbWFpbiwgQVJSQVlf U0laRShtdGtfZGRwX21haW4pKTsKKwlyZXQgPSBtdGtfZHJtX2NydGNfY3JlYXRlKGRybSwgcHJp dmF0ZS0+ZGF0YS0+bWFpbl9wYXRoLAorCQkJCSAgcHJpdmF0ZS0+ZGF0YS0+bWFpbl9sZW4pOwog CWlmIChyZXQgPCAwKQogCQlnb3RvIGVycl9jb21wb25lbnRfdW5iaW5kOwogCS8qIC4uLiBhbmQg T1ZMMSAtPiBDT0xPUjEgLT4gR0FNTUEgLT4gUkRNQTEgLT4gRFBJMC4gKi8KLQlyZXQgPSBtdGtf ZHJtX2NydGNfY3JlYXRlKGRybSwgbXRrX2RkcF9leHQsIEFSUkFZX1NJWkUobXRrX2RkcF9leHQp KTsKKwlyZXQgPSBtdGtfZHJtX2NydGNfY3JlYXRlKGRybSwgcHJpdmF0ZS0+ZGF0YS0+ZXh0X3Bh dGgsCisJCQkJICBwcml2YXRlLT5kYXRhLT5leHRfbGVuKTsKIAlpZiAocmV0IDwgMCkKIAkJZ290 byBlcnJfY29tcG9uZW50X3VuYmluZDsKIAogCS8qIFVzZSBPVkwgZGV2aWNlIGZvciBhbGwgRE1B IG1lbW9yeSBhbGxvY2F0aW9ucyAqLwotCW5wID0gcHJpdmF0ZS0+Y29tcF9ub2RlW210a19kZHBf bWFpblswXV0gPzoKLQkgICAgIHByaXZhdGUtPmNvbXBfbm9kZVttdGtfZGRwX2V4dFswXV07CisJ bnAgPSBwcml2YXRlLT5jb21wX25vZGVbcHJpdmF0ZS0+ZGF0YS0+bWFpbl9wYXRoWzBdXSA/Ogor CSAgICAgcHJpdmF0ZS0+Y29tcF9ub2RlW3ByaXZhdGUtPmRhdGEtPmV4dF9wYXRoWzBdXTsKIAlw ZGV2ID0gb2ZfZmluZF9kZXZpY2VfYnlfbm9kZShucCk7CiAJaWYgKCFwZGV2KSB7CiAJCXJldCA9 IC1FTk9ERVY7CkBAIC0zMTYsMjEgKzM0NSw0NCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbXBv bmVudF9tYXN0ZXJfb3BzIG10a19kcm1fb3BzID0gewogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVj dCBvZl9kZXZpY2VfaWQgbXRrX2RkcF9jb21wX2R0X2lkc1tdID0geworCXsgLmNvbXBhdGlibGUg PSAibWVkaWF0ZWssbXQyNzAxLWRpc3Atb3ZsIiwgICAuZGF0YSA9ICh2b2lkICopTVRLX0RJU1Bf T1ZMIH0sCiAJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtZGlzcC1vdmwiLCAgIC5k YXRhID0gKHZvaWQgKilNVEtfRElTUF9PVkwgfSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVr LG10MjcwMS1kaXNwLXJkbWEiLCAgLmRhdGEgPSAodm9pZCAqKU1US19ESVNQX1JETUEgfSwKIAl7 IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1kaXNwLXJkbWEiLCAgLmRhdGEgPSAodm9p ZCAqKU1US19ESVNQX1JETUEgfSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10MjcwMS1k aXNwLXdkbWEiLCAgLmRhdGEgPSAodm9pZCAqKU1US19ESVNQX1dETUEgfSwKIAl7IC5jb21wYXRp YmxlID0gIm1lZGlhdGVrLG10ODE3My1kaXNwLXdkbWEiLCAgLmRhdGEgPSAodm9pZCAqKU1US19E SVNQX1dETUEgfSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10MjcwMS1kaXNwLWNvbG9y IiwgLmRhdGEgPSAodm9pZCAqKU1US19ESVNQX0NPTE9SIH0sCiAJeyAuY29tcGF0aWJsZSA9ICJt ZWRpYXRlayxtdDgxNzMtZGlzcC1jb2xvciIsIC5kYXRhID0gKHZvaWQgKilNVEtfRElTUF9DT0xP UiB9LAogCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTczLWRpc3AtYWFsIiwgICAuZGF0 YSA9ICh2b2lkICopTVRLX0RJU1BfQUFMfSwKIAl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10 ODE3My1kaXNwLWdhbW1hIiwgLmRhdGEgPSAodm9pZCAqKU1US19ESVNQX0dBTU1BLCB9LAogCXsg LmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTczLWRpc3AtdWZvZSIsICAuZGF0YSA9ICh2b2lk ICopTVRLX0RJU1BfVUZPRSB9LAorCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQyNzAxLWRz aSIsCSAgICAgIC5kYXRhID0gKHZvaWQgKilNVEtfRFNJIH0sCiAJeyAuY29tcGF0aWJsZSA9ICJt ZWRpYXRlayxtdDgxNzMtZHNpIiwgICAgICAgIC5kYXRhID0gKHZvaWQgKilNVEtfRFNJIH0sCisJ eyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDI3MDEtZHBpIiwJICAgICAgLmRhdGEgPSAodm9p ZCAqKU1US19EUEkgfSwKIAl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1kcGkiLCAg ICAgICAgLmRhdGEgPSAodm9pZCAqKU1US19EUEkgfSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlh dGVrLG10MjcwMS1kaXNwLW11dGV4IiwgLmRhdGEgPSAodm9pZCAqKU1US19ESVNQX01VVEVYIH0s CiAJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtZGlzcC1tdXRleCIsIC5kYXRhID0g KHZvaWQgKilNVEtfRElTUF9NVVRFWCB9LAogCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4 MTczLWRpc3AtcHdtIiwgICAuZGF0YSA9ICh2b2lkICopTVRLX0RJU1BfUFdNIH0sCiAJeyAuY29t cGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtZGlzcC1vZCIsICAgIC5kYXRhID0gKHZvaWQgKilN VEtfRElTUF9PRCB9LAorCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQyNzAxLWRpc3AtYmxz IiwgICAuZGF0YSA9ICh2b2lkICopTVRLX0RJU1BfQkxTIH0sCiAJeyB9CiB9OwogCitzdGF0aWMg Y29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfZHJtX29mX2lkc1tdID0geworCXsgLmNvbXBh dGlibGUgPSAibWVkaWF0ZWssbXQyNzAxLW1tc3lzIiwgLmRhdGEgPSAmbXQyNzAxX21tc3lzX2Ry aXZlcl9kYXRhfSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1tbXN5cyIsIC5k YXRhID0gJm10ODE3M19tbXN5c19kcml2ZXJfZGF0YX0sCisJeyB9Cit9OworCitzdGF0aWMgaW5s aW5lIHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgKm10a19kcm1fZ2V0X2RyaXZlcl9kYXRh KAorCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJY29uc3Qgc3RydWN0IG9mX2Rl dmljZV9pZCAqb2ZfaWQgPQorCQlvZl9tYXRjaF9kZXZpY2UobXRrX2RybV9vZl9pZHMsICZwZGV2 LT5kZXYpOworCisJcmV0dXJuIChzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRhICopb2ZfaWQt PmRhdGE7Cit9CisKIHN0YXRpYyBpbnQgbXRrX2RybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CkBAIC0zNDcs NiArMzk5LDcgQEAgc3RhdGljIGludCBtdGtfZHJtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCiAKIAltdXRleF9pbml0KCZwcml2YXRlLT5jb21taXQubG9jayk7CiAJSU5JVF9X T1JLKCZwcml2YXRlLT5jb21taXQud29yaywgbXRrX2F0b21pY193b3JrKTsKKwlwcml2YXRlLT5k YXRhID0gbXRrX2RybV9nZXRfZHJpdmVyX2RhdGEocGRldik7CiAKIAltZW0gPSBwbGF0Zm9ybV9n ZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwogCXByaXZhdGUtPmNvbmZpZ19y ZWdzID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgbWVtKTsKQEAgLTQ5NywxMSArNTUwLDYg QEAgc3RhdGljIGludCBtdGtfZHJtX3N5c19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogc3Rh dGljIFNJTVBMRV9ERVZfUE1fT1BTKG10a19kcm1fcG1fb3BzLCBtdGtfZHJtX3N5c19zdXNwZW5k LAogCQkJIG10a19kcm1fc3lzX3Jlc3VtZSk7CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2 aWNlX2lkIG10a19kcm1fb2ZfaWRzW10gPSB7Ci0JeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxt dDgxNzMtbW1zeXMiLCB9LAotCXsgfQotfTsKLQogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2 ZXIgbXRrX2RybV9wbGF0Zm9ybV9kcml2ZXIgPSB7CiAJLnByb2JlCT0gbXRrX2RybV9wcm9iZSwK IAkucmVtb3ZlCT0gbXRrX2RybV9yZW1vdmUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJt X2Rydi5oCmluZGV4IGFhOTM4OTQuLmZhMGIxMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHJtX2Rydi5oCkBAIC0yOCw2ICsyOCwxMyBAQCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcjsKIHN0 cnVjdCBkcm1fcHJvcGVydHk7CiBzdHJ1Y3QgcmVnbWFwOwogCitzdHJ1Y3QgbXRrX21tc3lzX2Ry aXZlcl9kYXRhIHsKKwljb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCAqbWFpbl9wYXRoOworCXVu c2lnbmVkIGludCBtYWluX2xlbjsKKwljb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCAqZXh0X3Bh dGg7CisJdW5zaWduZWQgaW50IGV4dF9sZW47Cit9OworCiBzdHJ1Y3QgbXRrX2RybV9wcml2YXRl IHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOwogCXN0cnVjdCBkZXZpY2UgKmRtYV9kZXY7CkBA IC00MCw2ICs0Nyw3IEBAIHN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgewogCXZvaWQgX19pb21lbSAq Y29uZmlnX3JlZ3M7CiAJc3RydWN0IGRldmljZV9ub2RlICpjb21wX25vZGVbRERQX0NPTVBPTkVO VF9JRF9NQVhdOwogCXN0cnVjdCBtdGtfZGRwX2NvbXAgKmRkcF9jb21wW0REUF9DT01QT05FTlRf SURfTUFYXTsKKwljb25zdCBzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRhICpkYXRhOwogCiAJ c3RydWN0IHsKIAkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwotLSAKMS43LjkuNQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==