From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?Q?=C5=81ukasz_Luboja=C5=84ski?=" Subject: Re: New Force Feedback device support - GreenAsia 0x12 Date: Fri, 5 Dec 2008 21:49:46 +0100 Message-ID: <92cd8c320812051249m39bcd8d6mb03e15e14398f01c@mail.gmail.com> References: <200811262333.45245.lukasz@lubojanski.info> <49303827.4050907@gmail.com> <200811282008.41601.lukasz@lubojanski.info> <92cd8c320812041235u6bf501d9ta473398bc1374aac@mail.gmail.com> <92cd8c320812041255i1a8bb4ces9468d2821ab7c620@mail.gmail.com> <493973BA.1010902@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_46985_7823613.1228510186768" Return-path: Received: from nf-out-0910.google.com ([64.233.182.191]:57427 "EHLO nf-out-0910.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751945AbYLEUtt (ORCPT ); Fri, 5 Dec 2008 15:49:49 -0500 Received: by nf-out-0910.google.com with SMTP id d3so100593nfc.21 for ; Fri, 05 Dec 2008 12:49:46 -0800 (PST) In-Reply-To: <493973BA.1010902@gmail.com> Sender: linux-input-owner@vger.kernel.org List-Id: linux-input@vger.kernel.org To: Anssi Hannula Cc: Jiri Kosina , linux-input@vger.kernel.org ------=_Part_46985_7823613.1228510186768 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Content-Disposition: inline T24gRnJpLCBEZWMgNSwgMjAwOCBhdCA3OjMyIFBNLCBBbnNzaSBIYW5udWxhIDxhbnNzaS5oYW5u dWxhQGdtYWlsLmNvbT4gd3JvdGU6Cj4gxYF1a2FzeiBMdWJvamHFhHNraSB3cm90ZToKPj4KPj4g T24gVGh1LCBEZWMgNCwgMjAwOCBhdCA5OjM1IFBNLCDFgXVrYXN6IEx1Ym9qYcWEc2tpCj4+IDxs dWthc3pAbHVib2phbnNraS5pbmZvPiB3cm90ZToKPj4+Cj4+PiAyMDA4LzExLzI5IEppcmkgS29z aW5hIDxqa29zaW5hQHN1c2UuY3o+Ogo+Pj4+Cj4+Pj4gT24gRnJpLCAyOCBOb3YgMjAwOCwgxYF1 a2FzeiBMdWJvamHFhHNraSB3cm90ZToKPj4+Pgo+Pj4+Pj4gSXQgc2VlbXMgdGhlIHByb3RvY29s IHJlc2VtYmxlcyBtb3JlIHRoZSBoaWQtbGcyZmYgb25lLiBUaGUKPj4+Pj4+IGRpZmZlcmVuY2Vz Cj4+Pj4+PiBhcmUgdGhlIGFkZGl0aW9uYWwgMHhmYSAweGZlIDB4MCByZXBvcnQgc2VudCB0byB0 aGUgZGV2aWNlLCBhbmQgdGhlCj4+Pj4+PiBtaXNzaW5nIDB4ZjMgc3RvcCBjb21tYW5kLgo+Pj4+ Pgo+Pj4+PiBZZXAgLSBkaWZmZXJlbnQgcmVwb3J0cyBhcmUgc2VuZCBpbiBjYXNlIG9mIFBhbnRo ZXJsb3JkIGFuZCBHcmVlbkFzaWEKPj4+Pj4gMHgxMiAtIEl0IGNvdWxkIGJlIGltcGxlbWVudGVk IGluIGl0IGJ1dCBpdCB3aWxsIHJlcXVpcmUgY2hlY2tpbmcgd2hhdAo+Pj4+PiBoYXJkd2FyZSBp cyB1c2VkIGFuZCBzZW5kIGRpZmZlcmVudCByZXBvcnRzLgo+Pj4+Cj4+Pj4gT0ssIHNvIGFzIHRo ZSByZXBvcnRzIGFyZSBub3QgcmVhbGx5IGlkZW50aWNhbCwgYW5kIGluIHRoZSBmdXR1cmUgd2UK Pj4+PiBtaWdodAo+Pj4+IGRpc2NvdmVyIHRoYXQgdGhlcmUgYXJlIG1hbnkgbW9yZSBvdGhlciBH cmVlbmFzaWEgZGV2aWNlcyB3aGljaCByZXF1aXJlCj4+Pj4gYQo+Pj4+IHNsaWdodGx5IGRpZmZl cmVudCBoYW5kbGluZyBhcyB3ZWxsLCBJIHdvdWxkIHJhdGhlciBwcmVmZXIgdG8gaGF2ZSBpdCBh cwo+Pj4+IGEKPj4+PiBzZXBhcmF0ZSBkcml2ZXIsIHRvIGF2b2lkIGFkZGl0aW9ucyBvZiBoZXJl LWFuZC10aGVyZSBkZXZpY2Utc3BlY2lmaWMKPj4+PiBxdWlya3MgdG8gcmFuZG9tIHBsYWNlcyBp biB0aGUgY29kZS4gVGhhdCdzIGV4YWN0bHkgd2hhdCB3ZSBhcmUgdHJ5aW5nCj4+Pj4gdG8KPj4+ PiBhdm9pZCB3aXRoIHRoZSBISUQgYnVzIGFwcHJvYWNoIGluIHRoZSBmaXJzdCBwbGFjZS4KPj4+ Pgo+Pj4+IFNvIEkgdGhpbmsgc2VwYXJhdGUgZHJpdmVyIGlzIGZpbmUuCj4+Pj4KPj4+PiBUaGFu a3MgdG8gYm90aCBvZiB5b3UuCj4+Pj4KPj4+PiAtLQo+Pj4+IEppcmkgS29zaW5hCj4+Pj4gU1VT RSBMYWJzCj4+Pgo+Pj4gSGksCj4+Pgo+Pj4gSGVyZSBpcyBuZXcgdmVyc2lvbiBvZiB0aGUgR3Jl ZW5Bc2lhIHBhdGNoIC0gSSBob3BlIHRoaXMgdGltZQo+Pj4gZXZlcnl0aGluZyB3aWxsIGJlIE9L LiBJdCBpcyBiYXNlZCBvbiB0aGUgUGFudGhlcmxvcmQuCj4+Pgo+Pj4gU29ycnkgdG8gdGFrZSBz byBsb25nIGJ1dCBJIGhhdmUgcHJvYmxlbXMgd2l0aCB0aGUgMi42LjI4ICgyLjYuMjgtcmM2Cj4+ PiB3YXMgbm90IGxvYWRpbmcgbXkgZHJpdmVyIGFuZCAyLjYuMjgtcmM3IGlzIGNyYXNoaW5nIHdo ZW4gSU8gQVBJQyBpcwo+Pj4gZW5hYmxlZCkuIEFueXdheSBJIGRvbmUgaXQgYW5kIEknbSB3YWl0 aW5nIGZvciB5b3VyIGZlZWRiYWNrIDpECj4KPgo+PiArc3RhdGljIGNvbnN0IHNpZ25lZCBzaG9y dCBmZl9ydW1ibGVbXSA9IHsKPj4gKyAgICAgICBGRl9SVU1CTEUsCj4+ICsgICAgICAgLTEKPj4g K307Cj4KPiBUaGlzIHNlZW1zIHVubmVjZXNzYXJ5Lgo+Cj4+ICsKPj4gKyAgICAgICBsaXN0X2Zv cl9lYWNoX2VudHJ5KGhpZGlucHV0LCAmaGlkLT5pbnB1dHMsIGxpc3QpIHsKPj4gKwo+PiArICAg ICAgICAgICAgICAgcmVwb3J0X3B0ciA9IHJlcG9ydF9wdHItPm5leHQ7Cj4+ICsKPj4gKyAgICAg ICAgICAgICAgIGlmIChyZXBvcnRfcHRyID09IHJlcG9ydF9saXN0KSB7Cj4+ICsgICAgICAgICAg ICAgICAgICAgICAgIGRldl9lcnIoJmhpZC0+ZGV2LCAicmVxdWlyZWQgb3V0cHV0IHJlcG9ydCBp cyAiCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWlzc2luZ1xu Iik7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5PREVWOwo+PiArICAgICAg ICAgICAgICAgfQo+Cj4gWy4uLl0KPj4KPj4gKyAgICAgICBpZiAoaWQtPmRyaXZlcl9kYXRhKQo+ PiArICAgICAgICAgICAgICAgaGRldi0+cXVpcmtzIHw9IEhJRF9RVUlSS19NVUxUSV9JTlBVVDsK Pj4KPgo+IElzIHRoaXMgcmVhbGx5IGEgSElEX1FVSVJLX01VTFRJX0lOUFVUIGRldmljZSAoTXVs dGlwbGUgY29udHJvbGxlcnMgb24gb25lCj4gZGV2aWNlLCBmb3IgZXhhbXBsZSBhIDItaW4tMSBh ZGFwdGVyKT8gSnVzdCBhc2tpbmcgYmVjYXVzZSB5b3VyIHByZXZpb3VzCj4gcGF0Y2ggZGlkbid0 IGhhdmUgdGhpcy4KPgo+IElmIHRoaXMgaXMgbm90IHRoZSBjYXNlLCB0aGVyZSBpcyBhbHNvIG5v IG5lZWQgdG8gaGF2ZSAyIG5ldyBLY29uZmlnCj4gZW50cmllcywgYnV0IGEgc2ltcGxlIEZGLW9u bHkgZW50cnkgKHNlZSBaRVJPUExVU19GRiAvIGhpZC16cGZmLmMpLgo+Cj4gLS0KPiBBbnNzaSBI YW5udWxhCj4KPgoKSW4gY2FzZSBvZiBib3RoIGRldmljZXMgdGhhdCBJIGhhdmUgdGhlIEhJRF9R VUlSS19NVUxUSV9JTlBVVCBpcyBub3QKc2V0IC0gc28gSSB0aGluayB0aGUgbXVsdGkgaW5wdXQg Y29kZSBjYW4gYmUgcmVtb3ZlZC4gSSBkaWQgdGhhdCBhbmQKaXQgc3RpbGwgd29ya3MgcHJvcGVy bHkgaW4gbXkgdGVzdCA6RAoKSSBoYXZlIHNlZW4gdGhhdCBoaWQtenBmZiBhbmQgaGlkLXRtZmYg YXJlIG1vZHVsZXMgZm9yIEZGIG9ubHkgYW5kCmhpZC1wbCBpcyAiZHVtbXkiIHN1cHBvcnQgZm9y IHRoZSBkZXZpY2UgYW5kIGlmIHNlbGVjdGVkIGFsc28gZm9yIHRoZQpGRi4gSSB3YXMgY29uZnVz ZWQgYWJvdXQgaXQgc28gSSBoYXZlIGNob3NlbiB3YXkgb2YgaGlkLXBsIGJlY2F1c2UgSQpiYXNl ZCBvbiBpdC4KCkJlY2F1c2UgdGhlIG1vZHVsZSBzdXBwb3J0cyBvbmx5IHRoZSBGRiBub3cgLSBJ IGhhdmUgY2hhbmdlZCBtb2R1bGUKbmFtZSB0byBoaWQtZ2FmZi4KCnJlZ2FyZHMKTHVrYXN6IEx1 Ym9qYW5za2kK ------=_Part_46985_7823613.1228510186768 Content-Type: text/x-diff; name=greenasia.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fodag7kg0 Content-Disposition: attachment; filename=greenasia.diff U2lnbmVkLW9mZi1ieTogTHVrYXN6IEx1Ym9qYW5za2kgPGx1a2FzekBsdWJvamFuc2tpLmluZm8+ CmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9LY29uZmlnIGIvZHJpdmVycy9oaWQvS2NvbmZpZwpp bmRleCBiNGZkOGNhLi40N2I4M2M1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9LY29uZmlnCisr KyBiL2RyaXZlcnMvaGlkL0tjb25maWcKQEAgLTI0NSw2ICsyNDUsMTUgQEAgY29uZmlnIEhJRF9T VU5QTFVTCiAJLS0taGVscC0tLQogCVN1cHBvcnQgZm9yIFN1bnBsdXMgd2lyZWxlc3MgZGVza3Rv cC4KIAorY29uZmlnIEdSRUVOQVNJQV9GRgorCXRyaXN0YXRlICJHcmVlbkFzaWEgKFByb2R1Y3Qg SUQgMHgxMikgZm9yY2UgZmVlZGJhY2sgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIFVTQl9ISUQKKwlz ZWxlY3QgSU5QVVRfRkZfTUVNTEVTUworCS0tLWhlbHAtLS0KKwlTYXkgWSBoZXJlIGlmIHlvdSBo YXZlIGEgR3JlZW5Bc2lhIChQcm9kdWN0IElEIDB4MTIpIGJhc2VkIGdhbWUgY29udHJvbGxlcgor CShsaWtlIE1BTlRBIFdhcmlvciBNTTgxNiBhbmQgU3BlZWRMaW5rIFN0cmlrZTIgU0wtNjYzNSkg b3IgYWRhcHRlcgorCWFuZCB3YW50IHRvIGVuYWJsZSBmb3JjZSBmZWVkYmFjayBzdXBwb3J0IGZv ciBpdC4KKwogY29uZmlnIFRIUlVTVE1BU1RFUl9GRgogCXRyaXN0YXRlICJUaHJ1c3RNYXN0ZXIg ZGV2aWNlcyBzdXBwb3J0IgogCWRlcGVuZHMgb24gVVNCX0hJRApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9oaWQvTWFrZWZpbGUgYi9kcml2ZXJzL2hpZC9NYWtlZmlsZQppbmRleCBiMDllNDNlLi5kYzMz YmY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2hpZC9N YWtlZmlsZQpAQCAtMzgsNiArMzgsNyBAQCBvYmotJChDT05GSUdfSElEX1BFVEFMWU5YKQkrPSBo aWQtcGV0YWx5bngubwogb2JqLSQoQ09ORklHX0hJRF9TQU1TVU5HKQkrPSBoaWQtc2Ftc3VuZy5v CiBvYmotJChDT05GSUdfSElEX1NPTlkpCQkrPSBoaWQtc29ueS5vCiBvYmotJChDT05GSUdfSElE X1NVTlBMVVMpCSs9IGhpZC1zdW5wbHVzLm8KK29iai0kKENPTkZJR19HUkVFTkFTSUFfRkYpCSs9 IGhpZC1nYWZmLm8KIG9iai0kKENPTkZJR19USFJVU1RNQVNURVJfRkYpCSs9IGhpZC10bWZmLm8K IG9iai0kKENPTkZJR19aRVJPUExVU19GRikJKz0gaGlkLXpwZmYubwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2hpZC9oaWQtY29yZS5jIGIvZHJpdmVycy9oaWQvaGlkLWNvcmUuYwppbmRleCA0MGRm M2UxLi5mMjE4NGNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9oaWQtY29yZS5jCisrKyBiL2Ry aXZlcnMvaGlkL2hpZC1jb3JlLmMKQEAgLTEyNjksNiArMTI2OSw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgaGlkX2RldmljZV9pZCBoaWRfYmxhY2tsaXN0W10gPSB7CiAJeyBISURfVVNCX0RFVklD RShVU0JfVkVORE9SX0lEX0dBTUVST04sIFVTQl9ERVZJQ0VfSURfR0FNRVJPTl9EVUFMX1BTWF9B REFQVE9SKSB9LAogCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9HQU1FUk9OLCBVU0Jf REVWSUNFX0lEX0dBTUVST05fRFVBTF9QQ1NfQURBUFRPUikgfSwKIAl7IEhJRF9VU0JfREVWSUNF KFVTQl9WRU5ET1JfSURfR1JFRU5BU0lBLCAweDAwMDMpIH0sCisJeyBISURfVVNCX0RFVklDRShV U0JfVkVORE9SX0lEX0dSRUVOQVNJQSwgMHgwMDEyKSB9LAogCXsgSElEX1VTQl9ERVZJQ0UoVVNC X1ZFTkRPUl9JRF9HWVJBVElPTiwgVVNCX0RFVklDRV9JRF9HWVJBVElPTl9SRU1PVEUpIH0sCiAJ eyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX0dZUkFUSU9OLCBVU0JfREVWSUNFX0lEX0dZ UkFUSU9OX1JFTU9URV8yKSB9LAogCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9MQUJU RUMsIFVTQl9ERVZJQ0VfSURfTEFCVEVDX1dJUkVMRVNTX0tFWUJPQVJEKSB9LApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9oaWQvaGlkLWR1bW15LmMgYi9kcml2ZXJzL2hpZC9oaWQtZHVtbXkuYwppbmRl eCBlMTQ4Zjg2Li43NmRmMmZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2hpZC9oaWQtZHVtbXkuYwor KysgYi9kcml2ZXJzL2hpZC9oaWQtZHVtbXkuYwpAQCAtNTgsNiArNTgsOSBAQCBzdGF0aWMgaW50 IF9faW5pdCBoaWRfZHVtbXlfaW5pdCh2b2lkKQogI2lmZGVmIENPTkZJR19ISURfU1VOUExVU19N T0RVTEUKIAlISURfQ09NUEFUX0NBTExfRFJJVkVSKHN1bnBsdXMpOwogI2VuZGlmCisjaWZkZWYg Q09ORklHX0dSRUVOQVNJQV9GRl9NT0RVTEUKKwlISURfQ09NUEFUX0NBTExfRFJJVkVSKGdyZWVu YXNpYSk7CisjZW5kaWYKICNpZmRlZiBDT05GSUdfVEhSVVNUTUFTVEVSX0ZGX01PRFVMRQogCUhJ RF9DT01QQVRfQ0FMTF9EUklWRVIodGhydXN0bWFzdGVyKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9oaWQvaGlkLWdhZmYuYyBiL2RyaXZlcnMvaGlkL2hpZC1nYWZmLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzI1NjczZQotLS0gL2Rldi9udWxsCisrKyBiL2Ry aXZlcnMvaGlkL2hpZC1nYWZmLmMKQEAgLTAsMCArMSwxOTYgQEAKKy8qCisgKiAgRm9yY2UgZmVl ZGJhY2sgc3VwcG9ydCBmb3IgR3JlZW5Bc2lhIChQcm9kdWN0IElEIDB4MTIpIGJhc2VkIGRldmlj ZXMKKyAqCisgKiAgVGhlIGRldmljZXMgYXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHZhcmlvdXMgbmFt ZXMgYW5kIHRoZSBzYW1lIFVTQiBkZXZpY2UgSUQKKyAqICBjYW4gYmUgdXNlZCBpbiBtYW55IGdh bWUgY29udHJvbGxlcnMuCisgKgorICoKKyAqICAwZThmOjAwMTIgIkdyZWVuQXNpYSBJbmMuICAg IFVTQiBKb3lzdGljayAgICAgIgorICogICAtIHRlc3RlZCB3aXRoIE1BTlRBIFdhcmlvciBNTTgx NiBhbmQgU3BlZWRMaW5rIFN0cmlrZTIgU0wtNjYzNS4KKyAqCisgKiAgQ29weXJpZ2h0IChjKSAy MDA4IEx1a2FzeiBMdWJvamFuc2tpIDxsdWthc3pAbHVib2phbnNraS5pbmZvPgorICovCisKKy8q CisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRl IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh Y2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQorICovCisKKworLyojZGVm aW5lIERFQlVHKi8KKworI2RlZmluZSBkZWJ1Zyhmb3JtYXQsIGFyZy4uLikgcHJfZGVidWcoImhp ZC1nYWZmOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQorCisjaW5jbHVkZSA8bGludXgvaW5wdXQu aD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlIDxsaW51eC9oaWQuaD4KKyNpbmNs dWRlICJoaWQtaWRzLmgiCisjaW5jbHVkZSAidXNiaGlkL3VzYmhpZC5oIgorCitzdHJ1Y3QgZ2Fm Zl9kZXZpY2UgeworCXN0cnVjdCBoaWRfcmVwb3J0ICpyZXBvcnQ7Cit9OworCitzdGF0aWMgaW50 IGhpZF9nYWZmX3BsYXkoc3RydWN0IGlucHV0X2RldiAqZGV2LCB2b2lkICpkYXRhLAorCQkJIHN0 cnVjdCBmZl9lZmZlY3QgKmVmZmVjdCkKK3sKKwlzdHJ1Y3QgaGlkX2RldmljZSAqaGlkID0gaW5w dXRfZ2V0X2RydmRhdGEoZGV2KTsKKwlzdHJ1Y3QgZ2FmZl9kZXZpY2UgKmdhZmYgPSBkYXRhOwor CWludCBsZWZ0LCByaWdodDsKKworCWxlZnQgPSBlZmZlY3QtPnUucnVtYmxlLnN0cm9uZ19tYWdu aXR1ZGU7CisJcmlnaHQgPSBlZmZlY3QtPnUucnVtYmxlLndlYWtfbWFnbml0dWRlOworCisJZGVi dWcoImNhbGxlZCB3aXRoIDB4JTA0eCAweCUwNHgiLCBsZWZ0LCByaWdodCk7CisKKwlsZWZ0ID0g bGVmdCAqIDB4ZmUgLyAweGZmZmY7CisJcmlnaHQgPSByaWdodCAqIDB4ZmUgLyAweGZmZmY7CisK KwlnYWZmLT5yZXBvcnQtPmZpZWxkWzBdLT52YWx1ZVswXSA9IDB4NTE7CisJZ2FmZi0+cmVwb3J0 LT5maWVsZFswXS0+dmFsdWVbMV0gPSAweDA7CisJZ2FmZi0+cmVwb3J0LT5maWVsZFswXS0+dmFs dWVbMl0gPSByaWdodDsKKwlnYWZmLT5yZXBvcnQtPmZpZWxkWzBdLT52YWx1ZVszXSA9IDA7CisJ Z2FmZi0+cmVwb3J0LT5maWVsZFswXS0+dmFsdWVbNF0gPSBsZWZ0OworCWdhZmYtPnJlcG9ydC0+ ZmllbGRbMF0tPnZhbHVlWzVdID0gMDsKKwlkZWJ1ZygicnVubmluZyB3aXRoIDB4JTAyeCAweCUw MngiLCBsZWZ0LCByaWdodCk7CisJdXNiaGlkX3N1Ym1pdF9yZXBvcnQoaGlkLCBnYWZmLT5yZXBv cnQsIFVTQl9ESVJfT1VUKTsKKworCWdhZmYtPnJlcG9ydC0+ZmllbGRbMF0tPnZhbHVlWzBdID0g MHhmYTsKKwlnYWZmLT5yZXBvcnQtPmZpZWxkWzBdLT52YWx1ZVsxXSA9IDB4ZmU7CisJZ2FmZi0+ cmVwb3J0LT5maWVsZFswXS0+dmFsdWVbMl0gPSAweDA7CisJZ2FmZi0+cmVwb3J0LT5maWVsZFsw XS0+dmFsdWVbNF0gPSAweDA7CisKKwl1c2JoaWRfc3VibWl0X3JlcG9ydChoaWQsIGdhZmYtPnJl cG9ydCwgVVNCX0RJUl9PVVQpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZ2FmZl9p bml0KHN0cnVjdCBoaWRfZGV2aWNlICpoaWQpCit7CisJc3RydWN0IGdhZmZfZGV2aWNlICpnYWZm OworCXN0cnVjdCBoaWRfcmVwb3J0ICpyZXBvcnQ7CisJc3RydWN0IGhpZF9pbnB1dCAqaGlkaW5w dXQgPSBsaXN0X2VudHJ5KGhpZC0+aW5wdXRzLm5leHQsCisJCQkJCQlzdHJ1Y3QgaGlkX2lucHV0 LCBsaXN0KTsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpyZXBvcnRfbGlzdCA9CisJCQkmaGlkLT5yZXBv cnRfZW51bVtISURfT1VUUFVUX1JFUE9SVF0ucmVwb3J0X2xpc3Q7CisJc3RydWN0IGxpc3RfaGVh ZCAqcmVwb3J0X3B0ciA9IHJlcG9ydF9saXN0OworCXN0cnVjdCBpbnB1dF9kZXYgKmRldiA9IGhp ZGlucHV0LT5pbnB1dDsKKwlpbnQgZXJyb3I7CisKKwlpZiAobGlzdF9lbXB0eShyZXBvcnRfbGlz dCkpIHsKKwkJZGV2X2VycigmaGlkLT5kZXYsICJubyBvdXRwdXQgcmVwb3J0cyBmb3VuZFxuIik7 CisJCXJldHVybiAtRU5PREVWOworCX0KKworCXJlcG9ydF9wdHIgPSByZXBvcnRfcHRyLT5uZXh0 OworCisJaWYgKHJlcG9ydF9wdHIgPT0gcmVwb3J0X2xpc3QpIHsKKwkJZGV2X2VycigmaGlkLT5k ZXYsICJyZXF1aXJlZCBvdXRwdXQgcmVwb3J0IGlzICIKKwkJCQkibWlzc2luZ1xuIik7CisJCXJl dHVybiAtRU5PREVWOworCX0KKworCXJlcG9ydCA9IGxpc3RfZW50cnkocmVwb3J0X3B0ciwgc3Ry dWN0IGhpZF9yZXBvcnQsIGxpc3QpOworCWlmIChyZXBvcnQtPm1heGZpZWxkIDwgMSkgeworCQlk ZXZfZXJyKCZoaWQtPmRldiwgIm5vIGZpZWxkcyBpbiB0aGUgcmVwb3J0XG4iKTsKKwkJcmV0dXJu IC1FTk9ERVY7CisJfQorCisJaWYgKHJlcG9ydC0+ZmllbGRbMF0tPnJlcG9ydF9jb3VudCA8IDQp IHsKKwkJZGV2X2VycigmaGlkLT5kZXYsICJub3QgZW5vdWdoIHZhbHVlcyBpbiB0aGUgZmllbGRc biIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlnYWZmID0ga3phbGxvYyhzaXplb2Yoc3Ry dWN0IGdhZmZfZGV2aWNlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFnYWZmKQorCQlyZXR1cm4gLUVO T01FTTsKKworCXNldF9iaXQoRkZfUlVNQkxFLCBkZXYtPmZmYml0KTsKKworCWVycm9yID0gaW5w dXRfZmZfY3JlYXRlX21lbWxlc3MoZGV2LCBnYWZmLCBoaWRfZ2FmZl9wbGF5KTsKKwlpZiAoZXJy b3IpIHsKKwkJa2ZyZWUoZ2FmZik7CisJCXJldHVybiBlcnJvcjsKKwl9CisKKwlnYWZmLT5yZXBv cnQgPSByZXBvcnQ7CisJZ2FmZi0+cmVwb3J0LT5maWVsZFswXS0+dmFsdWVbMF0gPSAweDUxOwor CWdhZmYtPnJlcG9ydC0+ZmllbGRbMF0tPnZhbHVlWzFdID0gMHgwMDsKKwlnYWZmLT5yZXBvcnQt PmZpZWxkWzBdLT52YWx1ZVsyXSA9IDB4MDA7CisJZ2FmZi0+cmVwb3J0LT5maWVsZFswXS0+dmFs dWVbM10gPSAweDAwOworCXVzYmhpZF9zdWJtaXRfcmVwb3J0KGhpZCwgZ2FmZi0+cmVwb3J0LCBV U0JfRElSX09VVCk7CisKKwlnYWZmLT5yZXBvcnQtPmZpZWxkWzBdLT52YWx1ZVswXSA9IDB4ZmE7 CisJZ2FmZi0+cmVwb3J0LT5maWVsZFswXS0+dmFsdWVbMV0gPSAweGZlOworCisJdXNiaGlkX3N1 Ym1pdF9yZXBvcnQoaGlkLCBnYWZmLT5yZXBvcnQsIFVTQl9ESVJfT1VUKTsKKworCWRldl9pbmZv KCZoaWQtPmRldiwgImhpZC1nYWZmOiBGb3JjZSBGZWVkYmFjayBmb3IgR3JlZW5Bc2lhIDB4MTIi CisJICAgICAgICIgZGV2aWNlcyBieSBMdWthc3ogTHVib2phbnNraSA8bHVrYXN6QGx1Ym9qYW5z a2kuaW5mbz5cbiIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZ2FfcHJvYmUoc3Ry dWN0IGhpZF9kZXZpY2UgKmhkZXYsIGNvbnN0IHN0cnVjdCBoaWRfZGV2aWNlX2lkICppZCkKK3sK KwlpbnQgcmV0OworCisJZGVidWcoImhpZC1nYWZmOiBHcmVlbmFzaWEgSElEIGhhcmR3YXJlIHBy b2JlLi4uIik7CisKKwlyZXQgPSBoaWRfcGFyc2UoaGRldik7CisJaWYgKHJldCkgeworCQlkZXZf ZXJyKCZoZGV2LT5kZXYsICJwYXJzZSBmYWlsZWRcbiIpOworCQlnb3RvIGVycjsKKwl9CisKKwly ZXQgPSBoaWRfaHdfc3RhcnQoaGRldiwgSElEX0NPTk5FQ1RfREVGQVVMVCAmIH5ISURfQ09OTkVD VF9GRik7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKCZoZGV2LT5kZXYsICJodyBzdGFydCBmYWls ZWRcbiIpOworCQlnb3RvIGVycjsKKwl9CisKKwlnYWZmX2luaXQoaGRldik7CisKKwlyZXR1cm4g MDsKK2VycjoKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGhpZF9kZXZp Y2VfaWQgZ2FfZGV2aWNlc1tdID0geworCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9H UkVFTkFTSUEsIDB4MDAxMiksICB9LAorCXsgfQorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUoaGlk LCBnYV9kZXZpY2VzKTsKKworc3RhdGljIHN0cnVjdCBoaWRfZHJpdmVyIGdhX2RyaXZlciA9IHsK KwkubmFtZSA9ICJncmVlbmFzaWEiLAorCS5pZF90YWJsZSA9IGdhX2RldmljZXMsCisJLnByb2Jl ID0gZ2FfcHJvYmUsCit9OworCitzdGF0aWMgaW50IGdhX2luaXQodm9pZCkKK3sKKwlyZXR1cm4g aGlkX3JlZ2lzdGVyX2RyaXZlcigmZ2FfZHJpdmVyKTsKK30KKworc3RhdGljIHZvaWQgZ2FfZXhp dCh2b2lkKQoreworCWhpZF91bnJlZ2lzdGVyX2RyaXZlcigmZ2FfZHJpdmVyKTsKK30KKworbW9k dWxlX2luaXQoZ2FfaW5pdCk7Cittb2R1bGVfZXhpdChnYV9leGl0KTsKK01PRFVMRV9MSUNFTlNF KCJHUEwiKTsKKworSElEX0NPTVBBVF9MT0FEX0RSSVZFUihncmVlbmFzaWEpOwo= ------=_Part_46985_7823613.1228510186768--