From mboxrd@z Thu Jan 1 00:00:00 1970 From: yannick fertre Subject: [PATCH v2 07/10] video: add support of panel rm68200 Date: Fri, 2 Mar 2018 16:44:08 +0100 Message-ID: <1520005451-23217-8-git-send-email-yannick.fertre@st.com> References: <1520005451-23217-1-git-send-email-yannick.fertre@st.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 676BD6E190 for ; Fri, 2 Mar 2018 15:44:40 +0000 (UTC) In-Reply-To: <1520005451-23217-1-git-send-email-yannick.fertre@st.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Vikas Manocha , Benjamin Gaignard , Yannick Fertre , Philippe Cornu , Patrice Chotard , Patrick DELAUNAY , Christophe KERELLO , Archit Taneja , Andrzej Hajda , Laurent Pinchart , David Airlie , Brian Norris , Bhumika Goyal , Gustavo Padovan , Maarten Lankhorst , Sean Paul , Albert Aribaud , Simon Glass , Anatolij Gustschin , Thierry Reding Cc: u-boot@lists.denx.de, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org U3VwcG9ydCBmb3IgUmF5ZGl1bSBybTY4MjAwIDcyMHAgZHNpIDJkbCB2aWRlbyBtb2RlIHBhbmVs LgoKU2lnbmVkLW9mZi1ieTogeWFubmljayBmZXJ0cmUgPHlhbm5pY2suZmVydHJlQHN0LmNvbT4K LS0tCiBkcml2ZXJzL3ZpZGVvL0tjb25maWcgICAgICAgICAgIHwgICA4ICsKIGRyaXZlcnMvdmlk ZW8vTWFrZWZpbGUgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy92aWRlby9yYXlkaXVtLXJtNjgy MDAuYyB8IDMyOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZp bGVzIGNoYW5nZWQsIDMzOCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy92aWRlby9yYXlkaXVtLXJtNjgyMDAuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vS2Nv bmZpZyBiL2RyaXZlcnMvdmlkZW8vS2NvbmZpZwppbmRleCAwZjY0MWQ3Li4yNTYxYzU5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3ZpZGVvL0tjb25maWcKKysrIGIvZHJpdmVycy92aWRlby9LY29uZmln CkBAIC0zMjgsNiArMzI4LDE0IEBAIGNvbmZpZyBWSURFT19MQ0RfT1JJU0VURUNIX09UTTgwMDlB CiAJLS0taGVscC0tLQogCVN1cHBvcnQgZm9yIE9yaXNlIFRlY2ggb3RtODAwOWEgNDgwcCBkc2kg MmRsIHZpZGVvIG1vZGUgcGFuZWwuCiAKK2NvbmZpZyBWSURFT19MQ0RfUkFZRElVTV9STTY4MjAw CisJYm9vbCAiUk02ODIwMCBEU0kgTENEIHBhbmVsIHN1cHBvcnQiCisJZGVwZW5kcyBvbiBETV9W SURFTworCXNlbGVjdCBWSURFT19NSVBJX0RTSQorCWRlZmF1bHQgbgorCS0tLWhlbHAtLS0KKwlT dXBwb3J0IGZvciBSYXlkaXVtIHJtNjgyMDAgNzIweDEyODAgZHNpIDJkbCB2aWRlbyBtb2RlIHBh bmVsLgorCiBjb25maWcgVklERU9fTENEX1NTRDI4MjgKIAlib29sICJTU0QyODI4IGJyaWRnZSBj aGlwIgogCWRlZmF1bHQgbgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9NYWtlZmlsZSBiL2Ry aXZlcnMvdmlkZW8vTWFrZWZpbGUKaW5kZXggNTBiZTU2OS4uMWE2YzhkMyAxMDA2NDQKLS0tIGEv ZHJpdmVycy92aWRlby9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3ZpZGVvL01ha2VmaWxlCkBAIC0z OCw2ICszOCw3IEBAIG9iai0kKENPTkZJR19WSURFT19EQThYWCkgKz0gZGE4eHgtZmIubyB2aWRl b21vZGVzLm8KIG9iai0kKENPTkZJR19WSURFT19MQ0RfQU5YOTgwNCkgKz0gYW54OTgwNC5vCiBv YmotJChDT05GSUdfVklERU9fTENEX0hJVEFDSElfVFgxOEQ0MlZNKSArPSBoaXRhY2hpX3R4MThk NDJ2bV9sY2Qubwogb2JqLSQoQ09ORklHX1ZJREVPX0xDRF9PUklTRVRFQ0hfT1RNODAwOUEpICs9 IG9yaXNldGVjaF9vdG04MDA5YS5vCitvYmotJChDT05GSUdfVklERU9fTENEX1JBWURJVU1fUk02 ODIwMCkgKz0gcmF5ZGl1bS1ybTY4MjAwLm8KIG9iai0kKENPTkZJR19WSURFT19MQ0RfU1NEMjgy OCkgKz0gc3NkMjgyOC5vCiBvYmotJChDT05GSUdfVklERU9fTUI4NjJ4eCkgKz0gbWI4NjJ4eC5v IHZpZGVvbW9kZXMubwogb2JqLSQoQ09ORklHX1ZJREVPX01YMykgKz0gbXgzZmIubyB2aWRlb21v ZGVzLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vcmF5ZGl1bS1ybTY4MjAwLmMgYi9kcml2 ZXJzL3ZpZGVvL3JheWRpdW0tcm02ODIwMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjQ2YWZiNTgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3ZpZGVvL3JheWRpdW0t cm02ODIwMC5jCkBAIC0wLDAgKzEsMzI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IFNU TWljcm9lbGVjdHJvbmljcyAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKyAqIEF1dGhvcihzKTogWWFu bmljayBGZXJ0cmUgPHlhbm5pY2suZmVydHJlQHN0LmNvbT4gZm9yIFNUTWljcm9lbGVjdHJvbmlj cy4KKyAqCSAgICAgIFBoaWxpcHBlIENvcm51IDxwaGlsaXBwZS5jb3JudUBzdC5jb20+IGZvciBT VE1pY3JvZWxlY3Ryb25pY3MuCisgKgorICogVGhpcyBybTY4MjAwIHBhbmVsIGRyaXZlciBpcyBi YXNlZCBvbiB0aGUgcGFuZWwgZHJpdmVyIGZyb20KKyAqIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1yYXlkaXVtLXJtNjgyMDAuYyAoa2VybmVsIGxpbnV4KQorICoKKyAqIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wCisgKi8KKyNpbmNsdWRlIDxhc20vZ3Bpby5oPgorI2luY2x1 ZGUgPGJhY2tsaWdodC5oPgorI2luY2x1ZGUgPGNvbW1vbi5oPgorI2luY2x1ZGUgPGRtLmg+Cisj aW5jbHVkZSA8cGFuZWwuaD4KKyNpbmNsdWRlIDxwb3dlci9yZWd1bGF0b3IuaD4KKyNpbmNsdWRl IDxtaXBpX2Rpc3BsYXkuaD4KKworREVDTEFSRV9HTE9CQUxfREFUQV9QVFI7CisKKyNkZWZpbmUg RFJWX05BTUUgInJheWRpdW1fcm02ODIwMCIKKworLyoqKiBNYW51ZmFjdHVyZXIgQ29tbWFuZCBT ZXQgKioqLworI2RlZmluZSBNQ1NfQ01EX01PREVfU1cJMHhGRSAvKiBDTUQgTW9kZSBTd2l0Y2gg Ki8KKyNkZWZpbmUgTUNTX0NNRDFfVUNTCTB4MDAgLyogVXNlciBDb21tYW5kIFNldCAoVUNTID0g Q01EMSkgKi8KKyNkZWZpbmUgTUNTX0NNRDJfUDAJMHgwMSAvKiBNYW51ZmFjdHVyZSBDb21tYW5k IFNldCBQYWdlMCAoQ01EMiBQMCkgKi8KKyNkZWZpbmUgTUNTX0NNRDJfUDEJMHgwMiAvKiBNYW51 ZmFjdHVyZSBDb21tYW5kIFNldCBQYWdlMSAoQ01EMiBQMSkgKi8KKyNkZWZpbmUgTUNTX0NNRDJf UDIJMHgwMyAvKiBNYW51ZmFjdHVyZSBDb21tYW5kIFNldCBQYWdlMiAoQ01EMiBQMikgKi8KKyNk ZWZpbmUgTUNTX0NNRDJfUDMJMHgwNCAvKiBNYW51ZmFjdHVyZSBDb21tYW5kIFNldCBQYWdlMyAo Q01EMiBQMykgKi8KKworLyogQ01EMiBQMCBjb21tYW5kcyAoRGlzcGxheSBPcHRpb25zIGFuZCBQ b3dlcikgKi8KKyNkZWZpbmUgTUNTX1NUQkNUUgkweDEyIC8qIFRFMSBPdXRwdXQgU2V0dGluZyBa aWctWmFnIENvbm5lY3Rpb24gKi8KKyNkZWZpbmUgTUNTX1NHT1BDVFIJMHgxNiAvKiBTb3VyY2Ug QmlhcyBDdXJyZW50ICovCisjZGVmaW5lIE1DU19TRENUUgkweDFBIC8qIFNvdXJjZSBPdXRwdXQg RGVsYXkgVGltZSAqLworI2RlZmluZSBNQ1NfSU5WQ1RSCTB4MUIgLyogSW52ZXJzaW9uIFR5cGUg Ki8KKyNkZWZpbmUgTUNTX0VYVF9QV1JfSUMJMHgyNCAvKiBFeHRlcm5hbCBQV1IgSUMgQ29udHJv bCAqLworI2RlZmluZSBNQ1NfU0VUQVZERAkweDI3IC8qIFBGTSBDb250cm9sIGZvciBBVkREIE91 dHB1dCAqLworI2RlZmluZSBNQ1NfU0VUQVZFRQkweDI5IC8qIFBGTSBDb250cm9sIGZvciBBVkVF IE91dHB1dCAqLworI2RlZmluZSBNQ1NfQlQyQ1RSCTB4MkIgLyogRERWREwgQ2hhcmdlIFB1bXAg Q29udHJvbCAqLworI2RlZmluZSBNQ1NfQlQzQ1RSCTB4MkYgLyogVkdIIENoYXJnZSBQdW1wIENv bnRyb2wgKi8KKyNkZWZpbmUgTUNTX0JUNENUUgkweDM0IC8qIFZHTCBDaGFyZ2UgUHVtcCBDb250 cm9sICovCisjZGVmaW5lIE1DU19WQ01DVFIJMHg0NiAvKiBWQ09NIE91dHB1dCBMZXZlbCBDb250 cm9sICovCisjZGVmaW5lIE1DU19TRVRWR04JMHg1MiAvKiBWRyBNL1MgTiBDb250cm9sICovCisj ZGVmaW5lIE1DU19TRVRWR1AJMHg1NCAvKiBWRyBNL1MgUCBDb250cm9sICovCisjZGVmaW5lIE1D U19TV19DVFJMCTB4NUYgLyogSW50ZXJmYWNlIENvbnRyb2wgZm9yIFBGTSBhbmQgTUlQSSAqLwor CisvKiBDTUQyIFAyIGNvbW1hbmRzIChHT0EgVGltaW5nIENvbnRyb2wpIC0gbm8gZGVzY3JpcHRp b24gaW4gZGF0YXNoZWV0ICovCisjZGVmaW5lIEdPQV9WU1RWMQkweDAwCisjZGVmaW5lIEdPQV9W U1RWMgkweDA3CisjZGVmaW5lIEdPQV9WQ0xLMQkweDBFCisjZGVmaW5lIEdPQV9WQ0xLMgkweDE3 CisjZGVmaW5lIEdPQV9WQ0xLX09QVDEJMHgyMAorI2RlZmluZSBHT0FfQklDTEsxCTB4MkEKKyNk ZWZpbmUgR09BX0JJQ0xLMgkweDM3CisjZGVmaW5lIEdPQV9CSUNMSzMJMHg0NAorI2RlZmluZSBH T0FfQklDTEs0CTB4NEYKKyNkZWZpbmUgR09BX0JJQ0xLX09QVDEJMHg1QgorI2RlZmluZSBHT0Ff QklDTEtfT1BUMgkweDYwCisjZGVmaW5lIE1DU19HT0FfR1BPMQkweDZECisjZGVmaW5lIE1DU19H T0FfR1BPMgkweDcxCisjZGVmaW5lIE1DU19HT0FfRVEJMHg3NAorI2RlZmluZSBNQ1NfR09BX0NM S19HQUxMT04gMHg3QworI2RlZmluZSBNQ1NfR09BX0ZTX1NFTDAJMHg3RQorI2RlZmluZSBNQ1Nf R09BX0ZTX1NFTDEJMHg4NworI2RlZmluZSBNQ1NfR09BX0ZTX1NFTDIJMHg5MQorI2RlZmluZSBN Q1NfR09BX0ZTX1NFTDMJMHg5QgorI2RlZmluZSBNQ1NfR09BX0JTX1NFTDAJMHhBQworI2RlZmlu ZSBNQ1NfR09BX0JTX1NFTDEJMHhCNQorI2RlZmluZSBNQ1NfR09BX0JTX1NFTDIJMHhCRgorI2Rl ZmluZSBNQ1NfR09BX0JTX1NFTDMJMHhDOQorI2RlZmluZSBNQ1NfR09BX0JTX1NFTDQJMHhEMwor CisvKiBDTUQyIFAzIGNvbW1hbmRzIChHYW1tYSkgKi8KKyNkZWZpbmUgTUNTX0dBTU1BX1ZQCTB4 NjAgLyogR2FtbWEgVlAxflZQMTYgKi8KKyNkZWZpbmUgTUNTX0dBTU1BX1ZOCTB4NzAgLyogR2Ft bWEgVk4xflZOMTYgKi8KKworc3RydWN0IHJtNjgyMDBfcGFuZWxfcHJpdiB7CisJc3RydWN0IHVk ZXZpY2UgKnJlZzsKKwlzdHJ1Y3QgdWRldmljZSAqYmFja2xpZ2h0OworCXN0cnVjdCBncGlvX2Rl c2MgcmVzZXQ7Cit9OworCitzdGF0aWMgdm9pZCBybTY4MjAwX2Rjc193cml0ZV9idWYoc3RydWN0 IHVkZXZpY2UgKmRldiwgY29uc3Qgdm9pZCAqZGF0YSwKKwkJCQkgIHNpemVfdCBsZW4pCit7CisJ c3RydWN0IG1pcGlfZHNpX3BhbmVsX3BsYXQgKnBsYXQgPSBkZXZfZ2V0X3BsYXRkYXRhKGRldik7 CisJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZGV2aWNlID0gcGxhdC0+ZGV2aWNlOworCisJaWYg KG1pcGlfZHNpX2Rjc193cml0ZV9idWZmZXIoZGV2aWNlLCBkYXRhLCBsZW4pIDwgMCkKKwkJcHJf ZXJyKCJtaXBpIGRzaSBkY3Mgd3JpdGUgYnVmZmVyIGZhaWxlZFxuIik7Cit9CisKK3N0YXRpYyB2 b2lkIHJtNjgyMDBfZGNzX3dyaXRlX2NtZChzdHJ1Y3QgdWRldmljZSAqZGV2LCB1OCBjbWQsIHU4 IHZhbHVlKQoreworCXN0cnVjdCBtaXBpX2RzaV9wYW5lbF9wbGF0ICpwbGF0ID0gZGV2X2dldF9w bGF0ZGF0YShkZXYpOworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRldmljZSA9IHBsYXQtPmRl dmljZTsKKworCWlmIChtaXBpX2RzaV9kY3Nfd3JpdGUoZGV2aWNlLCBjbWQsICZ2YWx1ZSwgMSkg PCAwKQorCQlwcl9lcnIoIm1pcGkgZHNpIGRjcyB3cml0ZSBmYWlsZWRcbiIpOworfQorCisjZGVm aW5lIGRjc193cml0ZV9zZXEoY3R4LCBzZXEuLi4pCQkJCVwKKyh7CQkJCQkJCQlcCisJc3RhdGlj IGNvbnN0IHU4IGRbXSA9IHsgc2VxIH07CQkJCVwKKwlybTY4MjAwX2Rjc193cml0ZV9idWYoY3R4 LCBkLCBBUlJBWV9TSVpFKGQpKTsJCVwKK30pCisKKy8qCisgKiBUaGlzIHBhbmVsIGlzIG5vdCBh YmxlIHRvIGF1dG8taW5jcmVtZW50IGFsbCBjbWQgYWRkcmVzc2VzIHNvIGZvciBzb21lIG9mCisg KiB0aGVtLCB3ZSBuZWVkIHRvIHNlbmQgdGhlbSBvbmUgYnkgb25lLi4uCisgKi8KKyNkZWZpbmUg ZGNzX3dyaXRlX2NtZF9zZXEoY3R4LCBjbWQsIHNlcS4uLikJCQlcCisoewkJCQkJCQkJXAorCXN0 YXRpYyBjb25zdCB1OCBkW10gPSB7IHNlcSB9OwkJCQlcCisJc3RhdGljIGludCBpOwkJCQkJCVwK Kwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShkKSA7IGkrKykJCQlcCisJCXJtNjgyMDBfZGNz X3dyaXRlX2NtZChjdHgsIGNtZCArIGksIGRbaV0pOwlcCit9KQorCitzdGF0aWMgaW50IHJtNjgy MDBfaW5pdF9zZXF1ZW5jZShzdHJ1Y3QgdWRldmljZSAqZGV2KQoreworCS8qIEVudGVyIENNRDIg d2l0aCBwYWdlIDAgKi8KKwlkY3Nfd3JpdGVfc2VxKGRldiwgTUNTX0NNRF9NT0RFX1NXLCBNQ1Nf Q01EMl9QMCk7CisJZGNzX3dyaXRlX2NtZF9zZXEoZGV2LCBNQ1NfRVhUX1BXUl9JQywgMHhDMCwg MHg1MywgMHgwMCk7CisJZGNzX3dyaXRlX3NlcShkZXYsIE1DU19CVDJDVFIsIDB4RTUpOworCWRj c193cml0ZV9zZXEoZGV2LCBNQ1NfU0VUQVZERCwgMHgwQSk7CisJZGNzX3dyaXRlX3NlcShkZXYs IE1DU19TRVRBVkVFLCAweDBBKTsKKwlkY3Nfd3JpdGVfc2VxKGRldiwgTUNTX1NHT1BDVFIsIDB4 NTIpOworCWRjc193cml0ZV9zZXEoZGV2LCBNQ1NfQlQzQ1RSLCAweDUzKTsKKwlkY3Nfd3JpdGVf c2VxKGRldiwgTUNTX0JUNENUUiwgMHg1QSk7CisJZGNzX3dyaXRlX3NlcShkZXYsIE1DU19JTlZD VFIsIDB4MDApOworCWRjc193cml0ZV9zZXEoZGV2LCBNQ1NfU1RCQ1RSLCAweDBBKTsKKwlkY3Nf d3JpdGVfc2VxKGRldiwgTUNTX1NEQ1RSLCAweDA2KTsKKwlkY3Nfd3JpdGVfc2VxKGRldiwgTUNT X1ZDTUNUUiwgMHg1Nik7CisJZGNzX3dyaXRlX3NlcShkZXYsIE1DU19TRVRWR04sIDB4QTAsIDB4 MDApOworCWRjc193cml0ZV9zZXEoZGV2LCBNQ1NfU0VUVkdQLCAweEEwLCAweDAwKTsKKwlkY3Nf d3JpdGVfc2VxKGRldiwgTUNTX1NXX0NUUkwsIDB4MTEpOyAvKiAyIGRhdGEgbGFuZXMsIHNlZSBk b2MgKi8KKworCWRjc193cml0ZV9zZXEoZGV2LCBNQ1NfQ01EX01PREVfU1csIE1DU19DTUQyX1Ay KTsKKwlkY3Nfd3JpdGVfc2VxKGRldiwgR09BX1ZTVFYxLCAweDA1KTsKKwlkY3Nfd3JpdGVfc2Vx KGRldiwgMHgwMiwgMHgwQik7CisJZGNzX3dyaXRlX3NlcShkZXYsIDB4MDMsIDB4MEYpOworCWRj c193cml0ZV9zZXEoZGV2LCAweDA0LCAweDdELCAweDAwLCAweDUwKTsKKwlkY3Nfd3JpdGVfY21k X3NlcShkZXYsIEdPQV9WU1RWMiwgMHgwNSwgMHgxNiwgMHgwRCwgMHgxMSwgMHg3RCwgMHgwMCwK KwkJCSAgMHg1MCk7CisJZGNzX3dyaXRlX2NtZF9zZXEoZGV2LCBHT0FfVkNMSzEsIDB4MDcsIDB4 MDgsIDB4MDEsIDB4MDIsIDB4MDAsIDB4N0QsCisJCQkgIDB4MDAsIDB4ODUsIDB4MDgpOworCWRj c193cml0ZV9jbWRfc2VxKGRldiwgR09BX1ZDTEsyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAw eDAwLCAweDdELAorCQkJICAweDAwLCAweDg1LCAweDA4KTsKKwlkY3Nfd3JpdGVfc2VxKGRldiwg R09BX1ZDTEtfT1BUMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKwkJICAg ICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCk7CisJZGNzX3dyaXRlX2NtZF9zZXEoZGV2LCBHT0Ff QklDTEsxLCAweDA3LCAweDA4KTsKKwlkY3Nfd3JpdGVfc2VxKGRldiwgMHgyRCwgMHgwMSk7CisJ ZGNzX3dyaXRlX3NlcShkZXYsIDB4MkYsIDB4MDIsIDB4MDAsIDB4NDAsIDB4MDUsIDB4MDgsIDB4 NTQsIDB4N0QsCisJCSAgICAgIDB4MDApOworCWRjc193cml0ZV9jbWRfc2VxKGRldiwgR09BX0JJ Q0xLMiwgMHgwMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwMCk7CisJZGNzX3dyaXRlX3NlcShkZXYs IDB4M0QsIDB4NDApOworCWRjc193cml0ZV9zZXEoZGV2LCAweDNGLCAweDA1LCAweDA4LCAweDU0 LCAweDdELCAweDAwKTsKKwlkY3Nfd3JpdGVfc2VxKGRldiwgR09BX0JJQ0xLMywgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKwkJICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCk7CisJZGNzX3dyaXRlX3NlcShkZXYsIEdPQV9CSUNMSzQsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisJCSAgICAgIDB4MDAsIDB4MDApOworCWRjc193cml0ZV9z ZXEoZGV2LCAweDU4LCAweDAwLCAweDAwLCAweDAwKTsKKwlkY3Nfd3JpdGVfc2VxKGRldiwgR09B X0JJQ0xLX09QVDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApOworCWRjc193cml0ZV9z ZXEoZGV2LCBHT0FfQklDTEtfT1BUMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwKKwkJICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCk7CisJ ZGNzX3dyaXRlX3NlcShkZXYsIE1DU19HT0FfR1BPMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCk7 CisJZGNzX3dyaXRlX3NlcShkZXYsIE1DU19HT0FfR1BPMiwgMHgwMCwgMHgyMCwgMHgwMCk7CisJ ZGNzX3dyaXRlX3NlcShkZXYsIE1DU19HT0FfRVEsIDB4MDgsIDB4MDgsIDB4MDgsIDB4MDgsIDB4 MDgsIDB4MDgsCisJCSAgICAgIDB4MDAsIDB4MDApOworCWRjc193cml0ZV9zZXEoZGV2LCBNQ1Nf R09BX0NMS19HQUxMT04sIDB4MDAsIDB4MDApOworCWRjc193cml0ZV9jbWRfc2VxKGRldiwgTUNT X0dPQV9GU19TRUwwLCAweEJGLCAweDAyLCAweDA2LCAweDE0LCAweDEwLAorCQkJICAweDE2LCAw eDEyLCAweDA4LCAweDNGKTsKKwlkY3Nfd3JpdGVfY21kX3NlcShkZXYsIE1DU19HT0FfRlNfU0VM MSwgMHgzRiwgMHgzRiwgMHgzRiwgMHgzRiwgMHgwQywKKwkJCSAgMHgwQSwgMHgwRSwgMHgzRiwg MHgzRiwgMHgwMCk7CisJZGNzX3dyaXRlX2NtZF9zZXEoZGV2LCBNQ1NfR09BX0ZTX1NFTDIsIDB4 MDQsIDB4M0YsIDB4M0YsIDB4M0YsIDB4M0YsCisJCQkgIDB4MDUsIDB4MDEsIDB4M0YsIDB4M0Ys IDB4MEYpOworCWRjc193cml0ZV9jbWRfc2VxKGRldiwgTUNTX0dPQV9GU19TRUwzLCAweDBCLCAw eDBELCAweDNGLCAweDNGLCAweDNGLAorCQkJICAweDNGKTsKKwlkY3Nfd3JpdGVfY21kX3NlcShk ZXYsIDB4QTIsIDB4M0YsIDB4MDksIDB4MTMsIDB4MTcsIDB4MTEsIDB4MTUpOworCWRjc193cml0 ZV9jbWRfc2VxKGRldiwgMHhBOSwgMHgwNywgMHgwMywgMHgzRik7CisJZGNzX3dyaXRlX2NtZF9z ZXEoZGV2LCBNQ1NfR09BX0JTX1NFTDAsIDB4M0YsIDB4MDUsIDB4MDEsIDB4MTcsIDB4MTMsCisJ CQkgIDB4MTUsIDB4MTEsIDB4MEYsIDB4M0YpOworCWRjc193cml0ZV9jbWRfc2VxKGRldiwgTUNT X0dPQV9CU19TRUwxLCAweDNGLCAweDNGLCAweDNGLCAweDNGLCAweDBCLAorCQkJICAweDBELCAw eDA5LCAweDNGLCAweDNGLCAweDA3KTsKKwlkY3Nfd3JpdGVfY21kX3NlcShkZXYsIE1DU19HT0Ff QlNfU0VMMiwgMHgwMywgMHgzRiwgMHgzRiwgMHgzRiwgMHgzRiwKKwkJCSAgMHgwMiwgMHgwNiwg MHgzRiwgMHgzRiwgMHgwOCk7CisJZGNzX3dyaXRlX2NtZF9zZXEoZGV2LCBNQ1NfR09BX0JTX1NF TDMsIDB4MEMsIDB4MEEsIDB4M0YsIDB4M0YsIDB4M0YsCisJCQkgIDB4M0YsIDB4M0YsIDB4MEUs IDB4MTAsIDB4MTQpOworCWRjc193cml0ZV9jbWRfc2VxKGRldiwgTUNTX0dPQV9CU19TRUw0LCAw eDEyLCAweDE2LCAweDAwLCAweDA0LCAweDNGKTsKKwlkY3Nfd3JpdGVfc2VxKGRldiwgMHhEQywg MHgwMik7CisJZGNzX3dyaXRlX3NlcShkZXYsIDB4REUsIDB4MTIpOworCisJZGNzX3dyaXRlX3Nl cShkZXYsIE1DU19DTURfTU9ERV9TVywgMHgwRSk7IC8qIE5vIGRvY3VtZW50YXRpb24gKi8KKwlk Y3Nfd3JpdGVfc2VxKGRldiwgMHgwMSwgMHg3NSk7CisKKwlkY3Nfd3JpdGVfc2VxKGRldiwgTUNT X0NNRF9NT0RFX1NXLCBNQ1NfQ01EMl9QMyk7CisJZGNzX3dyaXRlX2NtZF9zZXEoZGV2LCBNQ1Nf R0FNTUFfVlAsIDB4MDAsIDB4MEMsIDB4MTIsIDB4MEUsIDB4MDYsCisJCQkgIDB4MTIsIDB4MEUs IDB4MEIsIDB4MTUsIDB4MEIsIDB4MTAsIDB4MDcsIDB4MEYsCisJCQkgIDB4MTIsIDB4MEMsIDB4 MDApOworCWRjc193cml0ZV9jbWRfc2VxKGRldiwgTUNTX0dBTU1BX1ZOLCAweDAwLCAweDBDLCAw eDEyLCAweDBFLCAweDA2LAorCQkJICAweDEyLCAweDBFLCAweDBCLCAweDE1LCAweDBCLCAweDEw LCAweDA3LCAweDBGLAorCQkJICAweDEyLCAweDBDLCAweDAwKTsKKworCS8qIEV4aXQgQ01EMiAq LworCWRjc193cml0ZV9zZXEoZGV2LCBNQ1NfQ01EX01PREVfU1csIE1DU19DTUQxX1VDUyk7CisK KwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBybTY4MjAwX3BhbmVsX2VuYWJsZV9iYWNrbGln aHQoc3RydWN0IHVkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgbWlwaV9kc2lfcGFuZWxfcGxhdCAq cGxhdCA9IGRldl9nZXRfcGxhdGRhdGEoZGV2KTsKKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpk ZXZpY2UgPSBwbGF0LT5kZXZpY2U7CisJc3RydWN0IHJtNjgyMDBfcGFuZWxfcHJpdiAqcHJpdiA9 IGRldl9nZXRfcHJpdihkZXYpOworCWludCByZXQ7CisKKwlkZXZpY2UtPmxhbmVzID0gMjsKKwlk ZXZpY2UtPmZvcm1hdCA9IE1JUElfRFNJX0ZNVF9SR0I4ODg7CisJZGV2aWNlLT5tb2RlX2ZsYWdz ID0gTUlQSV9EU0lfTU9ERV9WSURFTyB8CisJCQkgICAgIE1JUElfRFNJX01PREVfVklERU9fQlVS U1QgfAorCQkJICAgICBNSVBJX0RTSV9NT0RFX0xQTTsKKworCXJldCA9IG1pcGlfZHNpX2F0dGFj aChkZXZpY2UpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJcHJfaW5mbygiJXM6 IGluaXRpYWxpemUgcGFuZWxcbiIsIF9fZnVuY19fKTsKKworCXJldCA9IHJtNjgyMDBfaW5pdF9z ZXF1ZW5jZShkZXYpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBtaXBpX2Rz aV9kY3NfZXhpdF9zbGVlcF9tb2RlKGRldmljZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsK KworCW1kZWxheSgxMjUpOworCisJcmV0ID0gbWlwaV9kc2lfZGNzX3NldF9kaXNwbGF5X29uKGRl dmljZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCW1kZWxheSgyMCk7CisKKwlwcl9p bmZvKCIlczogc3RhcnQsIGJhY2tsaWdodCA9ICclcydcbiIsIF9fZnVuY19fLAorCQlwcml2LT5i YWNrbGlnaHQtPm5hbWUpOworCisJcmV0ID0gYmFja2xpZ2h0X2VuYWJsZShwcml2LT5iYWNrbGln aHQpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGludCBybTY4MjAwX3BhbmVsX29mZGF0YV90b19wbGF0ZGF0YShzdHJ1Y3QgdWRldmljZSAqZGV2 KQoreworCXN0cnVjdCBybTY4MjAwX3BhbmVsX3ByaXYgKnByaXYgPSBkZXZfZ2V0X3ByaXYoZGV2 KTsKKwlpbnQgcmV0OworCisJaWYgKElTX0VOQUJMRUQoQ09ORklHX0RNX1JFR1VMQVRPUikpIHsK KwkJcmV0ID0gdWNsYXNzX2dldF9kZXZpY2VfYnlfcGhhbmRsZShVQ0xBU1NfUkVHVUxBVE9SLCBk ZXYsCisJCQkJCQkgICAicG93ZXItc3VwcGx5IiwgJnByaXYtPnJlZyk7CisJCWlmIChyZXQpIHsK KwkJCXByX2luZm8oIiVzOiBXYXJuaW5nOiBjYW5ub3QgZ2V0IHBvd2VyIHN1cHBseVxuIiwKKwkJ CQlfX2Z1bmNfXyk7CisJCQlpZiAocmV0ICE9IC1FTk9FTlQpCisJCQkJcmV0dXJuIHJldDsKKwkJ fQorCX0KKworCXJldCA9IGdwaW9fcmVxdWVzdF9ieV9uYW1lKGRldiwgInJlc2V0LWdwaW9zIiwg MCwgJnByaXYtPnJlc2V0LAorCQkJCSAgIEdQSU9EX0lTX09VVCk7CisJaWYgKHJldCkgeworCQlw cl9pbmZvKCIlczogV2FybmluZzogY2Fubm90IGdldCByZXNldCBHUElPXG4iLCBfX2Z1bmNfXyk7 CisJCWlmIChyZXQgIT0gLUVOT0VOVCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJLyogcmVzZXQg cGFuZWwgbXVzdCBiZSBkb25lIGJlZm9yZSBwcm9iZSAqLworCWRtX2dwaW9fc2V0X3ZhbHVlKCZw cml2LT5yZXNldCwgdHJ1ZSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBybTY4MjAw X3BhbmVsX3Byb2JlKHN0cnVjdCB1ZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHJtNjgyMDBfcGFu ZWxfcHJpdiAqcHJpdiA9IGRldl9nZXRfcHJpdihkZXYpOworCWludCByZXQ7CisKKwlpZiAoSVNf RU5BQkxFRChDT05GSUdfRE1fUkVHVUxBVE9SKSAmJiBwcml2LT5yZWcpIHsKKwkJcHJfaW5mbygi JXM6IEVuYWJsZSByZWd1bGF0b3IgJyVzJ1xuIiwgX19mdW5jX18sCisJCQlwcml2LT5yZWctPm5h bWUpOworCQlyZXQgPSByZWd1bGF0b3Jfc2V0X2VuYWJsZShwcml2LT5yZWcsIHRydWUpOworCQlp ZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlkbV9ncGlvX3NldF92YWx1ZSgmcHJpdi0+ cmVzZXQsIGZhbHNlKTsKKworCXJldCA9IHVjbGFzc19nZXRfZGV2aWNlX2J5X3BoYW5kbGUoVUNM QVNTX1BBTkVMX0JBQ0tMSUdIVCwgZGV2LAorCQkJCQkgICAiYmFja2xpZ2h0IiwgJnByaXYtPmJh Y2tsaWdodCk7CisJaWYgKHJldCkgeworCQlwcl9pbmZvKCIlczogQ2Fubm90IGdldCBiYWNrbGln aHQ6IHJldD0lZFxuIiwgX19mdW5jX18sIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGFuZWxfb3BzIHJtNjgyMDBfcGFuZWxf b3BzID0geworCS5lbmFibGVfYmFja2xpZ2h0ID0gcm02ODIwMF9wYW5lbF9lbmFibGVfYmFja2xp Z2h0LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB1ZGV2aWNlX2lkIHJtNjgyMDBfcGFuZWxf aWRzW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJyYXlkaXVtLHJtNjgyMDAiIH0sCisJeyB9Cit9 OworCitVX0JPT1RfRFJJVkVSKHJtNjgyMDBfcGFuZWwpID0geworCS5uYW1lCQkJICA9ICJybTY4 MjAwX3BhbmVsIiwKKwkuaWQJCQkgID0gVUNMQVNTX1BBTkVMLAorCS5vZl9tYXRjaAkJICA9IHJt NjgyMDBfcGFuZWxfaWRzLAorCS5vcHMJCQkgID0gJnJtNjgyMDBfcGFuZWxfb3BzLAorCS5vZmRh dGFfdG9fcGxhdGRhdGEJICA9IHJtNjgyMDBfcGFuZWxfb2ZkYXRhX3RvX3BsYXRkYXRhLAorCS5w cm9iZQkJCSAgPSBybTY4MjAwX3BhbmVsX3Byb2JlLAorCS5wbGF0ZGF0YV9hdXRvX2FsbG9jX3Np emUgPSBzaXplb2Yoc3RydWN0IG1pcGlfZHNpX3BhbmVsX3BsYXQpLAorCS5wcml2X2F1dG9fYWxs b2Nfc2l6ZQk9IHNpemVvZihzdHJ1Y3Qgcm02ODIwMF9wYW5lbF9wcml2KSwKK307Ci0tIAoxLjku MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==