[patch 5/5] 2.4.20-pre5 i2c updates

Albert Cranford (ac9410@attbi.com)
Thu, 29 Aug 2002 01:39:36 -0400 (EDT)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--0-1872388394-1030599576=:16793
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hello Marcelo,
Attached are i2c patches that bring the kernel to the latest released and tested
version. Updates include:
o Support for SMBus 2.0 PEC Packet Error Checking
o New algorithm-i2c-algo-8xxx for MPC8XXX
o New algorithm-i2c-algo-ibm_ocp for IBM PPC 405
o New adapter-i2c-adap-ibm_ocp for IBM PPC 405
o New adapter-i2c-frodo for SA 1110 board
o New adapter-i2c-pcf-epp for PCF8584
o New adapter-i2c-pport for parallel port
o New adapter-i2c-rpx for embeded MPC8XX
o Updated documentation
Thanks,
Albert

-- 
ac9410@attbi.com

--0-1872388394-1030599576=:16793 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=47-i2c-5-patch Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.4.44.0208290139360.16793@home1> Content-Description: Content-Disposition: attachment; filename=47-i2c-5-patch

LS0tIGxpbnV4L0RvY3VtZW50YXRpb24vaTJjL2Rldi1pbnRlcmZhY2Uub3Jp ZwkyMDAxLTEwLTExIDExOjA1OjQ3LjAwMDAwMDAwMCAtMDQwMA0KKysrIGxp bnV4L0RvY3VtZW50YXRpb24vaTJjL2Rldi1pbnRlcmZhY2UJMjAwMi0wNi0x NSAxMzoxMToyOC4wMDAwMDAwMDAgLTA0MDANCkBAIC04Nyw3ICs4NywxMiBA QA0KIA0KIGlvY3RsKGZpbGUsSTJDX1RFTkJJVCxsb25nIHNlbGVjdCkNCiAg IFNlbGVjdHMgdGVuIGJpdCBhZGRyZXNzZXMgaWYgc2VsZWN0IG5vdCBlcXVh bHMgMCwgc2VsZWN0cyBub3JtYWwgNyBiaXQNCi0gIGFkZHJlc3NlcyBpZiBz ZWxlY3QgZXF1YWxzIDAuDQorICBhZGRyZXNzZXMgaWYgc2VsZWN0IGVxdWFs cyAwLiBEZWZhdWx0IDAuDQorDQoraW9jdGwoZmlsZSxJMkNfUEVDLGxvbmcg c2VsZWN0KQ0KKyAgU2VsZWN0cyBTTUJ1cyBQRUMgKHBhY2tldCBlcnJvciBj aGVja2luZykgZ2VuZXJhdGlvbiBhbmQgdmVyaWZpY2F0aW9uDQorICBpZiBz ZWxlY3Qgbm90IGVxdWFscyAwLCBkaXNhYmxlcyBpZiBzZWxlY3QgZXF1YWxz IDAuIERlZmF1bHQgMC4NCisgIFVzZWQgb25seSBmb3IgU01CdXMgdHJhbnNh Y3Rpb25zLg0KIA0KIGlvY3RsKGZpbGUsSTJDX0ZVTkNTLHVuc2lnbmVkIGxv bmcgKmZ1bmNzKQ0KICAgR2V0cyB0aGUgYWRhcHRlciBmdW5jdGlvbmFsaXR5 IGFuZCBwdXRzIGl0IGluICpmdW5jcy4NCi0tLSAvZGV2L251bGwJMTk5NC0w Ny0xNyAxOTo0NjoxOC4wMDAwMDAwMDAgLTA0MDANCisrKyBsaW51eC9Eb2N1 bWVudGF0aW9uL2kyYy9pMmMtb2xkLXBvcnRpbmcJMjAwMi0wNy0xMSAxOTo0 NjoxMS4wMDAwMDAwMDAgLTA0MDANCkBAIC0wLDAgKzEsNjI2IEBADQorSTJD IENvbnZlcnNpb24gR3VpZGUgZm9yIEkyQy1vbGQgdG8gdGhlIGN1cnJlbnQg STJDIEFQSQ0KK0p1bHkgMjAwMg0KK0ZvciBMaW51eCBLZXJuZWwgdjIuNS54 DQorRnJhbmsgRGF2aXMgPGZkYXZpc0BzaS5yci5jb20+DQorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KKw0KK1RoZXJlIGV4aXN0cyBzZXZlcmFsIGtlcm5lbCBkcml2ZXJzIHRo YXQgYXJlIHVzaW5nIGFuIG9sZCB2ZXJzaW9uIG9mIHRoZSBJMkMNCitBUEku IFRoZXNlIGRyaXZlcnMgbmVlZCB0byBiZSBjb252ZXJ0ZWQgdG8gdGhlIGN1 cnJlbnQgKGtlcm5lbCAyLjUueCkgdmVyc2lvbi4NCitUaGUgZm9sbG93aW5n IGRvY3VtZW50IHByb3ZpZGVzIGEgZ3VpZGVsaW5lIHRvIG1ha2UgdGhlIGFw cHJvcHJpYXRlIGNoYW5nZXMgdG8NCit0aGUgYWZmZWN0ZWQgZHJpdmVycy4g VGhlcmUgbWF5YmUgc2xpZ2h0IG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBndWlk ZSB0aGF0IGFyZSANCitzcGVjaWZpYyB0byB0aGUgZHJpdmVyIHlvdSBhcmUg d29ya2luZyBvbi4gSWYgeW91IHNlZSB7ZHJpdmVyX25hbWV9LCByZXBsYWNl IA0KK3RoYXQgd2l0aCB0aGUgcmVzcGVjdGl2ZSBuYW1lIG9mIHRoZSBkcml2 ZXIsIHN1Y2ggYXMgc2FhNzExMC5jICwge2RyaXZlcl9uYW1lfSANCis9IHNh YTcxMTAuDQorDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KK1N0ZXAgMTogSW5jbHVkZSB0 aGUgcmlnaHQgaGVhZGVyIGZpbGUNCisgDQorUGVyZm9ybSB0aGUgZm9sbG93 aW5nIGNoYW5nZSB3aXRoaW4gdGhlIGRyaXZlcg0KKyANCisjaW5jbHVkZSA8 bGludXgvaTJjLW9sZC5oPiAtLT4gI2luY2x1ZGUgPGxpbnV4L2kyYy5oPg0K Kw0KK1N0ZXAgMjogQWRkIGFuZCBzZXQgdGhlIGkyYyBtb2Rlcw0KKw0KK0Fk ZCB0aGUgZm9sbG93aW5nIGNvZGUgbmVhciB0aGUgdG9wIG9mIHRoZSBkcml2 ZXINCisNCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY1tdID0g ezM0Pj4xLCBJMkNfQ0xJRU5UX0VORCB9Ow0KK3N0YXRpYyB1bnNpZ25lZCBz aG9ydCBub3JtYWxfaTJjX3JhbmdlW10gPSB7IEkyQ19DTElFTlRfRU5EIH07 DQorc3RhdGljIHVuc2lnbmVkIHNob3J0IHByb2JlWzJdID0geyBJMkNfQ0xJ RU5UX0VORCAsIEkyQ19DTElFTlRfRU5EIH07DQorc3RhdGljIHVuc2lnbmVk IHNob3J0IHByb2JlX3JhbmdlWzJdID0geyBJMkNfQ0xJRU5UX0VORCAsIEky Q19DTElFTlRfRU5EIH07CQ0KK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBpZ25v cmVbMl0gPSB7IEkyQ19DTElFTlRfRU5EICwgSTJDX0NMSUVOVF9FTkQgfTsN CitzdGF0aWMgdW5zaWduZWQgc2hvcnQgaWdub3JlX3JhbmdlWzJdID0geyBJ MkNfQ0xJRU5UX0VORCwgSTJDX0NMSUVOVF9FTkQgfTsNCitzdGF0aWMgdW5z aWduZWQgc2hvcnQgZm9yY2VbMl0gPSB7IEkyQ19DTElFTlRfRU5EICwgSTJD X0NMSUVOVF9FTkQgfTsNCisNCitzdGF0aWMgc3RydWN0IGkyY19jbGllbnRf YWRkcmVzc19kYXRhIGFkZHJfZGF0YSAgPSB7DQorCW5vcm1hbF9pMmMgLCBu b3JtYWxfaTJjX3JhbmdlLA0KKwlwcm9iZSAsIHByb2JlX3JhbmdlLA0KKwlp Z25vcmUgLCBpZ25vcmVfcmFuZ2UsDQorCWZvcmNlDQorfTsNCisNCitzdGF0 aWMgc3RydWN0IGkyY19jbGllbnQgY2xpZW50X3RlbXBsYXRlOw0KKw0KK1N0 ZXAgMzogTW9kaWZ5IHRoZSBkcml2ZXIgaW5mbyBzdHJ1Y3QNCisNCitXaXRo aW4gdGhlIHN0cnVjdCBmb3IgdGhlIGRyaXZlciAsIHN1Y2ggYXMgc3RydWN0 IHtkcml2ZXJfbmFtZX0gICwgIG1ha2UgdGhlIA0KK2ZvbGxvd2luZyBjaGFu Z2UgLA0KK3N0cnVjdCBpMmNfYnVzICpidXMgLS0+IHN0cnVjdCBpMmNfY2xp ZW50ICpjbGllbnQNCisNCitNYWtlIGNoYW5nZXMgd2hlcmUgdGhpcyBjaGFu Z2UgYWZmZWN0cyByZWZlcmVuY2VzIHdpdGhpbiB0aGUgZmlsZS4NCisNCitB ZGQgYSBzZW1hcGhvcmUgdG8gdGhlIGRyaXZlciBzdHJ1Y3QgKGFzIGFib3Zl KQ0KKw0KK3N0cnVjdCBzZW1hcGhvcmUgbG9jayANCisNCitTdGVwIDU6IFJl bW92ZSBzcGVjaWZpYyByZWFkIGFuZCB3cml0ZSBmdW5jdGlvbnMNCisNCitS ZW1vdmUgdGhlIGRyaXZlciBzcGVjaWZpYyB3cml0ZSBhbmQgcmVhZCBmdW5j dGlvbnMsIHVzdWFsbHkgaW4gdGhlIGZvcm06DQore2RyaXZlcl9uYW1lfV93 cml0ZSAsIHtkcml2ZXJfbmFtZX1fcmVhZCAsIHtkcml2ZXJfbmFtZX1fd3Jp dGVfYmxvY2sgLCBldGMuDQorDQorU3RlcCA2OiBVcGRhdGUgdGhlIHdyaXRl IGFuZCByZWFkIGZ1bmN0aW9ucyBmb3IgdGhlIGN1cnJlbnQgSTJDIEFQSQ0K Kw0KK1JlcGxhY2UgYWxsIHJlZmVyZW5jZXMgb2Yge2RyaXZlcl9uYW1lfV93 cml0ZSB3aXRoIGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGENCitSZXBsYWNl IGFsbCByZWZlcmVuY2VzIG9mIHtkcml2ZXJfbmFtZX1fcmVhZCB3aXRoIGky Y19zbWJ1c19yZWFkX2J5dGVfZGF0YSBvcg0KK2kyY19zbWJ1c19yZWFkX2J5 dGUgLCBkZXBlbmRpbmcgb24gYXJncyBwYXNzZWQgaW4uDQorDQorKiogRW5z dXJlIHRoYXQgdGhlc2UgZnVuY3Rpb25zIHBhc3MgaW4gdGhlIGkyY19jbGll bnQgKmNsaWVudCAsIE5PVCB0aGUNCitkZWNvZGVyL2VuY29kZXIgdGhhdCB3 YXMgcGFzc2VkIGluIHRoZSBkcml2ZXIgc3BlY2lmaWMgd3JpdGUgYW5kIHJl YWQNCitmdW5jdGlvbnMuIA0KKyANCitTdGVwIDc6IE1vZGlmeSB0aGUgZHJp dmVyJ3MgYXR0YWNoIGZ1bmN0aW9uDQorDQorQ2hhbmdlIHRoZSBkcml2ZXIg YXR0YWNoIGZ1bmN0aW9uIHByb3RvdHlwZSA6DQore2RyaXZlcl9uYW1lfV9h dHRhY2goc3RydWN0IGkyY19kZXZpY2UgKmRldmljZSkgLS0+IHtkcml2ZXJf bmFtZX1fYXR0YWNoKHN0cnVjdCANCitpMmNfYWRhcHRlciAqYWRhcCwgaW50 IGFkZHIgLCB1bnNpZ25lZCBzaG9ydCBmbGFncywgaW50IGtpbmQpDQorDQor Q3JlYXRlIGEgaTJjX2NsaWVudCBjbGllbnQuLi4NCitBZGQgdGhlIGZvbGxv d2luZyAod2hlcmUgImRlY29kZXIiIGlzIGEgcmVmZXJlbmNlIHRvIGEgc3Ry dWN0IGZvciB0aGUgZHJpdmVyDQoraW5mbzoNCisNCitzdHJ1Y3QgaTJjX2Ns aWVudCAqY2xpZW50Ow0KK2NsaWVudCA9IGttYWxsb2Moc2l6ZW9mKCpjbGll bnQpLCBHRlBfS0VSTkVMKTsNCitpZihjbGllbnQgPT0gTlVMTCkNCisJcmV0 dXJuIC1FTk9NRU07DQorY2xpZW50X3RlbXBsYXRlLmFkYXB0ZXIgPSBhZGFw Ow0KK2NsaWVudF90ZW1wbGF0ZS5hZGRyICA9IGFkZHI7DQorbWVtY3B5KGNs aWVudCwgJmNsaWVudF90ZW1wbGF0ZSwgc2l6ZW9mKCpjbGllbnQpKTsNCitz dHJjcHkoY2xpZW50LT5uYW1lICwgIntkcml2ZXJfbmFtZX0iKTsNCitkZWNv ZGVyLT5jbGllbnQgPSBjbGllbnQ7DQorY2xpZW50LT5kYXRhID0gZGVjb2Rl cjsNCitkZWNvZGVyLT5hZGRyID0gYWRkcjsNCisNCitUb3dhcmRzIHRoZSBl bmQgb2YgdGhlIGZ1bmN0aW9uLCBhZGQ6DQorDQoraW5pdF9NVVRFWCgmZGVj b2Rlci0+bG9jayk7DQoraTJjX2F0dGFjaF9jbGllbnQoY2xpZW50KTsNCisN CisNCitTdGVwIDg6IE1vZGlmeSB0aGUgZHJpdmVyJ3MgZGV0YWNoIGZ1bmN0 aW9uDQorDQorQ2hhbmdlIHRoZSBkcml2ZXIgZGV0YWNoIGZ1bmN0aW9uIHBy b3RvdHlwZSA6DQore2RyaXZlcl9uYW1lfV9kZXRhY2goc3RydWN0IGkyY19k ZXZpY2UgKmRldmljZSkgLS0+IHtkcml2ZXJfbmFtZX1fZGV0YWNoKHN0cnVj dCANCitpMmNfY2xpZW50ICpjbGllbnQpDQorDQorSW4gdGhlIGJlZ2lubmlu ZyBvZiB0aGUgZGV0YWNoIGZ1bmN0aW9uLCBhZGQ6DQoraTJjX2RldGFjaF9j bGllbnQoY2xpZW50KTsNCisNCitUb3dhcmRzIHRoZSBlbmQgb2YgdGhlIGRl dGFjaCBmdW5jdGlvbiwgYWRkOg0KK2tmcmVlKGNsaWVudC0+ZGF0YSk7DQor a2ZyZWUoY2xpZW50KTsNCisNCitTdGVwIDk6IE1vZGlmeSB0aGUgZHJpdmVy J3MgY29tbWFuZCBmdW5jdGlvbg0KKw0KK0NoYW5nZSB0aGUgZHJpdmVyIGNv bW1hbmQgZnVuY3Rpb24gcHJvdG90eXBlIDoNCisNCitTdGVwIDEwOiBBZGQg dGhlIHByb2JlIGZ1bmN0aW9uIGFmdGVyIHRoZSBkcml2ZXIncyBhdHRhY2gg ZnVuY3Rpb24uDQorDQorQWRkIHRoZSBmb2xsb3dpbmcgY29kZToNCisNCitz dGF0aWMgaW50IHtkcml2ZXJfbmFtZX1fcHJvYmUoc3RydWN0IGkyY19hZGFw dGVyICphZGFwKQ0KK3sNCisJcmV0dXJuIGkyY19wcm9iZShhZGFwLCAmYWRk cl9kYXRhLCB7ZHJpdmVyX25hbWV9X2F0dGFjaCk7DQorDQorfQ0KKw0KK1N0 ZXAgMTE6IE1vZGlmeSB0aGUgZHJpdmVyJ3MgaTJjX2RyaXZlcg0KKw0KK0Zp bmQgdGhlIGkyY19kcml2ZXIgLCBzdWNoIGFzDQorc3RhdGljIHN0cnVjdCBp MmNfZHJpdmVyIGkyY19kcml2ZXJfc2FhNzExMA0KK0l0IGlzIHVzdWFsbHkg bG9jYXRlZCB0b3dhcmRzIHRoZSBlbmQgb2YgdGhlIGRyaXZlciANCitSZXBs YWNlIHRoZSB2YWx1ZXMgZnJvbSBJMkNfRFJJVkVSSURfe3NvbWV0aGluZ30g dG8ge2RyaXZlcl9uYW1lfV9hdHRhY2gsIGFuZCANCithZGQgdGhlIGZvbGxv d2luZw0KK0kyQ19EUklWRVJJRF97ZHJpdmVyX25hbWV9ICwgLy8gdmVyaWZ5 IGJ5IGxvb2tpbmcgaW4gaW5jbHVkZS9saW51eC9pMmMtaWQuaCANCitJMkNf REZfTk9USUZZLA0KK3tkcml2ZXJfbmFtZX1fcHJvYmUsIA0KKy4uLi4NCisN CitTdGVwIDEyOiBBZGRpbmcgdGhlIGkyY19jbGllbnQgDQorDQorQWRkIHRo ZSBpMmNfY2xpZW50IHRvIHRoZSBkcml2ZXIuIEFkZCB0aGUgZm9sbG93aW5n IGNvZGU6DQorDQorc3RhdGljIHN0cnVjdCBpMmNfY2xpZW50IGNsaWVudF90 ZW1wbGF0ZSA9IHsNCisJIntkcml2ZXJfbmFtZX1fY2xpZW50IiwNCisJLTEs DQorCTAsDQorCTAsDQorCU5VTEwsDQorCXtpMmNfZHJpdmVyIHJlZmVyZW5j ZX0NCit9Ow0KKw0KK1N0ZXAgMTM6IFJlZ2lzdGVyaW5nIGFuZCBVbnJlZ2lz dGVyaW5nDQorDQorUmVwbGFjZSBpMmNfcmVnaXN0ZXJfZHJpdmVyIHdpdGgg aTJjX2FkZF9kcml2ZXINCitSZXBsYWNlIGkyY191bnJlZ2lzdGVyX2RyaXZl ciB3aXRoIGkyY19kZWxfZHJpdmVyDQorDQorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KK0V4 YW1wbGU6DQorDQorVGhlIGZvbGxvd2luZyBwYXRjaCBwcm92aWRlcyB0aGUg aTJjIGNvdmVyc2lvbiBwYXRjaCBmb3IgdGhlIHNhYTcxMTAgZHJpdmVyDQor YmFzZWQgb24gdGhlIGFib3ZlIGd1aWRlIChmb3IgY2xhcml0eSkuDQorDQor DQorLS0tIGRyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzExMC5jLm9sZAlGcmkg SnVuIDI4IDEwOjIyOjUyIDIwMDINCisrKysgZHJpdmVycy9tZWRpYS92aWRl by9zYWE3MTEwLmMJVGh1IEp1bCAgNCAxNjo1MTowOCAyMDAyDQorQEAgLTI2 LDcgKzI2LDcgQEANCisgI2luY2x1ZGUgPGFzbS9pby5oPg0KKyAjaW5jbHVk ZSA8YXNtL3VhY2Nlc3MuaD4NCisgDQorLSNpbmNsdWRlIDxsaW51eC9pMmMt b2xkLmg+DQorKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4NCisgI2luY2x1ZGUg PGxpbnV4L3ZpZGVvZGV2Lmg+DQorICNpbmNsdWRlICJsaW51eC92aWRlb19k ZWNvZGVyLmgiDQorIA0KK0BAIC0zNywxMyArMzcsMzEgQEANCisgDQorICNk ZWZpbmUJSTJDX1NBQTcxMTAJCTB4OUMJLyogb3IgMHg5RSAqLw0KKyANCisr I2RlZmluZSBJRl9OQU1FCSJzYWE3MTEwIg0KKyAjZGVmaW5lCUkyQ19ERUxB WQkJMTAJLyogMTAgdXMgb3IgMTAwa2h6ICovDQorIA0KKytzdGF0aWMgdW5z aWduZWQgc2hvcnQgbm9ybWFsX2kyY1tdID0gezM0Pj4xLCBJMkNfQ0xJRU5U X0VORCB9Ow0KKytzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY19y YW5nZVtdID0geyBJMkNfQ0xJRU5UX0VORCB9Ow0KKytzdGF0aWMgdW5zaWdu ZWQgc2hvcnQgcHJvYmVbMl0gPSB7IEkyQ19DTElFTlRfRU5ELCBJMkNfQ0xJ RU5UX0VORCB9Ow0KKytzdGF0aWMgdW5zaWduZWQgc2hvcnQgcHJvYmVfcmFu Z2VbMl0gPSB7IEkyQ19DTElFTlRfRU5ELCBJMkNfQ0xJRU5UX0VORCB9Ow0K KytzdGF0aWMgdW5zaWduZWQgc2hvcnQgaWdub3JlWzJdID0geyBJMkNfQ0xJ RU5UX0VORCwgSTJDX0NMSUVOVF9FTkQgfTsNCisrc3RhdGljIHVuc2lnbmVk IHNob3J0IGlnbm9yZV9yYW5nZVsyXSA9IHsgSTJDX0NMSUVOVF9FTkQsIEky Q19DTElFTlRfRU5EIH07DQorK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBmb3Jj ZVsyXSA9IHsgSTJDX0NMSUVOVF9FTkQsIEkyQ19DTElFTlRfRU5EIH07DQor Kw0KKytzdGF0aWMgc3RydWN0IGkyY19jbGllbnRfYWRkcmVzc19kYXRhIGFk ZHJfZGF0YSA9IHsNCisrCW5vcm1hbF9pMmMsIG5vcm1hbF9pMmNfcmFuZ2Us DQorKwlwcm9iZSwgcHJvYmVfcmFuZ2UsDQorKwlpZ25vcmUsIGlnbm9yZV9y YW5nZSwNCisrCWZvcmNlDQorK307DQorKw0KKytzdGF0aWMgc3RydWN0IGky Y19jbGllbnQgY2xpZW50X3RlbXBsYXRlOw0KKysNCisgc3RydWN0IHNhYTcx MTAgew0KKy0Jc3RydWN0CWkyY19idXMJKmJ1czsNCisrCXN0cnVjdCBpMmNf Y2xpZW50ICpjbGllbnQ7DQorIAlpbnQJCWFkZHI7DQorIAl1bnNpZ25lZCBj aGFyCXJlZ1szNl07DQorLQ0KKysJc3RydWN0IHNlbWFwaG9yZSBsb2NrOw0K KyAJaW50CQlub3JtOw0KKyAJaW50CQlpbnB1dDsNCisgCWludAkJZW5hYmxl Ow0KK0BAIC01NCw2NyArNzIsMTAgQEANCisgfTsNCisgDQorIC8qIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQorLS8qIEkyQyBzdXBwb3J0IGZ1 bmN0aW9ucwkJCQkJCSAgICovDQorLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICovDQorLXN0YXRpYw0KKy1pbnQgc2FhNzExMF93cml0ZShzdHJ1 Y3Qgc2FhNzExMCAqZGVjb2RlciwgdW5zaWduZWQgY2hhciBzdWJhZGRyLCB1 bnNpZ25lZCBjaGFyIGRhdGEpDQorLXsNCistCWludCBhY2s7DQorLQ0KKy0J TE9DS19JMkNfQlVTKGRlY29kZXItPmJ1cyk7DQorLQlpMmNfc3RhcnQoZGVj b2Rlci0+YnVzKTsNCistCWkyY19zZW5kYnl0ZShkZWNvZGVyLT5idXMsIGRl Y29kZXItPmFkZHIsIEkyQ19ERUxBWSk7DQorLQlpMmNfc2VuZGJ5dGUoZGVj b2Rlci0+YnVzLCBzdWJhZGRyLCBJMkNfREVMQVkpOw0KKy0JYWNrID0gaTJj X3NlbmRieXRlKGRlY29kZXItPmJ1cywgZGF0YSwgSTJDX0RFTEFZKTsNCist CWkyY19zdG9wKGRlY29kZXItPmJ1cyk7DQorLQlkZWNvZGVyLT5yZWdbc3Vi YWRkcl0gPSBkYXRhOw0KKy0JVU5MT0NLX0kyQ19CVVMoZGVjb2Rlci0+YnVz KTsNCistCXJldHVybiBhY2s7DQorLX0NCistDQorLXN0YXRpYw0KKy1pbnQg c2FhNzExMF93cml0ZV9ibG9jayhzdHJ1Y3Qgc2FhNzExMCogZGVjb2Rlciwg dW5zaWduZWQgY29uc3QgY2hhciAqZGF0YSwgdW5zaWduZWQgaW50IGxlbikN Cistew0KKy0JdW5zaWduZWQgc3ViYWRkciA9ICpkYXRhOw0KKy0NCistCUxP Q0tfSTJDX0JVUyhkZWNvZGVyLT5idXMpOw0KKy0gICAgICAgIGkyY19zdGFy dChkZWNvZGVyLT5idXMpOw0KKy0gICAgICAgIGkyY19zZW5kYnl0ZShkZWNv ZGVyLT5idXMsZGVjb2Rlci0+YWRkcixJMkNfREVMQVkpOw0KKy0Jd2hpbGUg KGxlbi0tID4gMCkgew0KKy0gICAgICAgICAgICAgICAgaWYgKGkyY19zZW5k Ynl0ZShkZWNvZGVyLT5idXMsKmRhdGEsMCkpIHsNCistICAgICAgICAgICAg ICAgICAgICAgICAgaTJjX3N0b3AoZGVjb2Rlci0+YnVzKTsNCistICAgICAg ICAgICAgICAgICAgICAgICAgVU5MT0NLX0kyQ19CVVMoZGVjb2Rlci0+YnVz KTsNCistICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FQUdBSU47 DQorLSAgICAgICAgICAgICAgICB9DQorLQkJZGVjb2Rlci0+cmVnW3N1YmFk ZHIrK10gPSAqZGF0YSsrOw0KKy0gICAgICAgIH0NCistCWkyY19zdG9wKGRl Y29kZXItPmJ1cyk7DQorLQlVTkxPQ0tfSTJDX0JVUyhkZWNvZGVyLT5idXMp Ow0KKy0NCistCXJldHVybiAwOw0KKy19DQorLQ0KKy1zdGF0aWMNCistaW50 IHNhYTcxMTBfcmVhZChzdHJ1Y3Qgc2FhNzExMCogZGVjb2RlcikNCistew0K Ky0JaW50IGRhdGE7DQorLQ0KKy0JTE9DS19JMkNfQlVTKGRlY29kZXItPmJ1 cyk7DQorLQlpMmNfc3RhcnQoZGVjb2Rlci0+YnVzKTsNCistCWkyY19zZW5k Ynl0ZShkZWNvZGVyLT5idXMsIGRlY29kZXItPmFkZHIsIEkyQ19ERUxBWSk7 DQorLQlpMmNfc3RhcnQoZGVjb2Rlci0+YnVzKTsNCistCWkyY19zZW5kYnl0 ZShkZWNvZGVyLT5idXMsIGRlY29kZXItPmFkZHIgfCAxLCBJMkNfREVMQVkp Ow0KKy0JZGF0YSA9IGkyY19yZWFkYnl0ZShkZWNvZGVyLT5idXMsIDEpOw0K Ky0JaTJjX3N0b3AoZGVjb2Rlci0+YnVzKTsNCistCVVOTE9DS19JMkNfQlVT KGRlY29kZXItPmJ1cyk7DQorLQlyZXR1cm4gZGF0YTsNCistfQ0KKy0NCist LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCisgLyogU0FBNzEx MCBmdW5jdGlvbnMJCQkJCQkJICAgKi8NCisgLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gKi8NCisgc3RhdGljDQorLWludCBzYWE3MTEwX3NlbG11 eChzdHJ1Y3QgaTJjX2RldmljZSAqZGV2aWNlLCBpbnQgY2hhbikNCisraW50 IHNhYTcxMTBfc2VsbXV4KHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIGlu dCBjaGFuKQ0KKyB7DQorIHN0YXRpYwljb25zdCB1bnNpZ25lZCBjaGFyIG1v ZGVzWzldWzhdID0gew0KKyAvKiBtb2RlIDAgKi8JeyAweDAwLCAweEQ5LCAw eDE3LCAweDQwLCAweDAzLCAweDQ0LCAweDc1LCAweDE2IH0sDQorQEAgLTEy Niw2MSArODcsNTkgQEANCisgLyogbW9kZSA2ICovCXsgMHg4MCwgMHg1OSwg MHgxNywgMHg0MiwgMHhBMywgMHg0NCwgMHg3NSwgMHgxMiB9LA0KKyAvKiBt b2RlIDcgKi8JeyAweDgwLCAweDlBLCAweDE3LCAweEIxLCAweDEzLCAweDYw LCAweEI1LCAweDE0IH0sDQorIC8qIG1vZGUgOCAqLwl7IDB4ODAsIDB4M0Ms IDB4MjcsIDB4QzEsIDB4MjMsIDB4NDQsIDB4NzUsIDB4MjEgfSB9Ow0KKy0J c3RydWN0IHNhYTcxMTAqIGRlY29kZXIgPSBkZXZpY2UtPmRhdGE7DQorIAlj b25zdCB1bnNpZ25lZCBjaGFyKiBwdHIgPSBtb2Rlc1tjaGFuXTsNCisgDQor LQlzYWE3MTEwX3dyaXRlKGRlY29kZXIsMHgwNixwdHJbMF0pOwkvKiBMdW1p bmFuY2UgY29udHJvbAkqLw0KKy0Jc2FhNzExMF93cml0ZShkZWNvZGVyLDB4 MjAscHRyWzFdKTsJLyogQW5hbG9nIENvbnRyb2wgIzEJKi8NCistCXNhYTcx MTBfd3JpdGUoZGVjb2RlciwweDIxLHB0clsyXSk7CS8qIEFuYWxvZyBDb250 cm9sICMyCSovDQorLQlzYWE3MTEwX3dyaXRlKGRlY29kZXIsMHgyMixwdHJb M10pOwkvKiBNaXhlciBDb250cm9sICMxCSovDQorLQlzYWE3MTEwX3dyaXRl KGRlY29kZXIsMHgyQyxwdHJbNF0pOwkvKiBNaXhlciBDb250cm9sICMyCSov DQorLQlzYWE3MTEwX3dyaXRlKGRlY29kZXIsMHgzMCxwdHJbNV0pOwkvKiBB RENzIGdhaW4gY29udHJvbAkqLw0KKy0Jc2FhNzExMF93cml0ZShkZWNvZGVy LDB4MzEscHRyWzZdKTsJLyogTWl4ZXIgQ29udHJvbCAjMwkqLw0KKy0Jc2Fh NzExMF93cml0ZShkZWNvZGVyLDB4MjEscHRyWzddKTsJLyogQW5hbG9nIENv bnRyb2wgIzIJKi8NCisrCWkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xp ZW50LDB4MDYscHRyWzBdKTsJLyogTHVtaW5hbmNlIGNvbnRyb2wJKi8NCisr CWkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LDB4MjAscHRyWzFd KTsJLyogQW5hbG9nIENvbnRyb2wgIzEJKi8NCisrCWkyY19zbWJ1c193cml0 ZV9ieXRlX2RhdGEoY2xpZW50LDB4MjEscHRyWzJdKTsJLyogQW5hbG9nIENv bnRyb2wgIzIJKi8NCisrCWkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xp ZW50LDB4MjIscHRyWzNdKTsJLyogTWl4ZXIgQ29udHJvbCAjMQkqLw0KKysJ aTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsMHgyQyxwdHJbNF0p OwkvKiBNaXhlciBDb250cm9sICMyCSovDQorKwlpMmNfc21idXNfd3JpdGVf Ynl0ZV9kYXRhKGNsaWVudCwweDMwLHB0cls1XSk7CS8qIEFEQ3MgZ2FpbiBj b250cm9sCSovDQorKwlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVu dCwweDMxLHB0cls2XSk7CS8qIE1peGVyIENvbnRyb2wgIzMJKi8NCisrCWky Y19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LDB4MjEscHRyWzddKTsJ LyogQW5hbG9nIENvbnRyb2wgIzIJKi8NCisgDQorIAlyZXR1cm4gMDsNCisg fQ0KKyANCisgc3RhdGljDQorLWludCBkZXRlcm1pbmVfbm9ybShzdHJ1Y3Qg aTJjX2RldmljZSogZGV2KQ0KKytpbnQgZGV0ZXJtaW5lX25vcm0oc3RydWN0 IGkyY19jbGllbnQqIGNsaWVudCkNCisgew0KKy0Jc3RydWN0CXNhYTcxMTAq IGRlY29kZXIgPSBkZXYtPmRhdGE7DQorIAlpbnQJc3RhdHVzOw0KKyANCisg CS8qIG1vZGUgY2hhbmdlZCwgc3RhcnQgYXV0b21hdGljIGRldGVjdGlvbiAq Lw0KKy0Jc3RhdHVzID0gc2FhNzExMF9yZWFkKGRlY29kZXIpOw0KKysJc3Rh dHVzID0gaTJjX3NtYnVzX3JlYWRfYnl0ZShjbGllbnQpOw0KKyAJaWYgKChz dGF0dXMgJiAzKSA9PSAwKSB7DQorLQkJc2FhNzExMF93cml0ZShkZWNvZGVy LDB4MDYsMHg4MCk7DQorKwkJaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShj bGllbnQsMHgwNiwweDgwKTsNCisgCQlpZiAoc3RhdHVzICYgMHgyMCkgew0K Ky0JCQlERUJVRyhwcmludGsoS0VSTl9JTkZPICIlczogbm9ybT1idzYwXG4i LGRldi0+bmFtZSkpOw0KKy0JCQlzYWE3MTEwX3dyaXRlKGRlY29kZXIsMHgy RSwweDgxKTsNCisrCQkJREVCVUcocHJpbnRrKEtFUk5fSU5GTyAiJXM6IG5v cm09Ync2MFxuIixhZHAtPm5hbWUpKTsNCisrCQkJaTJjX3NtYnVzX3dyaXRl X2J5dGVfZGF0YShjbGllbnQsMHgyRSwweDgxKTsNCisgCQkJcmV0dXJuIFZJ REVPX01PREVfTlRTQzsNCisgCQl9DQorLQkJREVCVUcocHJpbnRrKEtFUk5f SU5GTyAiJXM6IG5vcm09Ync1MFxuIixkZXYtPm5hbWUpKTsNCistCQlzYWE3 MTEwX3dyaXRlKGRlY29kZXIsMHgyRSwweDlBKTsNCisrCQlERUJVRyhwcmlu dGsoS0VSTl9JTkZPICIlczogbm9ybT1idzUwXG4iLGFkcC0+bmFtZSkpOw0K KysJCWkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LDB4MkUsMHg5 QSk7DQorIAkJcmV0dXJuIFZJREVPX01PREVfUEFMOw0KKyAJfQ0KKyANCist CXNhYTcxMTBfd3JpdGUoZGVjb2RlciwweDA2LDB4MDApOw0KKysJaTJjX3Nt YnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsMHgwNiwweDAwKTsNCisgCWlm IChzdGF0dXMgJiAweDIwKSB7CS8qIDYwSHogKi8NCistCQlERUJVRyhwcmlu dGsoS0VSTl9JTkZPICIlczogbm9ybT1udHNjXG4iLGRldi0+bmFtZSkpOw0K Ky0JCXNhYTcxMTBfd3JpdGUoZGVjb2RlciwweDBELDB4MDYpOw0KKy0JCXNh YTcxMTBfd3JpdGUoZGVjb2RlciwweDExLDB4MkMpOw0KKy0JCXNhYTcxMTBf d3JpdGUoZGVjb2RlciwweDJFLDB4ODEpOw0KKysJCURFQlVHKHByaW50ayhL RVJOX0lORk8gIiVzOiBub3JtPW50c2NcbiIsYWRwLT5uYW1lKSk7DQorKwkJ aTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsMHgwRCwweDA2KTsN CisrCQlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwweDExLDB4 MkMpOw0KKysJCWkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LDB4 MkUsMHg4MSk7DQorIAkJcmV0dXJuIFZJREVPX01PREVfTlRTQzsNCisgCX0N CisgDQorIAkvKiA1MEh6IC0+IFBBTC9TRUNBTSAqLw0KKy0Jc2FhNzExMF93 cml0ZShkZWNvZGVyLDB4MEQsMHgwNik7DQorLQlzYWE3MTEwX3dyaXRlKGRl Y29kZXIsMHgxMSwweDU5KTsNCistCXNhYTcxMTBfd3JpdGUoZGVjb2Rlciww eDJFLDB4OUEpOw0KKysJaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGll bnQsMHgwRCwweDA2KTsNCisrCWkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEo Y2xpZW50LDB4MTEsMHg1OSk7DQorKwlpMmNfc21idXNfd3JpdGVfYnl0ZV9k YXRhKGNsaWVudCwweDJFLDB4OUEpOw0KKyANCisgCW1kZWxheSgxNTApOwkv KiBwYXVzZSAxNTAgbXMgKi8NCisgDQorLQlzdGF0dXMgPSBzYWE3MTEwX3Jl YWQoZGVjb2Rlcik7DQorKwlzdGF0dXMgPSBpMmNfc21idXNfcmVhZF9ieXRl KGNsaWVudCk7DQorIAlpZiAoKHN0YXR1cyAmIDB4MDMpID09IDB4MDEpIHsN CisgCQlERUJVRyhwcmludGsoS0VSTl9JTkZPICIlczogbm9ybT1zZWNhbVxu IixkZXYtPm5hbWUpKTsNCistCQlzYWE3MTEwX3dyaXRlKGRlY29kZXIsMHgw RCwweDA3KTsNCisrCQlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVu dCwweDBELDB4MDcpOw0KKyAJCXJldHVybiBWSURFT19NT0RFX1NFQ0FNOw0K KyAJfQ0KKyAJREVCVUcocHJpbnRrKEtFUk5fSU5GTyAiJXM6IG5vcm09cGFs XG4iLGRldi0+bmFtZSkpOw0KK0BAIC0xODgsNyArMTQ3LDcgQEANCisgfQ0K KyANCisgc3RhdGljDQorLWludCBzYWE3MTEwX2F0dGFjaChzdHJ1Y3QgaTJj X2RldmljZSAqZGV2aWNlKQ0KKytpbnQgc2FhNzExMF9hdHRhY2goc3RydWN0 IGkyY19hZGFwdGVyICphZGFwLCBpbnQgIGFkZHIsIHVuc2lnbmVkIHNob3J0 IGZsYWdzLCBpbnQga2luZCkNCisgew0KKyBzdGF0aWMJY29uc3QgdW5zaWdu ZWQgY2hhciBpbml0c2VxW10gPSB7DQorIAkgICAgIDAsIDB4NEMsIDB4M0Ms IDB4MEQsIDB4RUYsIDB4QkQsIDB4RjAsIDB4MDAsIDB4MDAsDQorQEAgLTE5 OCwyMCArMTU3LDI4IEBADQorIAkJMHhEOSwgMHgxNywgMHg0MCwgMHg0MSwg MHg4MCwgMHg0MSwgMHg4MCwgMHg0RiwNCisgCQkweEZFLCAweDAxLCAweENG LCAweDBGLCAweDAzLCAweDAxLCAweDgxLCAweDAzLA0KKyAJCTB4NDAsIDB4 NzUsIDB4MDEsIDB4OEMsIDB4MDN9Ow0KKy0Jc3RydWN0CXNhYTcxMTAqCWRl Y29kZXI7DQorKwlzdHJ1Y3QJc2FhNzExMAkqZGVjb2RlcjsNCisrCXN0cnVj dCBpMmNfY2xpZW50ICpjbGllbnQ7DQorIAlpbnQJCQlydjsNCistDQorLQlk ZXZpY2UtPmRhdGEgPSBkZWNvZGVyID0ga21hbGxvYyhzaXplb2Yoc3RydWN0 IHNhYTcxMTApLCBHRlBfS0VSTkVMKTsNCistCWlmIChkZXZpY2UtPmRhdGEg PT0gMCkNCisrCWNsaWVudD1rbWFsbG9jKHNpemVvZigqY2xpZW50KSwgR0ZQ X0tFUk5FTCk7DQorKwlpZihjbGllbnQgPT0gTlVMTCkgDQorIAkJcmV0dXJu IC1FTk9NRU07DQorLQ0KKy0JTU9EX0lOQ19VU0VfQ09VTlQ7DQorKwljbGll bnRfdGVtcGxhdGUuYWRhcHRlciA9IGFkYXA7DQorKwljbGllbnRfdGVtcGxh dGUuYWRkciA9IGFkZHI7DQorKwltZW1jcHkoY2xpZW50LCAmY2xpZW50X3Rl bXBsYXRlLCBzaXplb2YoKmNsaWVudCkpOw0KKysNCisrCWRlY29kZXIgPSBr bWFsbG9jKHNpemVvZigqZGVjb2RlciksIEdGUF9LRVJORUwpOw0KKysJaWYg KGRlY29kZXIgPT0gTlVMTCkgew0KKysJCWtmcmVlKGNsaWVudCk7DQorKwkJ cmV0dXJuIC1FTk9NRU07DQorKwkJfQ0KKyANCisgCS8qIGNsZWFyIG91ciBw cml2YXRlIGRhdGEgKi8NCistCW1lbXNldChkZWNvZGVyLCAwLCBzaXplb2Yo c3RydWN0IHNhYTcxMTApKTsNCistCXN0cmNweShkZXZpY2UtPm5hbWUsICJz YWE3MTEwIik7DQorLQlkZWNvZGVyLT5idXMgPSBkZXZpY2UtPmJ1czsNCist CWRlY29kZXItPmFkZHIgPSBkZXZpY2UtPmFkZHI7DQorKwltZW1zZXQoZGVj b2RlciwgMCwgc2l6ZW9mKCpkZWNvZGVyKSk7DQorKwlzdHJjcHkoY2xpZW50 LT5uYW1lLCBJRl9OQU1FKTsNCisrCWRlY29kZXItPmNsaWVudCA9IGNsaWVu dDsNCisrCWNsaWVudC0+ZGF0YSA9IGRlY29kZXI7DQorKwlkZWNvZGVyLT5h ZGRyID0gYWRkcjsNCisgCWRlY29kZXItPm5vcm0gPSBWSURFT19NT0RFX1BB TDsNCisgCWRlY29kZXItPmlucHV0ID0gMDsNCisgCWRlY29kZXItPmVuYWJs ZSA9IDE7DQorQEAgLTIyMCw0MCArMTg3LDUyIEBADQorIAlkZWNvZGVyLT5o dWUgPSAzMjc2ODsNCisgCWRlY29kZXItPnNhdCA9IDMyNzY4Ow0KKyANCist CXJ2ID0gc2FhNzExMF93cml0ZV9ibG9jayhkZWNvZGVyLCBpbml0c2VxLCBz aXplb2YoaW5pdHNlcSkpOw0KKysJcnYgPSBpMmNfbWFzdGVyX3NlbmQoY2xp ZW50LCBpbml0c2VxLCBzaXplb2YoaW5pdHNlcSkpOw0KKyAJaWYgKHJ2IDwg MCkNCistCQlwcmludGsoS0VSTl9FUlIgIiVzX2F0dGFjaDogaW5pdCBzdGF0 dXMgJWRcbiIsIGRldmljZS0+bmFtZSwgcnYpOw0KKysJCXByaW50ayhLRVJO X0VSUiAiJXNfYXR0YWNoOiBpbml0IHN0YXR1cyAlZFxuIiwgY2xpZW50LT5u YW1lLCBydik7DQorIAllbHNlIHsNCistCQlzYWE3MTEwX3dyaXRlKGRlY29k ZXIsMHgyMSwweDE2KTsNCistCQlzYWE3MTEwX3dyaXRlKGRlY29kZXIsMHgw RCwweDA0KTsNCistCQlERUJVRyhwcmludGsoS0VSTl9JTkZPICIlc19hdHRh Y2g6IGNoaXAgdmVyc2lvbiAleFxuIiwgZGV2aWNlLT5uYW1lLCBzYWE3MTEw X3JlYWQoZGVjb2RlcikpKTsNCistCQlzYWE3MTEwX3dyaXRlKGRlY29kZXIs MHgwRCwweDA2KTsNCisrCQlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNs aWVudCwweDIxLDB4MTYpOw0KKysJCWkyY19zbWJ1c193cml0ZV9ieXRlX2Rh dGEoY2xpZW50LDB4MEQsMHgwNCk7DQorKwkJREVCVUcocHJpbnRrKEtFUk5f SU5GTyAiJXNfYXR0YWNoOiBjaGlwIHZlcnNpb24gJXhcbiIsIGNsaWVudC0+ bmFtZSwgaTJjX3NtYnVzX3JlYWRfYnl0ZShjbGllbnQpKSk7DQorKwkJaTJj X3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsMHgwRCwweDA2KTsNCisg CX0NCisgDQorKwlpbml0X01VVEVYKCZkZWNvZGVyLT5sb2NrKTsNCisrCWky Y19hdHRhY2hfY2xpZW50KGNsaWVudCk7DQorKwlNT0RfSU5DX1VTRV9DT1VO VDsNCisgCS8qIHNldHVwIGFuZCBpbXBsaWNpdCBtb2RlIDAgc2VsZWN0IGhh cyBiZWVuIHBlcmZvcm1lZCAqLw0KKyAJcmV0dXJuIDA7DQorIH0NCisgDQor K3N0YXRpYyANCisraW50IHNhYTcxMTBfcHJvYmUoc3RydWN0IGkyY19hZGFw dGVyICphZGFwKSANCisrew0KKysJcmV0dXJuIGkyY19wcm9iZShhZGFwLCAm YWRkcl9kYXRhLCBzYWE3MTEwX2F0dGFjaCk7DQorK30NCisrDQorIHN0YXRp Yw0KKy1pbnQgc2FhNzExMF9kZXRhY2goc3RydWN0IGkyY19kZXZpY2UgKmRl dmljZSkNCisraW50IHNhYTcxMTBfZGV0YWNoKHN0cnVjdCBpMmNfY2xpZW50 ICpjbGllbnQpDQorIHsNCistCXN0cnVjdCBzYWE3MTEwKiBkZWNvZGVyID0g ZGV2aWNlLT5kYXRhOw0KKysJc3RydWN0IHNhYTcxMTAqIGRlY29kZXIgPSBj bGllbnQtPmRhdGE7DQorIA0KKy0JREVCVUcocHJpbnRrKEtFUk5fSU5GTyAi JXNfZGV0YWNoXG4iLGRldmljZS0+bmFtZSkpOw0KKysJaTJjX2RldGFjaF9j bGllbnQoY2xpZW50KTsNCisrDQorKwlERUJVRyhwcmludGsoS0VSTl9JTkZP ICIlc19kZXRhY2hcbiIsY2xpZW50LT5uYW1lKSk7DQorIA0KKyAJLyogc3Rv cCBmdXJ0aGVyIG91dHB1dCAqLw0KKy0Jc2FhNzExMF93cml0ZShkZWNvZGVy LDB4MEUsMHgwMCk7DQorKwlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNs aWVudCwweDBFLDB4MDApOw0KKyANCistCWtmcmVlKGRldmljZS0+ZGF0YSk7 DQorKwlrZnJlZShkZWNvZGVyKTsNCisrCWtmcmVlKGNsaWVudCk7DQorIA0K KyAJTU9EX0RFQ19VU0VfQ09VTlQ7DQorIAlyZXR1cm4gMDsNCisgfQ0KKyAN Cisgc3RhdGljDQorLWludCBzYWE3MTEwX2NvbW1hbmQoc3RydWN0IGkyY19k ZXZpY2UgKmRldmljZSwgdW5zaWduZWQgaW50IGNtZCwgdm9pZCAqYXJnKQ0K KytpbnQgc2FhNzExMF9jb21tYW5kKHN0cnVjdCBpMmNfY2xpZW50ICpjbGll bnQsIHVuc2lnbmVkIGludCBjbWQsIHZvaWQgKmFyZykNCisgew0KKy0Jc3Ry dWN0IHNhYTcxMTAqIGRlY29kZXIgPSBkZXZpY2UtPmRhdGE7DQorKwlzdHJ1 Y3Qgc2FhNzExMCogZGVjb2RlciA9IGNsaWVudC0+ZGF0YTsNCisgCWludAl2 Ow0KKyANCisgCXN3aXRjaCAoY21kKSB7DQorQEAgLTI3MiwxMSArMjUxLDEx IEBADQorIA0KKyAJIGNhc2UgREVDT0RFUl9HRVRfU1RBVFVTOg0KKyAJCXsN CistCQkJc3RydWN0IHNhYTcxMTAqIGRlY29kZXIgPSBkZXZpY2UtPmRhdGE7 DQorKwkJCXN0cnVjdCBzYWE3MTEwKiBkZWNvZGVyID0gY2xpZW50LT5kYXRh Ow0KKyAJCQlpbnQgc3RhdHVzOw0KKyAJCQlpbnQgcmVzID0gMDsNCisgDQor LQkJCXN0YXR1cyA9IGkyY19yZWFkKGRldmljZS0+YnVzLGRldmljZS0+YWRk cnwxKTsNCisrCQkJc3RhdHVzID0gaTJjX3NtYnVzX3JlYWRfYnl0ZShjbGll bnQpOw0KKyAJCQlpZiAoc3RhdHVzICYgMHg0MCkNCisgCQkJCXJlcyB8PSBE RUNPREVSX1NUQVRVU19HT09EOw0KKyAJCQlpZiAoc3RhdHVzICYgMHgwMykN CitAQCAtMzAxLDI2ICsyODAsMjYgQEANCisgCQl2ID0gKihpbnQqKWFyZzsN CisgCQlpZiAoZGVjb2Rlci0+bm9ybSAhPSB2KSB7DQorIAkJCWRlY29kZXIt Pm5vcm0gPSB2Ow0KKy0JCQlzYWE3MTEwX3dyaXRlKGRlY29kZXIsIDB4MDYs IDB4MDApOw0KKysJCQlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVu dCwgMHgwNiwgMHgwMCk7DQorIAkJCXN3aXRjaCAodikgew0KKyAJCQkgY2Fz ZSBWSURFT19NT0RFX05UU0M6DQorLQkJCQlzYWE3MTEwX3dyaXRlKGRlY29k ZXIsIDB4MEQsIDB4MDYpOw0KKy0JCQkJc2FhNzExMF93cml0ZShkZWNvZGVy LCAweDExLCAweDJDKTsNCistCQkJCXNhYTcxMTBfd3JpdGUoZGVjb2Rlciwg MHgzMCwgMHg4MSk7DQorLQkJCQlzYWE3MTEwX3dyaXRlKGRlY29kZXIsIDB4 MkEsIDB4REYpOw0KKysJCQkJaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShj bGllbnQsIDB4MEQsIDB4MDYpOw0KKysJCQkJaTJjX3NtYnVzX3dyaXRlX2J5 dGVfZGF0YShjbGllbnQsIDB4MTEsIDB4MkMpOw0KKysJCQkJaTJjX3NtYnVz X3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIDB4MzAsIDB4ODEpOw0KKysJCQkJ aTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIDB4MkEsIDB4REYp Ow0KKyAJCQkJYnJlYWs7DQorIAkJCSBjYXNlIFZJREVPX01PREVfUEFMOg0K Ky0JCQkJc2FhNzExMF93cml0ZShkZWNvZGVyLCAweDBELCAweDA2KTsNCist CQkJCXNhYTcxMTBfd3JpdGUoZGVjb2RlciwgMHgxMSwgMHg1OSk7DQorLQkJ CQlzYWE3MTEwX3dyaXRlKGRlY29kZXIsIDB4MkUsIDB4OUEpOw0KKysJCQkJ aTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIDB4MEQsIDB4MDYp Ow0KKysJCQkJaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIDB4 MTEsIDB4NTkpOw0KKysJCQkJaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShj bGllbnQsIDB4MkUsIDB4OUEpOw0KKyAJCQkJYnJlYWs7DQorIAkJCSBjYXNl IFZJREVPX01PREVfU0VDQU06DQorLQkJCQlzYWE3MTEwX3dyaXRlKGRlY29k ZXIsIDB4MEQsIDB4MDcpOw0KKy0JCQkJc2FhNzExMF93cml0ZShkZWNvZGVy LCAweDExLCAweDU5KTsNCistCQkJCXNhYTcxMTBfd3JpdGUoZGVjb2Rlciwg MHgyRSwgMHg5QSk7DQorKwkJCQlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRh KGNsaWVudCwgMHgwRCwgMHgwNyk7DQorKwkJCQlpMmNfc21idXNfd3JpdGVf Ynl0ZV9kYXRhKGNsaWVudCwgMHgxMSwgMHg1OSk7DQorKwkJCQlpMmNfc21i dXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgMHgyRSwgMHg5QSk7DQorIAkJ CQlicmVhazsNCisgCQkJIGNhc2UgVklERU9fTU9ERV9BVVRPOg0KKy0JCQkJ KihpbnQqKWFyZyA9IGRldGVybWluZV9ub3JtKGRldmljZSk7DQorKwkJCQkq KGludCopYXJnID0gZGV0ZXJtaW5lX25vcm0oY2xpZW50KTsNCisgCQkJCWJy ZWFrOw0KKyAJCQkgZGVmYXVsdDoNCisgCQkJCXJldHVybiAtRVBFUk07DQor QEAgLTMzNCw3ICszMTMsNyBAQA0KKyAJCQlyZXR1cm4gLUVJTlZBTDsNCisg CQlpZiAoZGVjb2Rlci0+aW5wdXQgIT0gdikgew0KKyAJCQlkZWNvZGVyLT5p bnB1dCA9IHY7DQorLQkJCXNhYTcxMTBfc2VsbXV4KGRldmljZSwgdik7DQor KwkJCXNhYTcxMTBfc2VsbXV4KGNsaWVudCwgdik7DQorIAkJfQ0KKyAJCWJy ZWFrOw0KKyANCitAQCAtMzQ5LDcgKzMyOCw3IEBADQorIAkJdiA9ICooaW50 Kilhcmc7DQorIAkJaWYgKGRlY29kZXItPmVuYWJsZSAhPSB2KSB7DQorIAkJ CWRlY29kZXItPmVuYWJsZSA9IHY7DQorLQkJCXNhYTcxMTBfd3JpdGUoZGVj b2RlciwweDBFLCB2ID8gMHgxOCA6IDB4MDApOw0KKysJCQlpMmNfc21idXNf d3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwweDBFLCB2ID8gMHgxOCA6IDB4MDAp Ow0KKyAJCX0NCisgCQlicmVhazsNCisgDQorQEAgLTM2MCwyMiArMzM5LDIy IEBADQorIAkJCWlmIChkZWNvZGVyLT5icmlnaHQgIT0gcGljLT5icmlnaHRu ZXNzKSB7DQorIAkJCQkvKiBXZSB3YW50IDAgdG8gMjU1IHdlIGdldCAwLTY1 NTM1ICovDQorIAkJCQlkZWNvZGVyLT5icmlnaHQgPSBwaWMtPmJyaWdodG5l c3M7DQorLQkJCQlzYWE3MTEwX3dyaXRlKGRlY29kZXIsIDB4MTksIGRlY29k ZXItPmJyaWdodCA+PiA4KTsNCisrCQkJCWkyY19zbWJ1c193cml0ZV9ieXRl X2RhdGEoY2xpZW50LCAweDE5LCBkZWNvZGVyLT5icmlnaHQgPj4gOCk7DQor IAkJCX0NCisgCQkJaWYgKGRlY29kZXItPmNvbnRyYXN0ICE9IHBpYy0+Y29u dHJhc3QpIHsNCisgCQkJCS8qIFdlIHdhbnQgMCB0byAxMjcgd2UgZ2V0IDAt NjU1MzUgKi8NCisgCQkJCWRlY29kZXItPmNvbnRyYXN0ID0gcGljLT5jb250 cmFzdDsNCistCQkJCXNhYTcxMTBfd3JpdGUoZGVjb2RlciwgMHgxMywgZGVj b2Rlci0+Y29udHJhc3QgPj4gOSk7DQorKwkJCQlpMmNfc21idXNfd3JpdGVf Ynl0ZV9kYXRhKGNsaWVudCwgMHgxMywgZGVjb2Rlci0+Y29udHJhc3QgPj4g OSk7DQorIAkJCX0NCisgCQkJaWYgKGRlY29kZXItPnNhdCAhPSBwaWMtPmNv bG91cikgew0KKyAJCQkJLyogV2Ugd2FudCAwIHRvIDEyNyB3ZSBnZXQgMC02 NTUzNSAqLw0KKyAJCQkJZGVjb2Rlci0+c2F0ID0gcGljLT5jb2xvdXI7DQor LQkJCQlzYWE3MTEwX3dyaXRlKGRlY29kZXIsIDB4MTIsIGRlY29kZXItPnNh dCA+PiA5KTsNCisrCQkJCWkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xp ZW50LCAweDEyLCBkZWNvZGVyLT5zYXQgPj4gOSk7DQorIAkJCX0NCisgCQkJ aWYgKGRlY29kZXItPmh1ZSAhPSBwaWMtPmh1ZSkgew0KKyAJCQkJLyogV2Ug d2FudCAtMTI4IHRvIDEyNyB3ZSBnZXQgMC02NTUzNSAqLw0KKyAJCQkJZGVj b2Rlci0+aHVlID0gcGljLT5odWU7DQorLQkJCQlzYWE3MTEwX3dyaXRlKGRl Y29kZXIsIDB4MDcsIChkZWNvZGVyLT5odWU+PjgpLTEyOCk7DQorKwkJCQlp MmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgMHgwNywgKGRlY29k ZXItPmh1ZT4+OCktMTI4KTsNCisgCQkJfQ0KKyAJCX0NCisgCQlicmVhazsN CitAQCAtMzgzLDcgKzM2Miw3IEBADQorIAkgY2FzZSBERUNPREVSX0RVTVA6 DQorIAkJZm9yICh2PTA7IHY8MzQ7IHYrPTE2KSB7DQorIAkJCWludCBqOw0K Ky0JCQlERUJVRyhwcmludGsoS0VSTl9JTkZPICIlczogJTAzeFxuIixkZXZp Y2UtPm5hbWUsdikpOw0KKysJCQlERUJVRyhwcmludGsoS0VSTl9JTkZPICIl czogJTAzeFxuIixjbGllbnQtPm5hbWUsdikpOw0KKyAJCQlmb3IgKGo9MDsg ajwxNjsgaisrKSB7DQorIAkJCQlERUJVRyhwcmludGsoS0VSTl9JTkZPICIg JTAyeCIsZGVjb2Rlci0+cmVnW3Yral0pKTsNCisgCQkJfQ0KK0BAIC00MDIs MjQgKzM4MSwzMCBAQA0KKyANCisgc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVy IGkyY19kcml2ZXJfc2FhNzExMCA9DQorIHsNCistCSJzYWE3MTEwIiwJCQkv KiBuYW1lICovDQorLQ0KKy0JSTJDX0RSSVZFUklEX1ZJREVPREVDT0RFUiwJ LyogaW4gaTJjLmggKi8NCistCUkyQ19TQUE3MTEwLCBJMkNfU0FBNzExMCsx LAkvKiBBZGRyIHJhbmdlICovDQorLQ0KKy0Jc2FhNzExMF9hdHRhY2gsDQor KwlJRl9OQU1FLAkJCS8qIG5hbWUgKi8NCisrCUkyQ19EUklWRVJJRF9TQUE3 MTEwLAkvKiBpbiBpMmMuaCAqLw0KKysJSTJDX0RGX05PVElGWSwJLyogQWRk ciByYW5nZSAqLw0KKysJc2FhNzExMF9wcm9iZSwNCisgCXNhYTcxMTBfZGV0 YWNoLA0KKyAJc2FhNzExMF9jb21tYW5kDQorIH07DQorK3N0YXRpYyBzdHJ1 Y3QgaTJjX2NsaWVudCBjbGllbnRfdGVtcGxhdGUgPSB7DQorKwkic2FhNzEx MF9jbGllbnQiLA0KKysJLTEsDQorKwkwLA0KKysJMCwNCisrCU5VTEwsDQor KwkmaTJjX2RyaXZlcl9zYWE3MTEwDQorK307DQorIA0KKyBzdGF0aWMgaW50 IHNhYTcxMTBfaW5pdCh2b2lkKQ0KKyB7DQorLQlyZXR1cm4gaTJjX3JlZ2lz dGVyX2RyaXZlcigmaTJjX2RyaXZlcl9zYWE3MTEwKTsNCisrCXJldHVybiBp MmNfYWRkX2RyaXZlcigmaTJjX2RyaXZlcl9zYWE3MTEwKTsNCisgfQ0KKyAN Cisgc3RhdGljIHZvaWQgc2FhNzExMF9leGl0KHZvaWQpDQorIHsNCistCWky Y191bnJlZ2lzdGVyX2RyaXZlcigmaTJjX2RyaXZlcl9zYWE3MTEwKTsNCisr CWkyY19kZWxfZHJpdmVyKCZpMmNfZHJpdmVyX3NhYTcxMTApOw0KKyB9DQor IA0KKyANCisgDQorDQotLS0gL2Rldi9udWxsCTE5OTQtMDctMTcgMTk6NDY6 MTguMDAwMDAwMDAwIC0wNDAwDQorKysgbGludXgvRG9jdW1lbnRhdGlvbi9p MmMvaTJjLXBwb3J0CTIwMDEtMDgtMTQgMjI6MTc6NTQuMDAwMDAwMDAwIC0w NDAwDQpAQCAtMCwwICsxLDQ1IEBADQorUHJpbWl0aXZlIHBhcmFsbGVsIHBv cnQgaXMgZHJpdmVyIGZvciBpMmMgYnVzLCB3aGljaCBleHBsb2l0cyANCitm ZWF0dXJlcyBvZiBtb2Rlcm4gYmlkaXJlY3Rpb25hbCBwYXJhbGxlbCBwb3J0 cy4gDQorDQorQmlkaXJlY3Rpb25hbCBwb3J0cyBoYXZlIHBhcnRpY3VsYXIg Yml0cyBjb25uZWN0ZWQgaW4gZm9sbG93aW5nIHdheToNCisgICANCisgICAg ICAgICAgICAgICAgICAgICAgICB8DQorICAgICAgICAgICAgLy0tLS0tfCAg ICAgUg0KKyAgICAgICAgIC0tb3wgICAgIHwtLS0tLXwNCisgICAgICByZWFk ICBcLS0tLS18ICAgICAvLS0tLS0tLSBPdXQgcGluDQorICAgICAgICAgICAg ICAgICAgICAgIHwvDQorICAgICAgICAgICAgICAgICAgIC0gLXxcDQorICAg ICAgICAgICAgICAgIHdyaXRlICAgVg0KKyAgICAgICAgICAgICAgICAgICAg ICAgIHwNCisgICAgICAgICAgICAgICAgICAgICAgIC0tLSAgDQorDQorDQor SXQgbWVhbnMgd2hlbiBvdXRwdXQgaXMgc2V0IHRvIDEgd2UgY2FuIHJlYWQg dGhlIHBvcnQuIFRoZXJlZm9yZSANCit3ZSBjYW4gdXNlIDIgcGlucyBvZiBw YXJhbGxlbCBwb3J0IGFzIFNEQSBhbmQgU0NMIGZvciBpMmMgYnVzLiBJdCAN CitpcyBub3QgbmVjZXNzYXJ5IHRvIGFkZCBhbnkgZXh0ZXJuYWwgLSBhZGRp dGlvbmFsIHBhcnRzLCB3ZSBjYW4gDQorcmVhZCBhbmQgd3JpdGUgdGhlIHNh bWUgcG9ydCBzaW11bHRhbmVvdXNseS4NCisJSSBvbmx5IHVzZSByZWdpc3Rl ciBiYXNlKzIgc28gaXQgaXMgcG9zc2libGUgdG8gdXNlIGFsbCANCis4IGRh dGEgYml0cyBvZiBwYXJhbGxlbCBwb3J0IGZvciBvdGhlciBhcHBsaWNhdGlv bnMgKEkgaGF2ZSANCitjb25uZWN0ZWQgRUVQUk9NIGFuZCBMQ0QgZGlzcGxh eSkuIEkgZG8gbm90IHVzZSBiaXQgRW5hYmxlIEJpLWRpcmVjdGlvbmFsDQor IFBvcnQuIFRoZSBvbmx5IGRpc2FkdmFudGFnZSBpcyB3ZSBjYW4gb25seSBz dXBwb3J0IDVWIGNoaXBzLg0KKw0KK0xheW91dDoNCisNCitDYW5ub24gMjUg cGluDQorDQorU0RBIC0gY29ubmVjdCB0byBwaW4gMTQgKEF1dG8gTGluZWZl ZWQpDQorU0NMIC0gY29ubmVjdCB0byBwaW4gMTYgKEluaXRpYWxpemUgUHJp bnRlcikNCitHTkQgLSBjb25uZWN0IHRvIHBpbiAxOC0yNQ0KKys1ViAtIHVz ZSBleHRlcm5hbCBzdXBwbHkgKEkgdXNlIDVWIGZyb20gMy41IiBmbG9wcHkg Y29ubmVjdG9yKQ0KKyAgICAgIA0KK25vIHB1bGx1cHMgIHJlcXVpZWQNCisN CitNb2R1bGUgcGFyYW1ldGVyczoNCisNCitiYXNlID0gMHhYWFgNCitYWFgg LSAyNzggb3IgMzc4DQorDQorVGhhdCdzIGFsbC4NCisNCitEYW5pZWwgU21v bGlrDQorbWFydmluQHNpdG91ci5jeg0KLS0tIC9kZXYvbnVsbAkxOTk0LTA3 LTE3IDE5OjQ2OjE4LjAwMDAwMDAwMCAtMDQwMA0KKysrIGxpbnV4L0RvY3Vt ZW50YXRpb24vaTJjL2kyYy12ZWxsZW1hbgkyMDAyLTAyLTE2IDEwOjI0OjQ1 LjAwMDAwMDAwMCAtMDUwMA0KQEAgLTAsMCArMSwyNyBAQA0KK2kyYy12ZWxs ZW1hbiBkcml2ZXINCistLS0tLS0tLS0tLS0tLS0tLS0tDQorVGhpcyBpcyBh IGRyaXZlciBmb3IgaTJjLWh3IGFjY2VzcyBmb3IgVmVsbGVtYW4gSzkwMDAg YW5kIG90aGVyIGFkYXB0ZXJzLg0KKw0KK1VzZWZ1bCBsaW5rcw0KKy0tLS0t LS0tLS0tLQ0KK1ZlbGxlbWFuOg0KKwlodHRwOi8vd3d3LnZlbGxlbWFuLmJl Lw0KKw0KK1ZlbGxlbWFuIEs4MDAwIEhvd3RvOg0KKwlodHRwOi8vaG93dG8u aHRsdzE2LmFjLmF0L2s4MDAwLWhvd3RvLmh0bWwNCisNCisNCitLODAwMCBh bmQgSzgwMDUgbGlicmFyaWVzDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KK1RoZSBwcm9qZWN0IGhhcyBsZWFkIHRvIG5ldyBsaWJzIGZvciB0aGUg VmVsbGVtYW4gSzgwMDAgYW5kIEs4MDA1Li4NCitMSUJLODAwMCB2MS45OS4x IGFuZCBMSUJLODAwNSB2MC4yMQ0KKw0KK1dpdGggdGhlc2UgbGlicyB5b3Ug Y2FuIGNvbnRyb2wgdGhlIEs4MDAwIGFuZCBLODAwNSB3aXRoIHRoZSBvcmln aW5hbA0KK3NpbXBsZSBjb21tYW5kcyB3aGljaCBhcmUgaW4gdGhlIG9yaWdp bmFsIFZlbGxlbWFuIHNvZnR3YXJlLg0KK0xpa2UgU2V0SU9jaGFubmVsLCBS ZWFkQURjaGFubmVsLCBTZW5kU3RlcENDV0Z1bGwgYW5kIG1hbnkgbW9yZS4N CitWaWEgaTJjIGtlcm5lbCBkZXZpY2UgL2Rldi92ZWxsZW1hbg0KKw0KK1Ro ZSBsaWJzIGNhbiBiZSBmb3VuZCBvbiBodHRwOi8vZ3JvdXBzLnlhaG9vLmNv bS9ncm91cC9rODAwMC9maWxlcy9saW51eC8NCisNCitUaGUgVmVsbGVtYW4g SzgwMDAgaW50ZXJmYWNlIGNhcmQgb24gaHR0cDovL3d3dy52ZWxsZW1hbi5i ZS9raXRzL2s4MDAwLmh0bQ0KK1RoZSBWZWxsZW1hbiBLODAwNSBzdGVwcGVy bW90b3JjYXJkIG9uIGh0dHA6Ly93d3cudmVsbGVtYW4uYmUva2l0cy9rODAw NS5odG0NCi0tLSBsaW51eC9Eb2N1bWVudGF0aW9uL2kyYy9zbWJ1cy1wcm90 b2NvbC5vcmlnCTIwMDEtMDItMTYgMTg6NTM6MDguMDAwMDAwMDAwIC0wNTAw DQorKysgbGludXgvRG9jdW1lbnRhdGlvbi9pMmMvc21idXMtcHJvdG9jb2wJ MjAwMi0wNy0wOSAyMjowNjo0MS4wMDAwMDAwMDAgLTA0MDANCkBAIC0xLDMg KzEsMTAgQEANCitTTUJ1cyBQcm90b2NvbCBTdW1tYXJ5DQorPT09PT09PT09 PT09PT09PT09PT09PQ0KK1RoZSBmb2xsb3dpbmcgaXMgYSBzdW1tYXJ5IG9m IHRoZSBTTUJ1cyBwcm90b2NvbC4gSXQgYXBwbGllcyB0bw0KK2FsbCByZXZp c2lvbnMgb2YgdGhlIHByb3RvY29sICgxLjAsIDEuMSwgYW5kIDIuMCkuDQor Q2VydGFpbiBwcm90b2NvbCBmZWF0dXJlcyB3aGljaCBhcmUgbm90IHN1cHBv cnRlZCBieQ0KK3RoaXMgcGFja2FnZSBhcmUgYnJpZWZseSBkZXNjcmliZWQg YXQgdGhlIGVuZCBvZiB0aGlzIGRvY3VtZW50Lg0KKw0KIFNvbWUgYWRhcHRl cnMgdW5kZXJzdGFuZCBvbmx5IHRoZSBTTUJ1cyAoU3lzdGVtIE1hbmFnZW1l bnQgQnVzKSBwcm90b2NvbCwNCiB3aGljaCBpcyBhIHN1YnNldCBmcm9tIHRo ZSBJMkMgcHJvdG9jb2wuIEZvcnR1bmF0ZWx5LCBtYW55IGRldmljZXMgdXNl DQogb25seSB0aGUgc2FtZSBzdWJzZXQsIHdoaWNoIG1ha2VzIGl0IHBvc3Np YmxlIHRvIHB1dCB0aGVtIG9uIGFuIFNNQnVzLg0KQEAgLTYsNyArMTMsNyBA QA0KIEkyQyBwcm90b2NvbCkuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8g dXNlIHRoZSBkZXZpY2UgZHJpdmVyIG9uIGJvdGgNCiBTTUJ1cyBhZGFwdGVy cyBhbmQgSTJDIGFkYXB0ZXJzICh0aGUgU01CdXMgY29tbWFuZCBzZXQgaXMg YXV0b21hdGljYWxseQ0KIHRyYW5zbGF0ZWQgdG8gSTJDIG9uIEkyQyBhZGFw dGVycywgYnV0IHBsYWluIEkyQyBjb21tYW5kcyBjYW4gbm90IGJlDQotaGFu ZGxlZCBhdCBhbGwgb24gYSBwdXJlIFNNQnVzIGFkYXB0ZXIpLg0KK2hhbmRs ZWQgYXQgYWxsIG9uIG1vc3QgcHVyZSBTTUJ1cyBhZGFwdGVycykuDQogDQog QmVsb3cgaXMgYSBsaXN0IG9mIFNNQnVzIGNvbW1hbmRzLg0KIA0KQEAgLTEw OSw3ICsxMTYsNyBAQA0KIFNNQnVzIEJsb2NrIFJlYWQNCiA9PT09PT09PT09 PT09PT09DQogDQotVGhpcyBjb21tYW5kIHJlYWRzIGEgYmxvY2sgb2YgdXB0 byAzMiBieXRlcyBmcm9tIGEgZGV2aWNlLCBmcm9tIGEgDQorVGhpcyBjb21t YW5kIHJlYWRzIGEgYmxvY2sgb2YgdXAgdG8gMzIgYnl0ZXMgZnJvbSBhIGRl dmljZSwgZnJvbSBhIA0KIGRlc2lnbmF0ZWQgcmVnaXN0ZXIgdGhhdCBpcyBz cGVjaWZpZWQgdGhyb3VnaCB0aGUgQ29tbSBieXRlLiBUaGUgYW1vdW50DQog b2YgZGF0YSBpcyBzcGVjaWZpZWQgYnkgdGhlIGRldmljZSBpbiB0aGUgQ291 bnQgYnl0ZS4NCiANCkBAIC0xMjAsOCArMTI3LDkwIEBADQogU01CdXMgQmxv Y2sgV3JpdGUNCiA9PT09PT09PT09PT09PT09PQ0KIA0KLVRoZSBvcHBvc2l0 ZSBvZiB0aGUgQmxvY2sgUmVhZCBjb21tYW5kLCB0aGlzIHdyaXRlcyB1cHRv IDMyIGJ5dGVzIHRvIA0KK1RoZSBvcHBvc2l0ZSBvZiB0aGUgQmxvY2sgUmVh ZCBjb21tYW5kLCB0aGlzIHdyaXRlcyB1cCB0byAzMiBieXRlcyB0byANCiBh IGRldmljZSwgdG8gYSBkZXNpZ25hdGVkIHJlZ2lzdGVyIHRoYXQgaXMgc3Bl Y2lmaWVkIHRocm91Z2ggdGhlDQogQ29tbSBieXRlLiBUaGUgYW1vdW50IG9m IGRhdGEgaXMgc3BlY2lmaWVkIGluIHRoZSBDb3VudCBieXRlLg0KIA0KIFMg QWRkciBXciBbQV0gQ29tbSBbQV0gQ291bnQgW0FdIERhdGEgW0FdIERhdGEg W0FdIC4uLiBbQV0gRGF0YSBbQV0gUA0KKw0KKw0KK1NNQnVzIEJsb2NrIFBy b2Nlc3MgQ2FsbA0KKz09PT09PT09PT09PT09PT09PT09PT09PQ0KKw0KK1NN QnVzIEJsb2NrIFByb2Nlc3MgQ2FsbCB3YXMgaW50cm9kdWNlZCBpbiBSZXZp c2lvbiAyLjAgb2YgdGhlIHNwZWNpZmljYXRpb24uDQorDQorVGhpcyBjb21t YW5kIHNlbGVjdHMgYSBkZXZpY2UgcmVnaXN0ZXIgKHRocm91Z2ggdGhlIENv bW0gYnl0ZSksIHNlbmRzDQorMSB0byAzMSBieXRlcyBvZiBkYXRhIHRvIGl0 LCBhbmQgcmVhZHMgMSB0byAzMSBieXRlcyBvZiBkYXRhIGluIHJldHVybi4N CisNCitTIEFkZHIgV3IgW0FdIENvbW0gW0FdIENvdW50IFtBXSBEYXRhIFtB XSAuLi4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgQWRkciBS ZCBbQV0gW0NvdW50XSBBIFtEYXRhXSAuLi4gQSBQDQorDQorDQorU01CdXMg SG9zdCBOb3RpZnkNCis9PT09PT09PT09PT09PT09PQ0KKw0KK1RoaXMgY29t bWFuZCBpcyBzZW50IGZyb20gYSBTTUJ1cyBkZXZpY2UgYWN0aW5nIGFzIGEg bWFzdGVyIHRvIHRoZQ0KK1NNQnVzIGhvc3QgYWN0aW5nIGFzIGEgc2xhdmUu DQorSXQgaXMgdGhlIHNhbWUgZm9ybSBhcyBXcml0ZSBXb3JkLCB3aXRoIHRo ZSBjb21tYW5kIGNvZGUgcmVwbGFjZWQgYnkgdGhlDQorYWxlcnRpbmcgZGV2 aWNlJ3MgYWRkcmVzcy4NCisNCitbU10gW0hvc3RBZGRyXSBbV3JdIEEgW0Rl dkFkZHJdIEEgW0RhdGFMb3ddIEEgW0RhdGFIaWdoXSBBIFtQXQ0KKw0KKw0K K1BhY2tldCBFcnJvciBDaGVja2luZyAoUEVDKQ0KKz09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KK1BhY2tldCBFcnJvciBDaGVja2luZyB3YXMgaW50 cm9kdWNlZCBpbiBSZXZpc2lvbiAxLjEgb2YgdGhlIHNwZWNpZmljYXRpb24u DQorDQorUEVDIGFkZHMgYSBDUkMtOCBlcnJvci1jaGVja2luZyBieXRlIHRv IGFsbCB0cmFuc2ZlcnMuDQorDQorDQorQWRkcmVzcyBSZXNvbHV0aW9uIFBy b3RvY29sIChBUlApDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQorVGhlIEFkZHJlc3MgUmVzb2x1dGlvbiBQcm90b2NvbCB3YXMgaW50 cm9kdWNlZCBpbiBSZXZpc2lvbiAyLjAgb2YNCit0aGUgc3BlY2lmaWNhdGlv bi4gSXQgaXMgYSBoaWdoZXItbGF5ZXIgcHJvdG9jb2wgd2hpY2ggdXNlcyB0 aGUNCittZXNzYWdlcyBhYm92ZS4NCisNCitBUlAgYWRkcyBkZXZpY2UgZW51 bWVyYXRpb24gYW5kIGR5bmFtaWMgYWRkcmVzcyBhc3NpZ25tZW50IHRvDQor dGhlIHByb3RvY29sLiBBbGwgQVJQIGNvbW11bmljYXRpb25zIHVzZSBzbGF2 ZSBhZGRyZXNzIDB4NjEgYW5kDQorcmVxdWlyZSBQRUMgY2hlY2tzdW1zLg0K Kw0KKw0KK0kyQyBCbG9jayBUcmFuc2FjdGlvbnMNCis9PT09PT09PT09PT09 PT09PT09PT09DQorVGhlIGZvbGxvd2luZyBJMkMgYmxvY2sgdHJhbnNhY3Rp b25zIGFyZSBzdXBwb3J0ZWQgYnkgdGhlDQorU01CdXMgbGF5ZXIgYW5kIGFy ZSBkZXNjcmliZWQgaGVyZSBmb3IgY29tcGxldGVuZXNzLg0KK0kyQyBibG9j ayB0cmFuc2FjdGlvbnMgZG8gbm90IGxpbWl0IHRoZSBudW1iZXIgb2YgYnl0 ZXMgdHJhbnNmZXJyZWQNCitidXQgdGhlIFNNQnVzIGxheWVyIHBsYWNlcyBh IGxpbWl0IG9mIDMyIGJ5dGVzLg0KKw0KKw0KK0kyQyBCbG9jayBSZWFkDQor PT09PT09PT09PT09PT0NCisNCitUaGlzIGNvbW1hbmQgcmVhZHMgYSBibG9j ayBvZiBieXRlcyBmcm9tIGEgZGV2aWNlLCBmcm9tIGEgDQorZGVzaWduYXRl ZCByZWdpc3RlciB0aGF0IGlzIHNwZWNpZmllZCB0aHJvdWdoIHRoZSBDb21t IGJ5dGUuDQorDQorUyBBZGRyIFdyIFtBXSBDb21tIFtBXSANCisgICAgICAg ICAgIFMgQWRkciBSZCBbQV0gW0RhdGFdIEEgW0RhdGFdIEEgLi4uIEEgW0Rh dGFdIE5BIFANCisNCisNCitJMkMgQmxvY2sgUmVhZCAoMiBDb21tIGJ5dGVz KQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQorVGhpcyBj b21tYW5kIHJlYWRzIGEgYmxvY2sgb2YgYnl0ZXMgZnJvbSBhIGRldmljZSwg ZnJvbSBhIA0KK2Rlc2lnbmF0ZWQgcmVnaXN0ZXIgdGhhdCBpcyBzcGVjaWZp ZWQgdGhyb3VnaCB0aGUgdHdvIENvbW0gYnl0ZXMuDQorDQorUyBBZGRyIFdy IFtBXSBDb21tMSBbQV0gQ29tbTIgW0FdIA0KKyAgICAgICAgICAgUyBBZGRy IFJkIFtBXSBbRGF0YV0gQSBbRGF0YV0gQSAuLi4gQSBbRGF0YV0gTkEgUA0K Kw0KKw0KK0kyQyBCbG9jayBXcml0ZQ0KKz09PT09PT09PT09PT09PQ0KKw0K K1RoZSBvcHBvc2l0ZSBvZiB0aGUgQmxvY2sgUmVhZCBjb21tYW5kLCB0aGlz IHdyaXRlcyBieXRlcyB0byANCithIGRldmljZSwgdG8gYSBkZXNpZ25hdGVk IHJlZ2lzdGVyIHRoYXQgaXMgc3BlY2lmaWVkIHRocm91Z2ggdGhlDQorQ29t bSBieXRlLiBOb3RlIHRoYXQgY29tbWFuZCBsZW5ndGhzIG9mIDAsIDIsIG9y IG1vcmUgYnl0ZXMgYXJlDQorc3VwcG9ydGVkIGFzIHRoZXkgYXJlIGluZGlz dGluZ3Vpc2hhYmxlIGZyb20gZGF0YS4NCisNCitTIEFkZHIgV3IgW0FdIENv bW0gW0FdIERhdGEgW0FdIERhdGEgW0FdIC4uLiBbQV0gRGF0YSBbQV0gUA0K Kw0KKw0KLS0tIGxpbnV4L0RvY3VtZW50YXRpb24vaTJjL3N1bW1hcnkub3Jp ZwkyMDAxLTEwLTExIDExOjA1OjQ3LjAwMDAwMDAwMCAtMDQwMA0KKysrIGxp bnV4L0RvY3VtZW50YXRpb24vaTJjL3N1bW1hcnkJMjAwMi0wNy0wMyAyMTow MDozOC4wMDAwMDAwMDAgLTA0MDANCkBAIC01OSwxNiArNTksMTYgQEANCiBp MmMtYWxnby04eHg6ICAgIEFuIGFsZ29yaXRobSBmb3IgQ1BNJ3MgSTJDIGRl dmljZSBpbiBNb3Rvcm9sYSA4eHggcHJvY2Vzc29ycyAoTk9UIEJVSUxUIEJZ IERFRkFVTFQpDQogaTJjLWFsZ28tYml0OiAgICBBIGJpdC1iYW5naW5nIGFs Z29yaXRobQ0KIGkyYy1hbGdvLXBjZjogICAgQSBQQ0YgODU4NCBzdHlsZSBh bGdvcml0aG0NCi1pMmMtYWxnby1wcGM0MDU6IEFuIGFsZ29yaXRobSBmb3Ig dGhlIEkyQyBkZXZpY2UgaW4gSUJNIDQwNXh4IHByb2Nlc3NvcnMgKE5PVCBC VUlMVCBCWSBERUZBVUxUKQ0KK2kyYy1hbGdvLWlibW9jcDogQW4gYWxnb3Jp dGhtIGZvciB0aGUgSTJDIGRldmljZSBpbiBJQk0gNHh4IHByb2Nlc3NvcnMg KE5PVCBCVUlMVCBCWSBERUZBVUxUKQ0KIA0KIEFkYXB0ZXIgZHJpdmVycw0K IC0tLS0tLS0tLS0tLS0tLQ0KIA0KIGkyYy1lbGVrdG9yOiAgICAgRWxla3Rv ciBJU0EgY2FyZCAodXNlcyBpMmMtYWxnby1wY2YpDQogaTJjLWVsdjogICAg ICAgICBFTFYgcGFyYWxsZWwgcG9ydCBhZGFwdGVyICh1c2VzIGkyYy1hbGdv LWJpdCkNCi1pMmMtcGNmLWVwcDogICAgIFBDRjg1ODQgb24gYSBFUFAgcGFy YWxsZWwgcG9ydCAodXNlcyBpMmMtYWxnby1wY2YpIChCUk9LRU4gLSBtaXNz aW5nIGkyYy1wY2YtZXBwLmgpDQoraTJjLXBjZi1lcHA6ICAgICBQQ0Y4NTg0 IG9uIGEgRVBQIHBhcmFsbGVsIHBvcnQgKHVzZXMgaTJjLWFsZ28tcGNmKSAo Tk9UIG1rcGF0Y2hlZCkNCiBpMmMtcGhpbGlwcy1wYXI6IFBoaWxpcHMgc3R5 bGUgcGFyYWxsZWwgcG9ydCBhZGFwdGVyICh1c2VzIGkyYy1hbGdvLWJpdCkN Ci1pMmMtcHBjNDA1OiAgICAgIElCTSA0MDV4eCBwcm9jZXNzb3IgSTJDIGRl dmljZSAodXNlcyBpMmMtYWxnby1wcGM0MDUpIChOT1QgQlVJTFQgQlkgREVG QVVMVCkNCitpMmMtYWRhcF9pYm1vY3A6ICAgICAgSUJNIDR4eCBwcm9jZXNz b3IgSTJDIGRldmljZSAodXNlcyBpMmMtYWxnby1pYm1vY3ApIChOT1QgQlVJ TFQgQlkgREVGQVVMVCkNCiBpMmMtcHBvcnQ6ICAgICAgIFByaW1pdGl2ZSBw YXJhbGxlbCBwb3J0IGFkYXB0ZXIgKHVzZXMgaTJjLWFsZ28tYml0KQ0KIGky Yy1ycHg6ICAgICAgICAgUlBYIGJvYXJkIE1vdG9yb2xhIDh4eCBJMkMgZGV2 aWNlICh1c2VzIGkyYy1hbGdvLTh4eCkgKE5PVCBCVUlMVCBCWSBERUZBVUxU KQ0KIGkyYy12ZWxsZW1hbjogICAgVmVsbGVtYW4gSzkwMDAgcGFyYWxsZWwg cG9ydCBhZGFwdGVyICh1c2VzIGkyYy1hbGdvLWJpdCkNCi0tLSBsaW51eC9E b2N1bWVudGF0aW9uL2kyYy93cml0aW5nLWNsaWVudHMub3JpZwkyMDAxLTEw LTExIDExOjA1OjQ3LjAwMDAwMDAwMCAtMDQwMA0KKysrIGxpbnV4L0RvY3Vt ZW50YXRpb24vaTJjL3dyaXRpbmctY2xpZW50cwkyMDAxLTExLTExIDE4OjAz OjQwLjAwMDAwMDAwMCAtMDUwMA0KQEAgLTM2NSw3ICszNjUsNyBAQA0KIA0K IFRoZSBkZXRlY3QgY2xpZW50IGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBpMmNf cHJvYmUgb3IgaTJjX2RldGVjdC4NCiBUaGUgYGtpbmQnIHBhcmFtZXRlciBj b250YWlucyAwIGlmIHRoaXMgY2FsbCBpcyBkdWUgdG8gYSBgZm9yY2UnDQot cGFyYW1ldGVyLCBhbmQgMCBvdGhlcndpc2UgKGZvciBpMmNfZGV0ZWN0LCBp dCBjb250YWlucyAwIGlmDQorcGFyYW1ldGVyLCBhbmQgLTEgb3RoZXJ3aXNl IChmb3IgaTJjX2RldGVjdCwgaXQgY29udGFpbnMgMCBpZg0KIHRoaXMgY2Fs bCBpcyBkdWUgdG8gdGhlIGdlbmVyaWMgYGZvcmNlJyBwYXJhbWV0ZXIsIGFu ZCB0aGUgY2hpcCB0eXBlDQogbnVtYmVyIGlmIGl0IGlzIGR1ZSB0byBhIHNw ZWNpZmljIGBmb3JjZScgcGFyYW1ldGVyKS4NCiANCg== --0-1872388394-1030599576=:16793-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/