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: Add Proliic new chip: PL2303TB & PL2303N(G) From: Johan Hovold Message-Id: <20181218100242.GK20658@localhost> Date: Tue, 18 Dec 2018 11:02:42 +0100 To: Charles Yeh Cc: gregkh@linuxfoundation.org, johan@kernel.org, charles-yeh@prolific.com.tw, linux-usb@vger.kernel.org List-ID: T24gTW9uLCBEZWMgMTcsIDIwMTggYXQgMTI6NTE6MjRQTSArMDgwMCwgQ2hhcmxlcyBZZWggd3Jv dGU6Cj4gRnJvbSBiOWZkNzFjNjRkNGQwZDkzOWE3YTI3ZTA4YTc0ZDgxZjk2MGZmNWVhIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQo+IEZyb206IENoYXJsZXMgWWVoIDxjaGFybGVzeWVoNTIyQGdt YWlsLmNvbT4KPiBEYXRlOiBTYXQsIDE1IERlYyAyMDE4IDA3OjEwOjE3ICswODAwCj4gU3ViamVj dDogW1BBVENIXSBBZGQgUHJvbGlpYyBuZXcgY2hpcDogUEwyMzAzVEIgJiBQTDIzMDNOKEcpCj4g Cj4gQWRkIG5ldyBQSUQgdG8gc3VwcG9ydCBQTDIzMDNUQgoKSXMgdGhpcyBhbHNvIGFuIEhYTi10 eXBlIGRldmljZT8KCj4gQWRkIG1ldyBQSUQgdG8gc3VwcG9ydCBQTDIzMDMoTilHQy9HQi9HUy9H VC9HTC9HRQo+IEFkZCBuZXcgcmVxdWVzdCB0byBzdXBwb3J0IFBMMjMwM04oRykKPiAKPiBTaWdu ZWQtb2ZmLWJ5OiAgICBDaGFybGVzIFllaCA8Y2hhcmxlc3llaDUyMkBnbWFpbC5jb20+Cj4gLS0t Cj4gIGRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYyB8IDEwNiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0KPiAgZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5oIHwgIDExICsr KysKPiAgMiBmaWxlcyBjaGFuZ2VkLCA5NyBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jIGIvZHJpdmVycy91 c2Ivc2VyaWFsL3BsMjMwMy5jCj4gaW5kZXggYTRlMGQxM2ZjMTIxLi4wMDAxYjUyN2YwN2YgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jCj4gKysrIGIvZHJpdmVycy91 c2Ivc2VyaWFsL3BsMjMwMy5jCj4gQEAgLTMxLDYgKzMxLDggQEAKPiAgI2RlZmluZSBQTDIzMDNf UVVJUktfVUFSVF9TVEFURV9JRFgwICAgICAgICBCSVQoMCkKPiAgI2RlZmluZSBQTDIzMDNfUVVJ UktfTEVHQUNZICAgICAgICAgICAgQklUKDEpCj4gICNkZWZpbmUgUEwyMzAzX1FVSVJLX0VORFBP SU5UX0hBQ0sgICAgICAgIEJJVCgyKQo+ICsjZGVmaW5lIFBMMjMwM19RVUlSS19MRUdBQ1lfSFgg ICAgICAgICAgICBCSVQoMykgICAgLyogb2xkIElDIHR5cGUgKi8KPiArI2RlZmluZSBQTDIzMDNf UVVJUktfTEVHQUNZX04gICAgICAgICAgICBCSVQoNCkgICAgLyogbmV3IElDIHR5cGUgKi8KCkkg ZG9uJ3QgdGhlcmUncyBhbnkgbmVlZCB0byBhZGQgbmV3ICJxdWlyayIgZmxhZ3MgZm9yIHRoZXNl IHR5cGVzLiBKdXN0CnVzZSB0aGUgdHlwZSBzdG9yZWQgaW4gdGhlIGludGVyZmFjZSBwcml2YXRl IGRhdGEgZGlyZWN0bHkgKHN0cnVjdApwbDIzMDNfc2VyaWFsX3ByaXZhdGUpLgoKPiAgc3RhdGlj IGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlW10gPSB7Cj4gICAgICB7IFVTQl9E RVZJQ0UoUEwyMzAzX1ZFTkRPUl9JRCwgUEwyMzAzX1BST0RVQ1RfSUQpLAo+IEBAIC00Niw2ICs0 OCwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVbXSA9IHsK PiAgICAgIHsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9SX0lELCBQTDIzMDNfUFJPRFVDVF9JRF9I Q1IzMzEpIH0sCj4gICAgICB7IFVTQl9ERVZJQ0UoUEwyMzAzX1ZFTkRPUl9JRCwgUEwyMzAzX1BS T0RVQ1RfSURfTU9UT1JPTEEpIH0sCj4gICAgICB7IFVTQl9ERVZJQ0UoUEwyMzAzX1ZFTkRPUl9J RCwgUEwyMzAzX1BST0RVQ1RfSURfWlRFSykgfSwKPiArICAgIHsgVVNCX0RFVklDRShQTDIzMDNf VkVORE9SX0lELCBQTDIzMDNfUFJPRFVDVF9JRF9UQikgfSwKPiArICAgIHsgVVNCX0RFVklDRShQ TDIzMDNfVkVORE9SX0lELCBQTDIzMDNHX1BST0RVQ1RfSURfR0MpIH0sCj4gKyAgICB7IFVTQl9E RVZJQ0UoUEwyMzAzX1ZFTkRPUl9JRCwgUEwyMzAzR19QUk9EVUNUX0lEX0dCKSB9LAo+ICsgICAg eyBVU0JfREVWSUNFKFBMMjMwM19WRU5ET1JfSUQsIFBMMjMwM0dfUFJPRFVDVF9JRF9HVCkgfSwK PiArICAgIHsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9SX0lELCBQTDIzMDNHX1BST0RVQ1RfSURf R0wpIH0sCj4gKyAgICB7IFVTQl9ERVZJQ0UoUEwyMzAzX1ZFTkRPUl9JRCwgUEwyMzAzR19QUk9E VUNUX0lEX0dFKSB9LAo+ICsgICAgeyBVU0JfREVWSUNFKFBMMjMwM19WRU5ET1JfSUQsIFBMMjMw M0dfUFJPRFVDVF9JRF9HUykgfSwKPiAgICAgIHsgVVNCX0RFVklDRShJT0RBVEFfVkVORE9SX0lE LCBJT0RBVEFfUFJPRFVDVF9JRCkgfSwKPiAgICAgIHsgVVNCX0RFVklDRShJT0RBVEFfVkVORE9S X0lELCBJT0RBVEFfUFJPRFVDVF9JRF9SU0FRNSkgfSwKPiAgICAgIHsgVVNCX0RFVklDRShBVEVO X1ZFTkRPUl9JRCwgQVRFTl9QUk9EVUNUX0lEKSwKPiBAQCAtMTIzLDkgKzEzMiwxMSBAQCBNT0RV TEVfREVWSUNFX1RBQkxFKHVzYiwgaWRfdGFibGUpOwo+IAo+ICAjZGVmaW5lIFZFTkRPUl9XUklU RV9SRVFVRVNUX1RZUEUgICAgMHg0MAo+ICAjZGVmaW5lIFZFTkRPUl9XUklURV9SRVFVRVNUICAg ICAgICAweDAxCj4gKyNkZWZpbmUgVkVORE9SX1dSSVRFX05SRVFVRVNUICAgICAgICAweDgwCj4g Cj4gICNkZWZpbmUgVkVORE9SX1JFQURfUkVRVUVTVF9UWVBFICAgIDB4YzAKPiAgI2RlZmluZSBW RU5ET1JfUkVBRF9SRVFVRVNUICAgICAgICAweDAxCj4gKyNkZWZpbmUgVkVORE9SX1JFQURfTlJF UVVFU1QgICAgICAgIDB4ODEKPiAKPiAgI2RlZmluZSBVQVJUX1NUQVRFX0lOREVYICAgICAgICA4 Cj4gICNkZWZpbmUgVUFSVF9TVEFURV9NU1JfTUFTSyAgICAgICAgMHg4Ygo+IEBAIC0xNDQsNiAr MTU1LDcgQEAgc3RhdGljIHZvaWQgcGwyMzAzX3NldF9icmVhayhzdHJ1Y3QKPiB1c2Jfc2VyaWFs X3BvcnQgKnBvcnQsIGJvb2wgZW5hYmxlKTsKPiAgZW51bSBwbDIzMDNfdHlwZSB7Cj4gICAgICBU WVBFXzAxLCAgICAvKiBUeXBlIDAgYW5kIDEgKGRpZmZlcmVuY2UgdW5rbm93bikgKi8KPiAgICAg IFRZUEVfSFgsICAgIC8qIEhYIHZlcnNpb24gb2YgdGhlIHBsMjMwMyBjaGlwICovCj4gKyAgICBU WVBFX0hYTiwgICAgLyogSFhOIHZlcnNpb24gb2YgdGhlIHBsMjMwMyBjaGlwICovCj4gICAgICBU WVBFX0NPVU5UCj4gIH07Cj4gCj4gQEAgLTE3Miw2ICsxODQsMTEgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBwbDIzMDNfdHlwZV9kYXRhCj4gcGwyMzAzX3R5cGVfZGF0YVtUWVBFX0NPVU5UXSA9IHsK PiAgICAgIH0sCj4gICAgICBbVFlQRV9IWF0gPSB7Cj4gICAgICAgICAgLm1heF9iYXVkX3JhdGUg PSAgICAxMjAwMDAwMCwKPiArICAgICAgICAucXVpcmtzID0gICAgICAgIFBMMjMwM19RVUlSS19M RUdBQ1lfSFgsICAgIC8qIG9sZCBjaGlwIHR5cGUgKi8KPiArICAgIH0sCj4gKyAgICBbVFlQRV9I WE5dID0gewo+ICsgICAgICAgIC5tYXhfYmF1ZF9yYXRlID0gICAgMTIwMDAwMDAsCj4gKyAgICAg ICAgLnF1aXJrcyA9ICAgICAgICBQTDIzMDNfUVVJUktfTEVHQUNZX04sICAgIC8qIE5ldyBjaGlw IHR5cGUgKi8KPiAgICAgIH0sCj4gIH07Cj4gCj4gQEAgLTE3OSwxMCArMTk2LDE2IEBAIHN0YXRp YyBpbnQgcGwyMzAzX3ZlbmRvcl9yZWFkKHN0cnVjdCB1c2Jfc2VyaWFsCj4gKnNlcmlhbCwgdTE2 IHZhbHVlLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBidWZb MV0pCj4gIHsKPiAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9ICZzZXJpYWwtPmludGVyZmFjZS0+ ZGV2Owo+ICsgICAgc3RydWN0IHBsMjMwM19zZXJpYWxfcHJpdmF0ZSAqc3ByaXYgPSB1c2JfZ2V0 X3NlcmlhbF9kYXRhKHNlcmlhbCk7Cj4gICAgICBpbnQgcmVzOwo+ICsgICAgX191OCByZXF1ZXN0 OwoKVGhpcyBzaG91bGQgYmUgdTguCgo+ICsKPiArICAgIC8qIG9sZCAvIG5ldyAgcmVhZCByZXF1 ZXN0ID8qLwoKWW91IGNhbiBqdXN0IGRyb3AgdGhlIGNvbW1lbnQuCgo+ICsgICAgaWYgKHNwcml2 LT5xdWlya3MgJiBQTDIzMDNfUVVJUktfTEVHQUNZX04pIHJlcXVlc3Q9IFZFTkRPUl9SRUFEX05S RVFVRVNUOwo+ICsgICAgZWxzZSByZXF1ZXN0PSBWRU5ET1JfUkVBRF9SRVFVRVNUOwoKQnV0IHBs ZWFzZSBmaXggdXAgdGhlIGluZGVudGF0aW9uIG9mIHRoaXMgKGFzIEdyZWcgYWxyZWFkeSBwb2lu dGVkIG91dCkuCgo+IAo+ICAgICAgcmVzID0gdXNiX2NvbnRyb2xfbXNnKHNlcmlhbC0+ZGV2LCB1 c2JfcmN2Y3RybHBpcGUoc2VyaWFsLT5kZXYsIDApLAo+IC0gICAgICAgICAgICBWRU5ET1JfUkVB RF9SRVFVRVNULCBWRU5ET1JfUkVBRF9SRVFVRVNUX1RZUEUsCj4gKyAgICAgICAgICAgIHJlcXVl c3QsIFZFTkRPUl9SRUFEX1JFUVVFU1RfVFlQRSwKPiAgICAgICAgICAgICAgdmFsdWUsIDAsIGJ1 ZiwgMSwgMTAwKTsKPiAgICAgIGlmIChyZXMgIT0gMSkgewo+ICAgICAgICAgIGRldl9lcnIoZGV2 LCAiJXMgLSBmYWlsZWQgdG8gcmVhZCBbJTA0eF06ICVkXG4iLCBfX2Z1bmNfXywKPiBAQCAtMjAx LDEyICsyMjQsMTggQEAgc3RhdGljIGludCBwbDIzMDNfdmVuZG9yX3JlYWQoc3RydWN0IHVzYl9z ZXJpYWwKPiAqc2VyaWFsLCB1MTYgdmFsdWUsCj4gIHN0YXRpYyBpbnQgcGwyMzAzX3ZlbmRvcl93 cml0ZShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCB1MTYgdmFsdWUsIHUxNiBpbmRleCkKPiAg ewo+ICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnNlcmlhbC0+aW50ZXJmYWNlLT5kZXY7Cj4g KyAgICBzdHJ1Y3QgcGwyMzAzX3NlcmlhbF9wcml2YXRlICpzcHJpdiA9IHVzYl9nZXRfc2VyaWFs X2RhdGEoc2VyaWFsKTsKPiAgICAgIGludCByZXM7Cj4gKyAgICBfX3U4IHJlcXVlc3Q7Cgp1OAoK PiAKPiAgICAgIGRldl9kYmcoZGV2LCAiJXMgLSBbJTA0eF0gPSAlMDJ4XG4iLCBfX2Z1bmNfXywg dmFsdWUsIGluZGV4KTsKPiAKPiArICAgIC8qIG9sZCAvIG5ldyAgd3JpdGUgcmVxdWVzdCA/ICov Cj4gKyAgICBpZiAoc3ByaXYtPnF1aXJrcyAmIFBMMjMwM19RVUlSS19MRUdBQ1lfTikgcmVxdWVz dD0gVkVORE9SX1dSSVRFX05SRVFVRVNUOwo+ICsgICAgZWxzZSByZXF1ZXN0PSBWRU5ET1JfV1JJ VEVfUkVRVUVTVDsKClNhbWUgYXMgYWJvdmUuCgo+ICsKPiAgICAgIHJlcyA9IHVzYl9jb250cm9s X21zZyhzZXJpYWwtPmRldiwgdXNiX3NuZGN0cmxwaXBlKHNlcmlhbC0+ZGV2LCAwKSwKPiAtICAg ICAgICAgICAgVkVORE9SX1dSSVRFX1JFUVVFU1QsIFZFTkRPUl9XUklURV9SRVFVRVNUX1RZUEUs Cj4gKyAgICAgICAgICAgIHJlcXVlc3QsIFZFTkRPUl9XUklURV9SRVFVRVNUX1RZUEUsCj4gICAg ICAgICAgICAgIHZhbHVlLCBpbmRleCwgTlVMTCwgMCwgMTAwKTsKPiAgICAgIGlmIChyZXMpIHsK PiAgICAgICAgICBkZXZfZXJyKGRldiwgIiVzIC0gZmFpbGVkIHRvIHdyaXRlIFslMDR4XTogJWRc biIsIF9fZnVuY19fLAo+IEBAIC0yODYsNiArMzE1LDcgQEAgc3RhdGljIGludCBwbDIzMDNfc3Rh cnR1cChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQo+ICAgICAgc3RydWN0IHBsMjMwM19zZXJp YWxfcHJpdmF0ZSAqc3ByaXY7Cj4gICAgICBlbnVtIHBsMjMwM190eXBlIHR5cGUgPSBUWVBFXzAx Owo+ICAgICAgdW5zaWduZWQgY2hhciAqYnVmOwo+ICsgICAgaW50IHJlczsKPiAKPiAgICAgIHNw cml2ID0ga3phbGxvYyhzaXplb2YoKnNwcml2KSwgR0ZQX0tFUk5FTCk7Cj4gICAgICBpZiAoIXNw cml2KQo+IEBAIC0zMDcsMjYgKzMzNywzOCBAQCBzdGF0aWMgaW50IHBsMjMwM19zdGFydHVwKHN0 cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCj4gICAgICAgICAgdHlwZSA9IFRZUEVfMDE7ICAgICAg ICAvKiB0eXBlIDEgKi8KPiAgICAgIGRldl9kYmcoJnNlcmlhbC0+aW50ZXJmYWNlLT5kZXYsICJk ZXZpY2UgdHlwZTogJWRcbiIsIHR5cGUpOwo+IAo+ICsgICAgLyogbmV3IGNoaXAgPyAqLwo+ICsg ICAgaWYoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuYmNkVVNCID09IDB4MDIwMCkgewo+ICsgICAg ICAgIHJlcyA9IHVzYl9jb250cm9sX21zZyhzZXJpYWwtPmRldiwgdXNiX3JjdmN0cmxwaXBlKHNl cmlhbC0+ZGV2LCAwKSwKPiArICAgICAgICAgICAgVkVORE9SX1JFQURfUkVRVUVTVCwgVkVORE9S X1JFQURfUkVRVUVTVF9UWVBFLAo+ICsgICAgICAgICAgICAweDg0ODQsIDAsIGJ1ZiwgMSwgMTAw KTsKCldoYXQgYXJlIHlvdSByZWFkaW5nIGhlcmU/IFdoYXQgaXMgMHg4NDg0PwoKPiArICAgICAg ICBpZiAocmVzICE9IDEpIHsKPiArICAgICAgICAgICAgdHlwZSA9IFRZUEVfSFhOOyAgICAvKiB0 eXBlIDIgKi8KPiArICAgICAgICB9Cj4gKyAgICB9Cj4gKwo+ICAgICAgc3ByaXYtPnR5cGUgPSAm cGwyMzAzX3R5cGVfZGF0YVt0eXBlXTsKPiAgICAgIHNwcml2LT5xdWlya3MgPSAodW5zaWduZWQg bG9uZyl1c2JfZ2V0X3NlcmlhbF9kYXRhKHNlcmlhbCk7Cj4gICAgICBzcHJpdi0+cXVpcmtzIHw9 IHNwcml2LT50eXBlLT5xdWlya3M7Cj4gCj4gICAgICB1c2Jfc2V0X3NlcmlhbF9kYXRhKHNlcmlh bCwgc3ByaXYpOwo+IAo+IC0gICAgcGwyMzAzX3ZlbmRvcl9yZWFkKHNlcmlhbCwgMHg4NDg0LCBi dWYpOwo+IC0gICAgcGwyMzAzX3ZlbmRvcl93cml0ZShzZXJpYWwsIDB4MDQwNCwgMCk7Cj4gLSAg ICBwbDIzMDNfdmVuZG9yX3JlYWQoc2VyaWFsLCAweDg0ODQsIGJ1Zik7Cj4gLSAgICBwbDIzMDNf dmVuZG9yX3JlYWQoc2VyaWFsLCAweDgzODMsIGJ1Zik7Cj4gLSAgICBwbDIzMDNfdmVuZG9yX3Jl YWQoc2VyaWFsLCAweDg0ODQsIGJ1Zik7Cj4gLSAgICBwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlh bCwgMHgwNDA0LCAxKTsKPiAtICAgIHBsMjMwM192ZW5kb3JfcmVhZChzZXJpYWwsIDB4ODQ4NCwg YnVmKTsKPiAtICAgIHBsMjMwM192ZW5kb3JfcmVhZChzZXJpYWwsIDB4ODM4MywgYnVmKTsKPiAt ICAgIHBsMjMwM192ZW5kb3Jfd3JpdGUoc2VyaWFsLCAwLCAxKTsKPiAtICAgIHBsMjMwM192ZW5k b3Jfd3JpdGUoc2VyaWFsLCAxLCAwKTsKPiAtICAgIGlmIChzcHJpdi0+cXVpcmtzICYgUEwyMzAz X1FVSVJLX0xFR0FDWSkKPiAtICAgICAgICBwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMiwg MHgyNCk7Cj4gLSAgICBlbHNlCj4gLSAgICAgICAgcGwyMzAzX3ZlbmRvcl93cml0ZShzZXJpYWws IDIsIDB4NDQpOwo+ICsgICAgaWYodHlwZSAhPSBUWVBFX0hYTikgewo+ICsgICAgICAgIHBsMjMw M192ZW5kb3JfcmVhZChzZXJpYWwsIDB4ODQ4NCwgYnVmKTsKPiArICAgICAgICBwbDIzMDNfdmVu ZG9yX3dyaXRlKHNlcmlhbCwgMHgwNDA0LCAwKTsKPiArICAgICAgICBwbDIzMDNfdmVuZG9yX3Jl YWQoc2VyaWFsLCAweDg0ODQsIGJ1Zik7Cj4gKyAgICAgICAgcGwyMzAzX3ZlbmRvcl9yZWFkKHNl cmlhbCwgMHg4MzgzLCBidWYpOwo+ICsgICAgICAgIHBsMjMwM192ZW5kb3JfcmVhZChzZXJpYWws IDB4ODQ4NCwgYnVmKTsKPiArICAgICAgICBwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMHgw NDA0LCAxKTsKPiArICAgICAgICBwbDIzMDNfdmVuZG9yX3JlYWQoc2VyaWFsLCAweDg0ODQsIGJ1 Zik7Cj4gKyAgICAgICAgcGwyMzAzX3ZlbmRvcl9yZWFkKHNlcmlhbCwgMHg4MzgzLCBidWYpOwo+ ICsgICAgICAgIHBsMjMwM192ZW5kb3Jfd3JpdGUoc2VyaWFsLCAwLCAxKTsKPiArICAgICAgICBw bDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMSwgMCk7Cj4gKyAgICAgICAgaWYgKHNwcml2LT5x dWlya3MgJiBQTDIzMDNfUVVJUktfTEVHQUNZKQo+ICsgICAgICAgICAgICBwbDIzMDNfdmVuZG9y X3dyaXRlKHNlcmlhbCwgMiwgMHgyNCk7Cj4gKyAgICAgICAgZWxzZQo+ICsgICAgICAgICAgICBw bDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMiwgMHg0NCk7Cj4gKyAgICB9Cj4gCj4gICAgICBr ZnJlZShidWYpOwo+IAo+IEBAIC02NzMsMTMgKzcxNSwzMyBAQCBzdGF0aWMgdm9pZCBwbDIzMDNf c2V0X3Rlcm1pb3Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwKPiAgICAgIGlmIChDX0NSVFNDVFMo dHR5KSkgewo+ICAgICAgICAgIGlmIChzcHJpdi0+cXVpcmtzICYgUEwyMzAzX1FVSVJLX0xFR0FD WSkKPiAgICAgICAgICAgICAgcGwyMzAzX3ZlbmRvcl93cml0ZShzZXJpYWwsIDB4MCwgMHg0MSk7 Cj4gKyAgICAgICAgZWxzZSBpZihzcHJpdi0+cXVpcmtzICYgUEwyMzAzX1FVSVJLX0xFR0FDWV9O KQo+ICsgICAgICAgICAgICBwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMHgwQSwgMHhGQSk7 ICAgIC8qIE5ldyBjaGlwICovCgpXaGF0IGlzIDB4MGEgYW5kIDB4ZmE/IFBsZWFzZSB1c2UgZGVm aW5lcyByYXRoZXIgdGhhbiAibWFnaWNhbCIKY29uc3RhbnRzLgoKPiAgICAgICAgICBlbHNlCj4g ICAgICAgICAgICAgIHBsMjMwM192ZW5kb3Jfd3JpdGUoc2VyaWFsLCAweDAsIDB4NjEpOwo+ICAg ICAgfSBlbHNlIGlmIChJX0lYT04odHR5KSAmJiAhSV9JWEFOWSh0dHkpICYmIFNUQVJUX0NIQVIo dHR5KSA9PSAweDExICYmCj4gICAgICAgICAgICAgIFNUT1BfQ0hBUih0dHkpID09IDB4MTMpIHsK PiAtICAgICAgICBwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMHgwLCAweGMwKTsKPiArICAg ICAgICBpZihzcHJpdi0+cXVpcmtzICYgUEwyMzAzX1FVSVJLX0xFR0FDWV9OKQo+ICsgICAgICAg ICAgICBwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMHgwQSwgMHhFRSk7ICAgIC8qIE5ldyBj aGlwICovCgpTYW1lIGhlcmUuCgo+ICsgICAgICAgIGVsc2UKPiArICAgICAgICAgICAgcGwyMzAz X3ZlbmRvcl93cml0ZShzZXJpYWwsIDB4MCwgMHhjMCk7Cj4gICAgICB9IGVsc2Ugewo+IC0gICAg ICAgIHBsMjMwM192ZW5kb3Jfd3JpdGUoc2VyaWFsLCAweDAsIDB4MCk7Cj4gKyAgICAgICAgaWYo c3ByaXYtPnF1aXJrcyAmIFBMMjMwM19RVUlSS19MRUdBQ1lfTikKPiArICAgICAgICAgICAgcGwy MzAzX3ZlbmRvcl93cml0ZShzZXJpYWwsIDB4MEEsIDB4RkYpOyAgICAvKiBOZXcgY2hpcCAqLwo+ ICsgICAgICAgIGVsc2UKPiArICAgICAgICAgICAgcGwyMzAzX3ZlbmRvcl93cml0ZShzZXJpYWws IDB4MCwgMHgwKTsKPiArICAgIH0KPiArCj4gKyAgICAvKiBPbGQgY2hpcCwgRXh0ZXJuYWwgUHVs bC1VcCBNb2RlICovCj4gKyAgICBpZihzcHJpdi0+cXVpcmtzICYgUEwyMzAzX1FVSVJLX0xFR0FD WV9IWCl7Cj4gKyAgICAgICAgcGwyMzAzX3ZlbmRvcl9yZWFkKHNlcmlhbCwgMHg4NDg0LCBidWYp Owo+ICsgICAgICAgIHBsMjMwM192ZW5kb3Jfd3JpdGUoc2VyaWFsLCAweDA0MDQsIDB4MDkpOwo+ ICsgICAgICAgIHBsMjMwM192ZW5kb3JfcmVhZChzZXJpYWwsIDB4ODQ4NCwgYnVmKTsKPiArICAg ICAgICBwbDIzMDNfdmVuZG9yX3JlYWQoc2VyaWFsLCAweDgzODMsIGJ1Zik7Cj4gKyAgICAgICAg aWYoKHUxNikqYnVmICYgMHgwOCl7CgpUaGlzIGxvb2tzIG9kZCBhcyBwbDIzMDNfdmVuZG9yX3Jl YWQoKSBvbmx5IHJlYWRzIG9uZSBieXRlLgoKPiArICAgICAgICAgICAgcGwyMzAzX3ZlbmRvcl93 cml0ZShzZXJpYWwsIDB4MCwgMHgzMSk7Cj4gKyAgICAgICAgICAgIHBsMjMwM192ZW5kb3Jfd3Jp dGUoc2VyaWFsLCAweDEsIDB4MDEpOwo+ICsgICAgICAgIH0KCkFuZCB0aGlzIGxvb2tzIGxpa2Ug YW4gdW5yZWxhdGVkIGNoYW5nZSBzaW5jZSBpdCBhZmZlY3RzIG9sZGVyIGRldmljZXMKYW5kIG5v dCBIWE4uCgpQbGVhc2Ugc3BsaXQgb3V0IGluIGEgc2VwYXJhdGUgcGF0Y2ggYW5kIGV4cGxhaW4g d2h5IGl0IGlzIG5lZWRlZC4gQWxzbwpyZXBsYWNlIHRoZSAibWFnaWNhbCIgY29uc3RhbnRzIHdp dGggZGVzY3JpcHRpdmUgZGVmaW5lcy4KCj4gICAgICB9Cj4gCj4gICAgICBrZnJlZShidWYpOwo+ IEBAIC03MjAsOCArNzgyLDEyIEBAIHN0YXRpYyBpbnQgcGwyMzAzX29wZW4oc3RydWN0IHR0eV9z dHJ1Y3QgKnR0eSwKPiBzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQo+ICAgICAgICAgIHVz Yl9jbGVhcl9oYWx0KHNlcmlhbC0+ZGV2LCBwb3J0LT5yZWFkX3VyYi0+cGlwZSk7Cj4gICAgICB9 IGVsc2Ugewo+ICAgICAgICAgIC8qIHJlc2V0IHVwc3RyZWFtIGRhdGEgcGlwZXMgKi8KPiAtICAg ICAgICBwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgOCwgMCk7Cj4gLSAgICAgICAgcGwyMzAz X3ZlbmRvcl93cml0ZShzZXJpYWwsIDksIDApOwo+ICsgICAgICAgIGlmKHNwcml2LT5xdWlya3Mg JiBQTDIzMDNfUVVJUktfTEVHQUNZX04pCj4gKyAgICAgICAgICAgIHBsMjMwM192ZW5kb3Jfd3Jp dGUoc2VyaWFsLCA3LCAwKTsgICAgLyogcmVzZXQgbmV3IGNoaXAgKi8KClBsZWFzZSBhZGQgYSBk ZWZpbmUgZm9yIDcgaGVyZSB0b28uCgo+ICsgICAgICAgIGVsc2Ugewo+ICsgICAgICAgICAgICBw bDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgOCwgMCk7Cj4gKyAgICAgICAgICAgIHBsMjMwM192 ZW5kb3Jfd3JpdGUoc2VyaWFsLCA5LCAwKTsKPiArICAgICAgICB9Cj4gICAgICB9CgpUaGFua3Ms CkpvaGFuCg==