From mboxrd@z Thu Jan 1 00:00:00 1970 From: YT Shen Subject: [PATCH v4 7/8] drm/mediatek: add mipi panel support Date: Fri, 15 Jul 2016 18:07:53 +0800 Message-ID: <1468577274-6178-8-git-send-email-yt.shen@mediatek.com> References: <1468577274-6178-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: <1468577274-6178-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 , Russell King , Mao Huang , yingjoe.chen@mediatek.com, devicetree@vger.kernel.org, Pawel Moll , Ian Campbell , Rob Herring , linux-mediatek@lists.infradead.org, Matthias Brugger , shaoming chen , linux-arm-kernel@lists.infradead.org, srv_heupstream@mediatek.com, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, Sascha Hauer , Kumar Gala List-Id: devicetree@vger.kernel.org RnJvbTogc2hhb21pbmcgY2hlbiA8c2hhb21pbmcuY2hlbkBtZWRpYXRlay5jb20+CgphZGQgZHNp IGFuZCBtaXBpIHR4IGRyaXZlciBmb3IgbWlwaSBwYW5lbCBzdXBwb3J0CgpTaWduZWQtb2ZmLWJ5 OiBzaGFvbWluZyBjaGVuIDxzaGFvbWluZy5jaGVuQG1lZGlhdGVrLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jICAgICB8ICAxNjkgKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWlwaV90eC5jIHwg ICA4MiArKysrKysrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE3MyBpbnNlcnRpb25zKCsp LCA3OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kc2kuYwppbmRleCAxZjk5 ODk0Li40ZWFlNjNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rz aS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMKQEAgLTI5LDkgKzI5 LDYgQEAKIAogI2luY2x1ZGUgIm10a19kcm1fZGRwX2NvbXAuaCIKIAotI2RlZmluZSBEU0lfVklE RU9fRklGT19ERVBUSAkoMTkyMCAvIDQpCi0jZGVmaW5lIERTSV9IT1NUX0ZJRk9fREVQVEgJNjQK LQogI2RlZmluZSBEU0lfU1RBUlQJCTB4MDAKIAogI2RlZmluZSBEU0lfSU5URU4JCTB4MDgKQEAg LTU1LDcgKzUyLDcgQEAKICNkZWZpbmUgTUlYX01PREUJCQlCSVQoMTcpCiAKICNkZWZpbmUgRFNJ X1RYUlhfQ1RSTAkJMHgxOAotI2RlZmluZSBWQ19OVU0JCQkJKDIgPDwgMCkKKyNkZWZpbmUgVkNf TlVNCQkJCUJJVCgxKQogI2RlZmluZSBMQU5FX05VTQkJCSgweGYgPDwgMikKICNkZWZpbmUgRElT X0VPVAkJCQlCSVQoNikKICNkZWZpbmUgTlVMTF9FTgkJCQlCSVQoNykKQEAgLTk0LDYgKzkxLDgg QEAKICNkZWZpbmUgRFNJX1JBQ0sJCTB4ODQKICNkZWZpbmUgUkFDSwkJCUJJVCgwKQogCisjZGVm aW5lIERTSV9NRU1fQ09OVEkJCTB4OTAKKwogI2RlZmluZSBEU0lfUEhZX0xDQ09OCQkweDEwNAog I2RlZmluZSBMQ19IU19UWF9FTgkJCUJJVCgwKQogI2RlZmluZSBMQ19VTFBNX0VOCQkJQklUKDEp CkBAIC0xMjYsNiArMTI1LDEwIEBACiAjZGVmaW5lIENMS19IU19QT1NUCQkJKDB4ZmYgPDwgOCkK ICNkZWZpbmUgQ0xLX0hTX0VYSVQJCQkoMHhmZiA8PCAxNikKIAorI2RlZmluZSBEU0lfVk1fQ01E X0NPTgkJMHgxMzAKKyNkZWZpbmUgVk1fQ01EX0VOCQlCSVQoMCkKKyNkZWZpbmUgVFNfVkZQX0VO CQlCSVQoNSkKKwogI2RlZmluZSBEU0lfQ01EUTAJCTB4MTgwCiAKICNkZWZpbmUgTlNfVE9fQ1lD TEUobiwgYykgICAgKChuKSAvIChjKSArICgoKG4pICUgKGMpKSA/IDEgOiAwKSkKQEAgLTIzOSwx MSArMjQyLDExIEBAIHN0YXRpYyB2b2lkIG10a19kc2lfbWFzayhzdHJ1Y3QgbXRrX2RzaSAqZHNp LCB1MzIgb2Zmc2V0LCB1MzIgbWFzaywgdTMyIGRhdGEpCiAJd3JpdGVsKCh0ZW1wICYgfm1hc2sp IHwgKGRhdGEgJiBtYXNrKSwgZHNpLT5yZWdzICsgb2Zmc2V0KTsKIH0KIAotc3RhdGljIHZvaWQg ZHNpX3BoeV90aW1jb25maWcoc3RydWN0IG10a19kc2kgKmRzaSkKK3N0YXRpYyB2b2lkIG10a19k c2lfcGh5X3RpbWNvbmZpZyhzdHJ1Y3QgbXRrX2RzaSAqZHNpKQogewogCXUzMiB0aW1jb24wLCB0 aW1jb24xLCB0aW1jb24yLCB0aW1jb24zOwotCXVuc2lnbmVkIGludCB1aSwgY3ljbGVfdGltZTsK LQl1bnNpZ25lZCBpbnQgbHB4OworCXUzMiB1aSwgY3ljbGVfdGltZTsKKwl1MzIgbHB4OwogCiAJ dWkgPSAxMDAwIC8gZHNpLT5kYXRhX3JhdGUgKyAweDAxOwogCWN5Y2xlX3RpbWUgPSA4MDAwIC8g ZHNpLT5kYXRhX3JhdGUgKyAweDAxOwpAQCAtMjczLDcgKzI3Niw3IEBAIHN0YXRpYyB2b2lkIG10 a19kc2lfZGlzYWJsZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQogCW10a19kc2lfbWFzayhkc2ksIERT SV9DT05fQ1RSTCwgRFNJX0VOLCAwKTsKIH0KIAotc3RhdGljIHZvaWQgbXRrX2RzaV9yZXNldChz dHJ1Y3QgbXRrX2RzaSAqZHNpKQorc3RhdGljIHZvaWQgbXRrX2RzaV9yZXNldF9lbmdpbmUoc3Ry dWN0IG10a19kc2kgKmRzaSkKIHsKIAltdGtfZHNpX21hc2soZHNpLCBEU0lfQ09OX0NUUkwsIERT SV9SRVNFVCwgRFNJX1JFU0VUKTsKIAltdGtfZHNpX21hc2soZHNpLCBEU0lfQ09OX0NUUkwsIERT SV9SRVNFVCwgMCk7CkBAIC0yOTMsNyArMjk2LDkgQEAgc3RhdGljIGludCBtdGtfZHNpX3Bvd2Vy b24oc3RydWN0IG10a19kc2kgKmRzaSkKIAkgKiBtaXBpX3JhdGlvIGlzIG1pcGkgY2xrIGNvZWZm aWNpZW50IGZvciBiYWxhbmNlIHRoZSBwaXhlbCBjbGsgaW4gbWlwaS4KIAkgKiB3ZSBzZXQgbWlw aV9yYXRpbyBpcyAxLjA1LgogCSAqLwotCWRzaS0+ZGF0YV9yYXRlID0gZHNpLT52bS5waXhlbGNs b2NrICogMyAqIDIxIC8gKDEgKiAxMDAwICogMTApOworCWRzaS0+ZGF0YV9yYXRlID0gZHNpLT52 bS5waXhlbGNsb2NrICogMTIgKiAyMTsKKwlkc2ktPmRhdGFfcmF0ZSAvPSAoZHNpLT5sYW5lcyAq IDEwMDAgKiAxMCk7CisJZGV2X2luZm8oZGV2LCAic2V0IG1pcGl0eCdzIGRhdGEgcmF0ZTogJWRN SHpcbiIsIGRzaS0+ZGF0YV9yYXRlKTsKIAogCXJldCA9IGNsa19zZXRfcmF0ZShkc2ktPmhzX2Ns aywgZHNpLT5kYXRhX3JhdGUgKiAxMDAwMDAwKTsKIAlpZiAocmV0IDwgMCkgewpAQCAtMzE1LDEw ICszMjAsNiBAQCBzdGF0aWMgaW50IG10a19kc2lfcG93ZXJvbihzdHJ1Y3QgbXRrX2RzaSAqZHNp KQogCQlnb3RvIGVycl9kaXNhYmxlX2VuZ2luZV9jbGs7CiAJfQogCi0JbXRrX2RzaV9lbmFibGUo ZHNpKTsKLQltdGtfZHNpX3Jlc2V0KGRzaSk7Ci0JZHNpX3BoeV90aW1jb25maWcoZHNpKTsKLQog CXJldHVybiAwOwogCiBlcnJfZGlzYWJsZV9lbmdpbmVfY2xrOgpAQCAtMzMwLDMzICszMzEsMzMg QEAgZXJyX3JlZmNvdW50OgogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIGRzaV9jbGtf dWxwX21vZGVfZW50ZXIoc3RydWN0IG10a19kc2kgKmRzaSkKK3N0YXRpYyB2b2lkIG10a19kc2lf Y2xrX3VscF9tb2RlX2VudGVyKHN0cnVjdCBtdGtfZHNpICpkc2kpCiB7CiAJbXRrX2RzaV9tYXNr KGRzaSwgRFNJX1BIWV9MQ0NPTiwgTENfSFNfVFhfRU4sIDApOwotCW10a19kc2lfbWFzayhkc2ks IERTSV9QSFlfTENDT04sIExDX1VMUE1fRU4sIDApOworCW10a19kc2lfbWFzayhkc2ksIERTSV9Q SFlfTENDT04sIExDX1VMUE1fRU4sIExDX1VMUE1fRU4pOwogfQogCi1zdGF0aWMgdm9pZCBkc2lf Y2xrX3VscF9tb2RlX2xlYXZlKHN0cnVjdCBtdGtfZHNpICpkc2kpCitzdGF0aWMgdm9pZCBtdGtf ZHNpX2Nsa191bHBfbW9kZV9sZWF2ZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQogewogCW10a19kc2lf bWFzayhkc2ksIERTSV9QSFlfTENDT04sIExDX1VMUE1fRU4sIDApOwogCW10a19kc2lfbWFzayhk c2ksIERTSV9QSFlfTENDT04sIExDX1dBS0VVUF9FTiwgTENfV0FLRVVQX0VOKTsKIAltdGtfZHNp X21hc2soZHNpLCBEU0lfUEhZX0xDQ09OLCBMQ19XQUtFVVBfRU4sIDApOwogfQogCi1zdGF0aWMg dm9pZCBkc2lfbGFuZTBfdWxwX21vZGVfZW50ZXIoc3RydWN0IG10a19kc2kgKmRzaSkKK3N0YXRp YyB2b2lkIG10a19kc2lfbGFuZTBfdWxwX21vZGVfZW50ZXIoc3RydWN0IG10a19kc2kgKmRzaSkK IHsKIAltdGtfZHNpX21hc2soZHNpLCBEU0lfUEhZX0xEMENPTiwgTEQwX0hTX1RYX0VOLCAwKTsK LQltdGtfZHNpX21hc2soZHNpLCBEU0lfUEhZX0xEMENPTiwgTEQwX1VMUE1fRU4sIDApOworCW10 a19kc2lfbWFzayhkc2ksIERTSV9QSFlfTEQwQ09OLCBMRDBfVUxQTV9FTiwgTEQwX1VMUE1fRU4p OwogfQogCi1zdGF0aWMgdm9pZCBkc2lfbGFuZTBfdWxwX21vZGVfbGVhdmUoc3RydWN0IG10a19k c2kgKmRzaSkKK3N0YXRpYyB2b2lkIG10a19kc2lfbGFuZTBfdWxwX21vZGVfbGVhdmUoc3RydWN0 IG10a19kc2kgKmRzaSkKIHsKIAltdGtfZHNpX21hc2soZHNpLCBEU0lfUEhZX0xEMENPTiwgTEQw X1VMUE1fRU4sIDApOwogCW10a19kc2lfbWFzayhkc2ksIERTSV9QSFlfTEQwQ09OLCBMRDBfV0FL RVVQX0VOLCBMRDBfV0FLRVVQX0VOKTsKIAltdGtfZHNpX21hc2soZHNpLCBEU0lfUEhZX0xEMENP TiwgTEQwX1dBS0VVUF9FTiwgMCk7CiB9CiAKLXN0YXRpYyBib29sIGRzaV9jbGtfaHNfc3RhdGUo c3RydWN0IG10a19kc2kgKmRzaSkKK3N0YXRpYyBib29sIG10a19kc2lfY2xrX2hzX3N0YXRlKHN0 cnVjdCBtdGtfZHNpICpkc2kpCiB7CiAJdTMyIHRtcF9yZWcxOwogCkBAIC0zNjQsMTUgKzM2NSwx NSBAQCBzdGF0aWMgYm9vbCBkc2lfY2xrX2hzX3N0YXRlKHN0cnVjdCBtdGtfZHNpICpkc2kpCiAJ cmV0dXJuICgodG1wX3JlZzEgJiBMQ19IU19UWF9FTikgPT0gMSkgPyB0cnVlIDogZmFsc2U7CiB9 CiAKLXN0YXRpYyB2b2lkIGRzaV9jbGtfaHNfbW9kZShzdHJ1Y3QgbXRrX2RzaSAqZHNpLCBib29s IGVudGVyKQorc3RhdGljIHZvaWQgbXRrX2RzaV9jbGtfaHNfbW9kZShzdHJ1Y3QgbXRrX2RzaSAq ZHNpLCBib29sIGVudGVyKQogewotCWlmIChlbnRlciAmJiAhZHNpX2Nsa19oc19zdGF0ZShkc2kp KQorCWlmIChlbnRlciAmJiAhbXRrX2RzaV9jbGtfaHNfc3RhdGUoZHNpKSkKIAkJbXRrX2RzaV9t YXNrKGRzaSwgRFNJX1BIWV9MQ0NPTiwgTENfSFNfVFhfRU4sIExDX0hTX1RYX0VOKTsKLQllbHNl IGlmICghZW50ZXIgJiYgZHNpX2Nsa19oc19zdGF0ZShkc2kpKQorCWVsc2UgaWYgKCFlbnRlciAm JiBtdGtfZHNpX2Nsa19oc19zdGF0ZShkc2kpKQogCQltdGtfZHNpX21hc2soZHNpLCBEU0lfUEhZ X0xDQ09OLCBMQ19IU19UWF9FTiwgMCk7CiB9CiAKLXN0YXRpYyB2b2lkIGRzaV9zZXRfbW9kZShz dHJ1Y3QgbXRrX2RzaSAqZHNpKQorc3RhdGljIHZvaWQgbXRrX2RzaV9zZXRfbW9kZShzdHJ1Y3Qg bXRrX2RzaSAqZHNpKQogewogCXUzMiB2aWRfbW9kZSA9IENNRF9NT0RFOwogCkBAIC0zODIsMTIg KzM4MywyMiBAQCBzdGF0aWMgdm9pZCBkc2lfc2V0X21vZGUoc3RydWN0IG10a19kc2kgKmRzaSkK IAkJaWYgKChkc2ktPm1vZGVfZmxhZ3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVPX0JVUlNUKSAmJgog CQkgICAgIShkc2ktPm1vZGVfZmxhZ3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVPX1NZTkNfUFVMU0Up KQogCQkJdmlkX21vZGUgPSBCVVJTVF9NT0RFOworCQllbHNlCisJCQl2aWRfbW9kZSA9IFNZTkNf RVZFTlRfTU9ERTsKIAl9CiAKIAl3cml0ZWwodmlkX21vZGUsIGRzaS0+cmVncyArIERTSV9NT0RF X0NUUkwpOwogfQogCi1zdGF0aWMgdm9pZCBkc2lfcHNfY29udHJvbF92YWN0KHN0cnVjdCBtdGtf ZHNpICpkc2kpCitzdGF0aWMgdm9pZCBtdGtfZHNpX3NldF92bV9jbWQoc3RydWN0IG10a19kc2kg KmRzaSkKK3sKKwl3cml0ZWwoMHgzYywgZHNpLT5yZWdzICsgRFNJX01FTV9DT05USSk7CisKKwlt dGtfZHNpX21hc2soZHNpLCBEU0lfVk1fQ01EX0NPTiwgVk1fQ01EX0VOLCBWTV9DTURfRU4pOwor CW10a19kc2lfbWFzayhkc2ksIERTSV9WTV9DTURfQ09OLCBUU19WRlBfRU4sIFRTX1ZGUF9FTik7 Cit9CisKK3N0YXRpYyB2b2lkIG10a19kc2lfcHNfY29udHJvbF92YWN0KHN0cnVjdCBtdGtfZHNp ICpkc2kpCiB7CiAJc3RydWN0IHZpZGVvbW9kZSAqdm0gPSAmZHNpLT52bTsKIAl1MzIgZHNpX2J1 Zl9icHAsIHBzX3djOwpAQCAtNDIxLDcgKzQzMiw3IEBAIHN0YXRpYyB2b2lkIGRzaV9wc19jb250 cm9sX3ZhY3Qoc3RydWN0IG10a19kc2kgKmRzaSkKIAl3cml0ZWwocHNfd2MsIGRzaS0+cmVncyAr IERTSV9IU1RYX0NLTF9XQyk7CiB9CiAKLXN0YXRpYyB2b2lkIGRzaV9yeHR4X2NvbnRyb2woc3Ry dWN0IG10a19kc2kgKmRzaSkKK3N0YXRpYyB2b2lkIG10a19kc2lfcnh0eF9jb250cm9sKHN0cnVj dCBtdGtfZHNpICpkc2kpCiB7CiAJdTMyIHRtcF9yZWc7CiAKQEAgLTQ0MywxMiArNDU0LDE1IEBA IHN0YXRpYyB2b2lkIGRzaV9yeHR4X2NvbnRyb2woc3RydWN0IG10a19kc2kgKmRzaSkKIAkJYnJl YWs7CiAJfQogCisJdG1wX3JlZyB8PSAoZHNpLT5tb2RlX2ZsYWdzICYgTUlQSV9EU0lfQ0xPQ0tf Tk9OX0NPTlRJTlVPVVMpIDw8IDY7CisJdG1wX3JlZyB8PSAoZHNpLT5tb2RlX2ZsYWdzICYgTUlQ SV9EU0lfTU9ERV9FT1RfUEFDS0VUKSA+PiAzOworCiAJd3JpdGVsKHRtcF9yZWcsIGRzaS0+cmVn cyArIERTSV9UWFJYX0NUUkwpOwogfQogCi1zdGF0aWMgdm9pZCBkc2lfcHNfY29udHJvbChzdHJ1 Y3QgbXRrX2RzaSAqZHNpKQorc3RhdGljIHZvaWQgbXRrX2RzaV9wc19jb250cm9sKHN0cnVjdCBt dGtfZHNpICpkc2kpCiB7Ci0JdW5zaWduZWQgaW50IGRzaV90bXBfYnVmX2JwcDsKKwl1MzIgZHNp X3RtcF9idWZfYnBwOwogCXUzMiB0bXBfcmVnOwogCiAJc3dpdGNoIChkc2ktPmZvcm1hdCkgewpA QCAtNDc4LDEyICs0OTIsMTIgQEAgc3RhdGljIHZvaWQgZHNpX3BzX2NvbnRyb2woc3RydWN0IG10 a19kc2kgKmRzaSkKIAl3cml0ZWwodG1wX3JlZywgZHNpLT5yZWdzICsgRFNJX1BTQ1RSTCk7CiB9 CiAKLXN0YXRpYyB2b2lkIGRzaV9jb25maWdfdmRvX3RpbWluZyhzdHJ1Y3QgbXRrX2RzaSAqZHNp KQorc3RhdGljIHZvaWQgbXRrX2RzaV9jb25maWdfdmRvX3RpbWluZyhzdHJ1Y3QgbXRrX2RzaSAq ZHNpKQogewotCXVuc2lnbmVkIGludCBob3Jpem9udGFsX3N5bmNfYWN0aXZlX2J5dGU7Ci0JdW5z aWduZWQgaW50IGhvcml6b250YWxfYmFja3BvcmNoX2J5dGU7Ci0JdW5zaWduZWQgaW50IGhvcml6 b250YWxfZnJvbnRwb3JjaF9ieXRlOwotCXVuc2lnbmVkIGludCBkc2lfdG1wX2J1Zl9icHA7CisJ dTMyIGhvcml6b250YWxfc3luY19hY3RpdmVfYnl0ZTsKKwl1MzIgaG9yaXpvbnRhbF9iYWNrcG9y Y2hfYnl0ZTsKKwl1MzIgaG9yaXpvbnRhbF9mcm9udHBvcmNoX2J5dGU7CisJdTMyIGRzaV90bXBf YnVmX2JwcDsKIAogCXN0cnVjdCB2aWRlb21vZGUgKnZtID0gJmRzaS0+dm07CiAKQEAgLTUxMiw3 ICs1MjYsNyBAQCBzdGF0aWMgdm9pZCBkc2lfY29uZmlnX3Zkb190aW1pbmcoc3RydWN0IG10a19k c2kgKmRzaSkKIAl3cml0ZWwoaG9yaXpvbnRhbF9iYWNrcG9yY2hfYnl0ZSwgZHNpLT5yZWdzICsg RFNJX0hCUF9XQyk7CiAJd3JpdGVsKGhvcml6b250YWxfZnJvbnRwb3JjaF9ieXRlLCBkc2ktPnJl Z3MgKyBEU0lfSEZQX1dDKTsKIAotCWRzaV9wc19jb250cm9sKGRzaSk7CisJbXRrX2RzaV9wc19j b250cm9sKGRzaSk7CiB9CiAKIHN0YXRpYyB2b2lkIG10a19kc2lfc3RhcnQoc3RydWN0IG10a19k c2kgKmRzaSkKQEAgLTUyMSw2ICs1MzUsMTkgQEAgc3RhdGljIHZvaWQgbXRrX2RzaV9zdGFydChz dHJ1Y3QgbXRrX2RzaSAqZHNpKQogCXdyaXRlbCgxLCBkc2ktPnJlZ3MgKyBEU0lfU1RBUlQpOwog fQogCitzdGF0aWMgdm9pZCBtdGtfZHNpX3N0b3Aoc3RydWN0IG10a19kc2kgKmRzaSkKK3sKKwl3 cml0ZWwoMCwgZHNpLT5yZWdzICsgRFNJX1NUQVJUKTsKK30KKworc3RhdGljIHZvaWQgbXRrX2Rz aV9zZXRfY21kX21vZGUoc3RydWN0IG10a19kc2kgKmRzaSkKK3sKKwl1MzIgdG1wX3JlZzE7CisK Kwl0bXBfcmVnMSA9IENNRF9NT0RFOworCXdyaXRlbCh0bXBfcmVnMSwgZHNpLT5yZWdzICsgRFNJ X01PREVfQ1RSTCk7Cit9CisKIHN0YXRpYyB2b2lkIG10a19kc2lfc2V0X2ludGVycnVwdF9lbmFi bGUoc3RydWN0IG10a19kc2kgKmRzaSkKIHsKIAl1MzIgaW50ZW4gPSBEU0lfSU5UX0FMTF9CSVRT OwpAQCAtNjA5LDYgKzYzNiwyMSBAQCBzdGF0aWMgczMyIG10a19kc2lfd2FpdF9mb3JfaXJxX3Rp bWVvdXQoc3RydWN0IG10a19kc2kgKmRzaSwgdTMyIGlycV9iaXQsCiAJcmV0dXJuIC0xOwogfQog CitzdGF0aWMgdm9pZCBtdGtfZHNpX3N3aXRjaF90b19jbWRfbW9kZShzdHJ1Y3QgbXRrX2RzaSAq ZHNpKQoreworCXMzMiByZXQgPSAwOworCisJbXRrX2RzaV9zZXRfY21kX21vZGUoZHNpKTsKKwor CXJldCA9IG10a19kc2lfd2FpdF9mb3JfaXJxX3RpbWVvdXQoZHNpLCBEU0lfSU5UX1ZNX0RPTkVf RkxBRywgNTAwKTsKKwlpZiAocmV0ICE9IDApIHsKKwkJZGV2X2luZm8oZHNpLT5kZXYsICJkc2kg d2FpdCBlbmdpbmUgaWRsZSB0aW1lb3V0XG4iKTsKKworCQltdGtfZHNpX2VuYWJsZShkc2kpOwor CQltdGtfZHNpX3Jlc2V0X2VuZ2luZShkc2kpOworCX0KK30KKwogc3RhdGljIHZvaWQgbXRrX2Rz aV9wb3dlcm9mZihzdHJ1Y3QgbXRrX2RzaSAqZHNpKQogewogCWlmIChXQVJOX09OKGRzaS0+cmVm Y291bnQgPT0gMCkpCkBAIC02MTcsOCArNjU5LDE5IEBAIHN0YXRpYyB2b2lkIG10a19kc2lfcG93 ZXJvZmYoc3RydWN0IG10a19kc2kgKmRzaSkKIAlpZiAoLS1kc2ktPnJlZmNvdW50ICE9IDApCiAJ CXJldHVybjsKIAotCWRzaV9sYW5lMF91bHBfbW9kZV9lbnRlcihkc2kpOwotCWRzaV9jbGtfdWxw X21vZGVfZW50ZXIoZHNpKTsKKwltdGtfZHNpX3N3aXRjaF90b19jbWRfbW9kZShkc2kpOworCisJ aWYgKGRzaS0+cGFuZWwpIHsKKwkJaWYgKGRybV9wYW5lbF91bnByZXBhcmUoZHNpLT5wYW5lbCkp IHsKKwkJCURSTV9FUlJPUigiZmFpbGVkIHRvIHVucHJlcGFyZSB0aGUgcGFuZWxcbiIpOworCQkJ cmV0dXJuOworCQl9CisJfQorCisJbXRrX2RzaV9yZXNldF9lbmdpbmUoZHNpKTsKKworCW10a19k c2lfbGFuZTBfdWxwX21vZGVfZW50ZXIoZHNpKTsKKwltdGtfZHNpX2Nsa191bHBfbW9kZV9lbnRl cihkc2kpOwogCiAJbXRrX2RzaV9kaXNhYmxlKGRzaSk7CiAKQEAgLTYzNSwzMiArNjg4LDQwIEBA IHN0YXRpYyB2b2lkIG10a19vdXRwdXRfZHNpX2VuYWJsZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQog CWlmIChkc2ktPmVuYWJsZWQpCiAJCXJldHVybjsKIAotCWlmIChkc2ktPnBhbmVsKSB7Ci0JCWlm IChkcm1fcGFuZWxfcHJlcGFyZShkc2ktPnBhbmVsKSkgewotCQkJRFJNX0VSUk9SKCJmYWlsZWQg dG8gc2V0dXAgdGhlIHBhbmVsXG4iKTsKLQkJCXJldHVybjsKLQkJfQotCX0KLQogCXJldCA9IG10 a19kc2lfcG93ZXJvbihkc2kpOwogCWlmIChyZXQgPCAwKSB7CiAJCURSTV9FUlJPUigiZmFpbGVk IHRvIHBvd2VyIG9uIGRzaVxuIik7CiAJCXJldHVybjsKIAl9CiAKLQlkc2lfcnh0eF9jb250cm9s KGRzaSk7CisJdXNsZWVwX3JhbmdlKDIwMDAwLCAyMTAwMCk7CiAKLQlkc2lfY2xrX3VscF9tb2Rl X2xlYXZlKGRzaSk7Ci0JZHNpX2xhbmUwX3VscF9tb2RlX2xlYXZlKGRzaSk7Ci0JZHNpX2Nsa19o c19tb2RlKGRzaSwgMCk7Ci0JZHNpX3NldF9tb2RlKGRzaSk7Ci0KLQlkc2lfcHNfY29udHJvbF92 YWN0KGRzaSk7Ci0JZHNpX2NvbmZpZ192ZG9fdGltaW5nKGRzaSk7CisJbXRrX2RzaV9yeHR4X2Nv bnRyb2woZHNpKTsKKwltdGtfZHNpX3BoeV90aW1jb25maWcoZHNpKTsKKwltdGtfZHNpX3BzX2Nv bnRyb2xfdmFjdChkc2kpOworCW10a19kc2lfc2V0X3ZtX2NtZChkc2kpOworCW10a19kc2lfY29u ZmlnX3Zkb190aW1pbmcoZHNpKTsKIAltdGtfZHNpX3NldF9pbnRlcnJ1cHRfZW5hYmxlKGRzaSk7 CiAKLQlkc2lfc2V0X21vZGUoZHNpKTsKLQlkc2lfY2xrX2hzX21vZGUoZHNpLCAxKTsKKwltdGtf ZHNpX2VuYWJsZShkc2kpOworCW10a19kc2lfY2xrX3VscF9tb2RlX2xlYXZlKGRzaSk7CisJbXRr X2RzaV9sYW5lMF91bHBfbW9kZV9sZWF2ZShkc2kpOworCW10a19kc2lfY2xrX2hzX21vZGUoZHNp LCAwKTsKKworCWlmIChkc2ktPnBhbmVsKSB7CisJCWlmIChkcm1fcGFuZWxfcHJlcGFyZShkc2kt PnBhbmVsKSkgeworCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gcHJlcGFyZSB0aGUgcGFuZWxcbiIp OworCQkJcmV0dXJuOworCQl9CisKKwkJaWYgKGRybV9wYW5lbF9lbmFibGUoZHNpLT5wYW5lbCkp IHsKKwkJCURSTV9FUlJPUigiZmFpbGVkIHRvIGVuYWJsZSB0aGUgcGFuZWxcbiIpOworCQkJcmV0 dXJuOworCQl9CisJfQorCisJbXRrX2RzaV9zZXRfbW9kZShkc2kpOworCW10a19kc2lfY2xrX2hz X21vZGUoZHNpLCAxKTsKIAogCW10a19kc2lfc3RhcnQoZHNpKTsKIApAQCAtNjc5LDYgKzc0MCw3 IEBAIHN0YXRpYyB2b2lkIG10a19vdXRwdXRfZHNpX2Rpc2FibGUoc3RydWN0IG10a19kc2kgKmRz aSkKIAkJfQogCX0KIAorCW10a19kc2lfc3RvcChkc2kpOwogCW10a19kc2lfcG93ZXJvZmYoZHNp KTsKIAogCWRzaS0+ZW5hYmxlZCA9IGZhbHNlOwpAQCAtMTM1MSw2ICsxNDEzLDcgQEAgc3RhdGlj IGludCBtdGtfZHNpX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogfQogCiBz dGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfZHNpX29mX21hdGNoW10gPSB7CisJ eyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDI3MDEtZHNpIiB9LAogCXsgLmNvbXBhdGlibGUg PSAibWVkaWF0ZWssbXQ4MTczLWRzaSIgfSwKIAl7IH0sCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19taXBpX3R4LmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX21pcGlfdHguYwppbmRleCBjZjhmMzhkLi4zYmZmYzQwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX21pcGlfdHguYworKysgYi9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX21pcGlfdHguYwpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUgPGxpbnV4 L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUu aD4KKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9y bV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+CiAKQEAgLTg3LDYgKzg4LDkg QEAKIAogI2RlZmluZSBNSVBJVFhfRFNJX1BMTF9DT04yCTB4NTgKIAorI2RlZmluZSBNSVBJVFhf RFNJX1BMTF9UT1AJMHg2NAorI2RlZmluZSBSR19EU0lfTVBQTExfUFJFU0VSVkUJCSgweGZmIDw8 IDgpCisKICNkZWZpbmUgTUlQSVRYX0RTSV9QTExfUFdSCTB4NjgKICNkZWZpbmUgUkdfRFNJX01Q UExMX1NETV9QV1JfT04JCUJJVCgwKQogI2RlZmluZSBSR19EU0lfTVBQTExfU0RNX0lTT19FTgkJ QklUKDEpCkBAIC0xMjMsMTAgKzEyNywzMiBAQAogI2RlZmluZSBTV19MTlQyX0hTVFhfUFJFX09F CQlCSVQoMjQpCiAjZGVmaW5lIFNXX0xOVDJfSFNUWF9PRQkJCUJJVCgyNSkKIAorc3RydWN0IG10 a19taXBpdHhfZGF0YSB7CisJY29uc3QgdTMyIGRhdGE7Cit9OworCitzdGF0aWMgY29uc3Qgc3Ry dWN0IG10a19taXBpdHhfZGF0YSBtdDI3MDFfbWlwaXR4X2RhdGEgPSB7CisJLmRhdGEgPSAoMyA8 PCA4KQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfbWlwaXR4X2RhdGEgbXQ4MTczX21p cGl0eF9kYXRhID0geworCS5kYXRhID0gKDAgPDwgOCkKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIG10a19taXBpX3R4X21hdGNoW10gPSB7CisJeyAuY29tcGF0aWJsZSA9 ICJtZWRpYXRlayxtdDI3MDEtbWlwaS10eCIsCisJICAuZGF0YSA9ICZtdDI3MDFfbWlwaXR4X2Rh dGEgfSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1taXBpLXR4IiwKKwkgIC5k YXRhID0gJm10ODE3M19taXBpdHhfZGF0YSB9LAorCXt9LAorfTsKKwogc3RydWN0IG10a19taXBp X3R4IHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CiAJdm9pZCBfX2lvbWVtICpyZWdzOwotCXVuc2ln bmVkIGludCBkYXRhX3JhdGU7CisJdTMyIGRhdGFfcmF0ZTsKKwljb25zdCBzdHJ1Y3QgbXRrX21p cGl0eF9kYXRhICpkcml2ZXJfZGF0YTsKKwogCXN0cnVjdCBjbGtfaHcgcGxsX2h3OwogCXN0cnVj dCBjbGsgKnBsbDsKIH07CkBAIC0xNjMsMTIgKzE4OSwxNCBAQCBzdGF0aWMgdm9pZCBtdGtfbWlw aV90eF91cGRhdGVfYml0cyhzdHJ1Y3QgbXRrX21pcGlfdHggKm1pcGlfdHgsIHUzMiBvZmZzZXQs CiBzdGF0aWMgaW50IG10a19taXBpX3R4X3BsbF9wcmVwYXJlKHN0cnVjdCBjbGtfaHcgKmh3KQog ewogCXN0cnVjdCBtdGtfbWlwaV90eCAqbWlwaV90eCA9IG10a19taXBpX3R4X2Zyb21fY2xrX2h3 KGh3KTsKLQl1bnNpZ25lZCBpbnQgdHhkaXYsIHR4ZGl2MCwgdHhkaXYxOworCXU4IHR4ZGl2LCB0 eGRpdjAsIHR4ZGl2MTsKIAl1NjQgcGN3OwogCiAJZGV2X2RiZyhtaXBpX3R4LT5kZXYsICJwcmVw YXJlOiAldSBIelxuIiwgbWlwaV90eC0+ZGF0YV9yYXRlKTsKIAotCWlmIChtaXBpX3R4LT5kYXRh X3JhdGUgPj0gNTAwMDAwMDAwKSB7CisJaWYgKG1pcGlfdHgtPmRhdGFfcmF0ZSA+IDEyNTAwMDAw MDApIHsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfSBlbHNlIGlmIChtaXBpX3R4LT5kYXRhX3JhdGUg Pj0gNTAwMDAwMDAwKSB7CiAJCXR4ZGl2ID0gMTsKIAkJdHhkaXYwID0gMDsKIAkJdHhkaXYxID0g MDsKQEAgLTE5Miw2ICsyMjAsMTAgQEAgc3RhdGljIGludCBtdGtfbWlwaV90eF9wbGxfcHJlcGFy ZShzdHJ1Y3QgY2xrX2h3ICpodykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCisJbXRrX21pcGlf dHhfdXBkYXRlX2JpdHMobWlwaV90eCwgTUlQSVRYX0RTSV9UT1BfQ09OLAorCQkJCVJHX0RTSV9M TlRfSU1QX0NBTF9DT0RFIHwgUkdfRFNJX0xOVF9IU19CSUFTX0VOLAorCQkJCSg4IDw8IDQpIHwg UkdfRFNJX0xOVF9IU19CSUFTX0VOKTsKKwogCW10a19taXBpX3R4X3VwZGF0ZV9iaXRzKG1pcGlf dHgsIE1JUElUWF9EU0lfQkdfQ09OLAogCQkJCVJHX0RTSV9WT1VUX01TSyB8CiAJCQkJUkdfRFNJ X0JHX0NLRU4gfCBSR19EU0lfQkdfQ09SRV9FTiwKQEAgLTIwMSwyNCArMjMzLDE4IEBAIHN0YXRp YyBpbnQgbXRrX21pcGlfdHhfcGxsX3ByZXBhcmUoc3RydWN0IGNsa19odyAqaHcpCiAKIAl1c2xl ZXBfcmFuZ2UoMzAsIDEwMCk7CiAKLQltdGtfbWlwaV90eF91cGRhdGVfYml0cyhtaXBpX3R4LCBN SVBJVFhfRFNJX1RPUF9DT04sCi0JCQkJUkdfRFNJX0xOVF9JTVBfQ0FMX0NPREUgfCBSR19EU0lf TE5UX0hTX0JJQVNfRU4sCi0JCQkJKDggPDwgNCkgfCBSR19EU0lfTE5UX0hTX0JJQVNfRU4pOwot Ci0JbXRrX21pcGlfdHhfc2V0X2JpdHMobWlwaV90eCwgTUlQSVRYX0RTSV9DT04sCi0JCQkgICAg IFJHX0RTSV9DS0dfTERPT1VUX0VOIHwgUkdfRFNJX0xET0NPUkVfRU4pOworCW10a19taXBpX3R4 X3VwZGF0ZV9iaXRzKG1pcGlfdHgsIE1JUElUWF9EU0lfQ09OLAorCQkJCVJHX0RTSV9DS0dfTERP T1VUX0VOIHwgUkdfRFNJX0xET0NPUkVfRU4sCisJCQkJUkdfRFNJX0NLR19MRE9PVVRfRU4gfCBS R19EU0lfTERPQ09SRV9FTik7CiAKIAltdGtfbWlwaV90eF91cGRhdGVfYml0cyhtaXBpX3R4LCBN SVBJVFhfRFNJX1BMTF9QV1IsCiAJCQkJUkdfRFNJX01QUExMX1NETV9QV1JfT04gfAogCQkJCVJH X0RTSV9NUFBMTF9TRE1fSVNPX0VOLAogCQkJCVJHX0RTSV9NUFBMTF9TRE1fUFdSX09OKTsKIAot CW10a19taXBpX3R4X2NsZWFyX2JpdHMobWlwaV90eCwgTUlQSVRYX0RTSV9QTExfQ09OMCwKLQkJ CSAgICAgICBSR19EU0lfTVBQTExfUExMX0VOKTsKLQogCW10a19taXBpX3R4X3VwZGF0ZV9iaXRz KG1pcGlfdHgsIE1JUElUWF9EU0lfUExMX0NPTjAsCi0JCQkJUkdfRFNJX01QUExMX1RYRElWMCB8 IFJHX0RTSV9NUFBMTF9UWERJVjEgfAotCQkJCVJHX0RTSV9NUFBMTF9QUkVESVYsCisJCQkJUkdf RFNJX01QUExMX1BSRURJViB8IFJHX0RTSV9NUFBMTF9UWERJVjAgfAorCQkJCVJHX0RTSV9NUFBM TF9UWERJVjEgfCBSR19EU0lfTVBQTExfUE9TRElWLAogCQkJCSh0eGRpdjAgPDwgMykgfCAodHhk aXYxIDw8IDUpKTsKIAogCS8qCkBAIC0yMzMsMTUgKzI1OSwyMSBAQCBzdGF0aWMgaW50IG10a19t aXBpX3R4X3BsbF9wcmVwYXJlKHN0cnVjdCBjbGtfaHcgKmh3KQogCQkgICAgICAyNjAwMDAwMCk7 CiAJd3JpdGVsKHBjdywgbWlwaV90eC0+cmVncyArIE1JUElUWF9EU0lfUExMX0NPTjIpOwogCi0J bXRrX21pcGlfdHhfc2V0X2JpdHMobWlwaV90eCwgTUlQSVRYX0RTSV9QTExfQ09OMSwKLQkJCSAg ICAgUkdfRFNJX01QUExMX1NETV9GUkFfRU4pOworCW10a19taXBpX3R4X3VwZGF0ZV9iaXRzKG1p cGlfdHgsIE1JUElUWF9EU0lfUExMX0NPTjEsCisJCQkJUkdfRFNJX01QUExMX1NETV9GUkFfRU4s CisJCQkJUkdfRFNJX01QUExMX1NETV9GUkFfRU4pOwogCi0JbXRrX21pcGlfdHhfc2V0X2JpdHMo bWlwaV90eCwgTUlQSVRYX0RTSV9QTExfQ09OMCwgUkdfRFNJX01QUExMX1BMTF9FTik7CisJbXRr X21pcGlfdHhfdXBkYXRlX2JpdHMobWlwaV90eCwgTUlQSVRYX0RTSV9QTExfQ09OMCwKKwkJCQlS R19EU0lfTVBQTExfUExMX0VOLCBSR19EU0lfTVBQTExfUExMX0VOKTsKIAogCXVzbGVlcF9yYW5n ZSgyMCwgMTAwKTsKIAogCW10a19taXBpX3R4X2NsZWFyX2JpdHMobWlwaV90eCwgTUlQSVRYX0RT SV9QTExfQ09OMSwKLQkJCSAgICAgICBSR19EU0lfTVBQTExfU0RNX1NTQ19FTik7CisJCQkJCVJH X0RTSV9NUFBMTF9TRE1fU1NDX0VOKTsKKworCW10a19taXBpX3R4X3VwZGF0ZV9iaXRzKG1pcGlf dHgsIE1JUElUWF9EU0lfUExMX1RPUCwKKwkJCQlSR19EU0lfTVBQTExfUFJFU0VSVkUsCisJCQkJ bWlwaV90eC0+ZHJpdmVyX2RhdGEtPmRhdGEpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yNTUsNiAr Mjg3LDEwIEBAIHN0YXRpYyB2b2lkIG10a19taXBpX3R4X3BsbF91bnByZXBhcmUoc3RydWN0IGNs a19odyAqaHcpCiAJbXRrX21pcGlfdHhfY2xlYXJfYml0cyhtaXBpX3R4LCBNSVBJVFhfRFNJX1BM TF9DT04wLAogCQkJICAgICAgIFJHX0RTSV9NUFBMTF9QTExfRU4pOwogCisJbXRrX21pcGlfdHhf dXBkYXRlX2JpdHMobWlwaV90eCwgTUlQSVRYX0RTSV9QTExfVE9QLAorCQkJCVJHX0RTSV9NUFBM TF9QUkVTRVJWRSwKKwkJCQltaXBpX3R4LT5kcml2ZXJfZGF0YS0+ZGF0YSk7CisKIAltdGtfbWlw aV90eF91cGRhdGVfYml0cyhtaXBpX3R4LCBNSVBJVFhfRFNJX1BMTF9QV1IsCiAJCQkJUkdfRFNJ X01QUExMX1NETV9JU09fRU4gfAogCQkJCVJHX0RTSV9NUFBMTF9TRE1fUFdSX09OLApAQCAtMzEw LDcgKzM0Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBtdGtfbWlwaV90eF9wbGxf b3BzID0gewogc3RhdGljIGludCBtdGtfbWlwaV90eF9wb3dlcl9vbl9zaWduYWwoc3RydWN0IHBo eSAqcGh5KQogewogCXN0cnVjdCBtdGtfbWlwaV90eCAqbWlwaV90eCA9IHBoeV9nZXRfZHJ2ZGF0 YShwaHkpOwotCXVuc2lnbmVkIGludCByZWc7CisJdTMyIHJlZzsKIAogCWZvciAocmVnID0gTUlQ SVRYX0RTSV9DTE9DS19MQU5FOwogCSAgICAgcmVnIDw9IE1JUElUWF9EU0lfREFUQV9MQU5FMzsg cmVnICs9IDQpCkBAIC0zNDEsNyArMzc3LDcgQEAgc3RhdGljIGludCBtdGtfbWlwaV90eF9wb3dl cl9vbihzdHJ1Y3QgcGh5ICpwaHkpCiBzdGF0aWMgdm9pZCBtdGtfbWlwaV90eF9wb3dlcl9vZmZf c2lnbmFsKHN0cnVjdCBwaHkgKnBoeSkKIHsKIAlzdHJ1Y3QgbXRrX21pcGlfdHggKm1pcGlfdHgg PSBwaHlfZ2V0X2RydmRhdGEocGh5KTsKLQl1bnNpZ25lZCBpbnQgcmVnOworCXUzMiByZWc7CiAK IAltdGtfbWlwaV90eF9zZXRfYml0cyhtaXBpX3R4LCBNSVBJVFhfRFNJX1RPUF9DT04sCiAJCQkg ICAgIFJHX0RTSV9QQURfVElFX0xPV19FTik7CkBAIC0zOTEsNiArNDI3LDcgQEAgc3RhdGljIGlu dCBtdGtfbWlwaV90eF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmICgh bWlwaV90eCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwltaXBpX3R4LT5kcml2ZXJfZGF0YSA9IG9m X2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOwogCW1lbSA9IHBsYXRmb3JtX2dldF9yZXNvdXJj ZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CiAJbWlwaV90eC0+cmVncyA9IGRldm1faW9yZW1h cF9yZXNvdXJjZShkZXYsIG1lbSk7CiAJaWYgKElTX0VSUihtaXBpX3R4LT5yZWdzKSkgewpAQCAt NDQ4LDExICs0ODUsNiBAQCBzdGF0aWMgaW50IG10a19taXBpX3R4X3JlbW92ZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0 IG9mX2RldmljZV9pZCBtdGtfbWlwaV90eF9tYXRjaFtdID0gewotCXsgLmNvbXBhdGlibGUgPSAi bWVkaWF0ZWssbXQ4MTczLW1pcGktdHgiLCB9LAotCXt9LAotfTsKLQogc3RydWN0IHBsYXRmb3Jt X2RyaXZlciBtdGtfbWlwaV90eF9kcml2ZXIgPSB7CiAJLnByb2JlID0gbXRrX21pcGlfdHhfcHJv YmUsCiAJLnJlbW92ZSA9IG10a19taXBpX3R4X3JlbW92ZSwKLS0gCjEuNy45LjUKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=