From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from web29503.mail.ird.yahoo.com ([77.238.189.130]:25426 "HELO web29503.mail.ird.yahoo.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1752968Ab0KGNvM (ORCPT ); Sun, 7 Nov 2010 08:51:12 -0500 Message-ID: <780743.69807.qm@web29503.mail.ird.yahoo.com> Date: Sun, 7 Nov 2010 13:51:10 +0000 (GMT) From: Hin-Tak Leung Reply-To: htl10@users.sourceforge.net Subject: Re: [PATCH 9/9] rtl8187: restore anaparam registers after reset with 8187B To: Herton Ronaldo Krzesinski , Larry Finger Cc: Thadeu Lima de Souza Cascardo , linux-wireless@vger.kernel.org, John W Linville , seno MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-1225570302-1289137870=:69807" Sender: linux-wireless-owner@vger.kernel.org List-ID: --0-1225570302-1289137870=:69807 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable --- On Sun, 7/11/10, Larry Finger wrote:=0A=0A>= > Do you have any pointer to it? (I can't find in the=0A> archives in Apri= l=0A> > 9 2009). Never saw it, if was posted in the mailing=0A> list certai= nly=0A> > missed it (and probably I was not in CC).=0A> =0A> There is a ref= erence to it at=0A> http://www.spinics.net/lists/linux-wireless/msg31345.ht= ml.=0A> The patches were=0A> never done quite right, and I do not remember = testing. As I=0A> have only 1 antenna=0A> (I think), it likely would not ha= ve affected the results.=0A> =0A> Larry=0A=0AYes, that's the one. Here is t= he patch from my stash anyway, it looks like it is exactly that.=0A=0AHin-T= ak=0A=0A=0A --0-1225570302-1289137870=:69807 Content-Type: text/x-patch; name="rtl8187_antenna_diversity.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="rtl8187_antenna_diversity.patch" ZGlmZiAtdXJOIGNvbXBhdC13aXJlbGVzcy0yLjYtb2xkLm9yaWcvZHJpdmVy cy9uZXQvd2lyZWxlc3MvTWFrZWZpbGUgY29tcGF0LXdpcmVsZXNzLTIuNi1v bGQvZHJpdmVycy9uZXQvd2lyZWxlc3MvTWFrZWZpbGUKLS0tIGNvbXBhdC13 aXJlbGVzcy0yLjYtb2xkLm9yaWcvZHJpdmVycy9uZXQvd2lyZWxlc3MvTWFr ZWZpbGUJMjAwOC0xMi0xNyAxOTowMzoxNy4wMDAwMDAwMDAgKzAyMDAKKysr IGNvbXBhdC13aXJlbGVzcy0yLjYtb2xkL2RyaXZlcnMvbmV0L3dpcmVsZXNz L01ha2VmaWxlCTIwMDktMDQtMDcgMjA6MTU6MjguMDAwMDAwMDAwICswMzAw CkBAIC0xLDYgKzEsNyBAQAogIwogIyBNYWtlZmlsZSBmb3IgdGhlIExpbnV4 IFdpcmVsZXNzIG5ldHdvcmsgZGV2aWNlIGRyaXZlcnMuCiAjCitFWFRSQV9D RkxBR1MgKz0gLURTV19BTlRFTk5BX0RJVkVSU0lUWQogCiBvYmotJChDT05G SUdfSVBXMjEwMCkgKz0gaXB3MjEwMC5vCiAKZGlmZiAtdXJOIGNvbXBhdC13 aXJlbGVzcy0yLjYtb2xkLm9yaWcvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRs ODE4N19kZXYuYyBjb21wYXQtd2lyZWxlc3MtMi42LW9sZC9kcml2ZXJzL25l dC93aXJlbGVzcy9ydGw4MTg3X2Rldi5jCi0tLSBjb21wYXQtd2lyZWxlc3Mt Mi42LW9sZC5vcmlnL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bDgxODdfZGV2 LmMJMjAwOC0wOS0xNSAxOTo1NzoyNC4wMDAwMDAwMDAgKzAzMDAKKysrIGNv bXBhdC13aXJlbGVzcy0yLjYtb2xkL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0 bDgxODdfZGV2LmMJMjAwOS0wNC0wOCAxNToxODowOS4wMDAwMDAwMDAgKzAz MDAKQEAgLTIxLDYgKzIxLDggQEAKICNpbmNsdWRlIDxsaW51eC9ldGhlcmRl dmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2VlcHJvbV85M2N4Ni5oPgogI2lu Y2x1ZGUgPG5ldC9tYWM4MDIxMS5oPgorI2luY2x1ZGUgPGxpbnV4L3Byb2Nf ZnMuaD4gICAgICAvLyBmb3IgdXNlIHRoZSBwcm9jIGZzCisKIAogI2luY2x1 ZGUgInJ0bDgxODcuaCIKICNpbmNsdWRlICJydGw4MTg3X3J0bDgyMjUuaCIK QEAgLTQ1LDYgKzQ3LDggQEAKIAl7VVNCX0RFVklDRSgweDAzZjAsIDB4Y2Ew MiksIC5kcml2ZXJfaW5mbyA9IERFVklDRV9SVEw4MTg3fSwKIAkvKiBTaXRl Y29tICovCiAJe1VTQl9ERVZJQ0UoMHgwZGY2LCAweDAwMGQpLCAuZHJpdmVy X2luZm8gPSBERVZJQ0VfUlRMODE4N30sCisJe1VTQl9ERVZJQ0UoMHgxM2Qx LCAweGFiZTYpLCAuZHJpdmVyX2luZm8gPSBERVZJQ0VfUlRMODE4N30sCisK IAl7fQogfTsKIApAQCAtMjU3LDYgKzI2MSw3IEBACiAKIAl1c2JfZmlsbF9i dWxrX3VyYih1cmIsIHByaXYtPnVkZXYsIHVzYl9zbmRidWxrcGlwZShwcml2 LT51ZGV2LCBlcCksCiAJCQkgIGJ1Ziwgc2tiLT5sZW4sIHJ0bDgxODdfdHhf Y2IsIHNrYik7CisJdXJiLT50cmFuc2Zlcl9mbGFncyB8PSBVUkJfWkVST19Q QUNLRVQ7CiAJcmMgPSB1c2Jfc3VibWl0X3VyYih1cmIsIEdGUF9BVE9NSUMp OwogCWlmIChyYyA8IDApIHsKIAkJdXNiX2ZyZWVfdXJiKHVyYik7CkBAIC0y NjYsNiArMjcxLDE1IEBACiAJcmV0dXJuIDA7CiB9CiAKKyNpZmRlZiBTV19B TlRFTk5BX0RJVkVSU0lUWQoraW5saW5lIHZvaWQgYWRkX3RvX2F2ZXJhZ2Vf YXJyYXkoc3RydWN0IHJ0bDgxODdfcHJpdiAqIHByaXYsIHU4IHZhbCkKK3sK KyAgICBwcml2LT5hbnRfZGl2ZXJzaXR5LmFnY19hcnJheVsgcHJpdi0+YW50 X2RpdmVyc2l0eS5jb3VudCsrIF0gPSB2YWw7CisgICAgaWYgKHByaXYtPmFu dF9kaXZlcnNpdHkuY291bnQgPj0gVkFMX0FSUkFZX1NJWkUpCisgICAgICAg IHByaXYtPmFudF9kaXZlcnNpdHkuY291bnQgPSAwOworfQorI2VuZGlmIC8q IFNXX0FOVEVOTkFfRElWRVJTSVRZICovCisKIHN0YXRpYyB2b2lkIHJ0bDgx ODdfcnhfY2Ioc3RydWN0IHVyYiAqdXJiKQogewogCXN0cnVjdCBza19idWZm ICpza2IgPSAoc3RydWN0IHNrX2J1ZmYgKil1cmItPmNvbnRleHQ7CkBAIC0z MjAsNiArMzM0LDkgQEAKIAkJfQogCQlyeF9zdGF0dXMuc2lnbmFsID0gc2ln bmFsOwogCQlwcml2LT5zaWduYWwgPSBzaWduYWw7CisjaWZkZWYgU1dfQU5U RU5OQV9ESVZFUlNJVFkKKyAgICAgICAgYWRkX3RvX2F2ZXJhZ2VfYXJyYXko cHJpdiwgaGRyLT5hZ2MpOworI2VuZGlmIC8qIFNXX0FOVEVOTkFfRElWRVJT SVRZICovCiAJfSBlbHNlIHsKIAkJc3RydWN0IHJ0bDgxODdiX3J4X2hkciAq aGRyID0KIAkJCSh0eXBlb2YoaGRyKSkoc2tiX3RhaWxfcG9pbnRlcihza2Ip IC0gc2l6ZW9mKCpoZHIpKTsKQEAgLTU1NSw2ICs1NzIsMTMgQEAKIAlydGw4 MTh4X2lvd3JpdGU4KHByaXYsICh1OCAqKTB4RkZGRiwgMHg2MCk7CiAJcnRs ODE4eF9pb3dyaXRlOChwcml2LCAmcHJpdi0+bWFwLT5QR1NFTEVDVCwgcmVn KTsKIAorI2lmZGVmIFNXX0FOVEVOTkFfRElWRVJTSVRZIAorCUlOSVRfREVM QVlFRF9XT1JLKCZwcml2LT5hbnRlbm5hX3dvcmssIFN3QW50ZW5uYVdvcmtJ dGVtQ2FsbGJhY2spOworCisJcHJpdi0+YW50X2RpdmVyc2l0eS5zd2l0Y2hf dG8gPSAwOworCVN3aXRjaEFudGVubmEocHJpdik7CisjZW5kaWYgLyogU1df QU5URU5OQV9ESVZFUlNJVFkgKi8KKwogCXJldHVybiAwOwogfQogCkBAIC03 MjEsNiArNzQ1LDggQEAKIHN0YXRpYyBpbnQgcnRsODE4N19zdGFydChzdHJ1 Y3QgaWVlZTgwMjExX2h3ICpkZXYpCiB7CiAJc3RydWN0IHJ0bDgxODdfcHJp diAqcHJpdiA9IGRldi0+cHJpdjsKKworCXByaXYtPmh3ID0gZGV2OwogCXUz MiByZWc7CiAJaW50IHJldDsKIApAQCAtODM2LDYgKzg2MiwxMCBAQAogCXN0 cnVjdCBydGw4MTg3X3ByaXYgKnByaXYgPSBkZXYtPnByaXY7CiAJaW50IGk7 CiAKKyNpZmRlZiBTV19BTlRFTk5BX0RJVkVSU0lUWQorCXN3X2FudGVubmFf ZGl2ZXJzaXR5X3RpbWVyX2NhbGxiYWNrKHByaXYpOworI2VuZGlmIC8qIFNX X0FOVEVOTkFfRElWRVJTSVRZICovCisKIAlpZiAocHJpdi0+bW9kZSAhPSBO TDgwMjExX0lGVFlQRV9NT05JVE9SKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7 CiAKQEAgLTg2Nyw2ICs4OTcsMTIgQEAKIAltdXRleF9sb2NrKCZwcml2LT5j b25mX211dGV4KTsKIAlwcml2LT5tb2RlID0gTkw4MDIxMV9JRlRZUEVfTU9O SVRPUjsKIAlwcml2LT52aWYgPSBOVUxMOworCisjaWZkZWYgU1dfQU5URU5O QV9ESVZFUlNJVFkKKwlkZWxfdGltZXJfc3luYygmcHJpdi0+c3dfYW50ZW5u YV9kaXZlcnNpdHlfdGltZXIpOworCWNhbmNlbF9kZWxheWVkX3dvcmsoJnBy aXYtPmFudGVubmFfd29yayk7CisjZW5kaWYgLyogU1dfQU5URU5OQV9ESVZF UlNJVFkgKi8KKwogCW11dGV4X3VubG9jaygmcHJpdi0+Y29uZl9tdXRleCk7 CiB9CiAKQEAgLTk3MCw2ICsxMDA2LDEyNyBAQAogCXJ0bDgxOHhfaW93cml0 ZTMyX2FzeW5jKHByaXYsICZwcml2LT5tYXAtPlJYX0NPTkYsIHByaXYtPnJ4 X2NvbmYpOwogfQogCisjaWZkZWYgU1dfQU5URU5OQV9ESVZFUlNJVFkKKyNk ZWZpbmUgQU5URU5OQV9ESVZFUlNJVFlfVElNRVJfUEVSSU9EICAgICAgICAg IDIwMDAgLy8gMTAwMCBtCisjZGVmaW5lIEFOVEVOTkFfU1dJVENIX1RJTUVS X1BFUklPRAkJCQkzMDAgLy8gMzAwIG0gCit2b2lkIHN3X2FudGVubmFfZGl2 ZXJzaXR5X3RpbWVyX2NhbGxiYWNrKHN0cnVjdCBydGw4MTg3X3ByaXYgKnBy aXYpCit7CisgICAgc3RhdGljIGludCB0aWNrX3dpdGhvdXRfc3dpdGNoID0g MDsKKyAgICBzdGF0aWMgaW50IG9sZF92YWx1ZSA9IDA7CisgICAgaW50IGF2 ZXJhZ2UgPSAwOworICAgIGludCBpOworICAgIGZvciAoIGkgPSAwOyBpIDwg VkFMX0FSUkFZX1NJWkU7ICsraSkKKyAgICB7CisgICAgICAgIGF2ZXJhZ2Ug Kz0gcHJpdi0+YW50X2RpdmVyc2l0eS5hZ2NfYXJyYXlbaV07CisgICAgfQor ICAgIGF2ZXJhZ2UgLz0gVkFMX0FSUkFZX1NJWkU7CisgICAgYXZlcmFnZSAv PSAxMDsgLy8gY3V0IDEgY2hpcGhlcgorICAgIHByaW50aygiJWQtPiVkXG4i LCBvbGRfdmFsdWUsIGF2ZXJhZ2UpOworCisgICAgaW50IHN1YiA9IGF2ZXJh Z2UgLSBvbGRfdmFsdWU7CisgICAgaWYgKHN1YiA8IDApCisgICAgICAgIHN1 YiAqPSAtMTsKKyAgICBpZiAoYXZlcmFnZSA+IG9sZF92YWx1ZSkgCisgICAg eworICAgICAgICBwcml2LT5hbnRfZGl2ZXJzaXR5LnN3aXRjaF90byBePSAx OyAgICAKKyAgICAgICAgcXVldWVfZGVsYXllZF93b3JrKHByaXYtPmh3LT53 b3JrcXVldWUsICZwcml2LT5hbnRlbm5hX3dvcmssCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKEFOVEVO TkFfU1dJVENIX1RJTUVSX1BFUklPRCkpOworICAgIH0KKyAgICBvbGRfdmFs dWUgPSBhdmVyYWdlOworCisgICAgcHJpdi0+c3dfYW50ZW5uYV9kaXZlcnNp dHlfdGltZXIuZXhwaXJlcyA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVz KEFOVEVOTkFfRElWRVJTSVRZX1RJTUVSX1BFUklPRCk7CisJYWRkX3RpbWVy KCZwcml2LT5zd19hbnRlbm5hX2RpdmVyc2l0eV90aW1lcik7CisKK30KKwor LyoKKyAqIENoYW5nZSBBbnRlbm5hIFN3aXRjaC4KKyAqLworYm9vbCBTd2l0 Y2hBbnRlbm5hKHN0cnVjdCBydGw4MTg3X3ByaXYgKnByaXYpCit7CisJdTgg dTFiQW50ZW5uYUluZGV4ID0gcHJpdi0+YW50X2RpdmVyc2l0eS5zd2l0Y2hf dG87CisKKwlib29sIGJBbnRlbm5hU3dpdGNoZWQgPSBmYWxzZTsKKwlzd2l0 Y2godTFiQW50ZW5uYUluZGV4KQorCXsKKwkJY2FzZSAwOgorCQkvKiBtYWlu IGFudGVubmEgKi8KKwkJCS8vIFJ4IENDSy4KKwkJCS8qIG9yaWdpbmFsIGNv ZGUgZnJvbSByZWFsdGVrIGRyaXZlciAqLworCQkJd3JpdGVfbmljX2J5dGUo cHJpdiwgMHg3ZiwgKCgweDAxMDA5YjkwICYgMHhmZjAwMDAwMCkgPj4gMjQp KTsKKwkJCXdyaXRlX25pY19ieXRlKHByaXYsIDB4N2UsICgoMHgwMTAwOWI5 MCAmIDB4MDBmZjAwMDApID4+IDE2KSk7CisJCQl3cml0ZV9uaWNfYnl0ZShw cml2LCAweDdkLCAoKDB4MDEwMDliOTAgJiAweDAwMDBmZjAwKSA+PiA4KSk7 CisJCQl3cml0ZV9uaWNfYnl0ZShwcml2LCAweDdjLCAoKDB4MDEwMDliOTAg JiAweDAwMDAwMGZmKSA+PiAwKSk7CisKKwkJCS8vIFJ4IE9GRE0uCisJCQkv KiBvcmlnaW5hbCBjb2RlIGZyb20gcmVhbHRlayBkcml2ZXIgKi8KKwkJCXdy aXRlX25pY19ieXRlKHByaXYsIDB4N2YsICgoMHgwMDAwOTBhNiAmIDB4ZmYw MDAwMDApID4+IDI0KSk7CisJCQl3cml0ZV9uaWNfYnl0ZShwcml2LCAweDdl LCAoKDB4MDAwMDkwYTYgJiAweDAwZmYwMDAwKSA+PiAxNikpOworCQkJd3Jp dGVfbmljX2J5dGUocHJpdiwgMHg3ZCwgKCgweDAwMDA5MGE2ICYgMHgwMDAw ZmYwMCkgPj4gOCkpOworCQkJd3JpdGVfbmljX2J5dGUocHJpdiwgMHg3Yywg KCgweDAwMDA5MGE2ICYgMHgwMDAwMDBmZikgPj4gMCkpOworCisJCQkvLyBU eCBBbnRlbm5hLgorCQkJLyogb3JpZ2luYWwgY29kZSBmcm9tIHJlYWx0ZWsg ZHJpdmVyICovCisJCQl3cml0ZV9uaWNfYnl0ZShwcml2LCBBTlRTRUwsIDB4 MDMpOyAvLyBDb25maWcgVFggYW50ZW5uYS4KKworCQkJYkFudGVubmFTd2l0 Y2hlZCA9IHRydWU7CisJCQlwcmludGsoInN3aXRjaCB0byBBTlQxIGFudGVu bmFcbiIpOworCQlicmVhazsKKwkJY2FzZSAxOiAvKiBzd2l0Y2godTFiQW50 ZW5uYUluZGV4KSAqLworCQkJLy8gUnggQ0NLLgorCQkJLyogb3JpZ2luYWwg Y29kZSBmcm9tIHJlYWx0ZWsgZHJpdmVyICovCisJCQl3cml0ZV9uaWNfYnl0 ZShwcml2LCAweDdmLCAoKDB4MDEwMGRiOTAgJiAweGZmMDAwMDAwKSA+PiAy NCkpOworCQkJd3JpdGVfbmljX2J5dGUocHJpdiwgMHg3ZSwgKCgweDAxMDBk YjkwICYgMHgwMGZmMDAwMCkgPj4gMTYpKTsKKwkJCXdyaXRlX25pY19ieXRl KHByaXYsIDB4N2QsICgoMHgwMTAwZGI5MCAmIDB4MDAwMGZmMDApID4+IDgp KTsKKwkJCXdyaXRlX25pY19ieXRlKHByaXYsIDB4N2MsICgoMHgwMTAwZGI5 MCAmIDB4MDAwMDAwZmYpID4+IDApKTsKKworCQkJLy8gUnggT0ZETS4KKwkJ CS8qIG9yaWdpbmFsIGNvZGUgZnJvbSByZWFsdGVrIGRyaXZlciAqLworCQkJ d3JpdGVfbmljX2J5dGUocHJpdiwgMHg3ZiwgKCgweDAwMDAxMGE2ICYgMHhm ZjAwMDAwMCkgPj4gMjQpKTsKKwkJCXdyaXRlX25pY19ieXRlKHByaXYsIDB4 N2UsICgoMHgwMDAwMTBhNiAmIDB4MDBmZjAwMDApID4+IDE2KSk7CisJCQl3 cml0ZV9uaWNfYnl0ZShwcml2LCAweDdkLCAoKDB4MDAwMDEwYTYgJiAweDAw MDBmZjAwKSA+PiA4KSk7CisJCQl3cml0ZV9uaWNfYnl0ZShwcml2LCAweDdj LCAoKDB4MDAwMDEwYTYgJiAweDAwMDAwMGZmKSA+PiAwKSk7CisKKwkJCS8v IFR4IEFudGVubmEuCisJCQkvKiBvcmlnaW5hbCBjb2RlIGZyb20gcmVhbHRl ayBkcml2ZXIgKi8KKwkJCXdyaXRlX25pY19ieXRlKHByaXYsIEFOVFNFTCwg MHgwMCk7IC8vIENvbmZpZyBUWCBhbnRlbm5hLgorCisJCQliQW50ZW5uYVN3 aXRjaGVkID0gdHJ1ZTsKKwkJCXByaW50aygic3dpdGNoIHRvIEFVWCBhbnRl bm5hXG4iKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJcHJpbnRrKCJb JXNdIHVua293biB1MWJBbnRlbm5hSW5kZXgoJWQpXG4iLCBfX0ZVTkNUSU9O X18sIHUxYkFudGVubmFJbmRleCk7CisJCWJyZWFrOworCX0gLyogc3dpdGNo KHUxYkFudGVubmFJbmRleCkgKi8KKworCWlmKGJBbnRlbm5hU3dpdGNoZWQp CisJeworCQlwcml2LT5hbnRfZGl2ZXJzaXR5LmN1cnJfYW50X2luZGV4ID0g dTFiQW50ZW5uYUluZGV4OworCX0KKworCXJldHVybiBiQW50ZW5uYVN3aXRj aGVkOworfQorCisKKwordm9pZCB3cml0ZV9uaWNfYnl0ZShzdHJ1Y3QgcnRs ODE4N19wcml2ICpwcml2LCBpbnQgaW5keCwgdTggZGF0YSkKK3sKKyAgICAg ICAgc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYgPSBwcml2LT51ZGV2OworCisg ICAgICAgIHVzYl9jb250cm9sX21zZyh1ZGV2LCB1c2Jfc25kY3RybHBpcGUo dWRldiwgMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRM ODE4N19SRVFfU0VUX1JFRywgUlRMODE4N19SRVFUX1dSSVRFLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGluZHh8MHhmZjAwLCAwLCAmZGF0 YSwgMSwgSFogLyAyKTsKK30KKwordm9pZCBTd0FudGVubmFXb3JrSXRlbUNh bGxiYWNrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3Qg cnRsODE4N19wcml2ICogcHJpdiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1 Y3QgcnRsODE4N19wcml2LCBhbnRlbm5hX3dvcmsud29yayk7CisJU3dpdGNo QW50ZW5uYShwcml2KTsKK30KKworCisjZW5kaWYgLyogU1dfQU5URU5OQV9E SVZFUlNJVFkgKi8KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFf b3BzIHJ0bDgxODdfb3BzID0gewogCS50eAkJCT0gcnRsODE4N190eCwKIAku c3RhcnQJCQk9IHJ0bDgxODdfc3RhcnQsCkBAIC05ODEsNiArMTEzOCw1MiBA QAogCS5jb25maWd1cmVfZmlsdGVyCT0gcnRsODE4N19jb25maWd1cmVfZmls dGVyLAogfTsKIAorI2lmZGVmIFNXX0FOVEVOTkFfRElWRVJTSVRZCisKKyNk ZWZpbmUgcHJvY2ZzX25hbWVfaW4gImFudGVubmFfZGl2ZXJzaXR5IgoraW50 IHByb2NmaWxlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFy ICpidWZmZXIsIHVuc2lnbmVkIGxvbmcgY291bnQsIHZvaWQqIGRhdGEpCit7 CisgICAgc3RydWN0IHJ0bDgxODdfcHJpdiAqcHJpdiA9IChzdHJ1Y3QgcnRs ODE4N19wcml2ICopZGF0YTsKKyAgICBpZiAoc3RybmNtcChidWZmZXIsICJB TlQxIiwgNCkgPT0gMCkKKyAgICB7ICAgIAorICAgICAgICBwcml2LT5hbnRf ZGl2ZXJzaXR5LnN3aXRjaF90byA9IDA7CisgICAgICAgIHF1ZXVlX2RlbGF5 ZWRfd29yayhwcml2LT5ody0+d29ya3F1ZXVlLCAmcHJpdi0+YW50ZW5uYV93 b3JrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNl Y3NfdG9famlmZmllcyhBTlRFTk5BX1NXSVRDSF9USU1FUl9QRVJJT0QpKTsK KyAgICB9CisgICAgZWxzZSBpZiAoc3RybmNtcChidWZmZXIsICJBVVgiLCAz KSA9PSAwKQorICAgIHsKKyAgICAgICAgcHJpdi0+YW50X2RpdmVyc2l0eS5z d2l0Y2hfdG8gPSAxOworICAgICAgICBxdWV1ZV9kZWxheWVkX3dvcmsocHJp di0+aHctPndvcmtxdWV1ZSwgJnByaXYtPmFudGVubmFfd29yaywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNlY3NfdG9famlmZmll cyhBTlRFTk5BX1NXSVRDSF9USU1FUl9QRVJJT0QpKTsKKyAgICB9CisgICAg cmV0dXJuIGNvdW50OworfQorCitpbnQgaW5pdF9tb2R1bGVfcHJvYyhzdHJ1 Y3QgcnRsODE4N19wcml2ICpwcml2KQoreworICAgIHN0cnVjdCBwcm9jX2Rp cl9lbnRyeSAqcHJvY19maWxlOworCisgICAgcHJvY19maWxlID0gY3JlYXRl X3Byb2NfZW50cnkocHJvY2ZzX25hbWVfaW4sIDA2NDQsIE5VTEwpOworCisg ICAgaWYgKHByb2NfZmlsZSA9PSBOVUxMKQorICAgIHsKKyAgICAgICAgcHJp bnRrKEtFUk5fQUxFUlQgIkVycm9yOiBDb3VsZCBub3QgaW5pdGlhbGl6ZSAv cHJvYy8lc1xuIiwgcHJvY2ZzX25hbWVfaW4pOworICAgICAgICByZXR1cm4g LUVOT01FTTsKKyAgICB9CisKKyAgICBwcm9jX2ZpbGUtPndyaXRlX3Byb2Mg PSBwcm9jZmlsZV93cml0ZTsKKyAgICBwcm9jX2ZpbGUtPm93bmVyICAgICAg PSBUSElTX01PRFVMRTsKKyAgICBwcm9jX2ZpbGUtPm1vZGUgICAgICAgPSBT X0lGUkVHIHwgU19JUlVHTzsKKyAgICBwcm9jX2ZpbGUtPnVpZCAgICAgICAg PSAwOworICAgIHByb2NfZmlsZS0+Z2lkICAgICAgICA9IDA7CisgICAgcHJv Y19maWxlLT5zaXplICAgICAgID0gMDsKKyAgICBwcm9jX2ZpbGUtPmRhdGEg ICAgICAgPSAgcHJpdjsKKyAgICBwcmludGsoS0VSTl9JTkZPICIvcHJvYy8l cyBjcmVhdGVkXG4iLCBwcm9jZnNfbmFtZV9pbik7CisgICAgcmV0dXJuIDA7 Cit9CisKKyNlbmRpZiAvL1NXX0FOVEVOTkFfRElWRVJTSVRZCisKIHN0YXRp YyB2b2lkIHJ0bDgxODdfZWVwcm9tX3JlZ2lzdGVyX3JlYWQoc3RydWN0IGVl cHJvbV85M2N4NiAqZWVwcm9tKQogewogCXN0cnVjdCBpZWVlODAyMTFfaHcg KmRldiA9IGVlcHJvbS0+ZGF0YTsKQEAgLTEyMDksNiArMTQxMiwxMyBAQAog CXByaW50ayhLRVJOX0lORk8gIiVzOiBod2FkZHIgJXMsICVzIFYlZCArICVz XG4iLAogCSAgICAgICB3aXBoeV9uYW1lKGRldi0+d2lwaHkpLCBwcmludF9t YWMobWFjLCBkZXYtPndpcGh5LT5wZXJtX2FkZHIpLAogCSAgICAgICBjaGlw X25hbWUsIHByaXYtPmFzaWNfcmV2LCBwcml2LT5yZi0+bmFtZSk7CisjaWZk ZWYgU1dfQU5URU5OQV9ESVZFUlNJVFkKKwkjd2FybmluZyBBTlRFTk5BIERJ VkVSU0lUWSBlbmFibGVkCisgICAgaW5pdF9tb2R1bGVfcHJvYyhwcml2KTsK Kwlpbml0X3RpbWVyKCZwcml2LT5zd19hbnRlbm5hX2RpdmVyc2l0eV90aW1l cik7CisJcHJpdi0+c3dfYW50ZW5uYV9kaXZlcnNpdHlfdGltZXIuZGF0YSA9 ICh1bnNpZ25lZCBsb25nKXByaXY7CisJcHJpdi0+c3dfYW50ZW5uYV9kaXZl cnNpdHlfdGltZXIuZnVuY3Rpb24gPSAodm9pZCAqKXN3X2FudGVubmFfZGl2 ZXJzaXR5X3RpbWVyX2NhbGxiYWNrOworI2VuZGlmIC8qIFNXX0FOVEVOTkFf RElWRVJTSVRZICovCiAKIAlyZXR1cm4gMDsKIApkaWZmIC11ck4gY29tcGF0 LXdpcmVsZXNzLTIuNi1vbGQub3JpZy9kcml2ZXJzL25ldC93aXJlbGVzcy9y dGw4MTg3LmggY29tcGF0LXdpcmVsZXNzLTIuNi1vbGQvZHJpdmVycy9uZXQv d2lyZWxlc3MvcnRsODE4Ny5oCi0tLSBjb21wYXQtd2lyZWxlc3MtMi42LW9s ZC5vcmlnL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bDgxODcuaAkyMDA4LTA5 LTA0IDAwOjA0OjIwLjAwMDAwMDAwMCArMDMwMAorKysgY29tcGF0LXdpcmVs ZXNzLTIuNi1vbGQvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsODE4Ny5oCTIw MDktMDQtMDcgMTk6NTM6MzcuMDAwMDAwMDAwICswMzAwCkBAIC04MiwxMSAr ODIsMjggQEAKIAlERVZJQ0VfUlRMODE4N0IKIH07CiAKKyNpZmRlZiBTV19B TlRFTk5BX0RJVkVSU0lUWQorCisjZGVmaW5lIFZBTF9BUlJBWV9TSVpFIDEw CisKKyNkZWZpbmUgQU5UU0VMIDB4OUYKKworc3RydWN0IHJ0bDgxODdfYW50 X2RpdmVyc2l0eSB7CisJaW50IGNvdW50OworCXU4IGFnY19hcnJheVtWQUxf QVJSQVlfU0laRV07CisKKyAgICB1OCBzd2l0Y2hfdG87CisgICAgdTggY3Vy cl9hbnRfaW5kZXg7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKwor I2VuZGlmIC8qIFNXX0FOVEVOTkFfRElWRVJTSVRZICovCisKIHN0cnVjdCBy dGw4MTg3X3ByaXYgewogCS8qIGNvbW1vbiBiZXR3ZWVuIHJ0bDgxOHggZHJp dmVycyAqLwogCXN0cnVjdCBydGw4MTh4X2NzciAqbWFwOwogCWNvbnN0IHN0 cnVjdCBydGw4MTh4X3JmX29wcyAqcmY7CiAJc3RydWN0IGllZWU4MDIxMV92 aWYgKnZpZjsKKwlzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodzsKIAlpbnQgbW9k ZTsKIAkvKiBUaGUgbXV0ZXggcHJvdGVjdHMgdGhlIFRYIGxvb3BiYWNrIHN0 YXRlLgogCSAqIEFueSBhdHRlbXB0IHRvIHNldCBjaGFubmVscyBjb25jdXJy ZW50bHkgbG9ja3MgdGhlIGRldmljZS4KQEAgLTExMiw2ICsxMjksMTMgQEAK IAl1OCBzaWduYWw7CiAJdTggcXVhbGl0eTsKIAl1OCBub2lzZTsKKworI2lm ZGVmIFNXX0FOVEVOTkFfRElWRVJTSVRZCisJc3RydWN0IHRpbWVyX2xpc3Qg c3dfYW50ZW5uYV9kaXZlcnNpdHlfdGltZXI7CisJc3RydWN0IHJ0bDgxODdf YW50X2RpdmVyc2l0eSBhbnRfZGl2ZXJzaXR5OworCXN0cnVjdCBkZWxheWVk X3dvcmsgYW50ZW5uYV93b3JrOworI2VuZGlmIC8qIFNXX0FOVEVOTkFfRElW RVJTSVRZICovCisKIH07CiAKIHZvaWQgcnRsODE4N193cml0ZV9waHkoc3Ry dWN0IGllZWU4MDIxMV9odyAqZGV2LCB1OCBhZGRyLCB1MzIgZGF0YSk7CkBA IC0yMTgsNCArMjQyLDIwIEBACiAJcnRsODE4eF9pb3dyaXRlMzJfaWR4KHBy aXYsIGFkZHIsIHZhbCwgMCk7CiB9CiAKK3ZvaWQgcnRsODE4N19ic3NfaW5m b19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LAorCQkJCQkJCQlz dHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLAorCQkJCQkJCQlzdHJ1Y3QgaWVl ZTgwMjExX2Jzc19jb25mICpic3NfY29uZiwKKwkJCQkJCQkJdTMyIGNoYW5n ZXMpOworI2lmZGVmIFNXX0FOVEVOTkFfRElWRVJTSVRZCisKK3ZvaWQgc3df YW50ZW5uYV9kaXZlcnNpdHlfdGltZXJfY2FsbGJhY2soc3RydWN0IHJ0bDgx ODdfcHJpdiAqZGV2KTsKKworYm9vbCBTd2l0Y2hBbnRlbm5hKHN0cnVjdCBy dGw4MTg3X3ByaXYgKnByaXYpOworCit2b2lkIHdyaXRlX25pY19ieXRlKHN0 cnVjdCBydGw4MTg3X3ByaXYgKnByaXYsIGludCBpbmR4LCB1OCBkYXRhKTsK Kwordm9pZCBTd0FudGVubmFXb3JrSXRlbUNhbGxiYWNrKHN0cnVjdCB3b3Jr X3N0cnVjdCAqd29yayk7CisKKyNlbmRpZiAvKiBTV19BTlRFTk5BX0RJVkVS U0lUWSAqLworCiAjZW5kaWYgLyogUlRMODE4N19IICovCg== --0-1225570302-1289137870=:69807--