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: <20190108170116.GH14782@localhost> Date: Tue, 8 Jan 2019 18:01:16 +0100 To: Charles Yeh Cc: lkp@intel.com, kbuild-all@01.org, gregkh@linuxfoundation.org, johan@kernel.org, linux-usb@vger.kernel.org, charles-yeh@prolific.com.tw List-ID: T24gV2VkLCBEZWMgMjYsIDIwMTggYXQgMDg6Mjg6MTBQTSArMDgwMCwgQ2hhcmxlcyBZZWggd3Jv dGU6Cgo+IEFkZCBuZXcgUElEIHRvIHN1cHBvcnQgUEwyMzAzVEIgKFRZUEVfSFgpCj4gQWRkIG5l dyBQSUQgdG8gc3VwcG9ydCBQTDIzMDMoTilHQy9HQi9HUy9HVC9HTC9HRSAoVFlQRV9IWE4pCj4g QWRkIG5ldyBGbG93IENvbnRyb2wgdG8gc3VwcG9ydCBQTDIzMDMoTilHQy9HQi9HUy9HVC9HTC9H RSAoVFlQRV9IWE4pCj4gQWRkIG5ldyBQdWxsLVVwIE1vZGUgdG8gc3VwcG9ydCBQTDIzMDNIWEQg KFRZUEVfSFgpCgpTbyB0aGUgYWJvdmUgc2hvdWxkIGdvIGluIHRocmVlIHNlcGFyYXRlIHBhdGNo ZXMgYXMgd2UgYWxyZWFkeSBkaXNjdXNzZWQKKFBMMjMwM1RCIFBJRCwgVFlQRV9IWE4gc3VwcG9y dCArIFBJRHMsICJwdWxsLXVwIG1vZGUiKS4KCj4gRml4ZWQgd2FybmluZzpyZXN0cmljdGVkX19s ZTE2IGRlZ3JhZGVzIHRvIGludGVnZXIKCldoZW4geW91IHVwZGF0ZSBhbmQgcmVzZW5kIGEgcGF0 Y2gsIGl0J3MgZ29vZCB0byBpbmNsdWRlIGNoYW5nZWxvZwppbmZvcm1hdGlvbiBsaWtlIHRoaXMs IGJ1dCBwbGVhc2UgcHV0IGl0IGJlbG93IHRoZSBjdXQtb2ZmIGxpbmUgKC0tLSkKYmVsb3cgc28g dGhhdCBpdCBkb2Vzbid0IGVuZCB1cCBpbiB0aGUgY29tbWl0IGxvZy4KCkFsc28gaW5jbHVkZSBh IHBhdGNoIHJldmlzaW9uIGluIHRoZSBTdWJqZWN0IG9mIHRoZSBtYWlsLiBMZXQncyBjYWxsCnRo aXMgb25lIHYyLCBzbyBuZXh0IHRpbWUgdXNlIHRoZSBmb2xsb3dpbmcgU3ViamVjdCBwcmVmaXg6 CgoJW1BBVENIIHYzXTogVVNCOiBzZXJpYWw6IHBsMjMwMzogYWRkIC4uLgoKKGFsc28gYWZ0ZXIg YnJlYWtpbmcgdGhlIGN1cnJlbnQgcGF0Y2ggaW50byBhIHNlcmllcyBvZiB0aHJlZSBvciBtb3Jl CnBhdGNoZXMpLgoKPiBTaWduZWQtb2ZmLWJ5OiBDaGFybGVzIFllaCA8Y2hhcmxlc3llaDUyMkBn bWFpbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYyB8IDExNiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KPiAgZHJpdmVycy91c2Ivc2VyaWFsL3Bs MjMwMy5oIHwgIDExICsrKysKPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwg MjEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIz MDMuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYwo+IGluZGV4IGE0ZTBkMTNmYzEyMS4u OGM3MTYxMmUxODExIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYwo+ ICsrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYwo+IEBAIC00Niw2ICs0NiwxMyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVbXSA9IHsKPiAgCXsgVVNC X0RFVklDRShQTDIzMDNfVkVORE9SX0lELCBQTDIzMDNfUFJPRFVDVF9JRF9IQ1IzMzEpIH0sCj4g IAl7IFVTQl9ERVZJQ0UoUEwyMzAzX1ZFTkRPUl9JRCwgUEwyMzAzX1BST0RVQ1RfSURfTU9UT1JP TEEpIH0sCj4gIAl7IFVTQl9ERVZJQ0UoUEwyMzAzX1ZFTkRPUl9JRCwgUEwyMzAzX1BST0RVQ1Rf SURfWlRFSykgfSwKPiArCXsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9SX0lELCBQTDIzMDNfUFJP RFVDVF9JRF9UQikgfSwKPiArCXsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9SX0lELCBQTDIzMDNH X1BST0RVQ1RfSURfR0MpIH0sCj4gKwl7IFVTQl9ERVZJQ0UoUEwyMzAzX1ZFTkRPUl9JRCwgUEwy MzAzR19QUk9EVUNUX0lEX0dCKSB9LAo+ICsJeyBVU0JfREVWSUNFKFBMMjMwM19WRU5ET1JfSUQs IFBMMjMwM0dfUFJPRFVDVF9JRF9HVCkgfSwKPiArCXsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9S X0lELCBQTDIzMDNHX1BST0RVQ1RfSURfR0wpIH0sCj4gKwl7IFVTQl9ERVZJQ0UoUEwyMzAzX1ZF TkRPUl9JRCwgUEwyMzAzR19QUk9EVUNUX0lEX0dFKSB9LAo+ICsJeyBVU0JfREVWSUNFKFBMMjMw M19WRU5ET1JfSUQsIFBMMjMwM0dfUFJPRFVDVF9JRF9HUykgfSwKPiAgCXsgVVNCX0RFVklDRShJ T0RBVEFfVkVORE9SX0lELCBJT0RBVEFfUFJPRFVDVF9JRCkgfSwKPiAgCXsgVVNCX0RFVklDRShJ T0RBVEFfVkVORE9SX0lELCBJT0RBVEFfUFJPRFVDVF9JRF9SU0FRNSkgfSwKPiAgCXsgVVNCX0RF VklDRShBVEVOX1ZFTkRPUl9JRCwgQVRFTl9QUk9EVUNUX0lEKSwKPiBAQCAtMTIzLDkgKzEzMCwx MSBAQCBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgaWRfdGFibGUpOwo+ICAKPiAgI2RlZmluZSBW RU5ET1JfV1JJVEVfUkVRVUVTVF9UWVBFCTB4NDAKPiAgI2RlZmluZSBWRU5ET1JfV1JJVEVfUkVR VUVTVAkJMHgwMQo+ICsjZGVmaW5lIFZFTkRPUl9XUklURV9OUkVRVUVTVAkJMHg4MAo+ICAKPiAg I2RlZmluZSBWRU5ET1JfUkVBRF9SRVFVRVNUX1RZUEUJMHhjMAo+ICAjZGVmaW5lIFZFTkRPUl9S RUFEX1JFUVVFU1QJCTB4MDEKPiArI2RlZmluZSBWRU5ET1JfUkVBRF9OUkVRVUVTVAkJMHg4MQo+ ICAKPiAgI2RlZmluZSBVQVJUX1NUQVRFX0lOREVYCQk4Cj4gICNkZWZpbmUgVUFSVF9TVEFURV9N U1JfTUFTSwkJMHg4Ygo+IEBAIC0xMzksMTEgKzE0OCwyMSBAQCBNT0RVTEVfREVWSUNFX1RBQkxF KHVzYiwgaWRfdGFibGUpOwo+ICAjZGVmaW5lIFVBUlRfT1ZFUlJVTl9FUlJPUgkJMHg0MAo+ICAj ZGVmaW5lIFVBUlRfQ1RTCQkJMHg4MAo+ICAKPiArI2RlZmluZSBUWVBFX0hYX1JFQURfT1RQX1NU QVRVU19SRUdJU1RFUgkweDg0ODQKPiArI2RlZmluZSBUWVBFX0hYX0VYVEVSTkFMX1BVTExVUF9N T0RFCTB4MDgKPiArI2RlZmluZSBUWVBFX0hYX1BVTExVUF9NT0RFX1JFRwkJMHgwOQo+ICsjZGVm aW5lIFRZUEVfSFhOX1VBUlRfRkxPV0NPTlRST0wJMHgwQQo+ICsjZGVmaW5lIFRZUEVfSFhOX0hB UkRXQVJFRkxPVwkJMHhGQQo+ICsjZGVmaW5lIFRZUEVfSFhOX1NPRlRXQVJFRkxPVwkJMHhFRQo+ ICsjZGVmaW5lIFRZUEVfSFhOX05PRkxPVwkJCTB4RkYKPiArI2RlZmluZSBUWVBFX0hYTl9SRVNF VF9ET1dOX1VQU1RSRUFNCTB4MDcKPiArCj4gIHN0YXRpYyB2b2lkIHBsMjMwM19zZXRfYnJlYWso c3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCwgYm9vbCBlbmFibGUpOwo+ICAKPiAgZW51bSBw bDIzMDNfdHlwZSB7Cj4gIAlUWVBFXzAxLAkvKiBUeXBlIDAgYW5kIDEgKGRpZmZlcmVuY2UgdW5r bm93bikgKi8KPiAgCVRZUEVfSFgsCS8qIEhYIHZlcnNpb24gb2YgdGhlIHBsMjMwMyBjaGlwICov Cj4gKwlUWVBFX0hYTiwJLyogSFhOIHZlcnNpb24gb2YgdGhlIHBsMjMwMyBjaGlwICovCj4gIAlU WVBFX0NPVU5UCj4gIH07Cj4gIAo+IEBAIC0xNzMsMTYgKzE5MiwyNiBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHBsMjMwM190eXBlX2RhdGEgcGwyMzAzX3R5cGVfZGF0YVtUWVBFX0NPVU5UXSA9IHsK PiAgCVtUWVBFX0hYXSA9IHsKPiAgCQkubWF4X2JhdWRfcmF0ZSA9CTEyMDAwMDAwLAo+ICAJfSwK PiArCVtUWVBFX0hYTl0gPSB7Cj4gKwkJLm1heF9iYXVkX3JhdGUgPQkxMjAwMDAwMCwKPiArCX0s Cj4gIH07Cj4gIAo+ICBzdGF0aWMgaW50IHBsMjMwM192ZW5kb3JfcmVhZChzdHJ1Y3QgdXNiX3Nl cmlhbCAqc2VyaWFsLCB1MTYgdmFsdWUsCj4gIAkJCQkJCQl1bnNpZ25lZCBjaGFyIGJ1ZlsxXSkK PiAgewo+ICAJc3RydWN0IGRldmljZSAqZGV2ID0gJnNlcmlhbC0+aW50ZXJmYWNlLT5kZXY7Cj4g KwlzdHJ1Y3QgcGwyMzAzX3NlcmlhbF9wcml2YXRlICpzcHJpdiA9IHVzYl9nZXRfc2VyaWFsX2Rh dGEoc2VyaWFsKTsKPiAgCWludCByZXM7Cj4gKwl1OCByZXF1ZXN0Owo+ICsKPiArCWlmIChzcHJp di0+dHlwZSA9PSAmcGwyMzAzX3R5cGVfZGF0YVtUWVBFX0hYTl0pCj4gKwkJcmVxdWVzdCA9IFZF TkRPUl9SRUFEX05SRVFVRVNUOwo+ICsJZWxzZQo+ICsJCXJlcXVlc3QgPSBWRU5ET1JfUkVBRF9S RVFVRVNUOwo+ICAKPiAgCXJlcyA9IHVzYl9jb250cm9sX21zZyhzZXJpYWwtPmRldiwgdXNiX3Jj dmN0cmxwaXBlKHNlcmlhbC0+ZGV2LCAwKSwKPiAtCQkJVkVORE9SX1JFQURfUkVRVUVTVCwgVkVO RE9SX1JFQURfUkVRVUVTVF9UWVBFLAo+ICsJCQlyZXF1ZXN0LCBWRU5ET1JfUkVBRF9SRVFVRVNU X1RZUEUsCj4gIAkJCXZhbHVlLCAwLCBidWYsIDEsIDEwMCk7Cj4gIAlpZiAocmVzICE9IDEpIHsK PiAgCQlkZXZfZXJyKGRldiwgIiVzIC0gZmFpbGVkIHRvIHJlYWQgWyUwNHhdOiAlZFxuIiwgX19m dW5jX18sCj4gQEAgLTIwMSwxMiArMjMwLDE5IEBAIHN0YXRpYyBpbnQgcGwyMzAzX3ZlbmRvcl9y ZWFkKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIHUxNiB2YWx1ZSwKPiAgc3RhdGljIGludCBw bDIzMDNfdmVuZG9yX3dyaXRlKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIHUxNiB2YWx1ZSwg dTE2IGluZGV4KQo+ICB7Cj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmc2VyaWFsLT5pbnRlcmZh Y2UtPmRldjsKPiArCXN0cnVjdCBwbDIzMDNfc2VyaWFsX3ByaXZhdGUgKnNwcml2ID0gdXNiX2dl dF9zZXJpYWxfZGF0YShzZXJpYWwpOwo+ICAJaW50IHJlczsKPiArCXU4IHJlcXVlc3Q7Cj4gIAo+ ICAJZGV2X2RiZyhkZXYsICIlcyAtIFslMDR4XSA9ICUwMnhcbiIsIF9fZnVuY19fLCB2YWx1ZSwg aW5kZXgpOwo+ICAKPiArCWlmIChzcHJpdi0+dHlwZSA9PSAmcGwyMzAzX3R5cGVfZGF0YVtUWVBF X0hYTl0pCj4gKwkJcmVxdWVzdCA9IFZFTkRPUl9XUklURV9OUkVRVUVTVDsKPiArCWVsc2UKPiAr CQlyZXF1ZXN0ID0gVkVORE9SX1dSSVRFX1JFUVVFU1Q7Cj4gKwo+ICAJcmVzID0gdXNiX2NvbnRy b2xfbXNnKHNlcmlhbC0+ZGV2LCB1c2Jfc25kY3RybHBpcGUoc2VyaWFsLT5kZXYsIDApLAo+IC0J CQlWRU5ET1JfV1JJVEVfUkVRVUVTVCwgVkVORE9SX1dSSVRFX1JFUVVFU1RfVFlQRSwKPiArCQkJ cmVxdWVzdCwgVkVORE9SX1dSSVRFX1JFUVVFU1RfVFlQRSwKPiAgCQkJdmFsdWUsIGluZGV4LCBO VUxMLCAwLCAxMDApOwo+ICAJaWYgKHJlcykgewo+ICAJCWRldl9lcnIoZGV2LCAiJXMgLSBmYWls ZWQgdG8gd3JpdGUgWyUwNHhdOiAlZFxuIiwgX19mdW5jX18sCj4gQEAgLTI4Niw2ICszMjIsNyBA QCBzdGF0aWMgaW50IHBsMjMwM19zdGFydHVwKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCj4g IAlzdHJ1Y3QgcGwyMzAzX3NlcmlhbF9wcml2YXRlICpzcHJpdjsKPiAgCWVudW0gcGwyMzAzX3R5 cGUgdHlwZSA9IFRZUEVfMDE7Cj4gIAl1bnNpZ25lZCBjaGFyICpidWY7Cj4gKwlpbnQgcmVzOwo+ ICAKPiAgCXNwcml2ID0ga3phbGxvYyhzaXplb2YoKnNwcml2KSwgR0ZQX0tFUk5FTCk7Cj4gIAlp ZiAoIXNwcml2KQo+IEBAIC0zMDcsMjYgKzM0NCwzNiBAQCBzdGF0aWMgaW50IHBsMjMwM19zdGFy dHVwKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCj4gIAkJdHlwZSA9IFRZUEVfMDE7CQkvKiB0 eXBlIDEgKi8KPiAgCWRldl9kYmcoJnNlcmlhbC0+aW50ZXJmYWNlLT5kZXYsICJkZXZpY2UgdHlw ZTogJWRcbiIsIHR5cGUpOwo+ICAKPiArCWlmICh0eXBlID09IFRZUEVfSFgpIHsKPiArCQlyZXMg PSB1c2JfY29udHJvbF9tc2coc2VyaWFsLT5kZXYsIHVzYl9yY3ZjdHJscGlwZShzZXJpYWwtPmRl diwgMCksCj4gKwkJCVZFTkRPUl9SRUFEX1JFUVVFU1QsIFZFTkRPUl9SRUFEX1JFUVVFU1RfVFlQ RSwKPiArCQkJVFlQRV9IWF9SRUFEX09UUF9TVEFUVVNfUkVHSVNURVIsIDAsIGJ1ZiwgMSwgMTAw KTsKPiArCQlpZiAocmVzICE9IDEpCj4gKwkJCXR5cGUgPSBUWVBFX0hYTjsKPiArCX0KClNvIEhY TiBsb29rcyBsaWtlIGFuIEhYLCBidXQgcmVzcG9uZHMgd2l0aCBhbiBlcnJvciB3aGVuIHRyeWlu ZyB0byByZWFkCmFueSAoPykgcmVnaXN0ZXIgdXNpbmcgVkVORE9SX1JFQURfUkVRVUVTVD8gSXNu J3QgdGhlcmUgYW55IG1vcmUgZGlyZWN0CndheSBvZiBkZXRlcm1pbmluZyB0aGUgZGV2aWNlIHR5 cGU/CgpNeSBvbGQgSFhEIGRldmljZSByZXBvcnQgYmNkVVNCIGFzIDB4MDExMCwgYW5kIHlvdSB0 ZXN0ZWQgeW91IGFsc28KdGVzdGVkIGFnYWluc3QgMHgwMjAwIGluIGEgcHJldmlvdXMgdmVyc2lv biBvZiB0aGlzIHBhdGNoLiBIb3cgZG9lcwpiY2RVU0IgcmVsYXRlIHRvIHRoZSB2YXJpb3VzIHR5 cGVzPwoKTm90ZSB0aGF0IHlvdSBzaG91bGQgdXNlIGxlMTZfdG9fY3B1KCkgdG8gYWNjZXNzIGJj ZFVTQiBzYWZlbHkgYWxzbyBvbgpiaWctZW5kaWFuIHN5c3RlbXMgKHdoaWNoIHRoZSBrYnVpbGQg dGVzdCByb2JvdCBzb21ld2hhdCBjcnlwdGljYWxseQpyZXBvcnRlZCkuCgo+ICsKPiAgCXNwcml2 LT50eXBlID0gJnBsMjMwM190eXBlX2RhdGFbdHlwZV07Cj4gIAlzcHJpdi0+cXVpcmtzID0gKHVu c2lnbmVkIGxvbmcpdXNiX2dldF9zZXJpYWxfZGF0YShzZXJpYWwpOwo+ICAJc3ByaXYtPnF1aXJr cyB8PSBzcHJpdi0+dHlwZS0+cXVpcmtzOwo+ICAKPiAgCXVzYl9zZXRfc2VyaWFsX2RhdGEoc2Vy aWFsLCBzcHJpdik7Cj4gIAo+IC0JcGwyMzAzX3ZlbmRvcl9yZWFkKHNlcmlhbCwgMHg4NDg0LCBi dWYpOwo+IC0JcGwyMzAzX3ZlbmRvcl93cml0ZShzZXJpYWwsIDB4MDQwNCwgMCk7Cj4gLQlwbDIz MDNfdmVuZG9yX3JlYWQoc2VyaWFsLCAweDg0ODQsIGJ1Zik7Cj4gLQlwbDIzMDNfdmVuZG9yX3Jl YWQoc2VyaWFsLCAweDgzODMsIGJ1Zik7Cj4gLQlwbDIzMDNfdmVuZG9yX3JlYWQoc2VyaWFsLCAw eDg0ODQsIGJ1Zik7Cj4gLQlwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMHgwNDA0LCAxKTsK PiAtCXBsMjMwM192ZW5kb3JfcmVhZChzZXJpYWwsIDB4ODQ4NCwgYnVmKTsKPiAtCXBsMjMwM192 ZW5kb3JfcmVhZChzZXJpYWwsIDB4ODM4MywgYnVmKTsKPiAtCXBsMjMwM192ZW5kb3Jfd3JpdGUo c2VyaWFsLCAwLCAxKTsKPiAtCXBsMjMwM192ZW5kb3Jfd3JpdGUoc2VyaWFsLCAxLCAwKTsKPiAt CWlmIChzcHJpdi0+cXVpcmtzICYgUEwyMzAzX1FVSVJLX0xFR0FDWSkKPiAtCQlwbDIzMDNfdmVu ZG9yX3dyaXRlKHNlcmlhbCwgMiwgMHgyNCk7Cj4gLQllbHNlCj4gLQkJcGwyMzAzX3ZlbmRvcl93 cml0ZShzZXJpYWwsIDIsIDB4NDQpOwo+ICsJaWYgKHR5cGUgIT0gVFlQRV9IWE4pIHsKPiArCQlw bDIzMDNfdmVuZG9yX3JlYWQoc2VyaWFsLCAweDg0ODQsIGJ1Zik7Cj4gKwkJcGwyMzAzX3ZlbmRv cl93cml0ZShzZXJpYWwsIDB4MDQwNCwgMCk7Cj4gKwkJcGwyMzAzX3ZlbmRvcl9yZWFkKHNlcmlh bCwgMHg4NDg0LCBidWYpOwo+ICsJCXBsMjMwM192ZW5kb3JfcmVhZChzZXJpYWwsIDB4ODM4Mywg YnVmKTsKPiArCQlwbDIzMDNfdmVuZG9yX3JlYWQoc2VyaWFsLCAweDg0ODQsIGJ1Zik7Cj4gKwkJ cGwyMzAzX3ZlbmRvcl93cml0ZShzZXJpYWwsIDB4MDQwNCwgMSk7Cj4gKwkJcGwyMzAzX3ZlbmRv cl9yZWFkKHNlcmlhbCwgMHg4NDg0LCBidWYpOwo+ICsJCXBsMjMwM192ZW5kb3JfcmVhZChzZXJp YWwsIDB4ODM4MywgYnVmKTsKPiArCQlwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMCwgMSk7 Cj4gKwkJcGwyMzAzX3ZlbmRvcl93cml0ZShzZXJpYWwsIDEsIDApOwo+ICsJCWlmIChzcHJpdi0+ cXVpcmtzICYgUEwyMzAzX1FVSVJLX0xFR0FDWSkKPiArCQkJcGwyMzAzX3ZlbmRvcl93cml0ZShz ZXJpYWwsIDIsIDB4MjQpOwo+ICsJCWVsc2UKPiArCQkJcGwyMzAzX3ZlbmRvcl93cml0ZShzZXJp YWwsIDIsIDB4NDQpOwo+ICsJfQoKSXMgdGhpcyBldmVuIG5lZWRlZCBmb3IgcHJlLUhYTiBkZXZp Y2VzLCBvciBjb3VsZCBwZXJoYXBzIHNvbWUgb2YgaXQKanVzdCBiZSByZW1vdmVkPyBDYW4geW91 IGV4cGxhaW4gd2hhdCBpdCBkb2VzPwoKPiAgCWtmcmVlKGJ1Zik7Cj4gIAo+IEBAIC02NzEsMTUg KzcxOCwzNyBAQCBzdGF0aWMgdm9pZCBwbDIzMDNfc2V0X3Rlcm1pb3Moc3RydWN0IHR0eV9zdHJ1 Y3QgKnR0eSwKPiAgCX0KPiAgCj4gIAlpZiAoQ19DUlRTQ1RTKHR0eSkpIHsKPiAtCQlpZiAoc3By aXYtPnF1aXJrcyAmIFBMMjMwM19RVUlSS19MRUdBQ1kpCj4gKwkJaWYgKHNwcml2LT50eXBlID09 ICZwbDIzMDNfdHlwZV9kYXRhW1RZUEVfMDFdKQo+ICAJCQlwbDIzMDNfdmVuZG9yX3dyaXRlKHNl cmlhbCwgMHgwLCAweDQxKTsKPiArCQllbHNlIGlmIChzcHJpdi0+dHlwZSA9PSAmcGwyMzAzX3R5 cGVfZGF0YVtUWVBFX0hYTl0pCj4gKwkJCXBsMjMwM192ZW5kb3Jfd3JpdGUoc2VyaWFsLCBUWVBF X0hYTl9VQVJUX0ZMT1dDT05UUk9MLAo+ICsJCQkJCQkgVFlQRV9IWE5fSEFSRFdBUkVGTE9XKTsK PiAgCQllbHNlCj4gIAkJCXBsMjMwM192ZW5kb3Jfd3JpdGUoc2VyaWFsLCAweDAsIDB4NjEpOwo+ ICAJfSBlbHNlIGlmIChJX0lYT04odHR5KSAmJiAhSV9JWEFOWSh0dHkpICYmIFNUQVJUX0NIQVIo dHR5KSA9PSAweDExICYmCj4gIAkJCVNUT1BfQ0hBUih0dHkpID09IDB4MTMpIHsKPiAtCQlwbDIz MDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMHgwLCAweGMwKTsKPiArCQlpZiAoc3ByaXYtPnR5cGUg PT0gJnBsMjMwM190eXBlX2RhdGFbVFlQRV9IWE5dKQo+ICsJCQlwbDIzMDNfdmVuZG9yX3dyaXRl KHNlcmlhbCwgVFlQRV9IWE5fVUFSVF9GTE9XQ09OVFJPTCwKPiArCQkJCQkJIFRZUEVfSFhOX1NP RlRXQVJFRkxPVyk7Cj4gKwkJZWxzZQo+ICsJCQlwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwg MHgwLCAweGMwKTsKPiAgCX0gZWxzZSB7Cj4gLQkJcGwyMzAzX3ZlbmRvcl93cml0ZShzZXJpYWws IDB4MCwgMHgwKTsKPiArCQlpZiAoc3ByaXYtPnR5cGUgPT0gJnBsMjMwM190eXBlX2RhdGFbVFlQ RV9IWE5dKQo+ICsJCQlwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgVFlQRV9IWE5fVUFSVF9G TE9XQ09OVFJPTCwKPiArCQkJCQkJIFRZUEVfSFhOX05PRkxPVyk7Cj4gKwkJZWxzZQo+ICsJCQlw bDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgMHgwLCAweDApOwo+ICsJfQoKU28gdGhpcyBpcyBi ZWNvbWluZyBhIGJpdCBoYXJkIHRvIHJlYWQuIFRoZSBpZGVhIHdpdGggdGhlIHR5cGUgc3RydWN0 CndhcyB0byBhYnN0cmFjdCB0aGUgZGlmZmVyZW5jZXMuIFdlIGNvdWxkIGFkZCBzb21ldGhpbmcg bGlrZQoKCXU4IHVhcnRfZmxvd2N0cmxfcmVnOwoJdTggdWFydF9mbG93Y3RybF9odzsKCXU4IHVh cnRfZmxvd2N0cmxfc3c7Cgl1OCB1YXJ0X2Zsb3djdHJsX25vbmU7Cgp0byBzdHJ1Y3QgcGwyMzAz X3R5cGVfZGF0YSwgYW5kIHJlcGxhY2UgdGhlIGFib3ZlIHdpdGgganVzdCB0aHJlZSBjYWxscwp0 byBwbDIzMDNfdmVuZG9yX3dyaXRlKCkuCgpJZiB5b3UgZG8gdGhpcywgdGhlbiBkbyB0aGlzIGFz IGEgcHJlcGFyYXRvcnkgcGF0Y2ggYmVmb3JlIGFkZGluZyBIWE4Kc3VwcG9ydC4KCldlIHNob3Vs ZCBwcm9iYWJseSBkbyBzb21ldGhpbmcgc2ltaWxhciB3aXRoIHRoZSByZWFkIGFuZCB3cml0ZSBy ZXF1ZXN0cwppbnN0ZWFkIG9mIGFkZGluZyBjb25kaXRpb25hbHMgaW4gdGhvc2UgcGF0aHMuCgo+ ICsKPiArCWlmIChzcHJpdi0+dHlwZSA9PSAmcGwyMzAzX3R5cGVfZGF0YVtUWVBFX0hYXSkgewo+ ICsJCXBsMjMwM192ZW5kb3JfcmVhZChzZXJpYWwsIDB4ODQ4NCwgYnVmKTsKPiArCQlwbDIzMDNf dmVuZG9yX3dyaXRlKHNlcmlhbCwgMHgwNDA0LCBUWVBFX0hYX1BVTExVUF9NT0RFX1JFRyk7Cj4g KwkJcGwyMzAzX3ZlbmRvcl9yZWFkKHNlcmlhbCwgMHg4NDg0LCBidWYpOwo+ICsJCXBsMjMwM192 ZW5kb3JfcmVhZChzZXJpYWwsIDB4ODM4MywgYnVmKTsKPiArCQlpZiAoKHUxNikqYnVmICYgVFlQ RV9IWF9FWFRFUk5BTF9QVUxMVVBfTU9ERSkgewo+ICsJCQlwbDIzMDNfdmVuZG9yX3dyaXRlKHNl cmlhbCwgMHgwLCAweDMxKTsKPiArCQkJcGwyMzAzX3ZlbmRvcl93cml0ZShzZXJpYWwsIDB4MSwg MHgwMSk7Cj4gKwkJfQoKU28gdGhpcyBiaXQgbmVlZHMgdG8gZ28gaW4gaXQncyBvd24gcGF0Y2gg d2l0aCBhIGNvbW1pdCBtZXNzYWdlCmV4cGxhaW5pbmcgd2h5IGl0IGlzIG5lZWRlZC4gRG9uJ3Qg Zm9yZ2V0IHRvIHJlcGxhY2UgdGhlICJtYWdpYwpjb25zdGFudHMiIHdpdGggZGVzY3JpcHRpdmUg ZGVmaW5lcy4KCipidWYgaXMgdTggYW5kIG5vIG5lZWQgdG8gY2FzdCB0byB1MTYsIGFzIEkgYWxz byBhbHJlYWR5IHBvaW50ZWQgb3V0IGluCm15IGNvbW1lbnRzIHRvIGFuIGVhcmxpZXIgdmVyc2lv biBvZiB0aGUgcGF0Y2guCgo+ICAJfQo+ICAKPiAgCWtmcmVlKGJ1Zik7Cj4gQEAgLTcyMCw4ICs3 ODksMTMgQEAgc3RhdGljIGludCBwbDIzMDNfb3BlbihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBz dHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpwb3J0KQo+ICAJCXVzYl9jbGVhcl9oYWx0KHNlcmlhbC0+ ZGV2LCBwb3J0LT5yZWFkX3VyYi0+cGlwZSk7Cj4gIAl9IGVsc2Ugewo+ICAJCS8qIHJlc2V0IHVw c3RyZWFtIGRhdGEgcGlwZXMgKi8KPiAtCQlwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgOCwg MCk7Cj4gLQkJcGwyMzAzX3ZlbmRvcl93cml0ZShzZXJpYWwsIDksIDApOwo+ICsJCWlmIChzcHJp di0+dHlwZSA9PSAmcGwyMzAzX3R5cGVfZGF0YVtUWVBFX0hYTl0pCj4gKwkJCXBsMjMwM192ZW5k b3Jfd3JpdGUoc2VyaWFsLAo+ICsJCQkJCVRZUEVfSFhOX1JFU0VUX0RPV05fVVBTVFJFQU0sIDAp Owo+ICsJCWVsc2Ugewo+ICsJCQlwbDIzMDNfdmVuZG9yX3dyaXRlKHNlcmlhbCwgOCwgMCk7Cj4g KwkJCXBsMjMwM192ZW5kb3Jfd3JpdGUoc2VyaWFsLCA5LCAwKTsKPiArCQl9CgpTbyB0aGlzIGlz IGEgYml0IGhhcmRlciB0byBhYnN0cmFjdCwgYnV0IGNvdWxkIGJlIGRvbmUgdXNpbmcgZnVuY3Rp b24KcG9pbnRlcnMgYWx0aG91Z2ggaXQncyBwcm9iYWJseSBub3Qgd29ydGggaXQganVzdCB5ZXQu CgpKdXN0IG1ha2Ugc3VyZSB0byBkbyBhZGQgYnJhY2tldCAoe30pIGFsc28gdG8gdGhlIGJyYW5j aCB5b3UgYWRkIGhlcmUuCgpUaGFua3MsCkpvaGFuCg==