Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262764AbVCDKf5 (ORCPT ); Fri, 4 Mar 2005 05:35:57 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262718AbVCDKda (ORCPT ); Fri, 4 Mar 2005 05:33:30 -0500 Received: from vawad.err.no ([129.241.93.49]:35523 "EHLO vawad.err.no") by vger.kernel.org with ESMTP id S262720AbVCDKa7 (ORCPT ); Fri, 4 Mar 2005 05:30:59 -0500 Subject: [PATCH] new driver for ITM Touch touchscreen From: Hans-Christian Egtvedt To: linux-kernel@vger.kernel.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-DrDc5S4K4iHW2jmS0Dfa" Organization: MIVU Solutions DA Date: Fri, 04 Mar 2005 11:30:23 +0100 Message-Id: <1109932223.5453.16.camel@charlie.itk.ntnu.no> Mime-Version: 1.0 X-Mailer: Evolution 2.0.3 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 17311 Lines: 258 --=-DrDc5S4K4iHW2jmS0Dfa Content-Type: multipart/mixed; boundary="=-0U/tprm+v6VsbnjVf3cn" --=-0U/tprm+v6VsbnjVf3cn Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi! I've ported the works from Chris Collins so the drivers compiles without warnings and works (for me) with Linux 2.6.10 and 2.6.11. The driver is not in the kernel now, but I would like to see it be a driver among all the other touchscreen drivers. The touchscreen panel is for example used on the LG L1510SF screen. Any comments on the driver would be much appreciated. --=20 Regards, Hans-Christian Egtvedt MIVU Solutions DA --=-0U/tprm+v6VsbnjVf3cn Content-Disposition: attachment; filename=itmtouch-linux-2.6.11.patch Content-Type: text/x-patch; name=itmtouch-linux-2.6.11.patch; charset=ISO-8859-1 Content-Transfer-Encoding: base64 LS0tIGtlcm5lbC1zb3VyY2UtMi42LjExL2RyaXZlcnMvdXNiL2lucHV0L0tjb25maWcJMjAwNC0x Mi0yNCAyMjozNToyMy4wMDAwMDAwMDAgKzAxMDANCisrKyBsaW51eC0yLjYuMTEvZHJpdmVycy91 c2IvaW5wdXQvS2NvbmZpZwkyMDA1LTAzLTAyIDEwOjU4OjQxLjAwMDAwMDAwMCArMDEwMA0KQEAg LTE5MCw2ICsxOTAsMTggQEANCiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxl LCBjaG9vc2UgTSBoZXJlOiB0aGUNCiAJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgbXRvdWNodXNi Lg0KIA0KK2NvbmZpZyBVU0JfSVRNVE9VQ0gNCisJdHJpc3RhdGUgIklUTSBUb3VjaCBVU0IgVG91 Y2hzY3JlZW4gRHJpdmVyIg0KKwlkZXBlbmRzIG9uIFVTQiAmJiBJTlBVVA0KKwktLS1oZWxwLS0t DQorCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgYSBJVE0gVG91Y2ggVVNCDQorCSAg VG91Y2hzY3JlZW4gY29udHJvbGxlci4NCisNCisJICBUaGlzIHRvdWNoc2NyZWVuIGlzIHVzZWQg aW4gTEcgMTUxMFNGIG1vbml0b3JzLg0KKw0KKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMg YSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQ0KKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBp dG10b3VjaC4NCisNCiBjb25maWcgVVNCX0VHQUxBWA0KIAl0cmlzdGF0ZSAiZUdhbGF4IFRvdWNo S2l0IFVTQiBUb3VjaHNjcmVlbiBEcml2ZXIiDQogCWRlcGVuZHMgb24gVVNCICYmIElOUFVUDQot LS0ga2VybmVsLXNvdXJjZS0yLjYuMTEvZHJpdmVycy91c2IvaW5wdXQvTWFrZWZpbGUJMjAwNC0x Mi0yNCAyMjozNTowMC4wMDAwMDAwMDAgKzAxMDANCisrKyBsaW51eC0yLjYuMTEvZHJpdmVycy91 c2IvaW5wdXQvTWFrZWZpbGUJMjAwNS0wMy0wMiAxMDo1NzoxMS4wMDAwMDAwMDAgKzAxMDANCkBA IC0zMyw2ICszMyw3IEBADQogb2JqLSQoQ09ORklHX1VTQl9LQlRBQikJCSs9IGtidGFiLm8NCiBv YmotJChDT05GSUdfVVNCX01PVVNFKQkJKz0gdXNibW91c2Uubw0KIG9iai0kKENPTkZJR19VU0Jf TVRPVUNIKQkrPSBtdG91Y2h1c2Iubw0KK29iai0kKENPTkZJR19VU0JfSVRNVE9VQ0gpCSs9IGl0 bXRvdWNoLm8NCiBvYmotJChDT05GSUdfVVNCX0VHQUxBWCkJKz0gdG91Y2hraXR1c2Iubw0KIG9i ai0kKENPTkZJR19VU0JfUE9XRVJNQVRFKQkrPSBwb3dlcm1hdGUubw0KIG9iai0kKENPTkZJR19V U0JfV0FDT00pCQkrPSB3YWNvbS5vDQotLS0gL2Rldi9udWxsCTIwMDUtMDMtMDEgMTk6MTU6MzAu MDAwMDAwMDAwICswMTAwDQorKysgbGludXgtMi42LjExL2RyaXZlcnMvdXNiL2lucHV0L2l0bXRv dWNoLmMJMjAwNS0wMy0wMiAxMTowNTowNC4wMDAwMDAwMDAgKzAxMDANCkBAIC0wLDAgKzEsMzI2 IEBADQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIGl0bXRvdWNoLmMgIC0tICBEcml2ZXIg Zm9yIElUTSB0b3VjaHNjcmVlbiBwYW5lbA0KKyAqDQorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcg0KKyAqIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzDQorICog cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDIgb2YgdGhlDQorICogTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4NCisgKg0KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQNCisgKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQorICogTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUNCisgKiBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQorICoNCisgKiBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0K KyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv ZnR3YXJlDQorICogRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1B IDAyMTM5LCBVU0EuDQorICoNCisgKiBCYXNlZCB1cG9uIG9yaWdpbmFsIHdvcmsgYnkgQ2hyaXMg Q29sbGlucyA8eGZpcmUtaXRtdG91Y2hAeHdhcmUuY3g+Lg0KKyAqIA0KKyAqIEhpc3RvcnkNCisg KiAxLjAgJiAxLjEgIDIwMDMgKENDKSB2b2p0ZWNoQHN1c2UuY3oNCisgKiAgIE9yaWdpbmFsIHZl cnNpb24gZm9yIDIuNC54IGtlcm5lbHMNCisgKg0KKyAqIDEuMiAgMDIvMDMvMjAwNSAoSENFKSBo Y0BtaXZ1Lm5vDQorICogICBDb21wbGV0ZSByZXdyaXRlIHRvIHN1cHBvcnQgTGludXggMi42LjEw LCB0aGFua3MgdG8gbXRvdWNodXNiLmMgZm9yIGhpbnRzLg0KKyAqICAgVW5mb3J0dW5hdGVseSBu byBjYWxpYnJhdGlvbiBzdXBwb3J0IGF0IHRoaXMgdGltZS4NCisgKiANCisgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovDQorDQorLyogSW4gb3JkZXIgdG8gcHJldmVudCBwb2x1dGluZyBkZXZpY2Ugc3Bh Y2Ugd2l0aCBZRVQgQU5PVEhFUiBjaGFyYWN0ZXINCisgKiBkZXZpY2UsIHRoaXMgZHJpdmVyIHB1 bXBzIG91dCByYXcgY29vcmRpbmF0ZSBldmVudHMgaW50byB0aGUgaW5wdXQgDQorICogZXZlbnQg c3RyZWFtLg0KKyAqDQorICogVGhleSBjYW4gYmUgZXh0cmFjdGVkIHVzaW5nIHRoZSBpbnB1dCBj b3JlIHJhdyBldmVudHMgbW9kdWxlLg0KKyAqIA0KKyAqIEt1ZG9zIHRvIElUTSBmb3IgcHJvdmlk aW5nIG1lIHdpdGggdGhlIGRhdGFzaGVldCBmb3IgdGhlIHBhbmVsLA0KKyAqIGV2ZW4gdGhvdWdo IGl0IHdhcyBhIGRheSBsYXRlciB0aGFuIEkgaGFkIGZpbmlzaGVkIHdyaXRpbmcgdGhpcyANCisg KiBkcml2ZXIuDQorICogDQorICogSXQgaGFzIG1lYW50IHRoYXQgSSd2ZSBiZWVuIGFibGUgdG8g Y29ycmVjdCBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGUNCisgKiBwcm90b2NvbCBwYWNrZXRzIGhv d2V2ZXIuDQorICogDQorICogQ0MgLS0gMjAwMy85LzI5DQorICovDQorDQorI2luY2x1ZGUgPGxp bnV4L2NvbmZpZy5oPg0KKw0KKyNpZmRlZiBDT05GSUdfVVNCX0RFQlVHDQorCSNkZWZpbmUgREVC VUcNCisjZWxzZQ0KKwkjdW5kZWYgREVCVUcNCisjZW5kaWYNCisNCisjaW5jbHVkZSA8bGludXgv a2VybmVsLmg+DQorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4NCisjaW5jbHVkZSA8bGludXgvaW5w dXQuaD4NCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQorI2luY2x1ZGUgPGxpbnV4L2luaXQu aD4NCisjaW5jbHVkZSA8bGludXgvdXNiLmg+DQorDQorLyogb25seSBhbiA4IGJ5dGUgYnVmZmVy IG5lY2Vzc2FyeSBmb3IgYSBzaW5nbGUgcGFja2V0ICovDQorI2RlZmluZSBJVE1fQlVGU0laRQkJ CTgNCisvKiBzdXBwb3J0IGEgbWF4aW11bSBvZiA0IHN1Y2ggdG91Y2hzY3JlZW5zIGF0IG9uY2Ug Ki8NCisjZGVmaW5lIE1BWFRPVUNICQkJNA0KKyNkZWZpbmUgVUNQKHgpCQkJCSgodW5zaWduZWQg Y2hhciopKHgpKQ0KKyNkZWZpbmUgVUNPTSh4LHkseikJCQkoKFVDUCgoeCktPnRyYW5zZmVyX2J1 ZmZlcilbeV0pICYgKHopKQ0KKyNkZWZpbmUgUEFUSF9TSVpFCQkJNjQNCisNCisjZGVmaW5lIFVT Ql9WRU5ET1JfSURfSVRNSU5DCQkweDA0MDMNCisjZGVmaW5lIFVTQl9QUk9EVUNUX0lEX1RPVUNI UEFORUwJMHhmOWU5DQorDQorI2RlZmluZSBEUklWRVJfQVVUSE9SICJIYW5zLUNocmlzdGlhbiBF Z3R2ZWR0IDxoY0BtaXZ1Lm5vPiINCisjZGVmaW5lIERSSVZFUl9WRVJTSU9OICJ2MS4yIg0KKyNk ZWZpbmUgRFJJVkVSX0RFU0MgIlVTQiBJVE0gSW5jIFRvdWNoIFBhbmVsIERyaXZlciINCisjZGVm aW5lIERSSVZFUl9MSUNFTlNFICJHUEwiDQorDQorc3RydWN0IGl0bXRvdWNoX2RldiB7DQorCXN0 cnVjdCB1c2JfZGV2aWNlIAkqdXNiZGV2OyAvLyB1c2IgZGV2aWNlDQorCXN0cnVjdCBpbnB1dF9k ZXYJaW5wdXRkZXY7IC8vIGlucHV0IGRldmljZQ0KKwlzdHJ1Y3QgdXJiCQkqcmVhZHVyYjsgLy8g dXJiDQorCWNoYXIJCQlyYnVmW0lUTV9CVUZTSVpFXTsgLy8gZGF0YQ0KKwlpbnQJCQlyZWZjb3Vu dDsgLy8gDQorCWNoYXIgbmFtZVsxMjhdOw0KKwljaGFyIHBoeXNbNjRdOw0KK307DQorDQorc3Ry dWN0IHVzYl9kZXZpY2VfaWQgaXRtdG91Y2hfaWRzIFtdID0gew0KKwl7IFVTQl9ERVZJQ0UoVVNC X1ZFTkRPUl9JRF9JVE1JTkMsIFVTQl9QUk9EVUNUX0lEX1RPVUNIUEFORUwpIH0sDQorCXsgfQ0K K307DQorDQorc3RhdGljIHZvaWQgaXRtdG91Y2hfaXJxKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0 IHB0X3JlZ3MgKnJlZ3MpDQorew0KKwlzdHJ1Y3QgaXRtdG91Y2hfZGV2ICogaXRtdG91Y2ggPSB1 cmItPmNvbnRleHQ7DQorCWludCByZXR2YWw7DQorDQorCXN3aXRjaCAodXJiLT5zdGF0dXMpIHsN CisgICAgICAgICAgICAgICAgY2FzZSAwOg0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN1 Y2Nlc3MgKi8NCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICAg ICAgY2FzZSAtRVRJTUVET1VUOg0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgdXJi IGlzIHRpbWluZyBvdXQgKi8NCisgICAgICAgICAgICAgICAgICAgICAgICBkYmcoIiVzIC0gdXJi IHRpbWVkIG91dCAtIHdhcyB0aGUgZGV2aWNlIHVucGx1Z2dlZD8iLA0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18pOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybjsNCisgICAgICAgICAgICAgICAgY2FzZSAtRUNPTk5SRVNFVDoNCisgICAgICAgICAgICAg ICAgY2FzZSAtRU5PRU5UOg0KKyAgICAgICAgICAgICAgICBjYXNlIC1FU0hVVERPV046DQorICAg ICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyB1cmIgaXMgdGVybWluYXRlZCwgY2xlYW4gdXAg Ki8NCisgICAgICAgICAgICAgICAgICAgICAgICBkYmcoIiVzIC0gdXJiIHNodXR0aW5nIGRvd24g d2l0aCBzdGF0dXM6ICVkIiwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElP Tl9fLCB1cmItPnN0YXR1cyk7DQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KKyAg ICAgICAgICAgICAgICBkZWZhdWx0Og0KKyAgICAgICAgICAgICAgICAgICAgICAgIGRiZygiJXMg LSBub256ZXJvIHVyYiBzdGF0dXMgcmVjZWl2ZWQ6ICVkIiwNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgX19GVU5DVElPTl9fLCB1cmItPnN0YXR1cyk7DQorICAgICAgICAgICAgICAgICAg ICAgICAgZ290byBleGl0Ow0KKyAgICAgICAgfQ0KKw0KKwlpbnB1dF9yZWdzKCZpdG10b3VjaC0+ aW5wdXRkZXYsIHJlZ3MpOw0KKw0KKwkvKiBpZiBwcmVzc3VyZSBoYXMgYmVlbiByZWxlYXNlZCwg dGhlbiBkb24ndCByZXBvcnQgWC9ZICovDQorCWlmICghVUNPTSh1cmIsIDcsIDB4MjApKSB7DQor CQlpbnB1dF9yZXBvcnRfYWJzKCZpdG10b3VjaC0+aW5wdXRkZXYsIEFCU19YLA0KKwkJCQlVQ09N KHVyYiwgMCwgMHgxRikgPDwgNyB8IFVDT00odXJiLCAzLCAweDdGKSk7DQorCQlpbnB1dF9yZXBv cnRfYWJzKCZpdG10b3VjaC0+aW5wdXRkZXYsIEFCU19ZLA0KKwkJCQlVQ09NKHVyYiwgMSwgMHgx RikgPDwgNyB8IFVDT00odXJiLCA0LCAweDdGKSk7DQorCX0NCisJDQorCWlucHV0X3JlcG9ydF9h YnMoJml0bXRvdWNoLT5pbnB1dGRldiwgQUJTX1BSRVNTVVJFLA0KKwkJCVVDT00odXJiLCAyLCAw eDEpIDw8IDcgfCBVQ09NKHVyYiwgNSwgMHg3RikpOw0KKwlpbnB1dF9yZXBvcnRfa2V5KCZpdG10 b3VjaC0+aW5wdXRkZXYsIEJUTl9UT1VDSCwgIVVDT00odXJiLCA3LCAweDIwKSk7DQorCS8vIFRP RE86IERvIHdlIG5lZWQgdG8gdXNlIGlucHV0X3N5bmMoKSA/DQorCS8vaW5wdXRfc3luYygmaXRt dG91Y2gtPmlucHV0ZGV2KTsNCisNCitleGl0Og0KKwlyZXR2YWwgPSB1c2Jfc3VibWl0X3VyYiAo dXJiLCBHRlBfQVRPTUlDKTsNCisJaWYgKHJldHZhbCkNCisJCXByaW50ayhLRVJOX0VSUiAiJXMg LSB1c2Jfc3VibWl0X3VyYiBmYWlsZWQgd2l0aCByZXN1bHQ6ICVkIiwNCisJCQkJX19GVU5DVElP Tl9fLCByZXR2YWwpOw0KK30NCisNCitzdGF0aWMgaW50IGl0bXRvdWNoX29wZW4oc3RydWN0IGlu cHV0X2RldiAqaW5wdXQpDQorew0KKwlzdHJ1Y3QgaXRtdG91Y2hfZGV2ICppdG10b3VjaCA9IGlu cHV0LT5wcml2YXRlOw0KKw0KKwlpZiAoaXRtdG91Y2gtPnJlZmNvdW50KyspDQorCQlyZXR1cm4g MDsNCisNCisJaXRtdG91Y2gtPnJlYWR1cmItPmRldiA9IGl0bXRvdWNoLT51c2JkZXY7DQorDQor CWlmICh1c2Jfc3VibWl0X3VyYiAoaXRtdG91Y2gtPnJlYWR1cmIsIEdGUF9LRVJORUwpKQ0KKwl7 DQorCQlpdG10b3VjaC0+cmVmY291bnQtLTsNCisJCXJldHVybiAtRUlPOw0KKwl9DQorDQorCXJl dHVybiAwOw0KK30NCisNCitzdGF0aWMgdm9pZCBpdG10b3VjaF9jbG9zZShzdHJ1Y3QgaW5wdXRf ZGV2ICppbnB1dCkNCit7DQorCXN0cnVjdCBpdG10b3VjaF9kZXYgKml0bXRvdWNoID0gaW5wdXQt PnByaXZhdGU7DQorDQorCWlmICghLS1pdG10b3VjaC0+cmVmY291bnQpDQorCQl1c2JfdW5saW5r X3VyYiAoaXRtdG91Y2gtPnJlYWR1cmIpOw0KK30NCisNCisNCitzdGF0aWMgaW50IGl0bXRvdWNo X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLCBjb25zdCBzdHJ1Y3QgdXNiX2Rldmlj ZV9pZCAqaWQpDQorew0KKwlzdHJ1Y3QgaXRtdG91Y2hfZGV2ICppdG10b3VjaDsNCisJc3RydWN0 IHVzYl9ob3N0X2ludGVyZmFjZSAqaW50ZXJmYWNlOw0KKwlzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rl c2NyaXB0b3IgKmVuZHBvaW50Ow0KKwlzdHJ1Y3QgdXNiX2RldmljZSAqIHVkZXYgPSBpbnRlcmZh Y2VfdG9fdXNiZGV2KGludGYpOw0KKwl1bnNpZ25lZCBpbnQgcGlwZTsNCisJdW5zaWduZWQgaW50 IG1heHA7DQorCWNoYXIgcGF0aFtQQVRIX1NJWkVdOw0KKw0KKwlkYmcoIiVzIC0gY2FsbGVkIiwg X19GVU5DVElPTl9fKTsNCisNCisJZGJnKCIlcyAtIHNldHRpbmcgaW50ZXJmYWNlIiwgX19GVU5D VElPTl9fKTsNCisJaW50ZXJmYWNlID0gaW50Zi0+Y3VyX2FsdHNldHRpbmc7DQorCQ0KKwlkYmco IiVzIC0gc2V0dGluZyBlbmRwb2ludCIsIF9fRlVOQ1RJT05fXyk7DQorCWVuZHBvaW50ID0gJmlu dGVyZmFjZS0+ZW5kcG9pbnRbMF0uZGVzYzsNCisNCisJaWYgKGlkLT5pZFZlbmRvciAhPSBVU0Jf VkVORE9SX0lEX0lUTUlOQyB8fCBpZC0+aWRQcm9kdWN0ICE9IFVTQl9QUk9EVUNUX0lEX1RPVUNI UEFORUwpIHsNCisJCXByaW50ayhLRVJOX1dBUk5JTkcgIml0bXRvdWNoOiB0cmllZCB0byBiaW5k IHRvIG5vbi10cyBkZXZpY2UuXG4iKTsNCisJCXJldHVybiAtRU5PREVWOw0KKwl9DQorDQorCS8q IGFsbG9jYXRlIG1lbW9yeSBzcGFjZSAqLw0KKwlpZiAoIShpdG10b3VjaCA9IGttYWxsb2MgKHNp emVvZiAoc3RydWN0IGl0bXRvdWNoX2RldiksIEdGUF9LRVJORUwpKSkgew0KKwkJZXJyKCIlcyAt IE91dCBvZiBtZW1vcnkuIiwgX19GVU5DVElPTl9fKTsNCisJCXJldHVybiAtRU5PTUVNOw0KKwl9 DQorCW1lbXNldChpdG10b3VjaCwgMCwgc2l6ZW9mKHN0cnVjdCBpdG10b3VjaF9kZXYpKTsNCisN CisJLyogZmlsbCBpbiB0aGUgVVNCIGRldmljZSBpbmZvICovICAgICAgICANCisJaXRtdG91Y2gt PnVzYmRldiA9IHVkZXY7DQorCQ0KKwlpdG10b3VjaC0+aW5wdXRkZXYucHJpdmF0ZSA9IGl0bXRv dWNoOw0KKwlpdG10b3VjaC0+aW5wdXRkZXYub3BlbiA9IGl0bXRvdWNoX29wZW47DQorCWl0bXRv dWNoLT5pbnB1dGRldi5jbG9zZSA9IGl0bXRvdWNoX2Nsb3NlOw0KKw0KKwl1c2JfbWFrZV9wYXRo KHVkZXYsIHBhdGgsIFBBVEhfU0laRSk7DQorCQ0KKwkvKiBzZXQgdXAgdGhlIGlucHV0IHF1ZXVl ICovCQ0KKwlpdG10b3VjaC0+aW5wdXRkZXYuZXZiaXRbMF0gPSBCSVQoRVZfS0VZKSB8IEJJVChF Vl9BQlMpOw0KKwlpdG10b3VjaC0+aW5wdXRkZXYuYWJzYml0WzBdID0gQklUKEFCU19YKSB8IEJJ VChBQlNfWSkgfCBCSVQoQUJTX1BSRVNTVVJFKTsNCisJaXRtdG91Y2gtPmlucHV0ZGV2LmtleWJp dFtMT05HKEJUTl9UT1VDSCldID0gQklUKEJUTl9UT1VDSCk7DQorDQorCWl0bXRvdWNoLT5pbnB1 dGRldi5uYW1lID0gaXRtdG91Y2gtPm5hbWU7DQorCWl0bXRvdWNoLT5pbnB1dGRldi5waHlzID0g aXRtdG91Y2gtPnBoeXM7DQorCWl0bXRvdWNoLT5pbnB1dGRldi5pZC5idXN0eXBlID0gQlVTX1VT QjsNCisJaXRtdG91Y2gtPmlucHV0ZGV2LmlkLnZlbmRvciA9IHVkZXYtPmRlc2NyaXB0b3IuaWRW ZW5kb3I7DQorCWl0bXRvdWNoLT5pbnB1dGRldi5pZC5wcm9kdWN0ID0gdWRldi0+ZGVzY3JpcHRv ci5pZFByb2R1Y3Q7DQorCWl0bXRvdWNoLT5pbnB1dGRldi5pZC52ZXJzaW9uID0gdWRldi0+ZGVz Y3JpcHRvci5iY2REZXZpY2U7CQ0KKwlpdG10b3VjaC0+aW5wdXRkZXYuZGV2ID0gJmludGYtPmRl djsNCisNCisJaWYgKCFzdHJsZW4oaXRtdG91Y2gtPm5hbWUpKQ0KKwkJc3ByaW50ZihpdG10b3Vj aC0+bmFtZSwgIlVTQiBJVE0gdG91Y2hzY3JlZW4iKTsNCisJDQorCS8qIGRldmljZSBsaW1pdHMg Ki8NCisJLyogYXMgc3BlY2lmaWVkIGJ5IHRoZSBJVE0gZGF0YXNoZWV0LCBYIGFuZCBZIGFyZSAx MmJpdCwNCisJICogWiAocHJlc3N1cmUpIGlzIDggYml0LiBIb3dldmVyLCB0aGUgZmllbGRzIGFy ZSBkZWZpbmVkIHVwDQorCSAqIHRvIDE0IGJpdHMgZm9yIGZ1dHVyZSBwb3NzaWJsZSBleHBhbnNp b24uDQorCSAqLw0KKwlpdG10b3VjaC0+aW5wdXRkZXYuYWJzbWF4W0FCU19YXSA9IDB4MEZGRjsN CisJLy9pdG10b3VjaC0+aW5wdXRkZXYuYWJzbWluW0FCU19YXSA9IDA7DQorCWl0bXRvdWNoLT5p bnB1dGRldi5hYnNmdXp6W0FCU19YXSA9IDI7DQorCQ0KKwlpdG10b3VjaC0+aW5wdXRkZXYuYWJz bWF4W0FCU19ZXSA9IDB4MEZGRjsNCisJLy9pdG10b3VjaC0+aW5wdXRkZXYuYWJzbWluW0FCU19Z XSA9IDA7DQorCWl0bXRvdWNoLT5pbnB1dGRldi5hYnNmdXp6W0FCU19ZXSA9IDI7DQorCQ0KKwlp dG10b3VjaC0+aW5wdXRkZXYuYWJzbWF4W0FCU19QUkVTU1VSRV0gPSAweEZGOw0KKwkvL2l0bXRv dWNoLT5pbnB1dGRldi5hYnNtaW5bQUJTX1BSRVNTVVJFXSA9IDA7DQorCWl0bXRvdWNoLT5pbnB1 dGRldi5hYnNmdXp6W0FCU19QUkVTU1VSRV0gPSAyOw0KKw0KKwkvKiBpbml0aWFsaXNlIHRoZSBV UkIgc28gd2UgY2FuIHJlYWQgZnJvbSB0aGUgdHJhbnNwb3J0IHN0cmVhbSAqLw0KKwlwaXBlID0g dXNiX3JjdmludHBpcGUoaXRtdG91Y2gtPnVzYmRldiwgZW5kcG9pbnQtPmJFbmRwb2ludEFkZHJl c3MpOw0KKw0KKwltYXhwID0gdXNiX21heHBhY2tldCh1ZGV2LCBwaXBlLCB1c2JfcGlwZW91dChw aXBlKSk7DQorCQ0KKwlpZiAobWF4cCA+IElUTV9CVUZTSVpFKSB7DQorCQlwcmludGsoS0VSTl9X QVJOSU5HICJpdG10b3VjaDogV0FSTklORzogcGFja2V0IHNpemUgPiBJVE1fQlVGU0laRVxuIik7 DQorCQltYXhwID0gSVRNX0JVRlNJWkU7DQorCX0NCisNCisJaXRtdG91Y2gtPnJlYWR1cmIgPSB1 c2JfYWxsb2NfdXJiKDAsIEdGUF9LRVJORUwpOw0KKwkNCisJaWYgKCFpdG10b3VjaC0+cmVhZHVy Yikgew0KKwkJZGJnKCIlcyAtIHVzYl9hbGxvY191cmIgZmFpbGVkOiBpdG10b3VjaC0+cmVhZHVy YiIsIF9fRlVOQ1RJT05fXyk7DQorCQlrZnJlZShpdG10b3VjaCk7DQorCQlyZXR1cm4gLUVOT01F TTsNCisJfQ0KKwkNCisJZGJnKCIlcyAtIHVzYl9maWxsX2ludF91cmIiLCBfX0ZVTkNUSU9OX18p Ow0KKwl1c2JfZmlsbF9pbnRfdXJiKGl0bXRvdWNoLT5yZWFkdXJiLA0KKwkJCWl0bXRvdWNoLT51 c2JkZXYsDQorCQkJcGlwZSwNCisJCQlpdG10b3VjaC0+cmJ1ZiwgDQorCQkJbWF4cCwNCisJCQlp dG10b3VjaF9pcnEsDQorCQkJaXRtdG91Y2gsDQorCQkJZW5kcG9pbnQtPmJJbnRlcnZhbCk7DQor DQorCS8qIHJlZ2lzdGVyIHRoZSBkZXZpY2Ugd2l0aCB0aGUgaW5wdXQgc3lzdGVtICovDQorCWRi ZygiJXMgLSBpbnB1dF9yZWdpc3Rlcl9kZXZpY2UiLCBfX0ZVTkNUSU9OX18pOw0KKwlpbnB1dF9y ZWdpc3Rlcl9kZXZpY2UoJml0bXRvdWNoLT5pbnB1dGRldik7DQorDQorCXByaW50ayhLRVJOX0lO Rk8gIml0bXRvdWNoOiAlcyByZWdpc3RlcmVkIG9uICVzXG4iLCBpdG10b3VjaC0+bmFtZSwgcGF0 aCk7DQorCXVzYl9zZXRfaW50ZmRhdGEoaW50ZiwgaXRtdG91Y2gpOw0KKw0KKwlyZXR1cm4gMDsN Cit9DQorDQorCXN0YXRpYyB2b2lkDQorLy9pdG10b3VjaF9kaXNjb25uZWN0KHN0cnVjdCB1c2Jf ZGV2aWNlICpkZXYsIHZvaWQgKnB0cikNCitpdG10b3VjaF9kaXNjb25uZWN0KHN0cnVjdCB1c2Jf aW50ZXJmYWNlICppbnRmKQ0KK3sJDQorCXN0cnVjdCBpdG10b3VjaF9kZXYgKml0bXRvdWNoID0g dXNiX2dldF9pbnRmZGF0YSAoaW50Zik7DQorDQorCWRiZygiJXMgLSBjYWxsZWQiLCBfX0ZVTkNU SU9OX18pOw0KKw0KKwl1c2Jfc2V0X2ludGZkYXRhKGludGYsIE5VTEwpOw0KKwlpZiAoaXRtdG91 Y2gpIHsNCisJCWRiZygiJXMgLSBpdG10b3VjaCBpcyBpbml0aWFsaXplZCwgY2xlYW5pbmcgdXAi LCBfX0ZVTkNUSU9OX18pOw0KKwkJdXNiX2tpbGxfdXJiKGl0bXRvdWNoLT5yZWFkdXJiKTsNCisJ CWlucHV0X3VucmVnaXN0ZXJfZGV2aWNlKCZpdG10b3VjaC0+aW5wdXRkZXYpOw0KKwkJdXNiX2Zy ZWVfdXJiKGl0bXRvdWNoLT5yZWFkdXJiKTsNCisJCWtmcmVlKGl0bXRvdWNoKTsNCisJfQ0KK30N CisNCitNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgaXRtdG91Y2hfaWRzKTsNCisNCitzdGF0aWMg c3RydWN0IHVzYl9kcml2ZXIgaXRtdG91Y2hfZHJpdmVyID0gew0KKwkJLm93bmVyID0gICAgICAg IFRISVNfTU9EVUxFLA0KKwkJLm5hbWUgPSAgICAgICAgICJpdG10b3VjaCIsDQorCQkucHJvYmUg PSAgICAgICAgaXRtdG91Y2hfcHJvYmUsDQorCQkuZGlzY29ubmVjdCA9ICAgaXRtdG91Y2hfZGlz Y29ubmVjdCwNCisJCS5pZF90YWJsZSA9ICAgICBpdG10b3VjaF9pZHMsDQorfTsNCisNCitzdGF0 aWMgaW50IF9faW5pdCBpdG10b3VjaF9pbml0KHZvaWQpDQorew0KKwlkYmcoIiVzIC0gY2FsbGVk IiwgX19GVU5DVElPTl9fKTsNCisJaW5mbyhEUklWRVJfVkVSU0lPTiAiICIgRFJJVkVSX0FVVEhP Uik7DQorCWluZm8oRFJJVkVSX0RFU0MpOw0KKwlyZXR1cm4gdXNiX3JlZ2lzdGVyKCZpdG10b3Vj aF9kcml2ZXIpOw0KK30NCisNCitzdGF0aWMgdm9pZCBfX2V4aXQgaXRtdG91Y2hfZXhpdCh2b2lk KQ0KK3sNCisJZGJnKCIlcyAtIGNhbGxlZCIsIF9fRlVOQ1RJT05fXyk7DQorCXVzYl9kZXJlZ2lz dGVyKCZpdG10b3VjaF9kcml2ZXIpOw0KK30NCisNCittb2R1bGVfaW5pdChpdG10b3VjaF9pbml0 KTsNCittb2R1bGVfZXhpdChpdG10b3VjaF9leGl0KTsNCisNCitNT0RVTEVfQVVUSE9SKCBEUklW RVJfQVVUSE9SICk7DQorTU9EVUxFX0RFU0NSSVBUSU9OKCBEUklWRVJfREVTQyApOw0KK01PRFVM RV9MSUNFTlNFKCBEUklWRVJfTElDRU5TRSApOw0K --=-0U/tprm+v6VsbnjVf3cn-- --=-DrDc5S4K4iHW2jmS0Dfa Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQBCKDi/LGKplK6pIwYRAjMBAJ9ZZlhgM/XLKl5l1mo49AFZ+tLDpACePGG3 QUEfVM5aETdk1GEIRgacQ3Y= =PWZz -----END PGP SIGNATURE----- --=-DrDc5S4K4iHW2jmS0Dfa-- - 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/