From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: usb: phy: ab8500: Drop AB8540/9540 support From: Linus Walleij Message-Id: <20180322102224.10111-1-linus.walleij@linaro.org> Date: Thu, 22 Mar 2018 11:22:24 +0100 To: Greg Kroah-Hartman , Felipe Balbi Cc: linux-usb@vger.kernel.org, Linus Walleij , Loic Pallardy List-ID: VGhlIEFCODU0MCB3YXMgYW4gZXZvbHZlZCB2ZXJzaW9uIG9mIHRoZSBBQjg1MDAsIGJ1dCBpdCB3 YXMgbmV2ZXIKbWFzcyBwcm9kdWNlZCBvciBwdXQgaW50byBwcm9kdWN0cywgb25seSByZWZlcmVu Y2UgZGVzaWducyBleGlzdC4KVGhlIHVwc3RyZWFtIHN1cHBvcnQgd2FzIG5ldmVyIGNvbXBsZXRl ZCBhbmQgaXQgaXMgdW5saWtlbHkgdGhhdAp0aGlzIHdpbGwgaGFwcGVuIHNvIGRyb3AgdGhlIHN1 cHBvcnQgZm9yIG5vdyB0byBzaW1wbGlmeQptYWludGVuYW5jZSBvZiB0aGUgQUI4NTAwLgoKQ2M6 IExvaWMgUGFsbGFyZHkgPGxvaWMucGFsbGFyZHlAc3QuY29tPgpTaWduZWQtb2ZmLWJ5OiBMaW51 cyBXYWxsZWlqIDxsaW51cy53YWxsZWlqQGxpbmFyby5vcmc+Ci0tLQogZHJpdmVycy91c2IvcGh5 L3BoeS1hYjg1MDAtdXNiLmMgfCA1MDYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL3BoeS9waHktYWI4NTAwLXVzYi5jIGIvZHJpdmVycy91c2IvcGh5L3BoeS1hYjg1 MDAtdXNiLmMKaW5kZXggODcyOTUzMTNhMTBjLi43ZWIyYjJiOTExZTUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdXNiL3BoeS9waHktYWI4NTAwLXVzYi5jCisrKyBiL2RyaXZlcnMvdXNiL3BoeS9waHkt YWI4NTAwLXVzYi5jCkBAIC0yOSwxNyArMjksMTIgQEAKIC8qIEJhbmsgQUI4NTAwX1VTQiAqLwog I2RlZmluZSBBQjg1MDBfVVNCX0xJTkVfU1RBVF9SRUcgMHg4MAogI2RlZmluZSBBQjg1MDVfVVNC X0xJTkVfU1RBVF9SRUcgMHg5NAotI2RlZmluZSBBQjg1NDBfVVNCX0xJTktfU1RBVF9SRUcgMHg5 NAotI2RlZmluZSBBQjk1NDBfVVNCX0xJTktfU1RBVF9SRUcgMHg5NAotI2RlZmluZSBBQjg1NDBf VVNCX09UR19DVExfUkVHIDB4ODcKICNkZWZpbmUgQUI4NTAwX1VTQl9QSFlfQ1RSTF9SRUcgMHg4 QQotI2RlZmluZSBBQjg1NDBfVkJVU19DVFJMX1JFRyAweDgyCiAKIC8qIEJhbmsgQUI4NTAwX0RF VkVMT1BNRU5UICovCiAjZGVmaW5lIEFCODUwMF9CQU5LMTJfQUNDRVNTIDB4MDAKIAogLyogQmFu ayBBQjg1MDBfREVCVUcgKi8KLSNkZWZpbmUgQUI4NTQwX0RFQlVHIDB4MzIKICNkZWZpbmUgQUI4 NTAwX1VTQl9QSFlfVFVORTEgMHgwNQogI2RlZmluZSBBQjg1MDBfVVNCX1BIWV9UVU5FMiAweDA2 CiAjZGVmaW5lIEFCODUwMF9VU0JfUEhZX1RVTkUzIDB4MDcKQEAgLTUzLDEwICs0OCw2IEBACiAj ZGVmaW5lIEFCODUwMF9CSVRfV0RfQ1RSTF9FTkFCTEUgKDEgPDwgMCkKICNkZWZpbmUgQUI4NTAw X0JJVF9XRF9DVFJMX0tJQ0sgKDEgPDwgMSkKICNkZWZpbmUgQUI4NTAwX0JJVF9TT1VSQ0UyX1ZC VVNERVQgKDEgPDwgNykKLSNkZWZpbmUgQUI4NTQwX0JJVF9PVEdfQ1RMX1ZCVVNfVkFMSURfRU5B ICgxIDw8IDApCi0jZGVmaW5lIEFCODU0MF9CSVRfT1RHX0NUTF9JRF9IT1NUX0VOQSAoMSA8PCAx KQotI2RlZmluZSBBQjg1NDBfQklUX09UR19DVExfSURfREVWX0VOQSAoMSA8PCA1KQotI2RlZmlu ZSBBQjg1NDBfQklUX1ZCVVNfQ1RSTF9DSEFSR19ERVRfRU5BICgxIDw8IDApCiAKICNkZWZpbmUg QUI4NTAwX1dEX0tJQ0tfREVMQVlfVVMgMTAwIC8qIHVzZWMgKi8KICNkZWZpbmUgQUI4NTAwX1dE X1YxMV9ESVNBQkxFX0RFTEFZX1VTIDEwMCAvKiB1c2VjICovCkBAIC0xMTMsNjggKzEwNCw2IEBA IGVudW0gYWI4NTA1X3VzYl9saW5rX3N0YXR1cyB7CiAJVVNCX0xJTktfTU9UT1JPTEFfRkFDVE9S WV9DQkxfUEhZX0VOXzg1MDUsCiB9OwogCi1lbnVtIGFiODU0MF91c2JfbGlua19zdGF0dXMgewot CVVTQl9MSU5LX05PVF9DT05GSUdVUkVEXzg1NDAgPSAwLAotCVVTQl9MSU5LX1NURF9IT1NUX05D Xzg1NDAsCi0JVVNCX0xJTktfU1REX0hPU1RfQ19OU184NTQwLAotCVVTQl9MSU5LX1NURF9IT1NU X0NfU184NTQwLAotCVVTQl9MSU5LX0NEUF84NTQwLAotCVVTQl9MSU5LX1JFU0VSVkVEMF84NTQw LAotCVVTQl9MSU5LX1JFU0VSVkVEMV84NTQwLAotCVVTQl9MSU5LX0RFRElDQVRFRF9DSEdfODU0 MCwKLQlVU0JfTElOS19BQ0FfUklEX0FfODU0MCwKLQlVU0JfTElOS19BQ0FfUklEX0JfODU0MCwK LQlVU0JfTElOS19BQ0FfUklEX0NfTk1fODU0MCwKLQlVU0JfTElOS19SRVNFUlZFRDJfODU0MCwK LQlVU0JfTElOS19SRVNFUlZFRDNfODU0MCwKLQlVU0JfTElOS19ITV9JREdORF84NTQwLAotCVVT Ql9MSU5LX0NIQVJHRVJQT1JUX05PVF9PS184NTQwLAotCVVTQl9MSU5LX0NIQVJHRVJfRE1fSElH SF84NTQwLAotCVVTQl9MSU5LX1BIWUVOX05PX1ZCVVNfTk9fSURHTkRfODU0MCwKLQlVU0JfTElO S19TVERfVVBTVFJFQU1fTk9fSURHTkdfVkJVU184NTQwLAotCVVTQl9MSU5LX1NURF9VUFNUUkVB TV84NTQwLAotCVVTQl9MSU5LX0NIQVJHRVJfU0UxXzg1NDAsCi0JVVNCX0xJTktfQ0FSS0lUX0NI R1JfMV84NTQwLAotCVVTQl9MSU5LX0NBUktJVF9DSEdSXzJfODU0MCwKLQlVU0JfTElOS19BQ0Ff RE9DS19DSEdSXzg1NDAsCi0JVVNCX0xJTktfU0FNU1VOR19CT09UX0NCTF9QSFlfRU5fODU0MCwK LQlVU0JfTElOS19TQU1TVU5HX0JPT1RfQ0JMX1BIWV9ESVNCXzg1NDAsCi0JVVNCX0xJTktfU0FN U1VOR19VQVJUX0NCTF9QSFlfRU5fODU0MCwKLQlVU0JfTElOS19TQU1TVU5HX1VBUlRfQ0JMX1BI WV9ESVNCXzg1NDAsCi0JVVNCX0xJTktfTU9UT1JPTEFfRkFDVE9SWV9DQkxfUEhZX0VOXzg1NDAK LX07Ci0KLWVudW0gYWI5NTQwX3VzYl9saW5rX3N0YXR1cyB7Ci0JVVNCX0xJTktfTk9UX0NPTkZJ R1VSRURfOTU0MCA9IDAsCi0JVVNCX0xJTktfU1REX0hPU1RfTkNfOTU0MCwKLQlVU0JfTElOS19T VERfSE9TVF9DX05TXzk1NDAsCi0JVVNCX0xJTktfU1REX0hPU1RfQ19TXzk1NDAsCi0JVVNCX0xJ TktfQ0RQXzk1NDAsCi0JVVNCX0xJTktfUkVTRVJWRUQwXzk1NDAsCi0JVVNCX0xJTktfUkVTRVJW RUQxXzk1NDAsCi0JVVNCX0xJTktfREVESUNBVEVEX0NIR185NTQwLAotCVVTQl9MSU5LX0FDQV9S SURfQV85NTQwLAotCVVTQl9MSU5LX0FDQV9SSURfQl85NTQwLAotCVVTQl9MSU5LX0FDQV9SSURf Q19OTV85NTQwLAotCVVTQl9MSU5LX1JFU0VSVkVEMl85NTQwLAotCVVTQl9MSU5LX1JFU0VSVkVE M185NTQwLAotCVVTQl9MSU5LX0hNX0lER05EXzk1NDAsCi0JVVNCX0xJTktfQ0hBUkdFUlBPUlRf Tk9UX09LXzk1NDAsCi0JVVNCX0xJTktfQ0hBUkdFUl9ETV9ISUdIXzk1NDAsCi0JVVNCX0xJTktf UEhZRU5fTk9fVkJVU19OT19JREdORF85NTQwLAotCVVTQl9MSU5LX1NURF9VUFNUUkVBTV9OT19J REdOR19WQlVTXzk1NDAsCi0JVVNCX0xJTktfU1REX1VQU1RSRUFNXzk1NDAsCi0JVVNCX0xJTktf Q0hBUkdFUl9TRTFfOTU0MCwKLQlVU0JfTElOS19DQVJLSVRfQ0hHUl8xXzk1NDAsCi0JVVNCX0xJ TktfQ0FSS0lUX0NIR1JfMl85NTQwLAotCVVTQl9MSU5LX0FDQV9ET0NLX0NIR1JfOTU0MCwKLQlV U0JfTElOS19TQU1TVU5HX0JPT1RfQ0JMX1BIWV9FTl85NTQwLAotCVVTQl9MSU5LX1NBTVNVTkdf Qk9PVF9DQkxfUEhZX0RJU0JfOTU0MCwKLQlVU0JfTElOS19TQU1TVU5HX1VBUlRfQ0JMX1BIWV9F Tl85NTQwLAotCVVTQl9MSU5LX1NBTVNVTkdfVUFSVF9DQkxfUEhZX0RJU0JfOTU0MCwKLQlVU0Jf TElOS19NT1RPUk9MQV9GQUNUT1JZX0NCTF9QSFlfRU5fOTU0MAotfTsKLQogZW51bSBhYjg1MDBf dXNiX21vZGUgewogCVVTQl9JRExFID0gMCwKIAlVU0JfUEVSSVBIRVJBTCwKQEAgLTE5MiwxMCAr MTIxLDYgQEAgZW51bSBhYjg1MDBfdXNiX21vZGUgewogI2RlZmluZSBBQjg1MDBfVVNCX0ZMQUdf VVNFX0FCX0lEREVUCQkoMSA8PCAzKQogLyogRW5hYmxlIHNldHRpbmcgcmVndWxhdG9ycyB2b2x0 YWdlICovCiAjZGVmaW5lIEFCODUwMF9VU0JfRkxBR19SRUdVTEFUT1JfU0VUX1ZPTFRBR0UJKDEg PDwgNCkKLS8qIEVuYWJsZSB0aGUgY2hlY2tfdmJ1c19zdGF0dXMgd29ya2Fyb3VuZCAqLwotI2Rl ZmluZSBBQjg1MDBfVVNCX0ZMQUdfVVNFX0NIRUNLX1ZCVVNfU1RBVFVTCSgxIDw8IDUpCi0vKiBF bmFibGUgdGhlIHZidXMgaG9zdCB3b3JrYXJvdW5kICovCi0jZGVmaW5lIEFCODUwMF9VU0JfRkxB R19VU0VfVkJVU19IT1NUX1FVSVJLCSgxIDw8IDYpCiAKIHN0cnVjdCBhYjg1MDBfdXNiIHsKIAlz dHJ1Y3QgdXNiX3BoeSBwaHk7CkBAIC0yMDMsNyArMTI4LDYgQEAgc3RydWN0IGFiODUwMF91c2Ig ewogCXN0cnVjdCBhYjg1MDAgKmFiODUwMDsKIAl1bnNpZ25lZCB2YnVzX2RyYXc7CiAJc3RydWN0 IHdvcmtfc3RydWN0IHBoeV9kaXNfd29yazsKLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgdmJ1c19ldmVu dF93b3JrOwogCWVudW0gYWI4NTAwX3VzYl9tb2RlIG1vZGU7CiAJc3RydWN0IGNsayAqc3lzY2xr OwogCXN0cnVjdCByZWd1bGF0b3IgKnZfYXBlOwpAQCAtMzQyLDE1ICsyNjYsNiBAQCBzdGF0aWMg dm9pZCBhYjg1MDBfdXNiX3BoeV9lbmFibGUoc3RydWN0IGFiODUwMF91c2IgKmFiLCBib29sIHNl bF9ob3N0KQogCWFieDUwMF9tYXNrX2FuZF9zZXRfcmVnaXN0ZXJfaW50ZXJydXB0aWJsZShhYi0+ ZGV2LAogCQkJQUI4NTAwX1VTQiwgQUI4NTAwX1VTQl9QSFlfQ1RSTF9SRUcsCiAJCQliaXQsIGJp dCk7Ci0KLQlpZiAoYWItPmZsYWdzICYgQUI4NTAwX1VTQl9GTEFHX1VTRV9WQlVTX0hPU1RfUVVJ UkspIHsKLQkJaWYgKHNlbF9ob3N0KQotCQkJYWJ4NTAwX3NldF9yZWdpc3Rlcl9pbnRlcnJ1cHRp YmxlKGFiLT5kZXYsCi0JCQkJCUFCODUwMF9VU0IsIEFCODU0MF9VU0JfT1RHX0NUTF9SRUcsCi0J CQkJCUFCODU0MF9CSVRfT1RHX0NUTF9WQlVTX1ZBTElEX0VOQSB8Ci0JCQkJCUFCODU0MF9CSVRf T1RHX0NUTF9JRF9IT1NUX0VOQSB8Ci0JCQkJCUFCODU0MF9CSVRfT1RHX0NUTF9JRF9ERVZfRU5B KTsKLQl9CiB9CiAKIHN0YXRpYyB2b2lkIGFiODUwMF91c2JfcGh5X2Rpc2FibGUoc3RydWN0IGFi ODUwMF91c2IgKmFiLCBib29sIHNlbF9ob3N0KQpAQCAtMzk1LDI2MyArMzEwLDYgQEAgc3RhdGlj IHZvaWQgYWI4NTAwX3VzYl9waHlfZGlzYWJsZShzdHJ1Y3QgYWI4NTAwX3VzYiAqYWIsIGJvb2wg c2VsX2hvc3QpCiAjZGVmaW5lIGFiODUwMF91c2JfcGVyaV9waHlfZW4oYWIpCWFiODUwMF91c2Jf cGh5X2VuYWJsZShhYiwgZmFsc2UpCiAjZGVmaW5lIGFiODUwMF91c2JfcGVyaV9waHlfZGlzKGFi KQlhYjg1MDBfdXNiX3BoeV9kaXNhYmxlKGFiLCBmYWxzZSkKIAotc3RhdGljIGludCBhYjk1NDBf dXNiX2xpbmtfc3RhdHVzX3VwZGF0ZShzdHJ1Y3QgYWI4NTAwX3VzYiAqYWIsCi0JCWVudW0gYWI5 NTQwX3VzYl9saW5rX3N0YXR1cyBsc3RzKQotewotCWVudW0gdXg1MDBfbXVzYl92YnVzX2lkX3N0 YXR1cyBldmVudCA9IDA7Ci0KLQlkZXZfZGJnKGFiLT5kZXYsICJhYjk1NDBfdXNiX2xpbmtfc3Rh dHVzX3VwZGF0ZSAlZFxuIiwgbHN0cyk7Ci0KLQlpZiAoYWItPnByZXZpb3VzX2xpbmtfc3RhdHVz X3N0YXRlID09IFVTQl9MSU5LX0hNX0lER05EXzk1NDAgJiYKLQkJCShsc3RzID09IFVTQl9MSU5L X1NURF9IT1NUX0NfTlNfOTU0MCB8fAotCQkJIGxzdHMgPT0gVVNCX0xJTktfU1REX0hPU1RfTkNf OTU0MCkpCi0JCXJldHVybiAwOwotCi0JaWYgKGFiLT5wcmV2aW91c19saW5rX3N0YXR1c19zdGF0 ZSA9PSBVU0JfTElOS19BQ0FfUklEX0FfOTU0MCAmJgotCQkJKGxzdHMgPT0gVVNCX0xJTktfU1RE X0hPU1RfTkNfOTU0MCkpCi0JCXJldHVybiAwOwotCi0JYWItPnByZXZpb3VzX2xpbmtfc3RhdHVz X3N0YXRlID0gbHN0czsKLQotCXN3aXRjaCAobHN0cykgewotCWNhc2UgVVNCX0xJTktfQUNBX1JJ RF9CXzk1NDA6Ci0JCWV2ZW50ID0gVVg1MDBfTVVTQl9SSURCOwotCWNhc2UgVVNCX0xJTktfTk9U X0NPTkZJR1VSRURfOTU0MDoKLQljYXNlIFVTQl9MSU5LX1JFU0VSVkVEMF85NTQwOgotCWNhc2Ug VVNCX0xJTktfUkVTRVJWRUQxXzk1NDA6Ci0JY2FzZSBVU0JfTElOS19SRVNFUlZFRDJfOTU0MDoK LQljYXNlIFVTQl9MSU5LX1JFU0VSVkVEM185NTQwOgotCQlpZiAoYWItPm1vZGUgPT0gVVNCX1BF UklQSEVSQUwpCi0JCQlhdG9taWNfbm90aWZpZXJfY2FsbF9jaGFpbigmYWItPnBoeS5ub3RpZmll ciwKLQkJCQkJVVg1MDBfTVVTQl9DTEVBTiwgJmFiLT52YnVzX2RyYXcpOwotCQlhYi0+bW9kZSA9 IFVTQl9JRExFOwotCQlhYi0+cGh5Lm90Zy0+ZGVmYXVsdF9hID0gZmFsc2U7Ci0JCWFiLT52YnVz X2RyYXcgPSAwOwotCQlpZiAoZXZlbnQgIT0gVVg1MDBfTVVTQl9SSURCKQotCQkJZXZlbnQgPSBV WDUwMF9NVVNCX05PTkU7Ci0JCS8qIEZhbGxiYWNrIHRvIGRlZmF1bHQgQl9JRExFIGFzIG5vdGhp bmcgaXMgY29ubmVjdGVkLiAqLwotCQlhYi0+cGh5Lm90Zy0+c3RhdGUgPSBPVEdfU1RBVEVfQl9J RExFOwotCQl1c2JfcGh5X3NldF9ldmVudCgmYWItPnBoeSwgVVNCX0VWRU5UX05PTkUpOwotCQli cmVhazsKLQotCWNhc2UgVVNCX0xJTktfQUNBX1JJRF9DX05NXzk1NDA6Ci0JCWV2ZW50ID0gVVg1 MDBfTVVTQl9SSURDOwotCWNhc2UgVVNCX0xJTktfU1REX0hPU1RfTkNfOTU0MDoKLQljYXNlIFVT Ql9MSU5LX1NURF9IT1NUX0NfTlNfOTU0MDoKLQljYXNlIFVTQl9MSU5LX1NURF9IT1NUX0NfU185 NTQwOgotCWNhc2UgVVNCX0xJTktfQ0RQXzk1NDA6Ci0JCWlmIChhYi0+bW9kZSA9PSBVU0JfSE9T VCkgewotCQkJYWItPm1vZGUgPSBVU0JfUEVSSVBIRVJBTDsKLQkJCWFiODUwMF91c2JfaG9zdF9w aHlfZGlzKGFiKTsKLQkJCWFiODUwMF91c2JfcGVyaV9waHlfZW4oYWIpOwotCQkJYXRvbWljX25v dGlmaWVyX2NhbGxfY2hhaW4oJmFiLT5waHkubm90aWZpZXIsCi0JCQkJCVVYNTAwX01VU0JfUFJF UEFSRSwgJmFiLT52YnVzX2RyYXcpOwotCQkJdXNiX3BoeV9zZXRfZXZlbnQoJmFiLT5waHksIFVT Ql9FVkVOVF9FTlVNRVJBVEVEKTsKLQkJfQotCQlpZiAoYWItPm1vZGUgPT0gVVNCX0lETEUpIHsK LQkJCWFiLT5tb2RlID0gVVNCX1BFUklQSEVSQUw7Ci0JCQlhYjg1MDBfdXNiX3BlcmlfcGh5X2Vu KGFiKTsKLQkJCWF0b21pY19ub3RpZmllcl9jYWxsX2NoYWluKCZhYi0+cGh5Lm5vdGlmaWVyLAot CQkJCQlVWDUwMF9NVVNCX1BSRVBBUkUsICZhYi0+dmJ1c19kcmF3KTsKLQkJCXVzYl9waHlfc2V0 X2V2ZW50KCZhYi0+cGh5LCBVU0JfRVZFTlRfRU5VTUVSQVRFRCk7Ci0JCX0KLQkJaWYgKGV2ZW50 ICE9IFVYNTAwX01VU0JfUklEQykKLQkJCWV2ZW50ID0gVVg1MDBfTVVTQl9WQlVTOwotCQlicmVh azsKLQotCWNhc2UgVVNCX0xJTktfQUNBX1JJRF9BXzk1NDA6Ci0JCWV2ZW50ID0gVVg1MDBfTVVT Ql9SSURBOwotCWNhc2UgVVNCX0xJTktfSE1fSURHTkRfOTU0MDoKLQljYXNlIFVTQl9MSU5LX1NU RF9VUFNUUkVBTV85NTQwOgotCQlpZiAoYWItPm1vZGUgPT0gVVNCX1BFUklQSEVSQUwpIHsKLQkJ CWFiLT5tb2RlID0gVVNCX0hPU1Q7Ci0JCQlhYjg1MDBfdXNiX3BlcmlfcGh5X2RpcyhhYik7Ci0J CQlhYjg1MDBfdXNiX2hvc3RfcGh5X2VuKGFiKTsKLQkJCWF0b21pY19ub3RpZmllcl9jYWxsX2No YWluKCZhYi0+cGh5Lm5vdGlmaWVyLAotCQkJCQlVWDUwMF9NVVNCX1BSRVBBUkUsICZhYi0+dmJ1 c19kcmF3KTsKLQkJfQotCQlpZiAoYWItPm1vZGUgPT0gVVNCX0lETEUpIHsKLQkJCWFiLT5tb2Rl ID0gVVNCX0hPU1Q7Ci0JCQlhYjg1MDBfdXNiX2hvc3RfcGh5X2VuKGFiKTsKLQkJCWF0b21pY19u b3RpZmllcl9jYWxsX2NoYWluKCZhYi0+cGh5Lm5vdGlmaWVyLAotCQkJCQlVWDUwMF9NVVNCX1BS RVBBUkUsICZhYi0+dmJ1c19kcmF3KTsKLQkJfQotCQlhYi0+cGh5Lm90Zy0+ZGVmYXVsdF9hID0g dHJ1ZTsKLQkJaWYgKGV2ZW50ICE9IFVYNTAwX01VU0JfUklEQSkKLQkJCWV2ZW50ID0gVVg1MDBf TVVTQl9JRDsKLQotCQlhdG9taWNfbm90aWZpZXJfY2FsbF9jaGFpbigmYWItPnBoeS5ub3RpZmll ciwKLQkJCQlldmVudCwgJmFiLT52YnVzX2RyYXcpOwotCQlicmVhazsKLQotCWNhc2UgVVNCX0xJ TktfREVESUNBVEVEX0NIR185NTQwOgotCQlhYi0+bW9kZSA9IFVTQl9ERURJQ0FURURfQ0hHOwot CQlldmVudCA9IFVYNTAwX01VU0JfQ0hBUkdFUjsKLQkJYXRvbWljX25vdGlmaWVyX2NhbGxfY2hh aW4oJmFiLT5waHkubm90aWZpZXIsCi0JCQkJZXZlbnQsICZhYi0+dmJ1c19kcmF3KTsKLQkJdXNi X3BoeV9zZXRfZXZlbnQoJmFiLT5waHksIFVTQl9FVkVOVF9DSEFSR0VSKTsKLQkJYnJlYWs7Ci0K LQljYXNlIFVTQl9MSU5LX1BIWUVOX05PX1ZCVVNfTk9fSURHTkRfOTU0MDoKLQljYXNlIFVTQl9M SU5LX1NURF9VUFNUUkVBTV9OT19JREdOR19WQlVTXzk1NDA6Ci0JCWlmICghKGlzX2FiOTU0MF8y cDBfb3JfZWFybGllcihhYi0+YWI4NTAwKSkpIHsKLQkJCWV2ZW50ID0gVVg1MDBfTVVTQl9OT05F OwotCQkJaWYgKGFiLT5tb2RlID09IFVTQl9IT1NUKSB7Ci0JCQkJYWItPnBoeS5vdGctPmRlZmF1 bHRfYSA9IGZhbHNlOwotCQkJCWFiLT52YnVzX2RyYXcgPSAwOwotCQkJCWF0b21pY19ub3RpZmll cl9jYWxsX2NoYWluKCZhYi0+cGh5Lm5vdGlmaWVyLAotCQkJCQkJZXZlbnQsICZhYi0+dmJ1c19k cmF3KTsKLQkJCQlhYjg1MDBfdXNiX2hvc3RfcGh5X2RpcyhhYik7Ci0JCQkJYWItPm1vZGUgPSBV U0JfSURMRTsKLQkJCX0KLQkJCWlmIChhYi0+bW9kZSA9PSBVU0JfUEVSSVBIRVJBTCkgewotCQkJ CWF0b21pY19ub3RpZmllcl9jYWxsX2NoYWluKCZhYi0+cGh5Lm5vdGlmaWVyLAotCQkJCQkJZXZl bnQsICZhYi0+dmJ1c19kcmF3KTsKLQkJCQlhYjg1MDBfdXNiX3BlcmlfcGh5X2RpcyhhYik7Ci0J CQkJYXRvbWljX25vdGlmaWVyX2NhbGxfY2hhaW4oJmFiLT5waHkubm90aWZpZXIsCi0JCQkJCQlV WDUwMF9NVVNCX0NMRUFOLAotCQkJCQkJJmFiLT52YnVzX2RyYXcpOwotCQkJCWFiLT5tb2RlID0g VVNCX0lETEU7Ci0JCQkJYWItPnBoeS5vdGctPmRlZmF1bHRfYSA9IGZhbHNlOwotCQkJCWFiLT52 YnVzX2RyYXcgPSAwOwotCQkJCXVzYl9waHlfc2V0X2V2ZW50KCZhYi0+cGh5LCBVU0JfRVZFTlRf Tk9ORSk7Ci0JCQl9Ci0JCX0KLQkJYnJlYWs7Ci0KLQlkZWZhdWx0OgotCQlicmVhazsKLQl9Ci0K LQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBhYjg1NDBfdXNiX2xpbmtfc3RhdHVzX3VwZGF0 ZShzdHJ1Y3QgYWI4NTAwX3VzYiAqYWIsCi0JCWVudW0gYWI4NTQwX3VzYl9saW5rX3N0YXR1cyBs c3RzKQotewotCWVudW0gdXg1MDBfbXVzYl92YnVzX2lkX3N0YXR1cyBldmVudCA9IDA7Ci0KLQlk ZXZfZGJnKGFiLT5kZXYsICJhYjg1NDBfdXNiX2xpbmtfc3RhdHVzX3VwZGF0ZSAlZFxuIiwgbHN0 cyk7Ci0KLQlpZiAoYWItPmVuYWJsZWRfY2hhcmdpbmdfZGV0ZWN0aW9uKSB7Ci0JCS8qIERpc2Fi bGUgVVNCIENoYXJnZXIgZGV0ZWN0aW9uICovCi0JCWFieDUwMF9tYXNrX2FuZF9zZXRfcmVnaXN0 ZXJfaW50ZXJydXB0aWJsZShhYi0+ZGV2LAotCQkJCUFCODUwMF9VU0IsIEFCODU0MF9WQlVTX0NU UkxfUkVHLAotCQkJCUFCODU0MF9CSVRfVkJVU19DVFJMX0NIQVJHX0RFVF9FTkEsIDB4MDApOwot CQlhYi0+ZW5hYmxlZF9jaGFyZ2luZ19kZXRlY3Rpb24gPSBmYWxzZTsKLQl9Ci0KLQkvKgotCSAq IFNwdXJpb3VzIGxpbmtfc3RhdHVzIGludGVycnVwdHMgYXJlIHNlZW4gaW4gY2FzZSBvZiBhCi0J ICogZGlzY29ubmVjdGlvbiBvZiBhIGRldmljZSBpbiBJREdORCBhbmQgUklEQSBzdGFnZQotCSAq LwotCWlmIChhYi0+cHJldmlvdXNfbGlua19zdGF0dXNfc3RhdGUgPT0gVVNCX0xJTktfSE1fSURH TkRfODU0MCAmJgotCQkJKGxzdHMgPT0gVVNCX0xJTktfU1REX0hPU1RfQ19OU184NTQwIHx8Ci0J CQkgbHN0cyA9PSBVU0JfTElOS19TVERfSE9TVF9OQ184NTQwKSkKLQkJcmV0dXJuIDA7Ci0KLQlp ZiAoYWItPnByZXZpb3VzX2xpbmtfc3RhdHVzX3N0YXRlID09IFVTQl9MSU5LX0FDQV9SSURfQV84 NTQwICYmCi0JCQkobHN0cyA9PSBVU0JfTElOS19TVERfSE9TVF9OQ184NTQwKSkKLQkJcmV0dXJu IDA7Ci0KLQlhYi0+cHJldmlvdXNfbGlua19zdGF0dXNfc3RhdGUgPSBsc3RzOwotCi0Jc3dpdGNo IChsc3RzKSB7Ci0JY2FzZSBVU0JfTElOS19BQ0FfUklEX0JfODU0MDoKLQkJZXZlbnQgPSBVWDUw MF9NVVNCX1JJREI7Ci0JY2FzZSBVU0JfTElOS19OT1RfQ09ORklHVVJFRF84NTQwOgotCWNhc2Ug VVNCX0xJTktfUkVTRVJWRUQwXzg1NDA6Ci0JY2FzZSBVU0JfTElOS19SRVNFUlZFRDFfODU0MDoK LQljYXNlIFVTQl9MSU5LX1JFU0VSVkVEMl84NTQwOgotCWNhc2UgVVNCX0xJTktfUkVTRVJWRUQz Xzg1NDA6Ci0JCWFiLT5tb2RlID0gVVNCX0lETEU7Ci0JCWFiLT5waHkub3RnLT5kZWZhdWx0X2Eg PSBmYWxzZTsKLQkJYWItPnZidXNfZHJhdyA9IDA7Ci0JCWlmIChldmVudCAhPSBVWDUwMF9NVVNC X1JJREIpCi0JCQlldmVudCA9IFVYNTAwX01VU0JfTk9ORTsKLQkJLyoKLQkJICogRmFsbGJhY2sg dG8gZGVmYXVsdCBCX0lETEUgYXMgbm90aGluZwotCQkgKiBpcyBjb25uZWN0ZWQKLQkJICovCi0J CWFiLT5waHkub3RnLT5zdGF0ZSA9IE9UR19TVEFURV9CX0lETEU7Ci0JCXVzYl9waHlfc2V0X2V2 ZW50KCZhYi0+cGh5LCBVU0JfRVZFTlRfTk9ORSk7Ci0JCWJyZWFrOwotCi0JY2FzZSBVU0JfTElO S19BQ0FfUklEX0NfTk1fODU0MDoKLQkJZXZlbnQgPSBVWDUwMF9NVVNCX1JJREM7Ci0JY2FzZSBV U0JfTElOS19TVERfSE9TVF9OQ184NTQwOgotCWNhc2UgVVNCX0xJTktfU1REX0hPU1RfQ19OU184 NTQwOgotCWNhc2UgVVNCX0xJTktfU1REX0hPU1RfQ19TXzg1NDA6Ci0JY2FzZSBVU0JfTElOS19D RFBfODU0MDoKLQkJaWYgKGFiLT5tb2RlID09IFVTQl9JRExFKSB7Ci0JCQlhYi0+bW9kZSA9IFVT Ql9QRVJJUEhFUkFMOwotCQkJYWI4NTAwX3VzYl9wZXJpX3BoeV9lbihhYik7Ci0JCQlhdG9taWNf bm90aWZpZXJfY2FsbF9jaGFpbigmYWItPnBoeS5ub3RpZmllciwKLQkJCQkJVVg1MDBfTVVTQl9Q UkVQQVJFLCAmYWItPnZidXNfZHJhdyk7Ci0JCQl1c2JfcGh5X3NldF9ldmVudCgmYWItPnBoeSwg VVNCX0VWRU5UX0VOVU1FUkFURUQpOwotCQl9Ci0JCWlmIChldmVudCAhPSBVWDUwMF9NVVNCX1JJ REMpCi0JCQlldmVudCA9IFVYNTAwX01VU0JfVkJVUzsKLQkJYnJlYWs7Ci0KLQljYXNlIFVTQl9M SU5LX0FDQV9SSURfQV84NTQwOgotCWNhc2UgVVNCX0xJTktfQUNBX0RPQ0tfQ0hHUl84NTQwOgot CQlldmVudCA9IFVYNTAwX01VU0JfUklEQTsKLQljYXNlIFVTQl9MSU5LX0hNX0lER05EXzg1NDA6 Ci0JY2FzZSBVU0JfTElOS19TVERfVVBTVFJFQU1fODU0MDoKLQkJaWYgKGFiLT5tb2RlID09IFVT Ql9JRExFKSB7Ci0JCQlhYi0+bW9kZSA9IFVTQl9IT1NUOwotCQkJYWI4NTAwX3VzYl9ob3N0X3Bo eV9lbihhYik7Ci0JCQlhdG9taWNfbm90aWZpZXJfY2FsbF9jaGFpbigmYWItPnBoeS5ub3RpZmll ciwKLQkJCQkJVVg1MDBfTVVTQl9QUkVQQVJFLCAmYWItPnZidXNfZHJhdyk7Ci0JCX0KLQkJYWIt PnBoeS5vdGctPmRlZmF1bHRfYSA9IHRydWU7Ci0JCWlmIChldmVudCAhPSBVWDUwMF9NVVNCX1JJ REEpCi0JCQlldmVudCA9IFVYNTAwX01VU0JfSUQ7Ci0JCWF0b21pY19ub3RpZmllcl9jYWxsX2No YWluKCZhYi0+cGh5Lm5vdGlmaWVyLAotCQkJCWV2ZW50LCAmYWItPnZidXNfZHJhdyk7Ci0JCWJy ZWFrOwotCi0JY2FzZSBVU0JfTElOS19ERURJQ0FURURfQ0hHXzg1NDA6Ci0JCWFiLT5tb2RlID0g VVNCX0RFRElDQVRFRF9DSEc7Ci0JCWV2ZW50ID0gVVg1MDBfTVVTQl9DSEFSR0VSOwotCQlhdG9t aWNfbm90aWZpZXJfY2FsbF9jaGFpbigmYWItPnBoeS5ub3RpZmllciwKLQkJCQlldmVudCwgJmFi LT52YnVzX2RyYXcpOwotCQl1c2JfcGh5X3NldF9ldmVudCgmYWItPnBoeSwgVVNCX0VWRU5UX0NI QVJHRVIpOwotCQlicmVhazsKLQotCWNhc2UgVVNCX0xJTktfUEhZRU5fTk9fVkJVU19OT19JREdO RF84NTQwOgotCWNhc2UgVVNCX0xJTktfU1REX1VQU1RSRUFNX05PX0lER05HX1ZCVVNfODU0MDoK LQkJZXZlbnQgPSBVWDUwMF9NVVNCX05PTkU7Ci0JCWlmIChhYi0+bW9kZSA9PSBVU0JfSE9TVCkg ewotCQkJYWItPnBoeS5vdGctPmRlZmF1bHRfYSA9IGZhbHNlOwotCQkJYWItPnZidXNfZHJhdyA9 IDA7Ci0JCQlhdG9taWNfbm90aWZpZXJfY2FsbF9jaGFpbigmYWItPnBoeS5ub3RpZmllciwKLQkJ CQkJZXZlbnQsICZhYi0+dmJ1c19kcmF3KTsKLQkJCWFiODUwMF91c2JfaG9zdF9waHlfZGlzKGFi KTsKLQkJCWFiLT5tb2RlID0gVVNCX0lETEU7Ci0JCX0KLQkJaWYgKGFiLT5tb2RlID09IFVTQl9Q RVJJUEhFUkFMKSB7Ci0JCQlhdG9taWNfbm90aWZpZXJfY2FsbF9jaGFpbigmYWItPnBoeS5ub3Rp ZmllciwKLQkJCQkJZXZlbnQsICZhYi0+dmJ1c19kcmF3KTsKLQkJCWFiODUwMF91c2JfcGVyaV9w aHlfZGlzKGFiKTsKLQkJCWF0b21pY19ub3RpZmllcl9jYWxsX2NoYWluKCZhYi0+cGh5Lm5vdGlm aWVyLAotCQkJCQlVWDUwMF9NVVNCX0NMRUFOLCAmYWItPnZidXNfZHJhdyk7Ci0JCQlhYi0+bW9k ZSA9IFVTQl9JRExFOwotCQkJYWItPnBoeS5vdGctPmRlZmF1bHRfYSA9IGZhbHNlOwotCQkJYWIt PnZidXNfZHJhdyA9IDA7Ci0JCXVzYl9waHlfc2V0X2V2ZW50KCZhYi0+cGh5LCBVU0JfRVZFTlRf Tk9ORSk7Ci0JCX0KLQkJYnJlYWs7Ci0KLQlkZWZhdWx0OgotCQlldmVudCA9IFVYNTAwX01VU0Jf Tk9ORTsKLQkJYnJlYWs7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQgYWI4NTA1 X3VzYl9saW5rX3N0YXR1c191cGRhdGUoc3RydWN0IGFiODUwMF91c2IgKmFiLAogCQllbnVtIGFi ODUwNV91c2JfbGlua19zdGF0dXMgbHN0cykKIHsKQEAgLTg1OCwyMCArNTE2LDYgQEAgc3RhdGlj IGludCBhYng1MDBfdXNiX2xpbmtfc3RhdHVzX3VwZGF0ZShzdHJ1Y3QgYWI4NTAwX3VzYiAqYWIp CiAJCQkJQUI4NTAwX1VTQiwgQUI4NTA1X1VTQl9MSU5FX1NUQVRfUkVHLCAmcmVnKTsKIAkJbHN0 cyA9IChyZWcgPj4gMykgJiAweDFGOwogCQlyZXQgPSBhYjg1MDVfdXNiX2xpbmtfc3RhdHVzX3Vw ZGF0ZShhYiwgbHN0cyk7Ci0JfSBlbHNlIGlmIChpc19hYjg1NDAoYWItPmFiODUwMCkpIHsKLQkJ ZW51bSBhYjg1NDBfdXNiX2xpbmtfc3RhdHVzIGxzdHM7Ci0KLQkJYWJ4NTAwX2dldF9yZWdpc3Rl cl9pbnRlcnJ1cHRpYmxlKGFiLT5kZXYsCi0JCQkJQUI4NTAwX1VTQiwgQUI4NTQwX1VTQl9MSU5L X1NUQVRfUkVHLCAmcmVnKTsKLQkJbHN0cyA9IChyZWcgPj4gMykgJiAweEZGOwotCQlyZXQgPSBh Yjg1NDBfdXNiX2xpbmtfc3RhdHVzX3VwZGF0ZShhYiwgbHN0cyk7Ci0JfSBlbHNlIGlmIChpc19h Yjk1NDAoYWItPmFiODUwMCkpIHsKLQkJZW51bSBhYjk1NDBfdXNiX2xpbmtfc3RhdHVzIGxzdHM7 Ci0KLQkJYWJ4NTAwX2dldF9yZWdpc3Rlcl9pbnRlcnJ1cHRpYmxlKGFiLT5kZXYsCi0JCQkJQUI4 NTAwX1VTQiwgQUI5NTQwX1VTQl9MSU5LX1NUQVRfUkVHLCAmcmVnKTsKLQkJbHN0cyA9IChyZWcg Pj4gMykgJiAweEZGOwotCQlyZXQgPSBhYjk1NDBfdXNiX2xpbmtfc3RhdHVzX3VwZGF0ZShhYiwg bHN0cyk7CiAJfQogCiAJcmV0dXJuIHJldDsKQEAgLTk0Niw2OSArNTkwLDYgQEAgc3RhdGljIHZv aWQgYWI4NTAwX3VzYl9waHlfZGlzYWJsZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK IAkJYWI4NTAwX3VzYl9wZXJpX3BoeV9kaXMoYWIpOwogfQogCi0vKiBDaGVjayBpZiBWQlVTIGlz IHNldCBhbmQgbGlua3N0YXR1cyBoYXMgbm90IGRldGVjdGVkIGEgY2FibGUuICovCi1zdGF0aWMg Ym9vbCBhYjg1MDBfdXNiX2NoZWNrX3ZidXNfc3RhdHVzKHN0cnVjdCBhYjg1MDBfdXNiICphYikK LXsKLQl1OCBpc291cmNlMjsKLQl1OCByZWc7Ci0JZW51bSBhYjg1NDBfdXNiX2xpbmtfc3RhdHVz IGxzdHM7Ci0KLQlhYng1MDBfZ2V0X3JlZ2lzdGVyX2ludGVycnVwdGlibGUoYWItPmRldiwKLQkJ CUFCODUwMF9JTlRFUlJVUFQsIEFCODUwMF9JVF9TT1VSQ0UyX1JFRywKLQkJCSZpc291cmNlMik7 Ci0KLQkvKiBJZiBWYnVzIGlzIGJlbG93IDMuNlYgYWJvcnQgKi8KLQlpZiAoIShpc291cmNlMiAm IEFCODUwMF9CSVRfU09VUkNFMl9WQlVTREVUKSkKLQkJcmV0dXJuIGZhbHNlOwotCi0JYWJ4NTAw X2dldF9yZWdpc3Rlcl9pbnRlcnJ1cHRpYmxlKGFiLT5kZXYsCi0JCQlBQjg1MDBfVVNCLCBBQjg1 NDBfVVNCX0xJTktfU1RBVF9SRUcsCi0JCQkmcmVnKTsKLQotCWxzdHMgPSAocmVnID4+IDMpICYg MHhGRjsKLQotCS8qIENoZWNrIGlmIGxpbmtzdGF0dXMgaGFzIGRldGVjdGVkIGEgY2FibGUgKi8K LQlpZiAobHN0cykKLQkJcmV0dXJuIGZhbHNlOwotCi0JcmV0dXJuIHRydWU7Ci19Ci0KLS8qIHJl LXRyaWdnZXIgY2hhcmdlciBkZXRlY3Rpb24gYWdhaW4gd2l0aCB3YXRjaGRvZyByZS1raWNrLiAq Lwotc3RhdGljIHZvaWQgYWI4NTAwX3VzYl92YnVzX3R1cm5fb25fZXZlbnRfd29yayhzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspCi17Ci0Jc3RydWN0IGFiODUwMF91c2IgKmFiID0gY29udGFpbmVy X29mKHdvcmssIHN0cnVjdCBhYjg1MDBfdXNiLAotCQkJdmJ1c19ldmVudF93b3JrKTsKLQotCWlm IChhYi0+bW9kZSAhPSBVU0JfSURMRSkKLQkJcmV0dXJuOwotCi0JYWJ4NTAwX3NldF9yZWdpc3Rl cl9pbnRlcnJ1cHRpYmxlKGFiLT5kZXYsCi0JCQlBQjg1MDBfU1lTX0NUUkwyX0JMT0NLLCBBQjg1 MDBfTUFJTl9XRF9DVFJMX1JFRywKLQkJCUFCODUwMF9CSVRfV0RfQ1RSTF9FTkFCTEUpOwotCi0J dWRlbGF5KDEwMCk7Ci0KLQlhYng1MDBfc2V0X3JlZ2lzdGVyX2ludGVycnVwdGlibGUoYWItPmRl diwKLQkJCUFCODUwMF9TWVNfQ1RSTDJfQkxPQ0ssIEFCODUwMF9NQUlOX1dEX0NUUkxfUkVHLAot CQkJQUI4NTAwX0JJVF9XRF9DVFJMX0VOQUJMRSB8IEFCODUwMF9CSVRfV0RfQ1RSTF9LSUNLKTsK LQotCXVkZWxheSgxMDApOwotCi0JLyogRGlzYWJsZSBNYWluIHdhdGNoZG9nICovCi0JYWJ4NTAw X3NldF9yZWdpc3Rlcl9pbnRlcnJ1cHRpYmxlKGFiLT5kZXYsCi0JCQlBQjg1MDBfU1lTX0NUUkwy X0JMT0NLLCBBQjg1MDBfTUFJTl9XRF9DVFJMX1JFRywKLQkJCTB4MCk7Ci0KLQkvKiBFbmFibGUg VVNCIENoYXJnZXIgZGV0ZWN0aW9uICovCi0JYWJ4NTAwX21hc2tfYW5kX3NldF9yZWdpc3Rlcl9p bnRlcnJ1cHRpYmxlKGFiLT5kZXYsCi0JCQlBQjg1MDBfVVNCLCBBQjg1NDBfVkJVU19DVFJMX1JF RywKLQkJCUFCODU0MF9CSVRfVkJVU19DVFJMX0NIQVJHX0RFVF9FTkEsCi0JCQlBQjg1NDBfQklU X1ZCVVNfQ1RSTF9DSEFSR19ERVRfRU5BKTsKLQotCWFiLT5lbmFibGVkX2NoYXJnaW5nX2RldGVj dGlvbiA9IHRydWU7Ci19Ci0KIHN0YXRpYyBpbnQgYWI4NTAwX3VzYl9zZXRfc3VzcGVuZChzdHJ1 Y3QgdXNiX3BoeSAqeCwgaW50IHN1c3BlbmQpCiB7CiAJLyogVE9ETyAqLwpAQCAtMTI1Niw2NiAr ODM3LDYgQEAgc3RhdGljIHZvaWQgYWI4NTAwX3VzYl9zZXRfYWI4NTA1X3R1bmluZ192YWx1ZXMo c3RydWN0IGFiODUwMF91c2IgKmFiKQogCQkJCWVycik7CiB9CiAKLXN0YXRpYyB2b2lkIGFiODUw MF91c2Jfc2V0X2FiODU0MF90dW5pbmdfdmFsdWVzKHN0cnVjdCBhYjg1MDBfdXNiICphYikKLXsK LQlpbnQgZXJyOwotCi0JZXJyID0gYWJ4NTAwX3NldF9yZWdpc3Rlcl9pbnRlcnJ1cHRpYmxlKGFi LT5kZXYsCi0JCQlBQjg1NDBfREVCVUcsIEFCODUwMF9VU0JfUEhZX1RVTkUxLCAweENDKTsKLQlp ZiAoZXJyIDwgMCkKLQkJZGV2X2VycihhYi0+ZGV2LCAiRmFpbGVkIHRvIHNldCBQSFlfVFVORTEg cmVnaXN0ZXIgcmV0PSVkXG4iLAotCQkJCWVycik7Ci0KLQllcnIgPSBhYng1MDBfc2V0X3JlZ2lz dGVyX2ludGVycnVwdGlibGUoYWItPmRldiwKLQkJCUFCODU0MF9ERUJVRywgQUI4NTAwX1VTQl9Q SFlfVFVORTIsIDB4NjApOwotCWlmIChlcnIgPCAwKQotCQlkZXZfZXJyKGFiLT5kZXYsICJGYWls ZWQgdG8gc2V0IFBIWV9UVU5FMiByZWdpc3RlciByZXQ9JWRcbiIsCi0JCQkJZXJyKTsKLQotCWVy ciA9IGFieDUwMF9zZXRfcmVnaXN0ZXJfaW50ZXJydXB0aWJsZShhYi0+ZGV2LAotCQkJQUI4NTQw X0RFQlVHLCBBQjg1MDBfVVNCX1BIWV9UVU5FMywgMHg5MCk7Ci0JaWYgKGVyciA8IDApCi0JCWRl dl9lcnIoYWItPmRldiwgIkZhaWxlZCB0byBzZXQgUEhZX1RVTkUzIHJlZ2lzdGVyIHJldD0lZFxu IiwKLQkJCQllcnIpOwotfQotCi1zdGF0aWMgdm9pZCBhYjg1MDBfdXNiX3NldF9hYjk1NDBfdHVu aW5nX3ZhbHVlcyhzdHJ1Y3QgYWI4NTAwX3VzYiAqYWIpCi17Ci0JaW50IGVycjsKLQotCS8qIEVu YWJsZSB0aGUgUEJUL0JhbmsgMHgxMiBhY2Nlc3MgKi8KLQllcnIgPSBhYng1MDBfc2V0X3JlZ2lz dGVyX2ludGVycnVwdGlibGUoYWItPmRldiwKLQkJCUFCODUwMF9ERVZFTE9QTUVOVCwgQUI4NTAw X0JBTksxMl9BQ0NFU1MsIDB4MDEpOwotCWlmIChlcnIgPCAwKQotCQlkZXZfZXJyKGFiLT5kZXYs ICJGYWlsZWQgdG8gZW5hYmxlIGJhbmsxMiBhY2Nlc3MgZXJyPSVkXG4iLAotCQkJCWVycik7Ci0K LQllcnIgPSBhYng1MDBfc2V0X3JlZ2lzdGVyX2ludGVycnVwdGlibGUoYWItPmRldiwKLQkJCUFC ODUwMF9ERUJVRywgQUI4NTAwX1VTQl9QSFlfVFVORTEsIDB4QzgpOwotCWlmIChlcnIgPCAwKQot CQlkZXZfZXJyKGFiLT5kZXYsICJGYWlsZWQgdG8gc2V0IFBIWV9UVU5FMSByZWdpc3RlciBlcnI9 JWRcbiIsCi0JCQkJZXJyKTsKLQotCWVyciA9IGFieDUwMF9zZXRfcmVnaXN0ZXJfaW50ZXJydXB0 aWJsZShhYi0+ZGV2LAotCQkJQUI4NTAwX0RFQlVHLCBBQjg1MDBfVVNCX1BIWV9UVU5FMiwgMHg2 MCk7Ci0JaWYgKGVyciA8IDApCi0JCWRldl9lcnIoYWItPmRldiwgIkZhaWxlZCB0byBzZXQgUEhZ X1RVTkUyIHJlZ2lzdGVyIGVycj0lZFxuIiwKLQkJCQllcnIpOwotCi0JZXJyID0gYWJ4NTAwX3Nl dF9yZWdpc3Rlcl9pbnRlcnJ1cHRpYmxlKGFiLT5kZXYsCi0JCQlBQjg1MDBfREVCVUcsIEFCODUw MF9VU0JfUEhZX1RVTkUzLCAweDgwKTsKLQlpZiAoZXJyIDwgMCkKLQkJZGV2X2VycihhYi0+ZGV2 LCAiRmFpbGVkIHRvIHNldCBQSFlfVFVORTMgcmVnaXN0ZXIgZXJyPSVkXG4iLAotCQkJCWVycik7 Ci0KLQkvKiBTd2l0Y2ggdG8gbm9ybWFsIG1vZGUvZGlzYWJsZSBCYW5rIDB4MTIgYWNjZXNzICov Ci0JZXJyID0gYWJ4NTAwX3NldF9yZWdpc3Rlcl9pbnRlcnJ1cHRpYmxlKGFiLT5kZXYsCi0JCQlB Qjg1MDBfREVWRUxPUE1FTlQsIEFCODUwMF9CQU5LMTJfQUNDRVNTLCAweDAwKTsKLQlpZiAoZXJy IDwgMCkKLQkJZGV2X2VycihhYi0+ZGV2LCAiRmFpbGVkIHRvIHN3aXRjaCBiYW5rMTIgYWNjZXNz IGVycj0lZFxuIiwKLQkJCQllcnIpOwotfQotCiBzdGF0aWMgaW50IGFiODUwMF91c2JfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgYWI4NTAwX3VzYgkqYWI7 CkBAIC0xMzYyLDE3ICs4ODMsNiBAQCBzdGF0aWMgaW50IGFiODUwMF91c2JfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJCUFCODUwMF9VU0JfRkxBR19VU0VfSURfV0FLRVVQ X0lSUSB8CiAJCQlBQjg1MDBfVVNCX0ZMQUdfVVNFX1ZCVVNfREVUX0lSUSB8CiAJCQlBQjg1MDBf VVNCX0ZMQUdfUkVHVUxBVE9SX1NFVF9WT0xUQUdFOwotCX0gZWxzZSBpZiAoaXNfYWI4NTQwKGFi LT5hYjg1MDApKSB7Ci0JCWFiLT5mbGFncyB8PSBBQjg1MDBfVVNCX0ZMQUdfVVNFX0xJTktfU1RB VFVTX0lSUSB8Ci0JCQlBQjg1MDBfVVNCX0ZMQUdfVVNFX0NIRUNLX1ZCVVNfU1RBVFVTIHwKLQkJ CUFCODUwMF9VU0JfRkxBR19VU0VfVkJVU19IT1NUX1FVSVJLIHwKLQkJCUFCODUwMF9VU0JfRkxB R19SRUdVTEFUT1JfU0VUX1ZPTFRBR0U7Ci0JfSBlbHNlIGlmIChpc19hYjk1NDAoYWItPmFiODUw MCkpIHsKLQkJYWItPmZsYWdzIHw9IEFCODUwMF9VU0JfRkxBR19VU0VfTElOS19TVEFUVVNfSVJR IHwKLQkJCUFCODUwMF9VU0JfRkxBR19SRUdVTEFUT1JfU0VUX1ZPTFRBR0U7Ci0JCWlmIChpc19h Yjk1NDBfMnAwX29yX2VhcmxpZXIoYWItPmFiODUwMCkpCi0JCQlhYi0+ZmxhZ3MgfD0gQUI4NTAw X1VTQl9GTEFHX1VTRV9JRF9XQUtFVVBfSVJRIHwKLQkJCQlBQjg1MDBfVVNCX0ZMQUdfVVNFX1ZC VVNfREVUX0lSUTsKIAl9CiAKIAkvKiBEaXNhYmxlIHJlZ3VsYXRvciB2b2x0YWdlIHNldHRpbmcg Zm9yIEFCODUwMCA8PSB2Mi4wICovCkBAIC0xMzg0LDggKzg5NCw2IEBAIHN0YXRpYyBpbnQgYWI4 NTAwX3VzYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCS8qIGFsbDogRGlz YWJsZSBwaHkgd2hlbiBjYWxsZWQgZnJvbSBzZXRfaG9zdCBhbmQgc2V0X3BlcmlwaGVyYWwgKi8K IAlJTklUX1dPUksoJmFiLT5waHlfZGlzX3dvcmssIGFiODUwMF91c2JfcGh5X2Rpc2FibGVfd29y ayk7CiAKLQlJTklUX1dPUksoJmFiLT52YnVzX2V2ZW50X3dvcmssIGFiODUwMF91c2JfdmJ1c190 dXJuX29uX2V2ZW50X3dvcmspOwotCiAJZXJyID0gYWI4NTAwX3VzYl9yZWd1bGF0b3JfZ2V0KGFi KTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwpAQCAtMTQxMiwxMiArOTIwLDYgQEAgc3RhdGlj IGludCBhYjg1MDBfdXNiX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZWxz ZSBpZiAoaXNfYWI4NTA1KGFiLT5hYjg1MDApKQogCQkvKiBQaHkgdHVuaW5nIHZhbHVlcyBmb3Ig QUI4NTA1ICovCiAJCWFiODUwMF91c2Jfc2V0X2FiODUwNV90dW5pbmdfdmFsdWVzKGFiKTsKLQll bHNlIGlmIChpc19hYjg1NDAoYWItPmFiODUwMCkpCi0JCS8qIFBoeSB0dW5pbmcgdmFsdWVzIGZv ciBBQjg1NDAgKi8KLQkJYWI4NTAwX3VzYl9zZXRfYWI4NTQwX3R1bmluZ192YWx1ZXMoYWIpOwot CWVsc2UgaWYgKGlzX2FiOTU0MChhYi0+YWI4NTAwKSkKLQkJLyogUGh5IHR1bmluZyB2YWx1ZXMg Zm9yIEFCOTU0MCAqLwotCQlhYjg1MDBfdXNiX3NldF9hYjk1NDBfdHVuaW5nX3ZhbHVlcyhhYik7 CiAKIAkvKiBOZWVkZWQgdG8gZW5hYmxlIElEIGRldGVjdGlvbi4gKi8KIAlhYjg1MDBfdXNiX3dk X3dvcmthcm91bmQoYWIpOwpAQCAtMTQyOCwxMSArOTMwLDYgQEAgc3RhdGljIGludCBhYjg1MDBf dXNiX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJICovCiAJYWI4NTAwX3Vz Yl9yZXN0YXJ0X3BoeShhYik7CiAKLQlpZiAoYWItPmZsYWdzICYgQUI4NTAwX1VTQl9GTEFHX1VT RV9DSEVDS19WQlVTX1NUQVRVUykgewotCQlpZiAoYWI4NTAwX3VzYl9jaGVja192YnVzX3N0YXR1 cyhhYikpCi0JCQlzY2hlZHVsZV93b3JrKCZhYi0+dmJ1c19ldmVudF93b3JrKTsKLQl9Ci0KIAlh Yng1MDBfdXNiX2xpbmtfc3RhdHVzX3VwZGF0ZShhYik7CiAKIAlkZXZfaW5mbygmcGRldi0+ZGV2 LCAicmV2aXNpb24gMHglMnggZHJpdmVyIGluaXRpYWxpemVkXG4iLCByZXYpOwpAQCAtMTQ0NSw3 ICs5NDIsNiBAQCBzdGF0aWMgaW50IGFiODUwMF91c2JfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCiAJc3RydWN0IGFiODUwMF91c2IgKmFiID0gcGxhdGZvcm1fZ2V0X2RydmRh dGEocGRldik7CiAKIAljYW5jZWxfd29ya19zeW5jKCZhYi0+cGh5X2Rpc193b3JrKTsKLQljYW5j ZWxfd29ya19zeW5jKCZhYi0+dmJ1c19ldmVudF93b3JrKTsKIAogCXVzYl9yZW1vdmVfcGh5KCZh Yi0+cGh5KTsKIApAQCAtMTQ1OSw4ICs5NTUsNiBAQCBzdGF0aWMgaW50IGFiODUwMF91c2JfcmVt b3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlX2lkIGFiODUwMF91c2JfZGV2dHlwZVtdID0gewogCXsgLm5hbWUgPSAi YWI4NTAwLXVzYiIsIH0sCi0JeyAubmFtZSA9ICJhYjg1NDAtdXNiIiwgfSwKLQl7IC5uYW1lID0g ImFiOTU0MC11c2IiLCB9LAogCXsgLyogc2VudGluZWwgKi8gfQogfTsKIE1PRFVMRV9ERVZJQ0Vf VEFCTEUocGxhdGZvcm0sIGFiODUwMF91c2JfZGV2dHlwZSk7Cg==