Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932344Ab1CRD6K (ORCPT ); Thu, 17 Mar 2011 23:58:10 -0400 Received: from eu1sys200aog111.obsmtp.com ([207.126.144.131]:55987 "EHLO eu1sys200aog111.obsmtp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932134Ab1CRD55 (ORCPT ); Thu, 17 Mar 2011 23:57:57 -0400 From: Bibek BASU To: Grant Likely , Linus Walleij Cc: "linux-kernel@vger.kernel.org" Date: Fri, 18 Mar 2011 04:38:45 +0100 Subject: RE: [PATCH] AB8500 GPIO : Driver for 42 AB8500 GPIO pins Thread-Topic: [PATCH] AB8500 GPIO : Driver for 42 AB8500 GPIO pins Thread-Index: Acvk1yTIJvNy2ALjTfaeGkhz1Tg2OQARAsjQ Message-ID: <4E253D605AF50140A55CF6396EC99A241C1F71BA68@EXDCVYMBSTM005.EQ1STM.local> References: <1297827283-22860-1-git-send-email-bibek.basu@stericsson.com> <1297827283-22860-2-git-send-email-bibek.basu@stericsson.com> <20110317191132.GA12824@angua.secretlab.ca> In-Reply-To: <20110317191132.GA12824@angua.secretlab.ca> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: multipart/mixed; boundary="_003_4E253D605AF50140A55CF6396EC99A241C1F71BA68EXDCVYMBSTM00_" MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 35902 Lines: 512 --_003_4E253D605AF50140A55CF6396EC99A241C1F71BA68EXDCVYMBSTM00_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi Grant, I don't know how the latest patch has not reached you. I am reposting the p= atch and attaching with this mail also. Your concern regarding getting gpio irq base address from platform data is = addressed in that patch. Sorry for the confusion. Regards Bibek =20 -----Original Message----- From: Grant Likely [mailto:glikely@secretlab.ca] On Behalf Of Grant Likely Sent: Friday, March 18, 2011 12:42 AM To: Linus Walleij Cc: Bibek BASU; linux-kernel@vger.kernel.org Subject: Re: [PATCH] AB8500 GPIO : Driver for 42 AB8500 GPIO pins On Tue, Mar 15, 2011 at 03:51:09PM +0100, Linus Walleij wrote: > On Tue, Mar 15, 2011 at 3:33 PM, Grant Likely = wrote: >=20 > > Ping me *after* Russell's tree gets merged and I'll pick it up. =A0I > > don't want to mess about with apply-order breakage. >=20 > This driver does not depend on anything from Russells tree > or any other tree for that matter... It's a clean merge. CC drivers/gpio/ab8500-gpio.o /home/grant/hacking/linux-2.6/drivers/gpio/ab8500-gpio.c: In function 'ab= 8500_gpio_probe': /home/grant/hacking/linux-2.6/drivers/gpio/ab8500-gpio.c:432: error: 'MOP= 500_AB8500_VIR_GPIO_IRQ_BASE' undeclared (first use in this function) /home/grant/hacking/linux-2.6/drivers/gpio/ab8500-gpio.c:432: error: (Eac= h undeclared identifier is reported only once /home/grant/hacking/linux-2.6/drivers/gpio/ab8500-gpio.c:432: error: for = each function it appears in.) make[2]: *** [drivers/gpio/ab8500-gpio.o] Error 1 make[1]: *** [drivers/gpio/ab8500-gpio.o] Error 2 make: *** [sub-make] Error 2 and: $ git grep MOP500_AB8500_VIR_GPIO_IRQ_BASE origin $=20 Looks like I cannot merge this yet. BTW, why is this driver hardcoding the gpio irq base address instead of retrieving it from the platform data? g. --_003_4E253D605AF50140A55CF6396EC99A241C1F71BA68EXDCVYMBSTM00_ Content-Type: application/octet-stream; name="0001-AB8500-GPIO-Board-Support-for-AB8500-GPIO-Driver.patch" Content-Description: 0001-AB8500-GPIO-Board-Support-for-AB8500-GPIO-Driver.patch Content-Disposition: attachment; filename="0001-AB8500-GPIO-Board-Support-for-AB8500-GPIO-Driver.patch"; size=4177; creation-date="Fri, 18 Mar 2011 04:38:41 GMT"; modification-date="Fri, 18 Mar 2011 04:37:12 GMT" Content-Transfer-Encoding: base64 RnJvbSBkNjgwYzU0ZGFkY2YzMjcyYjcxNjE4YWMyYzY5ZDBhMWIwM2U4MzNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCaWJlayBCYXN1IDxiaWJlay5iYXN1QHN0ZXJpY3Nzb24uY29t PgpEYXRlOiBUdWUsIDE1IEZlYiAyMDExIDEyOjU2OjE2ICswNTMwClN1YmplY3Q6IFtQQVRDSF0g QUI4NTAwIEdQSU8gOiBCb2FyZCBTdXBwb3J0IGZvciAgQUI4NTAwIEdQSU8gRHJpdmVyCgpUaGlz IGlzIHRoZSBib2FyZCBzdXBwb3J0IHBhdGNoIGZvciBhYjg1MDAgZ3BpbyBkcml2ZXIKb24gbWFj aC11eDUwMC5QYXRjaCBpbXBsZW1lbnRzIDE2IHZpcnR1YWwKSVJRIG1hcHBlZCB0byAxNiBpbnRl cnJ1cHQgY2FwYWJsZSBBQjg1MDAgR1BJT3MuCgpTaWduZWQtb2ZmLWJ5OiBCaWJlayBCYXN1IDxi aWJlay5iYXN1QHN0ZXJpY3Nzb24uY29tPgotLS0KIGFyY2gvYXJtL21hY2gtdXg1MDAvYm9hcmQt bW9wNTAwLmMgICAgICAgICAgICAgICAgIHwgICAyNCArKysrKysrKysrKysrKysrKysrKwogYXJj aC9hcm0vbWFjaC11eDUwMC9ib2FyZC1tb3A1MDAuaCAgICAgICAgICAgICAgICAgfCAgICAzICst CiAuLi4vbWFjaC11eDUwMC9pbmNsdWRlL21hY2gvaXJxcy1ib2FyZC1tb3A1MDAuaCAgICB8ICAg MTUgKysrKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXV4NTAwL2JvYXJkLW1vcDUwMC5j IGIvYXJjaC9hcm0vbWFjaC11eDUwMC9ib2FyZC1tb3A1MDAuYwppbmRleCA2N2Q5YzYzLi42OWVl Nzg5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXV4NTAwL2JvYXJkLW1vcDUwMC5jCisrKyBi L2FyY2gvYXJtL21hY2gtdXg1MDAvYm9hcmQtbW9wNTAwLmMKQEAgLTIxLDYgKzIxLDcgQEAKICNp bmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CiAjaW5jbHVkZSA8bGludXgvbWZkL2FiODUwMC5oPgog I2luY2x1ZGUgPGxpbnV4L21mZC90YzM1ODl4Lmg+CisjaW5jbHVkZSA8bGludXgvbWZkL2FiODUw MC9hYjg1MDAtZ3Bpby5oPgogI2luY2x1ZGUgPGxpbnV4L2xlZHMtbHA1NTIxLmg+CiAjaW5jbHVk ZSA8bGludXgvaW5wdXQuaD4KICNpbmNsdWRlIDxsaW51eC9ncGlvX2tleXMuaD4KQEAgLTEwMiwx MCArMTAzLDMzIEBAIHN0YXRpYyBwaW5fY2ZnX3QgbW9wNTAwX3BpbnNbXSA9IHsKIAlHUElPMjY3 X1VTQl9EQVQwCXwgUElOX1BVTExfRE9XTiwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgYWI4NTAwX2dw aW9fcGxhdGZvcm1fZGF0YSBhYjg1MDBfZ3Bpb19wZGF0YSA9IHsKKwkuZ3Bpb19iYXNlCQk9IE1P UDUwMF9BQjg1MDBfR1BJTygwKSwKKwkuaXJxX2Jhc2UJCT0gTU9QNTAwX0FCODUwMF9WSVJfR1BJ T19JUlFfQkFTRSwKKwkvKiBjb25maWdfcmVnIGlzIHRoZSBpbml0aWFsIGNvbmZpZ3VyYXRpb24g b2YgYWI4NTAwIHBpbnMuCisJICogVGhlIHBpbnMgY2FuIGJlIGNvbmZpZ3VyZWQgYXMgR1BJTyBv ciBhbHQgZnVuY3Rpb25zIGJhc2VkCisJICogb24gdmFsdWUgcHJlc2VudCBpbiBHcGlvU2VsMSB0 byBHcGlvU2VsNiBhbmQgQWx0ZXJuYXRGdW5jdGlvbgorCSAqIHJlZ2lzdGVyLiBUaGlzIGlzIHRo ZSBhcnJheSBvZiA3IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuCisJICogT25lIGhhcyB0byBjb21w aWxlIHRpbWUgZGVjaWRlIHRoZXNlIHNldHRpbmdzLiBCZWxvdyBpcyB0aGUKKwkgKiBleHBsYWlu YXRpb24gb2YgdGhlc2Ugc2V0dGluZworCSAqIEdwaW9TZWwxID0gMHgwMCA9PiBQaW5zIEdQSU8x IHRvIEdQSU84IGFyZSBub3QgdXNlZCBhcyBHUElPCisJICogR3Bpb1NlbDIgPSAweDFFID0+IFBp bnMgR1BJTzEwIHRvIEdQSU8xMyBhcmUgY29uZmlndXJlZCBhcyBHUElPCisJICogR3Bpb1NlbDMg PSAweDgwID0+IFBpbiBHUElPMjQgaXMgY29uZmlndXJlZCBhcyBHUElPCisJICogR3Bpb1NlbDQg PSAweDAxID0+IFBpbiBHUElvMjUgaXMgY29uZmlndXJlZCBhcyBHUElPCisJICogR3Bpb1NlbDUg PSAweDdBID0+IFBpbnMgR1BJTzM0LCBHUElPMzYgdG8gR1BJTzM5IGFyZSBjb25mIGFzIEdQSU8K KwkgKiBHcGlvU2VsNiA9IDB4MDAgPT4gUGlucyBHUElPNDEgJiBHUElvNDIgYXJlIG5vdCBjb25m aWd1cmVkIGFzIEdQSU8KKwkgKiBBbHRlcm5hRnVuY3Rpb24gPSAweDAwID0+IElmIFBpbnMgR1BJ TzEwIHRvIDEzIGFyZSBub3QgY29uZmlndXJlZAorCSAqIGFzIEdQSU8gdGhlbiB0aGlzIHJlZ2lz dGVyIHNlbGVjdGVzIHRoZSBhbHRlcm5hdGUgZnVjbnRpb25zCisJICovCisJLmNvbmZpZ19yZWcJ CT0gezB4MDAsIDB4MUUsIDB4ODAsIDB4MDEsCisJCQkJCTB4N0EsIDB4MDAsIDB4MDB9LAorfTsK Kwogc3RhdGljIHN0cnVjdCBhYjg1MDBfcGxhdGZvcm1fZGF0YSBhYjg1MDBfcGxhdGRhdGEgPSB7 CiAJLmlycV9iYXNlCT0gTU9QNTAwX0FCODUwMF9JUlFfQkFTRSwKIAkucmVndWxhdG9yCT0gYWI4 NTAwX3JlZ3VsYXRvcnMsCiAJLm51bV9yZWd1bGF0b3IJPSBBUlJBWV9TSVpFKGFiODUwMF9yZWd1 bGF0b3JzKSwKKwkuZ3BpbyA9ICZhYjg1MDBfZ3Bpb19wZGF0YSwKIH07CiAKIHN0YXRpYyBzdHJ1 Y3QgcmVzb3VyY2UgYWI4NTAwX3Jlc291cmNlc1tdID0gewpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v bWFjaC11eDUwMC9ib2FyZC1tb3A1MDAuaCBiL2FyY2gvYXJtL21hY2gtdXg1MDAvYm9hcmQtbW9w NTAwLmgKaW5kZXggMTliNmMyNy4uZDAwZWEwNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC11 eDUwMC9ib2FyZC1tb3A1MDAuaAorKysgYi9hcmNoL2FybS9tYWNoLXV4NTAwL2JvYXJkLW1vcDUw MC5oCkBAIC04LDcgKzgsOCBAQAogI2RlZmluZSBfX0JPQVJEX01PUDUwMF9ICiAKICNkZWZpbmUg TU9QNTAwX0VHUElPKHgpCQkJKE5PTUFESUtfTlJfR1BJTyArICh4KSkKLQorI2RlZmluZSBNT1A1 MDBfRUdQSU9fRU5ECQlNT1A1MDBfRUdQSU8oMjQpCisjZGVmaW5lIE1PUDUwMF9BQjg1MDBfR1BJ Tyh4KQkJKE1PUDUwMF9FR1BJT19FTkQgKyAoeCkpCiAvKiBHUElPcyBvbiB0aGUgVEMzNTg5MiBl eHBhbmRlciAqLwogI2RlZmluZSBHUElPX1NETU1DX0NECQkJTU9QNTAwX0VHUElPKDMpCiAjZGVm aW5lIEdQSU9fUFJPWF9TRU5TT1IJCU1PUDUwMF9FR1BJTyg3KQpkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vbWFjaC11eDUwMC9pbmNsdWRlL21hY2gvaXJxcy1ib2FyZC1tb3A1MDAuaCBiL2FyY2gvYXJt L21hY2gtdXg1MDAvaW5jbHVkZS9tYWNoL2lycXMtYm9hcmQtbW9wNTAwLmgKaW5kZXggN2NkZWIy YS4uOTdlZjU1ZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC11eDUwMC9pbmNsdWRlL21hY2gv aXJxcy1ib2FyZC1tb3A1MDAuaAorKysgYi9hcmNoL2FybS9tYWNoLXV4NTAwL2luY2x1ZGUvbWFj aC9pcnFzLWJvYXJkLW1vcDUwMC5oCkBAIC0zNSw5ICszNSwyMCBAQAogI2RlZmluZSBNT1A1MDBf U1RNUEUxNjAxX0lSUUJBU0UgICAgICAgIE1PUDUwMF9FR1BJT19JUlFfRU5ECiAjZGVmaW5lIE1P UDUwMF9TVE1QRTE2MDFfSVJRKHgpICAgICAgICAgKE1PUDUwMF9TVE1QRTE2MDFfSVJRQkFTRSAr ICh4KSkKIAotI2RlZmluZSBNT1A1MDBfTlJfSVJRUyAgICAgICAgICBNT1A1MDBfU1RNUEUxNjAx X0lSUShTVE1QRV9OUl9JTlRFUk5BTF9JUlFTKQorI2RlZmluZSBNT1A1MDBfU1RNUEUxNjAxX0lS UV9FTkQJXAorCU1PUDUwMF9TVE1QRTE2MDFfSVJRKFNUTVBFX05SX0lOVEVSTkFMX0lSUVMpCiAK LSNkZWZpbmUgTU9QNTAwX0lSUV9FTkQgICAgICAgICAgTU9QNTAwX05SX0lSUVMKKy8qIEFCODUw MCB2aXJ0dWFsIGdwaW8gSVJRICovCisjZGVmaW5lIEFCODUwMF9WSVJfR1BJT19OUl9JUlFTCQkJ MTYKKworI2RlZmluZSBNT1A1MDBfQUI4NTAwX1ZJUl9HUElPX0lSUV9CQVNFCQlcCisJTU9QNTAw X1NUTVBFMTYwMV9JUlFfRU5ECisjZGVmaW5lIE1PUDUwMF9BQjg1MDBfVklSX0dQSU9fSVJRX0VO RAkJXAorCShNT1A1MDBfQUI4NTAwX1ZJUl9HUElPX0lSUV9CQVNFICsgQUI4NTAwX1ZJUl9HUElP X05SX0lSUVMpCisKKyNkZWZpbmUgTU9QNTAwX05SX0lSUVMJCU1PUDUwMF9BQjg1MDBfVklSX0dQ SU9fSVJRX0VORAorCisjZGVmaW5lIE1PUDUwMF9JUlFfRU5ECQlNT1A1MDBfTlJfSVJRUwogCiAj aWYgTU9QNTAwX0lSUV9FTkQgPiBJUlFfQk9BUkRfRU5ECiAjdW5kZWYgSVJRX0JPQVJEX0VORAot LSAKMS43LjIuZGlydHkKCg== --_003_4E253D605AF50140A55CF6396EC99A241C1F71BA68EXDCVYMBSTM00_ Content-Type: application/octet-stream; name="0001-AB8500-GPIO-Driver-for-42-AB8500-GPIO-pins.patch" Content-Description: 0001-AB8500-GPIO-Driver-for-42-AB8500-GPIO-pins.patch Content-Disposition: attachment; filename="0001-AB8500-GPIO-Driver-for-42-AB8500-GPIO-pins.patch"; size=19974; creation-date="Fri, 18 Mar 2011 04:38:41 GMT"; modification-date="Fri, 18 Mar 2011 04:37:12 GMT" Content-Transfer-Encoding: base64 RnJvbSAzZjRiZDUyNmIxYmU4MjM2Y2Q3ODZhNzAxZGE2YTJjMzgxNTNkNzY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCaWJlayBCYXN1IDxiaWJlay5iYXN1QHN0ZXJpY3Nzb24uY29t PgpEYXRlOiBXZWQsIDkgRmViIDIwMTEgMTE6MDI6MzUgKzA1MzAKU3ViamVjdDogW1BBVENIXSBB Qjg1MDAgR1BJTyA6IERyaXZlciBmb3IgNDIgQUI4NTAwIEdQSU8gcGlucwoKVG8gZ2V0IHJpZCBv ZiBwb3J0IGV4cGFuZGVycywgdGhlIGZyZWUgR1BJT3Mgb2YgYWI4NTAwCmNhbiBiZSB1c2VkLiBU aGVyZSBhcmUgNDIgR1BJTyBwaW5zLiBPdXQgb2Ygd2hpY2ggMTYKYXJlIGludGVycnVwdCBjYXBh YmxlLlRoaXMgcGF0Y2ggaW1wbGVtZW50cyAxNiB2aXJ0dWFsCklSUSBtYXBwZWQgdG8gMTYgaW50 ZXJydXB0IGNhcGFibGUgQUI4NTAwIEdQSU9zLgoKU2lnbmVkLW9mZi1ieTogQmliZWsgQmFzdSA8 YmliZWsuYmFzdUBzdGVyaWNzc29uLmNvbT4KLS0tCiBkcml2ZXJzL2dwaW8vS2NvbmZpZyAgICAg ICAgICAgICAgICAgICB8ICAgIDUgKwogZHJpdmVycy9ncGlvL01ha2VmaWxlICAgICAgICAgICAg ICAgICAgfCAgICAxICsKIGRyaXZlcnMvZ3Bpby9hYjg1MDAtZ3Bpby5jICAgICAgICAgICAgIHwg IDUyMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9tZmQvYWI4NTAw LWNvcmUuYyAgICAgICAgICAgICAgfCAgIDE0ICsKIGRyaXZlcnMvbWZkL2FiODUwMC1pMmMuYyAg ICAgICAgICAgICAgIHwgICAgMiArLQogaW5jbHVkZS9saW51eC9tZmQvYWI4NTAwLmggICAgICAg ICAgICAgfCAgIDQxICsrKwogaW5jbHVkZS9saW51eC9tZmQvYWI4NTAwL2FiODUwMC1ncGlvLmgg fCAgIDIyICsrCiA3IGZpbGVzIGNoYW5nZWQsIDYwNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3Bpby9hYjg1MDAtZ3Bpby5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9saW51eC9tZmQvYWI4NTAwL2FiODUwMC1ncGlvLmgKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwaW8vS2NvbmZpZyBiL2RyaXZlcnMvZ3Bpby9LY29uZmlnCmlu ZGV4IDY2NDY2MGUuLjVhMTgyZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3Bpby9LY29uZmlnCisr KyBiL2RyaXZlcnMvZ3Bpby9LY29uZmlnCkBAIC00MTEsNCArNDExLDkgQEAgY29uZmlnIEdQSU9f SkFOWl9UVEwKIAkgIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIGRyaXZpbmcgdGhl IHBpbnMgaW4gb3V0cHV0CiAJICBtb2RlIG9ubHkuIElucHV0IG1vZGUgaXMgbm90IHN1cHBvcnRl ZC4KIAorY29uZmlnIEFCODUwMF9HUElPCisJYm9vbCAiU1QtRXJpY3Nzb24gQUI4NTAwIE1peGVk IFNpZ25hbCBDaXJjdWl0IGdwaW8gZnVuY3Rpb25zIgorCWRlcGVuZHMgb24gQUI4NTAwX0NPUkUK KwloZWxwCisJICBTZWxlY3QgdGhpcyB0byBlbmFibGUgdGhlIEFCODUwMCBJQyBHUElPIGRyaXZl cgogZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3Bpby9NYWtlZmlsZSBiL2RyaXZlcnMvZ3Bp by9NYWtlZmlsZQppbmRleCAzMzUxY2Y4Li5iZWNlZjU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw aW8vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncGlvL01ha2VmaWxlCkBAIC00MiwzICs0Miw0IEBA IG9iai0kKENPTkZJR19HUElPX0pBTlpfVFRMKQkrPSBqYW56LXR0bC5vCiBvYmotJChDT05GSUdf R1BJT19TWDE1MFgpCSs9IHN4MTUweC5vCiBvYmotJChDT05GSUdfR1BJT19WWDg1NSkJKz0gdng4 NTVfZ3Bpby5vCiBvYmotJChDT05GSUdfR1BJT19NTF9JT0gpCSs9IG1sX2lvaF9ncGlvLm8KK29i ai0kKENPTkZJR19BQjg1MDBfR1BJTykgICAgICAgKz0gYWI4NTAwLWdwaW8ubwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncGlvL2FiODUwMC1ncGlvLmMgYi9kcml2ZXJzL2dwaW8vYWI4NTAwLWdwaW8u YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGY5MDYzCi0tLSAvZGV2L251 bGwKKysrIGIvZHJpdmVycy9ncGlvL2FiODUwMC1ncGlvLmMKQEAgLTAsMCArMSw1MjEgQEAKKy8q CisgKiBDb3B5cmlnaHQgKEMpIFNULUVyaWNzc29uIFNBIDIwMTEKKyAqCisgKiBBdXRob3I6IEJJ QkVLIEJBU1UgPGJpYmVrLmJhc3VAc3Rlcmljc3Nvbi5jb20+CisgKiBMaWNlbnNlIHRlcm1zOiBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSB2ZXJzaW9uIDIKKyAqCisgKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLgorICovCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgv dHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5o PgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2lu Y2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4K KyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVk ZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvbWZkL2FiODUwMC5oPgorI2lu Y2x1ZGUgPGxpbnV4L21mZC9hYng1MDAuaD4KKyNpbmNsdWRlIDxsaW51eC9tZmQvYWI4NTAwL2Fi ODUwMC1ncGlvLmg+CisKKy8qCisgKiBHUElPIHJlZ2lzdGVycyBvZmZzZXQKKyAqIEJhbms6IDB4 MTAKKyAqLworI2RlZmluZSBBQjg1MDBfR1BJT19TRUwxX1JFRwkweDAwCisjZGVmaW5lIEFCODUw MF9HUElPX1NFTDJfUkVHCTB4MDEKKyNkZWZpbmUgQUI4NTAwX0dQSU9fU0VMM19SRUcJMHgwMgor I2RlZmluZSBBQjg1MDBfR1BJT19TRUw0X1JFRwkweDAzCisjZGVmaW5lIEFCODUwMF9HUElPX1NF TDVfUkVHCTB4MDQKKyNkZWZpbmUgQUI4NTAwX0dQSU9fU0VMNl9SRUcJMHgwNQorCisjZGVmaW5l IEFCODUwMF9HUElPX0RJUjFfUkVHCTB4MTAKKyNkZWZpbmUgQUI4NTAwX0dQSU9fRElSMl9SRUcJ MHgxMQorI2RlZmluZSBBQjg1MDBfR1BJT19ESVIzX1JFRwkweDEyCisjZGVmaW5lIEFCODUwMF9H UElPX0RJUjRfUkVHCTB4MTMKKyNkZWZpbmUgQUI4NTAwX0dQSU9fRElSNV9SRUcJMHgxNAorI2Rl ZmluZSBBQjg1MDBfR1BJT19ESVI2X1JFRwkweDE1CisKKyNkZWZpbmUgQUI4NTAwX0dQSU9fT1VU MV9SRUcJMHgyMAorI2RlZmluZSBBQjg1MDBfR1BJT19PVVQyX1JFRwkweDIxCisjZGVmaW5lIEFC ODUwMF9HUElPX09VVDNfUkVHCTB4MjIKKyNkZWZpbmUgQUI4NTAwX0dQSU9fT1VUNF9SRUcJMHgy MworI2RlZmluZSBBQjg1MDBfR1BJT19PVVQ1X1JFRwkweDI0CisjZGVmaW5lIEFCODUwMF9HUElP X09VVDZfUkVHCTB4MjUKKworI2RlZmluZSBBQjg1MDBfR1BJT19QVUQxX1JFRwkweDMwCisjZGVm aW5lIEFCODUwMF9HUElPX1BVRDJfUkVHCTB4MzEKKyNkZWZpbmUgQUI4NTAwX0dQSU9fUFVEM19S RUcJMHgzMgorI2RlZmluZSBBQjg1MDBfR1BJT19QVUQ0X1JFRwkweDMzCisjZGVmaW5lIEFCODUw MF9HUElPX1BVRDVfUkVHCTB4MzQKKyNkZWZpbmUgQUI4NTAwX0dQSU9fUFVENl9SRUcJMHgzNQor CisjZGVmaW5lIEFCODUwMF9HUElPX0lOMV9SRUcJMHg0MAorI2RlZmluZSBBQjg1MDBfR1BJT19J TjJfUkVHCTB4NDEKKyNkZWZpbmUgQUI4NTAwX0dQSU9fSU4zX1JFRwkweDQyCisjZGVmaW5lIEFC ODUwMF9HUElPX0lONF9SRUcJMHg0MworI2RlZmluZSBBQjg1MDBfR1BJT19JTjVfUkVHCTB4NDQK KyNkZWZpbmUgQUI4NTAwX0dQSU9fSU42X1JFRwkweDQ1CisjZGVmaW5lIEFCODUwMF9HUElPX0FM VEZVTl9SRUcJMHg0NQorI2RlZmluZSBBTFRGVU5fUkVHX0lOREVYCTYKKyNkZWZpbmUgQUI4NTAw X05VTV9HUElPCQk0MgorI2RlZmluZSBBQjg1MDBfTlVNX1ZJUl9HUElPX0lSUQkxNgorCitlbnVt IGFiODUwMF9ncGlvX2FjdGlvbiB7CisJTk9ORSwKKwlTVEFSVFVQLAorCVNIVVRET1dOLAorCU1B U0ssCisJVU5NQVNLCit9OworCitzdHJ1Y3QgYWI4NTAwX2dwaW8geworCXN0cnVjdCBncGlvX2No aXAgY2hpcDsKKwlzdHJ1Y3QgYWI4NTAwICpwYXJlbnQ7CisJc3RydWN0IGRldmljZSAqZGV2Owor CXN0cnVjdCBtdXRleCBsb2NrOworCXUzMiBpcnFfYmFzZTsKKwllbnVtIGFiODUwMF9ncGlvX2Fj dGlvbiBpcnFfYWN0aW9uOworCXUxNiByaXNpbmc7CisJdTE2IGZhbGxpbmc7Cit9OworLyoqCisg KiB0b19hYjg1MDBfZ3BpbygpIC0gZ2V0IHRoZSBwb2ludGVyIHRvIGFiODUwMF9ncGlvCisgKiBA Y2hpcDoJTWVtYmVyIG9mIHRoZSBzdHJ1Y3R1cmUgYWI4NTAwX2dwaW8KKyAqLworc3RhdGljIGlu bGluZSBzdHJ1Y3QgYWI4NTAwX2dwaW8gKnRvX2FiODUwMF9ncGlvKHN0cnVjdCBncGlvX2NoaXAg KmNoaXApCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihjaGlwLCBzdHJ1Y3QgYWI4NTAwX2dwaW8s IGNoaXApOworfQorCitzdGF0aWMgaW50IGFiODUwMF9ncGlvX3NldF9iaXRzKHN0cnVjdCBncGlv X2NoaXAgKmNoaXAsIHU4IHJlZywKKwkJCQkJdW5zaWduZWQgb2Zmc2V0LCBpbnQgdmFsKQorewor CXN0cnVjdCBhYjg1MDBfZ3BpbyAqYWI4NTAwX2dwaW8gPSB0b19hYjg1MDBfZ3BpbyhjaGlwKTsK Kwl1OCBwb3MgPSBvZmZzZXQgJSA4OworCWludCByZXQ7CisKKwlyZWcgPSByZWcgKyAob2Zmc2V0 IC8gOCk7CisJcmV0ID0gYWJ4NTAwX21hc2tfYW5kX3NldF9yZWdpc3Rlcl9pbnRlcnJ1cHRpYmxl KGFiODUwMF9ncGlvLT5kZXYsCisJCQkJQUI4NTAwX01JU0MsIHJlZywgMSA8PCBwb3MsIHZhbCA8 PCBwb3MpOworCWlmIChyZXQgPCAwKQorCQlkZXZfZXJyKGFiODUwMF9ncGlvLT5kZXYsICIlcyB3 cml0ZSBmYWlsZWRcbiIsIF9fZnVuY19fKTsKKwlyZXR1cm4gcmV0OworfQorLyoqCisgKiBhYjg1 MDBfZ3Bpb19nZXQoKSAtIEdldCB0aGUgcGFydGljdWxhciBHUElPIHZhbHVlCisgKiBAY2hpcDog R3BpbyBkZXZpY2UKKyAqIEBvZmZzZXQ6IEdQSU8gbnVtYmVyIHRvIHJlYWQKKyAqLworc3RhdGlj IGludCBhYjg1MDBfZ3Bpb19nZXQoc3RydWN0IGdwaW9fY2hpcCAqY2hpcCwgdW5zaWduZWQgb2Zm c2V0KQoreworCXN0cnVjdCBhYjg1MDBfZ3BpbyAqYWI4NTAwX2dwaW8gPSB0b19hYjg1MDBfZ3Bp byhjaGlwKTsKKwl1OCBtYXNrID0gMSA8PCAob2Zmc2V0ICUgOCk7CisJdTggcmVnID0gQUI4NTAw X0dQSU9fT1VUMV9SRUcgKyAob2Zmc2V0IC8gOCk7CisJaW50IHJldDsKKwl1OCBkYXRhOworCXJl dCA9IGFieDUwMF9nZXRfcmVnaXN0ZXJfaW50ZXJydXB0aWJsZShhYjg1MDBfZ3Bpby0+ZGV2LCBB Qjg1MDBfTUlTQywKKwkJCQkJCXJlZywgJmRhdGEpOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9l cnIoYWI4NTAwX2dwaW8tPmRldiwgIiVzIHJlYWQgZmFpbGVkXG4iLCBfX2Z1bmNfXyk7CisJCXJl dHVybiByZXQ7CisJfQorCXJldHVybiAoZGF0YSAmIG1hc2spID4+IChvZmZzZXQgJSA4KTsKK30K Kworc3RhdGljIHZvaWQgYWI4NTAwX2dwaW9fc2V0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVu c2lnbmVkIG9mZnNldCwgaW50IHZhbCkKK3sKKwlzdHJ1Y3QgYWI4NTAwX2dwaW8gKmFiODUwMF9n cGlvID0gdG9fYWI4NTAwX2dwaW8oY2hpcCk7CisJaW50IHJldDsKKwkvKiBXcml0ZSB0aGUgZGF0 YSAqLworCXJldCA9IGFiODUwMF9ncGlvX3NldF9iaXRzKGNoaXAsIEFCODUwMF9HUElPX09VVDFf UkVHLCBvZmZzZXQsIDEpOworCWlmIChyZXQgPCAwKQorCQlkZXZfZXJyKGFiODUwMF9ncGlvLT5k ZXYsICIlcyB3cml0ZSBmYWlsZWRcbiIsIF9fZnVuY19fKTsKK30KKworc3RhdGljIGludCBhYjg1 MDBfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVk IG9mZnNldCwKKwkJCQkJaW50IHZhbCkKK3sKKwlpbnQgcmV0OworCS8qIHNldCBkaXJlY3Rpb24g YXMgb3V0cHV0ICovCisJcmV0ID0gYWI4NTAwX2dwaW9fc2V0X2JpdHMoY2hpcCwgQUI4NTAwX0dQ SU9fRElSMV9SRUcsIG9mZnNldCwgMSk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisJ LyogZGlzYWJsZSBwdWxsIGRvd24gKi8KKwlyZXQgPSBhYjg1MDBfZ3Bpb19zZXRfYml0cyhjaGlw LCBBQjg1MDBfR1BJT19QVUQxX1JFRywgb2Zmc2V0LCAxKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0 dXJuIHJldDsKKwkvKiBzZXQgdGhlIG91dHB1dCBhcyAxIG9yIDAgKi8KKwlyZXR1cm4gYWI4NTAw X2dwaW9fc2V0X2JpdHMoY2hpcCwgQUI4NTAwX0dQSU9fT1VUMV9SRUcsIG9mZnNldCwgdmFsKTsK KworfQorCitzdGF0aWMgaW50IGFiODUwMF9ncGlvX2RpcmVjdGlvbl9pbnB1dChzdHJ1Y3QgZ3Bp b19jaGlwICpjaGlwLCB1bnNpZ25lZCBvZmZzZXQpCit7CisJLyogc2V0IHRoZSByZWdpc3RlciBh cyBpbnB1dCAqLworCXJldHVybiBhYjg1MDBfZ3Bpb19zZXRfYml0cyhjaGlwLCBBQjg1MDBfR1BJ T19ESVIxX1JFRywgb2Zmc2V0LCAwKTsKK30KKworc3RhdGljIGludCBhYjg1MDBfZ3Bpb190b19p cnEoc3RydWN0IGdwaW9fY2hpcCAqY2hpcCwgdW5zaWduZWQgb2Zmc2V0KQoreworCS8qCisJICog T25seSBzb21lIEdQSU9zIGFyZSBpbnRlcnJ1cHQgY2FwYWJsZSwgYW5kIHRoZXkgYXJlCisJICog b3JnYW5pemVkIGluIGRpc2NvbnRpZ3VvdXMgY2x1c3RlcnM6CisJICoKKwkgKiAJR1BJTzYgdG8g R1BJTzEzCisJICogCUdQSU8yNCBhbmQgR1BJTzI1CisJICogCUdQSU8zNiB0byBHUElPNDEKKwkg Ki8KKwlzdGF0aWMgc3RydWN0IGFiODUwMF9ncGlvX2lycV9jbHVzdGVyIHsKKwkJaW50IHN0YXJ0 OworCQlpbnQgZW5kOworCX0gY2x1c3RlcnNbXSA9IHsKKwkJey5zdGFydCA9IDYsICAuZW5kID0g MTN9LAorCQl7LnN0YXJ0ID0gMjQsIC5lbmQgPSAyNX0sCisJCXsuc3RhcnQgPSAzNiwgLmVuZCA9 IDQxfSwKKwl9OworCXN0cnVjdCBhYjg1MDBfZ3BpbyAqYWI4NTAwX2dwaW8gPSB0b19hYjg1MDBf Z3BpbyhjaGlwKTsKKwlpbnQgYmFzZSA9IGFiODUwMF9ncGlvLT5pcnFfYmFzZTsKKwlpbnQgaTsK KworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNsdXN0ZXJzKTsgaSsrKSB7CisJCXN0cnVj dCBhYjg1MDBfZ3Bpb19pcnFfY2x1c3RlciAqY2x1c3RlciA9ICZjbHVzdGVyc1tpXTsKKworCQlp ZiAob2Zmc2V0ID49IGNsdXN0ZXItPnN0YXJ0ICYmIG9mZnNldCA8PSBjbHVzdGVyLT5lbmQpCisJ CQlyZXR1cm4gYmFzZSArIG9mZnNldCAtIGNsdXN0ZXItPnN0YXJ0OworCisJCS8qIEFkdmFuY2Ug YnkgdGhlIG51bWJlciBvZiBncGlvcyBpbiB0aGlzIGNsdXN0ZXIgKi8KKwkJYmFzZSArPSBjbHVz dGVyLT5lbmQgLSBjbHVzdGVyLT5zdGFydCArIDE7CisJfQorCisJcmV0dXJuIC1FSU5WQUw7Cit9 CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19jaGlwIGFiODUwMGdwaW9fY2hpcCA9IHsKKwkubGFiZWwJ CQk9ICJhYjg1MDBfZ3BpbyIsCisJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkuZGlyZWN0aW9u X2lucHV0CT0gYWI4NTAwX2dwaW9fZGlyZWN0aW9uX2lucHV0LAorCS5nZXQJCQk9IGFiODUwMF9n cGlvX2dldCwKKwkuZGlyZWN0aW9uX291dHB1dAk9IGFiODUwMF9ncGlvX2RpcmVjdGlvbl9vdXRw dXQsCisJLnNldAkJCT0gYWI4NTAwX2dwaW9fc2V0LAorCS50b19pcnEJCQk9IGFiODUwMF9ncGlv X3RvX2lycSwKK307CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgaXJxX3RvX3Jpc2luZyh1bnNpZ25l ZCBpbnQgaXJxKQoreworCXN0cnVjdCBhYjg1MDBfZ3BpbyAqYWI4NTAwX2dwaW8gPSBnZXRfaXJx X2NoaXBfZGF0YShpcnEpOworCWludCBvZmZzZXQgPSBpcnEgLSBhYjg1MDBfZ3Bpby0+aXJxX2Jh c2U7CisJaW50IG5ld19pcnEgPSBvZmZzZXQgKyAgQUI4NTAwX0lOVF9HUElPNlIKKwkJCSsgYWI4 NTAwX2dwaW8tPnBhcmVudC0+aXJxX2Jhc2U7CisJcmV0dXJuIG5ld19pcnE7Cit9CisKK3N0YXRp YyB1bnNpZ25lZCBpbnQgaXJxX3RvX2ZhbGxpbmcodW5zaWduZWQgaW50IGlycSkKK3sKKwlzdHJ1 Y3QgYWI4NTAwX2dwaW8gKmFiODUwMF9ncGlvID0gZ2V0X2lycV9jaGlwX2RhdGEoaXJxKTsKKwlp bnQgb2Zmc2V0ID0gaXJxIC0gYWI4NTAwX2dwaW8tPmlycV9iYXNlOworCWludCBuZXdfaXJxID0g b2Zmc2V0ICsgIEFCODUwMF9JTlRfR1BJTzZGCisJCQkrICBhYjg1MDBfZ3Bpby0+cGFyZW50LT5p cnFfYmFzZTsKKwlyZXR1cm4gbmV3X2lycTsKKworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IHJp c2luZ190b19pcnEodW5zaWduZWQgaW50IGlycSwgdm9pZCAqZGV2KQoreworCXN0cnVjdCBhYjg1 MDBfZ3BpbyAqYWI4NTAwX2dwaW8gPSBkZXY7CisJaW50IG9mZnNldCA9IGlycSAtIEFCODUwMF9J TlRfR1BJTzZSCisJCQktIGFiODUwMF9ncGlvLT5wYXJlbnQtPmlycV9iYXNlIDsKKwlpbnQgbmV3 X2lycSA9IG9mZnNldCArIGFiODUwMF9ncGlvLT5pcnFfYmFzZTsKKwlyZXR1cm4gbmV3X2lycTsK K30KKworc3RhdGljIHVuc2lnbmVkIGludCBmYWxsaW5nX3RvX2lycSh1bnNpZ25lZCBpbnQgaXJx LCB2b2lkICpkZXYpCit7CisJc3RydWN0IGFiODUwMF9ncGlvICphYjg1MDBfZ3BpbyA9IGRldjsK KwlpbnQgb2Zmc2V0ID0gaXJxIC0gQUI4NTAwX0lOVF9HUElPNkYKKwkJCS0gYWI4NTAwX2dwaW8t PnBhcmVudC0+aXJxX2Jhc2UgOworCWludCBuZXdfaXJxID0gb2Zmc2V0ICsgYWI4NTAwX2dwaW8t PmlycV9iYXNlOworCXJldHVybiBuZXdfaXJxOworCit9CisKKy8qCisgKiBJUlEgaGFuZGxlcgor ICovCisKK3N0YXRpYyBpcnFyZXR1cm5fdCBoYW5kbGVfcmlzaW5nKGludCBpcnEsIHZvaWQgKmRl dikKK3sKKworCWhhbmRsZV9uZXN0ZWRfaXJxKHJpc2luZ190b19pcnEoaXJxICwgZGV2KSk7CisJ cmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgaXJxcmV0dXJuX3QgaGFuZGxlX2ZhbGxp bmcoaW50IGlycSwgdm9pZCAqZGV2KQoreworCisJaGFuZGxlX25lc3RlZF9pcnEoZmFsbGluZ190 b19pcnEoaXJxLCBkZXYpKTsKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyB2b2lk IGFiODUwMF9ncGlvX2lycV9sb2NrKHVuc2lnbmVkIGludCBpcnEpCit7CisJc3RydWN0IGFiODUw MF9ncGlvICphYjg1MDBfZ3BpbyA9IGdldF9pcnFfY2hpcF9kYXRhKGlycSk7CisJbXV0ZXhfbG9j aygmYWI4NTAwX2dwaW8tPmxvY2spOworfQorCitzdGF0aWMgdm9pZCBhYjg1MDBfZ3Bpb19pcnFf c3luY191bmxvY2sodW5zaWduZWQgaW50IGlycSkKK3sKKwlzdHJ1Y3QgYWI4NTAwX2dwaW8gKmFi ODUwMF9ncGlvID0gZ2V0X2lycV9jaGlwX2RhdGEoaXJxKTsKKwlpbnQgb2Zmc2V0ID0gaXJxIC0g YWI4NTAwX2dwaW8tPmlycV9iYXNlOworCWJvb2wgcmlzaW5nID0gYWI4NTAwX2dwaW8tPnJpc2lu ZyAmIEJJVChvZmZzZXQpOworCWJvb2wgZmFsbGluZyA9IGFiODUwMF9ncGlvLT5mYWxsaW5nICYg QklUKG9mZnNldCk7CisJaW50IHJldDsKKworCXN3aXRjaCAoYWI4NTAwX2dwaW8tPmlycV9hY3Rp b24pCXsKKwljYXNlIFNUQVJUVVA6CisJCWlmIChyaXNpbmcpCisJCQlyZXQgPSByZXF1ZXN0X3Ro cmVhZGVkX2lycShpcnFfdG9fcmlzaW5nKGlycSksCisJCQkJCU5VTEwsIGhhbmRsZV9yaXNpbmcs CisJCQkJCUlSUUZfVFJJR0dFUl9SSVNJTkcsCisJCQkJCSJhYjg1MDAtZ3Bpby1yIiwgYWI4NTAw X2dwaW8pOworCQlpZiAoZmFsbGluZykKKwkJCXJldCA9IHJlcXVlc3RfdGhyZWFkZWRfaXJxKGly cV90b19mYWxsaW5nKGlycSksCisJCQkJICAgICAgIE5VTEwsIGhhbmRsZV9mYWxsaW5nLAorCQkJ CSAgICAgICBJUlFGX1RSSUdHRVJfRkFMTElORywKKwkJCQkgICAgICAgImFiODUwMC1ncGlvLWYi LCBhYjg1MDBfZ3Bpbyk7CisJCWJyZWFrOworCWNhc2UgU0hVVERPV046CisJCWlmIChyaXNpbmcp CisJCQlmcmVlX2lycShpcnFfdG9fcmlzaW5nKGlycSksIGFiODUwMF9ncGlvKTsKKwkJaWYgKGZh bGxpbmcpCisJCQlmcmVlX2lycShpcnFfdG9fZmFsbGluZyhpcnEpLCBhYjg1MDBfZ3Bpbyk7CisJ CWJyZWFrOworCWNhc2UgTUFTSzoKKwkJaWYgKHJpc2luZykKKwkJCWRpc2FibGVfaXJxKGlycV90 b19yaXNpbmcoaXJxKSk7CisJCWlmIChmYWxsaW5nKQorCQkJZGlzYWJsZV9pcnEoaXJxX3RvX2Zh bGxpbmcoaXJxKSk7CisJCWJyZWFrOworCWNhc2UgVU5NQVNLOgorCQlpZiAocmlzaW5nKQorCQkJ ZW5hYmxlX2lycShpcnFfdG9fcmlzaW5nKGlycSkpOworCQlpZiAoZmFsbGluZykKKwkJCWVuYWJs ZV9pcnEoaXJxX3RvX2ZhbGxpbmcoaXJxKSk7CisJCWJyZWFrOworCWNhc2UgTk9ORToKKwkJYnJl YWs7CisJfQorCWFiODUwMF9ncGlvLT5pcnFfYWN0aW9uID0gTk9ORTsKKwlhYjg1MDBfZ3Bpby0+ cmlzaW5nICY9IH4oQklUKG9mZnNldCkpOworCWFiODUwMF9ncGlvLT5mYWxsaW5nICY9IH4oQklU KG9mZnNldCkpOworCW11dGV4X3VubG9jaygmYWI4NTAwX2dwaW8tPmxvY2spOworfQorCisKK3N0 YXRpYyB2b2lkIGFiODUwMF9ncGlvX2lycV9tYXNrKHVuc2lnbmVkIGludCBpcnEpCit7CisJc3Ry dWN0IGFiODUwMF9ncGlvICphYjg1MDBfZ3BpbyA9IGdldF9pcnFfY2hpcF9kYXRhKGlycSk7CisJ YWI4NTAwX2dwaW8tPmlycV9hY3Rpb24gPSBNQVNLOworfQorCitzdGF0aWMgdm9pZCBhYjg1MDBf Z3Bpb19pcnFfdW5tYXNrKHVuc2lnbmVkIGludCBpcnEpCit7CisJc3RydWN0IGFiODUwMF9ncGlv ICphYjg1MDBfZ3BpbyA9IGdldF9pcnFfY2hpcF9kYXRhKGlycSk7CisJYWI4NTAwX2dwaW8tPmly cV9hY3Rpb24gPSBVTk1BU0s7Cit9CisKK3N0YXRpYyBpbnQgYWI4NTAwX2dwaW9faXJxX3NldF90 eXBlKHVuc2lnbmVkIGludCBpcnEsIHVuc2lnbmVkIGludCB0eXBlKQoreworCXN0cnVjdCBhYjg1 MDBfZ3BpbyAqYWI4NTAwX2dwaW8gPSBnZXRfaXJxX2NoaXBfZGF0YShpcnEpOworCWludCBvZmZz ZXQgPSBpcnEgLSBhYjg1MDBfZ3Bpby0+aXJxX2Jhc2U7CisKKwlpZiAodHlwZSA9PSBJUlFfVFlQ RV9FREdFX0JPVEgpIHsKKwkJYWI4NTAwX2dwaW8tPnJpc2luZyA9ICBCSVQob2Zmc2V0KTsKKwkJ YWI4NTAwX2dwaW8tPmZhbGxpbmcgPSBCSVQob2Zmc2V0KTsKKwl9IGVsc2UgaWYgKHR5cGUgPT0g SVJRX1RZUEVfRURHRV9SSVNJTkcpIHsKKwkJYWI4NTAwX2dwaW8tPnJpc2luZyA9ICBCSVQob2Zm c2V0KTsKKwl9IGVsc2UgIHsKKwkJYWI4NTAwX2dwaW8tPmZhbGxpbmcgPSBCSVQob2Zmc2V0KTsK Kwl9CisJcmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIGludCBhYjg1MDBfZ3Bpb19pcnFfc3RhcnR1 cCh1bnNpZ25lZCBpbnQgaXJxKQoreworCXN0cnVjdCBhYjg1MDBfZ3BpbyAqYWI4NTAwX2dwaW8g PSBnZXRfaXJxX2NoaXBfZGF0YShpcnEpOworCWFiODUwMF9ncGlvLT5pcnFfYWN0aW9uID0gU1RB UlRVUDsKKwlyZXR1cm4gMDsKK30KKwordm9pZCBhYjg1MDBfZ3Bpb19pcnFfc2h1dGRvd24odW5z aWduZWQgaW50IGlycSkKK3sKKwlzdHJ1Y3QgYWI4NTAwX2dwaW8gKmFiODUwMF9ncGlvID0gZ2V0 X2lycV9jaGlwX2RhdGEoaXJxKTsKKwlhYjg1MDBfZ3Bpby0+aXJxX2FjdGlvbiA9IFNIVVRET1dO OworfQorCitzdGF0aWMgc3RydWN0IGlycV9jaGlwIGFiODUwMF9ncGlvX2lycV9jaGlwID0gewor CS5uYW1lCQkJPSAiYWI4NTAwLWdwaW8iLAorCS5zdGFydHVwCQk9IGFiODUwMF9ncGlvX2lycV9z dGFydHVwLAorCS5zaHV0ZG93bgkJPSBhYjg1MDBfZ3Bpb19pcnFfc2h1dGRvd24sCisJLmJ1c19s b2NrCQk9IGFiODUwMF9ncGlvX2lycV9sb2NrLAorCS5idXNfc3luY191bmxvY2sJPSBhYjg1MDBf Z3Bpb19pcnFfc3luY191bmxvY2ssCisJLm1hc2sJCQk9IGFiODUwMF9ncGlvX2lycV9tYXNrLAor CS51bm1hc2sJCQk9IGFiODUwMF9ncGlvX2lycV91bm1hc2ssCisJLnNldF90eXBlCQk9IGFiODUw MF9ncGlvX2lycV9zZXRfdHlwZSwKK307CisKK3N0YXRpYyBpbnQgYWI4NTAwX2dwaW9faXJxX2lu aXQoc3RydWN0IGFiODUwMF9ncGlvICphYjg1MDBfZ3BpbykKK3sKKwl1MzIgYmFzZSA9IGFiODUw MF9ncGlvLT5pcnFfYmFzZTsKKwlpbnQgaXJxOworCisJZm9yIChpcnEgPSBiYXNlOyBpcnEgPCBi YXNlICsgQUI4NTAwX05VTV9WSVJfR1BJT19JUlEgOyBpcnErKykgeworCQlzZXRfaXJxX2NoaXBf ZGF0YShpcnEsIGFiODUwMF9ncGlvKTsKKwkJc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyKGlycSwg JmFiODUwMF9ncGlvX2lycV9jaGlwLAorCQkJCWhhbmRsZV9zaW1wbGVfaXJxKTsKKwkJc2V0X2ly cV9uZXN0ZWRfdGhyZWFkKGlycSwgMSk7CisjaWZkZWYgQ09ORklHX0FSTQorCQlzZXRfaXJxX2Zs YWdzKGlycSwgSVJRRl9WQUxJRCk7CisjZWxzZQorCQlzZXRfaXJxX25vcHJvYmUoaXJxKTsKKyNl bmRpZgorCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBhYjg1MDBfZ3Bpb19pcnFf cmVtb3ZlKHN0cnVjdCBhYjg1MDBfZ3BpbyAqYWI4NTAwX2dwaW8pCit7CisJaW50IGJhc2UgPSBh Yjg1MDBfZ3Bpby0+aXJxX2Jhc2U7CisJaW50IGlycTsKKworCWZvciAoaXJxID0gYmFzZTsgaXJx IDwgYmFzZSArIEFCODUwMF9OVU1fVklSX0dQSU9fSVJROyBpcnErKykgeworI2lmZGVmIENPTkZJ R19BUk0KKwkJc2V0X2lycV9mbGFncyhpcnEsIDApOworI2VuZGlmCisJCXNldF9pcnFfY2hpcF9h bmRfaGFuZGxlcihpcnEsIE5VTEwsIE5VTEwpOworCQlzZXRfaXJxX2NoaXBfZGF0YShpcnEsIE5V TEwpOworCX0KK30KKworc3RhdGljIGludCBfX2RldmluaXQgYWI4NTAwX2dwaW9fcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgYWI4NTAwX3BsYXRmb3JtX2Rh dGEgKmFiODUwMF9wZGF0YSA9CisJCQkJZGV2X2dldF9wbGF0ZGF0YShwZGV2LT5kZXYucGFyZW50 KTsKKwlzdHJ1Y3QgYWI4NTAwX2dwaW9fcGxhdGZvcm1fZGF0YSAqcGRhdGE7CisJc3RydWN0IGFi ODUwMF9ncGlvICphYjg1MDBfZ3BpbzsKKwlpbnQgcmV0OworCWludCBpOworCisJcGRhdGEgPSBh Yjg1MDBfcGRhdGEtPmdwaW87CisJaWYgKCFwZGF0YSkJeworCQlkZXZfZXJyKCZwZGV2LT5kZXYs ICJncGlvIHBsYXRmb3JtIGRhdGEgbWlzc2luZ1xuIik7CisJCXJldHVybiAtRU5PREVWOworCX0K KworCWFiODUwMF9ncGlvID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGFiODUwMF9ncGlvKSwgR0ZQ X0tFUk5FTCk7CisJaWYgKGFiODUwMF9ncGlvID09IE5VTEwpIHsKKwkJZGV2X2VycigmcGRldi0+ ZGV2LCAiZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeVxuIik7CisJCXJldHVybiAtRU5PTUVNOwor CX0KKwlhYjg1MDBfZ3Bpby0+ZGV2ID0gJnBkZXYtPmRldjsKKwlhYjg1MDBfZ3Bpby0+cGFyZW50 ID0gZGV2X2dldF9kcnZkYXRhKHBkZXYtPmRldi5wYXJlbnQpOworCWFiODUwMF9ncGlvLT5jaGlw ID0gYWI4NTAwZ3Bpb19jaGlwOworCWFiODUwMF9ncGlvLT5jaGlwLm5ncGlvID0gQUI4NTAwX05V TV9HUElPOworCWFiODUwMF9ncGlvLT5jaGlwLmRldiA9ICZwZGV2LT5kZXY7CisJYWI4NTAwX2dw aW8tPmNoaXAuYmFzZSA9IHBkYXRhLT5ncGlvX2Jhc2U7CisJYWI4NTAwX2dwaW8tPmlycV9iYXNl ID0gcGRhdGEtPmlycV9iYXNlOworCS8qIGluaXRpYWxpemUgdGhlIGxvY2sgKi8KKwltdXRleF9p bml0KCZhYjg1MDBfZ3Bpby0+bG9jayk7CisJLyoKKwkgKiBBQjg1MDAgY29yZSB3aWxsIGhhbmRs ZSBhbmQgY2xlYXIgdGhlIElSUQorCSAqIGNvbmZpZ3JlIEdQSU8gYmFzZWQgb24gY29uZmlnLXJl ZyB2YWx1ZS4KKwkgKiBUaGVzZSB2YWx1ZXMgYXJlIGZvciBzZWxlY3RpbmcgdGhlIFBJTnMgYXMK KwkgKiBHUElPIG9yIGFsdGVybmF0ZSBmdW5jdGlvbgorCSAqLworCWZvciAoaSA9IEFCODUwMF9H UElPX1NFTDFfUkVHOyBpIDw9IEFCODUwMF9HUElPX1NFTDZfUkVHOyBpKyspCXsKKwkJcmV0ID0g YWJ4NTAwX3NldF9yZWdpc3Rlcl9pbnRlcnJ1cHRpYmxlKGFiODUwMF9ncGlvLT5kZXYsCisJCQkJ QUI4NTAwX01JU0MsIGksCisJCQkJcGRhdGEtPmNvbmZpZ19yZWdbaV0pOworCQlpZiAocmV0IDwg MCkKKwkJCWdvdG8gb3V0X2ZyZWU7CisJfQorCXJldCA9IGFieDUwMF9zZXRfcmVnaXN0ZXJfaW50 ZXJydXB0aWJsZShhYjg1MDBfZ3Bpby0+ZGV2LCBBQjg1MDBfTUlTQywKKwkJCQlBQjg1MDBfR1BJ T19BTFRGVU5fUkVHLAorCQkJCXBkYXRhLT5jb25maWdfcmVnW0FMVEZVTl9SRUdfSU5ERVhdKTsK KwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXRfZnJlZTsKKworCXJldCA9IGFiODUwMF9ncGlvX2ly cV9pbml0KGFiODUwMF9ncGlvKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF9mcmVlOworCXJldCA9 IGdwaW9jaGlwX2FkZCgmYWI4NTAwX2dwaW8tPmNoaXApOworCWlmIChyZXQpIHsKKwkJZGV2X2Vy cigmcGRldi0+ZGV2LCAidW5hYmxlIHRvIGFkZCBncGlvY2hpcDogJWRcbiIsCisJCQkJcmV0KTsK KwkJZ290byBvdXRfcmVtX2lycTsKKwl9CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgYWI4 NTAwX2dwaW8pOworCXJldHVybiAwOworCitvdXRfcmVtX2lycToKKwlhYjg1MDBfZ3Bpb19pcnFf cmVtb3ZlKGFiODUwMF9ncGlvKTsKK291dF9mcmVlOgorCW11dGV4X2Rlc3Ryb3koJmFiODUwMF9n cGlvLT5sb2NrKTsKKwlrZnJlZShhYjg1MDBfZ3Bpbyk7CisJcmV0dXJuIHJldDsKK30KKworLyoK KyAqIGFiODUwMF9ncGlvX3JlbW92ZSgpIC0gcmVtb3ZlIEFiODUwMC1ncGlvIGRyaXZlcgorICog QHBkZXYgOglQbGF0Zm9ybSBkZXZpY2UgcmVnaXN0ZXJlZAorICovCitzdGF0aWMgaW50IF9fZGV2 ZXhpdCBhYjg1MDBfZ3Bpb19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sK KwlzdHJ1Y3QgYWI4NTAwX2dwaW8gKmFiODUwMF9ncGlvID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEo cGRldik7CisJaW50IHJldDsKKworCXJldCA9IGdwaW9jaGlwX3JlbW92ZSgmYWI4NTAwX2dwaW8t PmNoaXApOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIoYWI4NTAwX2dwaW8tPmRldiwgInVu YWJsZSB0byByZW1vdmUgZ3Bpb2NoaXA6XAorCQkJCSVkXG4iLCByZXQpOworCQlyZXR1cm4gcmV0 OworCX0KKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOworCW11dGV4X2Rlc3Ry b3koJmFiODUwMF9ncGlvLT5sb2NrKTsKKwlrZnJlZShhYjg1MDBfZ3Bpbyk7CisKKwlyZXR1cm4g MDsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYWI4NTAwX2dwaW9fZHJpdmVy ID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImFiODUwMC1ncGlvIiwKKwkJLm93bmVyID0g VEhJU19NT0RVTEUsCisJfSwKKwkucHJvYmUgPSBhYjg1MDBfZ3Bpb19wcm9iZSwKKwkucmVtb3Zl ID0gX19kZXZleGl0X3AoYWI4NTAwX2dwaW9fcmVtb3ZlKSwKK307CisKK3N0YXRpYyBpbnQgX19p bml0IGFiODUwMF9ncGlvX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3Jl Z2lzdGVyKCZhYjg1MDBfZ3Bpb19kcml2ZXIpOworfQorYXJjaF9pbml0Y2FsbChhYjg1MDBfZ3Bp b19pbml0KTsKKworc3RhdGljIHZvaWQgX19leGl0IGFiODUwMF9ncGlvX2V4aXQodm9pZCkKK3sK KwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmYWI4NTAwX2dwaW9fZHJpdmVyKTsKK30KK21v ZHVsZV9leGl0KGFiODUwMF9ncGlvX2V4aXQpOworTU9EVUxFX0FVVEhPUigiQklCRUsgQkFTVSA8 YmliZWsuYmFzdUBzdGVyaWNzc29uLmNvbT4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiRHJpdmVy IGFsbG93cyB0byB1c2UgQUI4NTAwIHVudXNlZCBwaW5zXAorCQkJdG8gYmUgdXNlZCBhcyBHUElP Iik7CitNT0RVTEVfQUxJQVMoIkFCODUwMCBHUElPIGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0Uo IkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvYWI4NTAwLWNvcmUuYyBiL2RyaXZl cnMvbWZkL2FiODUwMC1jb3JlLmMKaW5kZXggYjY4ODcwMS4uNTZhNTU5MiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9tZmQvYWI4NTAwLWNvcmUuYworKysgYi9kcml2ZXJzL21mZC9hYjg1MDAtY29yZS5j CkBAIC0zNjEsNiArMzYxLDE1IEBAIHN0YXRpYyB2b2lkIGFiODUwMF9pcnFfcmVtb3ZlKHN0cnVj dCBhYjg1MDAgKmFiODUwMCkKIAl9CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYWI4NTAw X2dwaW9fcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJHUElPX0lOVDYiLAorCQkuc3Rh cnQJPSBBQjg1MDBfSU5UX0dQSU82UiwKKwkJLmVuZAk9IEFCODUwMF9JTlRfR1BJTzQxRiwKKwkJ LmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfQorfTsKKwogc3RhdGljIHN0cnVjdCByZXNvdXJj ZSBhYjg1MDBfZ3BhZGNfcmVzb3VyY2VzW10gPSB7CiAJewogCQkubmFtZQk9ICJIV19DT05WX0VO RCIsCkBAIC01OTUsNiArNjA0LDExIEBAIHN0YXRpYyBzdHJ1Y3QgbWZkX2NlbGwgYWI4NTAwX2Rl dnNbXSA9IHsKIAkJLm5hbWUgPSAiYWI4NTAwLXJlZ3VsYXRvciIsCiAJfSwKIAl7CisJCS5uYW1l ID0gImFiODUwMC1ncGlvIiwKKwkJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKGFiODUwMF9n cGlvX3Jlc291cmNlcyksCisJCS5yZXNvdXJjZXMgPSBhYjg1MDBfZ3Bpb19yZXNvdXJjZXMsCisJ fSwKKwl7CiAJCS5uYW1lID0gImFiODUwMC1ncGFkYyIsCiAJCS5udW1fcmVzb3VyY2VzID0gQVJS QVlfU0laRShhYjg1MDBfZ3BhZGNfcmVzb3VyY2VzKSwKIAkJLnJlc291cmNlcyA9IGFiODUwMF9n cGFkY19yZXNvdXJjZXMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9hYjg1MDAtaTJjLmMgYi9k cml2ZXJzL21mZC9hYjg1MDAtaTJjLmMKaW5kZXggNjgyMDMyNy4uODIxZTZiOCAxMDA2NDQKLS0t IGEvZHJpdmVycy9tZmQvYWI4NTAwLWkyYy5jCisrKyBiL2RyaXZlcnMvbWZkL2FiODUwMC1pMmMu YwpAQCAtOTcsNyArOTcsNyBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgYWI4NTAwX2kyY19leGl0KHZv aWQpCiB7CiAJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJmFiODUwMF9pMmNfZHJpdmVyKTsK IH0KLXN1YnN5c19pbml0Y2FsbChhYjg1MDBfaTJjX2luaXQpOworYXJjaF9pbml0Y2FsbChhYjg1 MDBfaTJjX2luaXQpOwogbW9kdWxlX2V4aXQoYWI4NTAwX2kyY19leGl0KTsKIAogTU9EVUxFX0FV VEhPUigiTWF0dGlhcyBXQUxMSU4gPG1hdHRpYXMud2FsbGluQHN0ZXJpY3Nzb24uY29tIik7CmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21mZC9hYjg1MDAuaCBiL2luY2x1ZGUvbGludXgvbWZk L2FiODUwMC5oCmluZGV4IDM3ZjU2YjcuLjVhZGNlNDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlu dXgvbWZkL2FiODUwMC5oCisrKyBiL2luY2x1ZGUvbGludXgvbWZkL2FiODUwMC5oCkBAIC03NCw2 ICs3NCw0NSBAQAogI2RlZmluZSBBQjg1MDBfSU5UX0FDQ19ERVRFQ1RfMjFEQl9GCTM3CiAjZGVm aW5lIEFCODUwMF9JTlRfQUNDX0RFVEVDVF8yMURCX1IJMzgKICNkZWZpbmUgQUI4NTAwX0lOVF9H UF9TV19BRENfQ09OVl9FTkQJMzkKKyNkZWZpbmUgQUI4NTAwX0lOVF9BQ0NfREVURUNUXzFEQl9G CTMzCisjZGVmaW5lIEFCODUwMF9JTlRfQUNDX0RFVEVDVF8xREJfUgkzNAorI2RlZmluZSBBQjg1 MDBfSU5UX0FDQ19ERVRFQ1RfMjJEQl9GCTM1CisjZGVmaW5lIEFCODUwMF9JTlRfQUNDX0RFVEVD VF8yMkRCX1IJMzYKKyNkZWZpbmUgQUI4NTAwX0lOVF9BQ0NfREVURUNUXzIxREJfRgkzNworI2Rl ZmluZSBBQjg1MDBfSU5UX0FDQ19ERVRFQ1RfMjFEQl9SCTM4CisjZGVmaW5lIEFCODUwMF9JTlRf R1BfU1dfQURDX0NPTlZfRU5ECTM5CisjZGVmaW5lIEFCODUwMF9JTlRfR1BJTzZSCQk0MAorI2Rl ZmluZSBBQjg1MDBfSU5UX0dQSU83UgkJNDEKKyNkZWZpbmUgQUI4NTAwX0lOVF9HUElPOFIJCTQy CisjZGVmaW5lIEFCODUwMF9JTlRfR1BJTzlSCQk0MworI2RlZmluZSBBQjg1MDBfSU5UX0dQSU8x MFIJCTQ0CisjZGVmaW5lIEFCODUwMF9JTlRfR1BJTzExUgkJNDUKKyNkZWZpbmUgQUI4NTAwX0lO VF9HUElPMTJSCQk0NgorI2RlZmluZSBBQjg1MDBfSU5UX0dQSU8xM1IJCTQ3CisjZGVmaW5lIEFC ODUwMF9JTlRfR1BJTzI0UgkJNDgKKyNkZWZpbmUgQUI4NTAwX0lOVF9HUElPMjVSCQk0OQorI2Rl ZmluZSBBQjg1MDBfSU5UX0dQSU8zNlIJCTUwCisjZGVmaW5lIEFCODUwMF9JTlRfR1BJTzM3UgkJ NTEKKyNkZWZpbmUgQUI4NTAwX0lOVF9HUElPMzhSCQk1MgorI2RlZmluZSBBQjg1MDBfSU5UX0dQ SU8zOVIJCTUzCisjZGVmaW5lIEFCODUwMF9JTlRfR1BJTzQwUgkJNTQKKyNkZWZpbmUgQUI4NTAw X0lOVF9HUElPNDFSCQk1NQorI2RlZmluZSBBQjg1MDBfSU5UX0dQSU82RgkJNTYKKyNkZWZpbmUg QUI4NTAwX0lOVF9HUElPN0YJCTU3CisjZGVmaW5lIEFCODUwMF9JTlRfR1BJTzhGCQk1OAorI2Rl ZmluZSBBQjg1MDBfSU5UX0dQSU85RgkJNTkKKyNkZWZpbmUgQUI4NTAwX0lOVF9HUElPMTBGCQk2 MAorI2RlZmluZSBBQjg1MDBfSU5UX0dQSU8xMUYJCTYxCisjZGVmaW5lIEFCODUwMF9JTlRfR1BJ TzEyRgkJNjIKKyNkZWZpbmUgQUI4NTAwX0lOVF9HUElPMTNGCQk2MworI2RlZmluZSBBQjg1MDBf SU5UX0dQSU8yNEYJCTY0CisjZGVmaW5lIEFCODUwMF9JTlRfR1BJTzI1RgkJNjUKKyNkZWZpbmUg QUI4NTAwX0lOVF9HUElPMzZGCQk2NgorI2RlZmluZSBBQjg1MDBfSU5UX0dQSU8zN0YJCTY3Cisj ZGVmaW5lIEFCODUwMF9JTlRfR1BJTzM4RgkJNjgKKyNkZWZpbmUgQUI4NTAwX0lOVF9HUElPMzlG CQk2OQorI2RlZmluZSBBQjg1MDBfSU5UX0dQSU80MEYJCTcwCisjZGVmaW5lIEFCODUwMF9JTlRf R1BJTzQxRgkJNzEKICNkZWZpbmUgQUI4NTAwX0lOVF9BRFBfU09VUkNFX0VSUk9SCTcyCiAjZGVm aW5lIEFCODUwMF9JTlRfQURQX1NJTktfRVJST1IJNzMKICNkZWZpbmUgQUI4NTAwX0lOVF9BRFBf UFJPQkVfUExVRwk3NApAQCAtMTQwLDYgKzE3OSw3IEBAIHN0cnVjdCBhYjg1MDAgewogfTsKIAog c3RydWN0IHJlZ3VsYXRvcl9pbml0X2RhdGE7CitzdHJ1Y3QgYWI4NTAwX2dwaW9fcGxhdGZvcm1f ZGF0YTsKIAogLyoqCiAgKiBzdHJ1Y3QgYWI4NTAwX3BsYXRmb3JtX2RhdGEgLSBBQjg1MDAgcGxh dGZvcm0gZGF0YQpAQCAtMTUyLDYgKzE5Miw3IEBAIHN0cnVjdCBhYjg1MDBfcGxhdGZvcm1fZGF0 YSB7CiAJdm9pZCAoKmluaXQpIChzdHJ1Y3QgYWI4NTAwICopOwogCWludCBudW1fcmVndWxhdG9y OwogCXN0cnVjdCByZWd1bGF0b3JfaW5pdF9kYXRhICpyZWd1bGF0b3I7CisJc3RydWN0IGFiODUw MF9ncGlvX3BsYXRmb3JtX2RhdGEgKmdwaW87CiB9OwogCiBleHRlcm4gaW50IF9fZGV2aW5pdCBh Yjg1MDBfaW5pdChzdHJ1Y3QgYWI4NTAwICphYjg1MDApOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9tZmQvYWI4NTAwL2FiODUwMC1ncGlvLmggYi9pbmNsdWRlL2xpbnV4L21mZC9hYjg1MDAv YWI4NTAwLWdwaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOWMzNzlm YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbGludXgvbWZkL2FiODUwMC9hYjg1MDAtZ3Bp by5oCkBAIC0wLDAgKzEsMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgU1QtRXJpY3Nzb24gMjAxMC4K KyAqCisgKiBBdXRob3I6IEJpYmVrIEJhc3UgPGJpYmVrLmJhc3VAc3Rlcmljc3Nvbi5jb20+Cisg KiBMaWNlbnNlZCB1bmRlciBHUEx2Mi4KKyAqLworCisjaWZuZGVmIF9BQjg1MDBfR1BJT19ICisj ZGVmaW5lIF9BQjg1MDBfR1BJT19ICisKKy8qCisgKiBQbGF0Zm9ybSBkYXRhIHRvIHJlZ2lzdGVy IGEgYmxvY2s6IG9ubHkgdGhlIGluaXRpYWwgZ3Bpby9pcnEgbnVtYmVyLgorICovCisKK3N0cnVj dCBhYjg1MDBfZ3Bpb19wbGF0Zm9ybV9kYXRhIHsKKwlpbnQgZ3Bpb19iYXNlOworCXUzMiBpcnFf YmFzZTsKKwl1OCAgY29uZmlnX3JlZ1s3XTsKK307CisKKyNlbmRpZiAvKiBfQUI4NTAwX0dQSU9f SCAqLworCi0tIAoxLjcuMi5kaXJ0eQoK --_003_4E253D605AF50140A55CF6396EC99A241C1F71BA68EXDCVYMBSTM00_-- -- 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/