From mboxrd@z Thu Jan 1 00:00:00 1970 From: Masaki Ota Subject: RE: [PATCH v2 2/2] Support-Alps-Touchpad-SS4-device Date: Mon, 30 Mar 2015 00:42:11 +0000 Message-ID: <1427676100221.2941@jp.alps.com> References: <1427488186-10046-1-git-send-email-masaki.ota@jp.alps.com>,<20150329035713.GB36501@dtor-ws> Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Return-path: Received: from mail-hk1on0078.outbound.protection.outlook.com ([134.170.140.78]:37916 "EHLO APAC01-HK1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751936AbbC3BQY (ORCPT ); Sun, 29 Mar 2015 21:16:24 -0400 In-Reply-To: <20150329035713.GB36501@dtor-ws> Content-Language: ja-JP Sender: linux-input-owner@vger.kernel.org List-Id: linux-input@vger.kernel.org To: Dmitry Torokhov , Masaki Ota <012nexus@gmail.com> Cc: "hdegoede@redhat.com" , "linux-input@vger.kernel.org" , Zufeng Qiu SGksIERtaXRyeSwNCg0KSXQncyBPSy4NCg0KQmVzdCBSZWdhcmRzLA0KPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0NCk1hc2FraSBPdGENCkFscHMgRWxlY3RyaWMgQ28uLCBMdGQuDQpF bmdpbmVlcmluZyBEZXB0Lk04DQpUZWw6Kzg2LTIxLTUwODEtNzU3NSBleHQ6NTIyDQpGYXg6Kzg2 LTIxLTUwODEtNTI1Mg0KRS1tYWlsICBtYXNha2kub3RhQGpwLmFscHMuY29tDQo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fDQqy7rP2yMs6IERtaXRyeSBUb3Jva2hvdiA8ZG1pdHJ5LnRvcm9raG92QGdtYWls LmNvbT4NCsvN0MXI1ZVyOiAyMDE1xOoz1MIyOcjVIDEyOjU3DQrN8M/IOiBNYXNha2kgT3RhDQpD QzogaGRlZ29lZGVAcmVkaGF0LmNvbTsgbGludXgtaW5wdXRAdmdlci5rZXJuZWwub3JnOyDMq8zv INXmz7IgTWFzYWtpIE90YQ0KvP7D+zogUmU6IFtQQVRDSCB2MiAyLzJdIFN1cHBvcnQtQWxwcy1U b3VjaHBhZC1TUzQtZGV2aWNlDQoNCkhpIE1hc2FraSwNCg0KT24gU2F0LCBNYXIgMjgsIDIwMTUg YXQgMDQ6Mjk6NDZBTSArMDgwMCwgTWFzYWtpIE90YSB3cm90ZToNCj4gKyAgICAgY2FzZSBBTFBT X1BST1RPX1Y4Og0KPiArICAgICAgICAgICAgIHByaXYtPmh3X2luaXQgPSBhbHBzX2h3X2luaXRf c3M0X3YyOw0KPiArICAgICAgICAgICAgIHByaXYtPnByb2Nlc3NfcGFja2V0ID0gYWxwc19wcm9j ZXNzX3BhY2tldF9zczRfdjI7DQo+ICsgICAgICAgICAgICAgcHJpdi0+ZGVjb2RlX2ZpZWxkcyA9 IGFscHNfZGVjb2RlX3NzNF92MjsNCj4gKyAgICAgICAgICAgICBwcml2LT5zZXRfYWJzX3BhcmFt cyA9IGFscHNfc2V0X2Fic19wYXJhbXNfdjdfdjg7DQo+ICsgICAgICAgICAgICAgcHJpdi0+bmli YmxlX2NvbW1hbmRzID0gYWxwc192M19uaWJibGVfY29tbWFuZHM7DQo+ICsgICAgICAgICAgICAg cHJpdi0+YWRkcl9jb21tYW5kID0gUFNNT1VTRV9DTURfUkVTRVRfV1JBUDsNCj4gKyAgICAgICAg ICAgICBwcml2LT54X21heCA9IDB4ZmZmOw0KPiArICAgICAgICAgICAgIHByaXYtPnlfbWF4ID0g MHg3ZmY7DQo+ICsgICAgICAgICAgICAgaWYgKGFscHNfc2V0X2RlZmF1bHRzX3NzNF92Mihwc21v dXNlLCBwcml2KSkNCj4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlPOw0KDQphbHBz X3NldF9kZWZhdWx0c19zczRfdjIoKSBkb2VzIHF1ZXJ5IGRpbWVuc2lvbnMgb2YgdGhlIGRldmlj ZSBhbmQgd2UNCmFib3J0IGlmIHF1ZXJ5IGZhaWxzIHNvIEkgdGhpbmsgd2UgZG8gbm90IG5lZWQg dG8gc2V0IHhfbWF4IGFuZCB5X21heA0KaGVyZS4NCg0KSSBjaGFuZ2VkIHRoaXMgYW5kIGEgZmV3 IG1vcmUgY29zbWV0aWMgdGhpbmdzLCB3aGF0IGRvIHlvdSB0aGluayBhYm91dA0KdGhlIHZlcnNp b24gb2YgdGhlIHBhdGNoIGJlbG93Pw0KDQpUaGFua3MuDQoNCi0tDQpEbWl0cnkNCg0KSW5wdXQ6 IEFMUFMgLSBhZGQgc3VwcG9ydCBmb3IgU1M0IHRvdWNocGFkIGRldmljZXMNCg0KRnJvbTogTWFz YWtpIE90YSA8bWFzYWtpLm90YUBqcC5hbHBzLmNvbT4NCg0KVGhpcyBjaGFuZ2UgYWRkcyBzdXBw b3J0IGZvciBTUzQgdG91Y2hwYWQgZGV2aWNlcyBhcyBBTFBTX1BST1RPX1Y4DQpwcm90b2NvbC4g IFRoZXkgYXJlIHJlYWwgbXVsdGktdG91Y2ggZGV2aWNlcyBhbmQgY2FuIGJlIGZvdW5kIGluIFRP U0hJQkENClRlY3JhIEM1MC4NCg0KU2lnbmVkLW9mZi1ieTogTWFzYWtpIE90YSA8bWFzYWtpLm90 YUBqcC5hbHBzLmNvbT4NCkFja2VkLWJ5OiBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQu Y29tPg0KU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFRvcm9raG92IDxkbWl0cnkudG9yb2tob3ZAZ21h aWwuY29tPg0KLS0tDQogZHJpdmVycy9pbnB1dC9tb3VzZS9hbHBzLmMgfCAgMzI4ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQogZHJpdmVycy9pbnB1dC9tb3Vz ZS9hbHBzLmggfCAgIDc4ICsrKysrKysrKysNCiAyIGZpbGVzIGNoYW5nZWQsIDQwMiBpbnNlcnRp b25zKCspLCA0IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3Vz ZS9hbHBzLmMgYi9kcml2ZXJzL2lucHV0L21vdXNlL2FscHMuYw0KaW5kZXggMDI5ZjgzMS4uODI3 NDQ3OCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaW5wdXQvbW91c2UvYWxwcy5jDQorKysgYi9kcml2 ZXJzL2lucHV0L21vdXNlL2FscHMuYw0KQEAgLTE1MywxMiArMTUzLDE4IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgYWxwc19wcm90b2NvbF9pbmZvIGFscHNfdjdfcHJvdG9jb2xfZGF0YSA9IHsNCiAg ICAgICAgQUxQU19QUk9UT19WNywgMHg0OCwgMHg0OCwgQUxQU19EVUFMUE9JTlQNCiB9Ow0KDQor c3RhdGljIGNvbnN0IHN0cnVjdCBhbHBzX3Byb3RvY29sX2luZm8gYWxwc192OF9wcm90b2NvbF9k YXRhID0gew0KKyAgICAgICBBTFBTX1BST1RPX1Y4LCAweDE4LCAweDE4LCAwDQorfTsNCisNCiBz dGF0aWMgdm9pZCBhbHBzX3NldF9hYnNfcGFyYW1zX3N0KHN0cnVjdCBhbHBzX2RhdGEgKnByaXYs DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnB1dF9kZXYgKmRl djEpOw0KIHN0YXRpYyB2b2lkIGFscHNfc2V0X2Fic19wYXJhbXNfbXQoc3RydWN0IGFscHNfZGF0 YSAqcHJpdiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlucHV0 X2RldiAqZGV2MSk7DQogc3RhdGljIHZvaWQgYWxwc19zZXRfYWJzX3BhcmFtc192NyhzdHJ1Y3Qg YWxwc19kYXRhICpwcml2LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgaW5wdXRfZGV2ICpkZXYxKTsNCitzdGF0aWMgdm9pZCBhbHBzX3NldF9hYnNfcGFyYW1zX3Nz NF92MihzdHJ1Y3QgYWxwc19kYXRhICpwcml2LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGlucHV0X2RldiAqZGV2MSk7DQoNCiAvKiBQYWNrZXQgZm9ybWF0 cyBhcmUgZGVzY3JpYmVkIGluIERvY3VtZW50YXRpb24vaW5wdXQvYWxwcy50eHQgKi8NCg0KQEAg LTEwODcsNiArMTA5MywxNzYgQEAgc3RhdGljIHZvaWQgYWxwc19wcm9jZXNzX3BhY2tldF92Nyhz dHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSkNCiAgICAgICAgICAgICAgICBhbHBzX3Byb2Nlc3NfdG91 Y2hwYWRfcGFja2V0X3Y3KHBzbW91c2UpOw0KIH0NCg0KK3Vuc2lnbmVkIGNoYXIgYWxwc19nZXRf cGt0X2lkX3NzNF92Mih1bnNpZ25lZCBjaGFyICpieXRlKQ0KK3sNCisgICAgICAgdW5zaWduZWQg Y2hhciBwa3RfaWQgPSBTUzRfUEFDS0VUX0lEX0lETEU7DQorDQorICAgICAgIGlmIChieXRlWzBd ID09IDB4MTggJiYgYnl0ZVsxXSA9PSAweDEwICYmIGJ5dGVbMl0gPT0gMHgwMCAmJg0KKyAgICAg ICAgICAgKGJ5dGVbM10gJiAweDg4KSA9PSAweDA4ICYmIGJ5dGVbNF0gPT0gMHgxMCAmJiBieXRl WzVdID09IDB4MDApIHsNCisgICAgICAgICAgICAgICBwa3RfaWQgPSBTUzRfUEFDS0VUX0lEX0lE TEU7DQorICAgICAgIH0gZWxzZSBpZiAoIShieXRlWzNdICYgMHgxMCkpIHsNCisgICAgICAgICAg ICAgICBwa3RfaWQgPSBTUzRfUEFDS0VUX0lEX09ORTsNCisgICAgICAgfSBlbHNlIGlmICghKGJ5 dGVbM10gJiAweDIwKSkgew0KKyAgICAgICAgICAgICAgIHBrdF9pZCA9IFNTNF9QQUNLRVRfSURf VFdPOw0KKyAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICAgICAgIHBrdF9pZCA9IFNTNF9QQUNL RVRfSURfTVVMVEk7DQorICAgICAgIH0NCisNCisgICAgICAgcmV0dXJuIHBrdF9pZDsNCit9DQor DQorc3RhdGljIGludCBhbHBzX2RlY29kZV9zczRfdjIoc3RydWN0IGFscHNfZmllbGRzICpmLA0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqcCwgc3RydWN0IHBz bW91c2UgKnBzbW91c2UpDQorew0KKyAgICAgICBzdHJ1Y3QgYWxwc19kYXRhICpwcml2ID0gcHNt b3VzZS0+cHJpdmF0ZTsNCisgICAgICAgdW5zaWduZWQgY2hhciBwa3RfaWQ7DQorICAgICAgIHVu c2lnbmVkIGludCBub19kYXRhX3gsIG5vX2RhdGFfeTsNCisNCisgICAgICAgcGt0X2lkID0gYWxw c19nZXRfcGt0X2lkX3NzNF92MihwKTsNCisNCisgICAgICAgLyogQ3VycmVudCBwYWNrZXQgaXMg MUZpbmdlciBjb29yZGluYXRlIHBhY2tldCAqLw0KKyAgICAgICBzd2l0Y2ggKHBrdF9pZCkgew0K KyAgICAgICBjYXNlIFNTNF9QQUNLRVRfSURfT05FOg0KKyAgICAgICAgICAgICAgIGYtPm10WzBd LnggPSBTUzRfMUZfWF9WMihwKTsNCisgICAgICAgICAgICAgICBmLT5tdFswXS55ID0gU1M0XzFG X1lfVjIocCk7DQorICAgICAgICAgICAgICAgZi0+cHJlc3N1cmUgPSAoKFNTNF8xRl9aX1YyKHAp KSAqIDIpICYgMHg3ZjsNCisgICAgICAgICAgICAgICBmLT5maW5nZXJzID0gMTsNCisgICAgICAg ICAgICAgICBmLT5maXJzdF9tcCA9IDA7DQorICAgICAgICAgICAgICAgZi0+aXNfbXAgPSAwOw0K KyAgICAgICAgICAgICAgIGJyZWFrOw0KKw0KKyAgICAgICBjYXNlIFNTNF9QQUNLRVRfSURfVFdP Og0KKyAgICAgICAgICAgICAgIGlmIChwcml2LT5mbGFncyAmIEFMUFNfQlVUVE9OUEFEKSB7DQor ICAgICAgICAgICAgICAgICAgICAgICBmLT5tdFswXS54ID0gU1M0X0JUTF9NRl9YX1YyKHAsIDAp Ow0KKyAgICAgICAgICAgICAgICAgICAgICAgZi0+bXRbMF0ueSA9IFNTNF9CVExfTUZfWV9WMihw LCAwKTsNCisgICAgICAgICAgICAgICAgICAgICAgIGYtPm10WzFdLnggPSBTUzRfQlRMX01GX1hf VjIocCwgMSk7DQorICAgICAgICAgICAgICAgICAgICAgICBmLT5tdFsxXS55ID0gU1M0X0JUTF9N Rl9ZX1YyKHAsIDEpOw0KKyAgICAgICAgICAgICAgIH0gZWxzZSB7DQorICAgICAgICAgICAgICAg ICAgICAgICBmLT5tdFswXS54ID0gU1M0X1NURF9NRl9YX1YyKHAsIDApOw0KKyAgICAgICAgICAg ICAgICAgICAgICAgZi0+bXRbMF0ueSA9IFNTNF9TVERfTUZfWV9WMihwLCAwKTsNCisgICAgICAg ICAgICAgICAgICAgICAgIGYtPm10WzFdLnggPSBTUzRfU1REX01GX1hfVjIocCwgMSk7DQorICAg ICAgICAgICAgICAgICAgICAgICBmLT5tdFsxXS55ID0gU1M0X1NURF9NRl9ZX1YyKHAsIDEpOw0K KyAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICBmLT5wcmVzc3VyZSA9IFNTNF9NRl9a X1YyKHAsIDApID8gMHgzMCA6IDA7DQorDQorICAgICAgICAgICAgICAgaWYgKFNTNF9JU19NRl9D T05USU5VRShwKSkgew0KKyAgICAgICAgICAgICAgICAgICAgICAgZi0+Zmlyc3RfbXAgPSAxOw0K KyAgICAgICAgICAgICAgIH0gZWxzZSB7DQorICAgICAgICAgICAgICAgICAgICAgICBmLT5maW5n ZXJzID0gMjsNCisgICAgICAgICAgICAgICAgICAgICAgIGYtPmZpcnN0X21wID0gMDsNCisgICAg ICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgZi0+aXNfbXAgPSAwOw0KKw0KKyAgICAgICAg ICAgICAgIGJyZWFrOw0KKw0KKyAgICAgICBjYXNlIFNTNF9QQUNLRVRfSURfTVVMVEk6DQorICAg ICAgICAgICAgICAgaWYgKHByaXYtPmZsYWdzICYgQUxQU19CVVRUT05QQUQpIHsNCisgICAgICAg ICAgICAgICAgICAgICAgIGYtPm10WzJdLnggPSBTUzRfQlRMX01GX1hfVjIocCwgMCk7DQorICAg ICAgICAgICAgICAgICAgICAgICBmLT5tdFsyXS55ID0gU1M0X0JUTF9NRl9ZX1YyKHAsIDApOw0K KyAgICAgICAgICAgICAgICAgICAgICAgZi0+bXRbM10ueCA9IFNTNF9CVExfTUZfWF9WMihwLCAx KTsNCisgICAgICAgICAgICAgICAgICAgICAgIGYtPm10WzNdLnkgPSBTUzRfQlRMX01GX1lfVjIo cCwgMSk7DQorICAgICAgICAgICAgICAgICAgICAgICBub19kYXRhX3ggPSBTUzRfTUZQQUNLRVRf Tk9fQVhfQkw7DQorICAgICAgICAgICAgICAgICAgICAgICBub19kYXRhX3kgPSBTUzRfTUZQQUNL RVRfTk9fQVlfQkw7DQorICAgICAgICAgICAgICAgfSBlbHNlIHsNCisgICAgICAgICAgICAgICAg ICAgICAgIGYtPm10WzJdLnggPSBTUzRfU1REX01GX1hfVjIocCwgMCk7DQorICAgICAgICAgICAg ICAgICAgICAgICBmLT5tdFsyXS55ID0gU1M0X1NURF9NRl9ZX1YyKHAsIDApOw0KKyAgICAgICAg ICAgICAgICAgICAgICAgZi0+bXRbM10ueCA9IFNTNF9TVERfTUZfWF9WMihwLCAxKTsNCisgICAg ICAgICAgICAgICAgICAgICAgIGYtPm10WzNdLnkgPSBTUzRfU1REX01GX1lfVjIocCwgMSk7DQor ICAgICAgICAgICAgICAgICAgICAgICBub19kYXRhX3ggPSBTUzRfTUZQQUNLRVRfTk9fQVg7DQor ICAgICAgICAgICAgICAgICAgICAgICBub19kYXRhX3kgPSBTUzRfTUZQQUNLRVRfTk9fQVk7DQor ICAgICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAgICAgIGYtPmZpcnN0X21wID0gMDsNCisg ICAgICAgICAgICAgICBmLT5pc19tcCA9IDE7DQorDQorICAgICAgICAgICAgICAgaWYgKFNTNF9J U181Rl9ERVRFQ1RFRChwKSkgew0KKyAgICAgICAgICAgICAgICAgICAgICAgZi0+ZmluZ2VycyA9 IDU7DQorICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmLT5tdFszXS54ID09IG5vX2RhdGFfeCAm Jg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLT5tdFszXS55ID09IG5vX2RhdGFfeSkg ew0KKyAgICAgICAgICAgICAgICAgICAgICAgZi0+bXRbM10ueCA9IDA7DQorICAgICAgICAgICAg ICAgICAgICAgICBmLT5tdFszXS55ID0gMDsNCisgICAgICAgICAgICAgICAgICAgICAgIGYtPmZp bmdlcnMgPSAzOw0KKyAgICAgICAgICAgICAgIH0gZWxzZSB7DQorICAgICAgICAgICAgICAgICAg ICAgICBmLT5maW5nZXJzID0gNDsNCisgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAg YnJlYWs7DQorDQorICAgICAgIGNhc2UgU1M0X1BBQ0tFVF9JRF9JRExFOg0KKyAgICAgICBkZWZh dWx0Og0KKyAgICAgICAgICAgICAgIG1lbXNldChmLCAwLCBzaXplb2Yoc3RydWN0IGFscHNfZmll bGRzKSk7DQorICAgICAgICAgICAgICAgYnJlYWs7DQorICAgICAgIH0NCisNCisgICAgICAgZi0+ bGVmdCA9ICEhKFNTNF9CVE5fVjIocCkgJiAweDAxKTsNCisgICAgICAgaWYgKCEocHJpdi0+Zmxh Z3MgJiBBTFBTX0JVVFRPTlBBRCkpIHsNCisgICAgICAgICAgICAgICBmLT5yaWdodCA9ICEhKFNT NF9CVE5fVjIocCkgJiAweDAyKTsNCisgICAgICAgICAgICAgICBmLT5taWRkbGUgPSAhIShTUzRf QlROX1YyKHApICYgMHgwNCk7DQorICAgICAgIH0NCisNCisgICAgICAgcmV0dXJuIDA7DQorfQ0K Kw0KK3N0YXRpYyB2b2lkIGFscHNfcHJvY2Vzc19wYWNrZXRfc3M0X3YyKHN0cnVjdCBwc21vdXNl ICpwc21vdXNlKQ0KK3sNCisgICAgICAgc3RydWN0IGFscHNfZGF0YSAqcHJpdiA9IHBzbW91c2Ut PnByaXZhdGU7DQorICAgICAgIHVuc2lnbmVkIGNoYXIgKnBhY2tldCA9IHBzbW91c2UtPnBhY2tl dDsNCisgICAgICAgc3RydWN0IGlucHV0X2RldiAqZGV2ID0gcHNtb3VzZS0+ZGV2Ow0KKyAgICAg ICBzdHJ1Y3QgYWxwc19maWVsZHMgKmYgPSAmcHJpdi0+ZjsNCisNCisgICAgICAgbWVtc2V0KGYs IDAsIHNpemVvZihzdHJ1Y3QgYWxwc19maWVsZHMpKTsNCisgICAgICAgcHJpdi0+ZGVjb2RlX2Zp ZWxkcyhmLCBwYWNrZXQsIHBzbW91c2UpOw0KKyAgICAgICBpZiAocHJpdi0+bXVsdGlfcGFja2V0 KSB7DQorICAgICAgICAgICAgICAgLyoNCisgICAgICAgICAgICAgICAgKiBTb21ldGltZXMgdGhl IGZpcnN0IHBhY2tldCB3aWxsIGluZGljYXRlIGEgbXVsdGktcGFja2V0DQorICAgICAgICAgICAg ICAgICogc2VxdWVuY2UsIGJ1dCBzb21ldGltZXMgdGhlIG5leHQgbXVsdGktcGFja2V0IHdvdWxk IG5vdA0KKyAgICAgICAgICAgICAgICAqIGNvbWUuIENoZWNrIGZvciB0aGlzLCBhbmQgd2hlbiBp dCBoYXBwZW5zIHByb2Nlc3MgdGhlDQorICAgICAgICAgICAgICAgICogcG9zaXRpb24gcGFja2V0 IGFzIHVzdWFsLg0KKyAgICAgICAgICAgICAgICAqLw0KKyAgICAgICAgICAgICAgIGlmIChmLT5p c19tcCkgew0KKyAgICAgICAgICAgICAgICAgICAgICAgLyogTm93IHByb2Nlc3MgdGhlIDFzdCBw YWNrZXQgKi8NCisgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPmRlY29kZV9maWVsZHMoZiwg cHJpdi0+bXVsdGlfZGF0YSwgcHNtb3VzZSk7DQorICAgICAgICAgICAgICAgfSBlbHNlIHsNCisg ICAgICAgICAgICAgICAgICAgICAgIHByaXYtPm11bHRpX3BhY2tldCA9IDA7DQorICAgICAgICAg ICAgICAgfQ0KKyAgICAgICB9DQorDQorICAgICAgIC8qDQorICAgICAgICAqICJmLmlzX21wIiB3 b3VsZCBhbHdheXMgYmUgJzAnIGFmdGVyIG1lcmdpbmcgdGhlIDFzdCBhbmQgMm5kIHBhY2tldC4N CisgICAgICAgICogV2hlbiBpdCBpcyBzZXQsIGl0IG1lYW5zIDJuZCBwYWNrZXQgY29tZXMgd2l0 aG91dCAxc3QgcGFja2V0IGNvbWUuDQorICAgICAgICAqLw0KKyAgICAgICBpZiAoZi0+aXNfbXAp DQorICAgICAgICAgICAgICAgcmV0dXJuOw0KKw0KKyAgICAgICAvKiBTYXZlIHRoZSBmaXJzdCBw YWNrZXQgKi8NCisgICAgICAgaWYgKCFwcml2LT5tdWx0aV9wYWNrZXQgJiYgZi0+Zmlyc3RfbXAp IHsNCisgICAgICAgICAgICAgICBwcml2LT5tdWx0aV9wYWNrZXQgPSAxOw0KKyAgICAgICAgICAg ICAgIG1lbWNweShwcml2LT5tdWx0aV9kYXRhLCBwYWNrZXQsIHNpemVvZihwcml2LT5tdWx0aV9k YXRhKSk7DQorICAgICAgICAgICAgICAgcmV0dXJuOw0KKyAgICAgICB9DQorDQorICAgICAgIHBy aXYtPm11bHRpX3BhY2tldCA9IDA7DQorDQorICAgICAgIGFscHNfcmVwb3J0X210X2RhdGEocHNt b3VzZSwgKGYtPmZpbmdlcnMgPD0gNCkgPyBmLT5maW5nZXJzIDogNCk7DQorDQorICAgICAgIGlu cHV0X210X3JlcG9ydF9maW5nZXJfY291bnQoZGV2LCBmLT5maW5nZXJzKTsNCisNCisgICAgICAg aW5wdXRfcmVwb3J0X2tleShkZXYsIEJUTl9MRUZULCBmLT5sZWZ0KTsNCisgICAgICAgaW5wdXRf cmVwb3J0X2tleShkZXYsIEJUTl9SSUdIVCwgZi0+cmlnaHQpOw0KKyAgICAgICBpbnB1dF9yZXBv cnRfa2V5KGRldiwgQlROX01JRERMRSwgZi0+bWlkZGxlKTsNCisNCisgICAgICAgaW5wdXRfcmVw b3J0X2FicyhkZXYsIEFCU19QUkVTU1VSRSwgZi0+cHJlc3N1cmUpOw0KKyAgICAgICBpbnB1dF9z eW5jKGRldik7DQorfQ0KKw0KK3N0YXRpYyBib29sIGFscHNfaXNfdmFsaWRfcGFja2FnZV9zczRf djIoc3RydWN0IHBzbW91c2UgKnBzbW91c2UpDQorew0KKyAgICAgICBpZiAocHNtb3VzZS0+cGt0 Y250ID09IDQgJiYgKChwc21vdXNlLT5wYWNrZXRbM10gJiAweDA4KSAhPSAweDA4KSkNCisgICAg ICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgIGlmIChwc21vdXNlLT5wa3RjbnQgPT0g NiAmJiAoKHBzbW91c2UtPnBhY2tldFs1XSAmIDB4MTApICE9IDB4MCkpDQorICAgICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICByZXR1cm4gdHJ1ZTsNCit9DQorDQogc3RhdGljIERF RklORV9NVVRFWChhbHBzX211dGV4KTsNCg0KIHN0YXRpYyB2b2lkIGFscHNfcmVnaXN0ZXJfYmFy ZV9wczJfbW91c2Uoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KQEAgLTEyODksOCArMTQ2NSwx MSBAQCBzdGF0aWMgcHNtb3VzZV9yZXRfdCBhbHBzX3Byb2Nlc3NfYnl0ZShzdHJ1Y3QgcHNtb3Vz ZSAqcHNtb3VzZSkNCiAgICAgICAgICogYSBkZXZpY2UgY29ubmVjdGVkIHRvIHRoZSBleHRlcm5h bCBQUy8yIHBvcnQuIEJlY2F1c2UgYmFyZSBQUy8yDQogICAgICAgICAqIHByb3RvY29sIGRvZXMg bm90IGhhdmUgZW5vdWdoIGNvbnN0YW50IGJpdHMgdG8gc2VsZi1zeW5jaHJvbml6ZQ0KICAgICAg ICAgKiBwcm9wZXJseSB3ZSBvbmx5IGRvIHRoaXMgaWYgdGhlIGRldmljZSBpcyBmdWxseSBzeW5j aHJvbml6ZWQuDQorICAgICAgICAqIENhbiBub3QgZGlzdGluZ3Vpc2ggVjgncyBmaXJzdCBieXRl IGZyb20gUFMvMiBwYWNrZXQncw0KICAgICAgICAgKi8NCi0gICAgICAgaWYgKCFwc21vdXNlLT5v dXRfb2Zfc3luY19jbnQgJiYgKHBzbW91c2UtPnBhY2tldFswXSAmIDB4YzgpID09IDB4MDgpIHsN CisgICAgICAgaWYgKHByaXYtPnByb3RvX3ZlcnNpb24gIT0gQUxQU19QUk9UT19WOCAmJg0KKyAg ICAgICAgICAgIXBzbW91c2UtPm91dF9vZl9zeW5jX2NudCAmJg0KKyAgICAgICAgICAgKHBzbW91 c2UtPnBhY2tldFswXSAmIDB4YzgpID09IDB4MDgpIHsNCg0KICAgICAgICAgICAgICAgIC8qIFJl Z2lzdGVyIGRldjMgbW91c2UgaWYgd2UgcmVjZWl2ZWQgUFMvMiBwYWNrZXQgZmlyc3QgdGltZSAq Lw0KICAgICAgICAgICAgICAgIGlmICh1bmxpa2VseSghcHJpdi0+ZGV2MykpDQpAQCAtMTM0Nyw4 ICsxNTI2LDEwIEBAIHN0YXRpYyBwc21vdXNlX3JldF90IGFscHNfcHJvY2Vzc19ieXRlKHN0cnVj dCBwc21vdXNlICpwc21vdXNlKQ0KICAgICAgICAgICAgICAgIHJldHVybiBQU01PVVNFX0JBRF9E QVRBOw0KICAgICAgICB9DQoNCi0gICAgICAgaWYgKHByaXYtPnByb3RvX3ZlcnNpb24gPT0gQUxQ U19QUk9UT19WNyAmJg0KLSAgICAgICAgICAgIWFscHNfaXNfdmFsaWRfcGFja2FnZV92Nyhwc21v dXNlKSkgew0KKyAgICAgICBpZiAoKHByaXYtPnByb3RvX3ZlcnNpb24gPT0gQUxQU19QUk9UT19W NyAmJg0KKyAgICAgICAgICAgICAgICAgICAgICAgIWFscHNfaXNfdmFsaWRfcGFja2FnZV92Nyhw c21vdXNlKSkgfHwNCisgICAgICAgICAgIChwcml2LT5wcm90b192ZXJzaW9uID09IEFMUFNfUFJP VE9fVjggJiYNCisgICAgICAgICAgICAgICAgICAgICAgICFhbHBzX2lzX3ZhbGlkX3BhY2thZ2Vf c3M0X3YyKHBzbW91c2UpKSkgew0KICAgICAgICAgICAgICAgIHBzbW91c2VfZGJnKHBzbW91c2Us ICJyZWZ1c2luZyBwYWNrZXRbJWldID0gJXhcbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgcHNtb3VzZS0+cGt0Y250IC0gMSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc21v dXNlLT5wYWNrZXRbcHNtb3VzZS0+cGt0Y250IC0gMV0pOw0KQEAgLTIxMjMsNiArMjMwNCw4OCBA QCBlcnJvcjoNCiAgICAgICAgcmV0dXJuIC0xOw0KIH0NCg0KK3N0YXRpYyBpbnQgYWxwc19nZXRf b3RwX3ZhbHVlc19zczRfdjIoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaW5kZXgsIHVuc2lnbmVkIGNo YXIgb3RwW10pDQorew0KKyAgICAgICBzdHJ1Y3QgcHMyZGV2ICpwczJkZXYgPSAmcHNtb3VzZS0+ cHMyZGV2Ow0KKw0KKyAgICAgICBzd2l0Y2ggKGluZGV4KSB7DQorICAgICAgIGNhc2UgMDoNCisg ICAgICAgICAgICAgICBpZiAocHMyX2NvbW1hbmQocHMyZGV2LCBOVUxMLCBQU01PVVNFX0NNRF9T RVRTVFJFQU0pICB8fA0KKyAgICAgICAgICAgICAgICAgICBwczJfY29tbWFuZChwczJkZXYsIE5V TEwsIFBTTU9VU0VfQ01EX1NFVFNUUkVBTSkgIHx8DQorICAgICAgICAgICAgICAgICAgIHBzMl9j b21tYW5kKHBzMmRldiwgb3RwLCBQU01PVVNFX0NNRF9HRVRJTkZPKSkNCisgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiAtMTsNCisNCisgICAgICAgICAgICAgICBicmVhazsNCisNCisgICAg ICAgY2FzZSAxOg0KKyAgICAgICAgICAgICAgIGlmIChwczJfY29tbWFuZChwczJkZXYsIE5VTEws IFBTTU9VU0VfQ01EX1NFVFBPTEwpICB8fA0KKyAgICAgICAgICAgICAgICAgICBwczJfY29tbWFu ZChwczJkZXYsIE5VTEwsIFBTTU9VU0VfQ01EX1NFVFBPTEwpICB8fA0KKyAgICAgICAgICAgICAg ICAgICBwczJfY29tbWFuZChwczJkZXYsIG90cCwgUFNNT1VTRV9DTURfR0VUSU5GTykpDQorICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQorDQorICAgICAgICAgICAgICAgYnJlYWs7 DQorICAgICAgIH0NCisNCisgICAgICAgcmV0dXJuIDA7DQorfQ0KKw0KK2ludCBhbHBzX3VwZGF0 ZV9kZXZpY2VfYXJlYV9zczRfdjIodW5zaWduZWQgY2hhciBvdHBbXVs0XSwNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFscHNfZGF0YSAqcHJpdikNCit7DQorICAg ICAgIGludCBudW1feF9lbGVjdHJvZGU7DQorICAgICAgIGludCBudW1feV9lbGVjdHJvZGU7DQor ICAgICAgIGludCB4X3BpdGNoLCB5X3BpdGNoLCB4X3BoeXMsIHlfcGh5czsNCisNCisgICAgICAg bnVtX3hfZWxlY3Ryb2RlID0gU1M0X05VTVNFTlNPUl9YT0ZGU0VUICsgKG90cFsxXVswXSAmIDB4 MEYpOw0KKyAgICAgICBudW1feV9lbGVjdHJvZGUgPSBTUzRfTlVNU0VOU09SX1lPRkZTRVQgKyAo KG90cFsxXVswXSA+PiA0KSAmIDB4MEYpOw0KKw0KKyAgICAgICBwcml2LT54X21heCA9IChudW1f eF9lbGVjdHJvZGUgLSAxKSAqIFNTNF9DT1VOVF9QRVJfRUxFQ1RST0RFOw0KKyAgICAgICBwcml2 LT55X21heCA9IChudW1feV9lbGVjdHJvZGUgLSAxKSAqIFNTNF9DT1VOVF9QRVJfRUxFQ1RST0RF Ow0KKw0KKyAgICAgICB4X3BpdGNoID0gKChvdHBbMV1bMl0gPj4gMikgJiAweDA3KSArIFNTNF9N SU5fUElUQ0hfTU07DQorICAgICAgIHlfcGl0Y2ggPSAoKG90cFsxXVsyXSA+PiA1KSAmIDB4MDcp ICsgU1M0X01JTl9QSVRDSF9NTTsNCisNCisgICAgICAgeF9waHlzID0geF9waXRjaCAqIChudW1f eF9lbGVjdHJvZGUgLSAxKTsgLyogSW4gMC4xIG1tIHVuaXRzICovDQorICAgICAgIHlfcGh5cyA9 IHlfcGl0Y2ggKiAobnVtX3lfZWxlY3Ryb2RlIC0gMSk7IC8qIEluIDAuMSBtbSB1bml0cyAqLw0K Kw0KKyAgICAgICBwcml2LT54X3JlcyA9IHByaXYtPnhfbWF4ICogMTAgLyB4X3BoeXM7IC8qIHVu aXRzIC8gbW0gKi8NCisgICAgICAgcHJpdi0+eV9yZXMgPSBwcml2LT55X21heCAqIDEwIC8geV9w aHlzOyAvKiB1bml0cyAvIG1tICovDQorDQorICAgICAgIHJldHVybiAwOw0KK30NCisNCitpbnQg YWxwc191cGRhdGVfYnRuX2luZm9fc3M0X3YyKHVuc2lnbmVkIGNoYXIgb3RwW11bNF0sIHN0cnVj dCBhbHBzX2RhdGEgKnByaXYpDQorew0KKw0KKyAgICAgICB1bnNpZ25lZCBjaGFyIGlzX2J0bmxl c3M7DQorDQorICAgICAgIGlzX2J0bmxlc3MgPSAob3RwWzFdWzFdID4+IDMpICYgMHgwMTsNCisN CisgICAgICAgaWYgKGlzX2J0bmxlc3MpDQorICAgICAgICAgICAgICAgcHJpdi0+ZmxhZ3MgfD0g QUxQU19CVVRUT05QQUQ7DQorDQorICAgICAgIHJldHVybiAwOw0KK30NCisNCitzdGF0aWMgaW50 IGFscHNfc2V0X2RlZmF1bHRzX3NzNF92MihzdHJ1Y3QgcHNtb3VzZSAqcHNtb3VzZSwNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhbHBzX2RhdGEgKnByaXYpDQor ew0KKyAgICAgICB1bnNpZ25lZCBjaGFyIG90cFsyXVs0XTsNCisNCisgICAgICAgbWVtc2V0KG90 cCwgMCwgc2l6ZW9mKG90cCkpOw0KKw0KKyAgICAgICBpZiAoYWxwc19nZXRfb3RwX3ZhbHVlc19z czRfdjIocHNtb3VzZSwgMCwgJm90cFswXVswXSkgfHwNCisgICAgICAgICAgIGFscHNfZ2V0X290 cF92YWx1ZXNfc3M0X3YyKHBzbW91c2UsIDEsICZvdHBbMV1bMF0pKQ0KKyAgICAgICAgICAgICAg IHJldHVybiAtMTsNCisNCisgICAgICAgYWxwc191cGRhdGVfZGV2aWNlX2FyZWFfc3M0X3YyKG90 cCwgcHJpdik7DQorDQorICAgICAgIGFscHNfdXBkYXRlX2J0bl9pbmZvX3NzNF92MihvdHAsIHBy aXYpOw0KKw0KKyAgICAgICByZXR1cm4gMDsNCit9DQorDQogc3RhdGljIGludCBhbHBzX2RvbHBo aW5fZ2V0X2RldmljZV9hcmVhKHN0cnVjdCBwc21vdXNlICpwc21vdXNlLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhbHBzX2RhdGEgKnByaXYpDQogew0K QEAgLTIyMTUsNiArMjQ3OCwzNSBAQCBlcnJvcjoNCiAgICAgICAgcmV0dXJuIHJldDsNCiB9DQoN CitzdGF0aWMgaW50IGFscHNfaHdfaW5pdF9zczRfdjIoc3RydWN0IHBzbW91c2UgKnBzbW91c2Up DQorew0KKyAgICAgICBzdHJ1Y3QgcHMyZGV2ICpwczJkZXYgPSAmcHNtb3VzZS0+cHMyZGV2Ow0K KyAgICAgICBjaGFyIHBhcmFtWzJdID0gezB4NjQsIDB4Mjh9Ow0KKyAgICAgICBpbnQgcmV0ID0g LTE7DQorDQorICAgICAgIC8qIGVudGVyIGFic29sdXRlIG1vZGUgKi8NCisgICAgICAgaWYgKHBz Ml9jb21tYW5kKHBzMmRldiwgTlVMTCwgUFNNT1VTRV9DTURfU0VUU1RSRUFNKSB8fA0KKyAgICAg ICAgICAgcHMyX2NvbW1hbmQocHMyZGV2LCBOVUxMLCBQU01PVVNFX0NNRF9TRVRTVFJFQU0pIHx8 DQorICAgICAgICAgICBwczJfY29tbWFuZChwczJkZXYsICZwYXJhbVswXSwgUFNNT1VTRV9DTURf U0VUUkFURSkgfHwNCisgICAgICAgICAgIHBzMl9jb21tYW5kKHBzMmRldiwgJnBhcmFtWzFdLCBQ U01PVVNFX0NNRF9TRVRSQVRFKSkgew0KKyAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7DQorICAg ICAgIH0NCisNCisgICAgICAgLyogVC5CLkQuIERlY3JlYWQgbm9pc2UgcGFja2V0IG51bWJlciwg ZGVsZXRlIGluIHRoZSBmdXR1cmUgKi8NCisgICAgICAgaWYgKGFscHNfZXhpdF9jb21tYW5kX21v ZGUocHNtb3VzZSkgfHwNCisgICAgICAgICAgIGFscHNfZW50ZXJfY29tbWFuZF9tb2RlKHBzbW91 c2UpIHx8DQorICAgICAgICAgICBhbHBzX2NvbW1hbmRfbW9kZV93cml0ZV9yZWcocHNtb3VzZSwg MHgwMDFELCAweDIwKSkgew0KKyAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7DQorICAgICAgIH0N CisgICAgICAgYWxwc19leGl0X2NvbW1hbmRfbW9kZShwc21vdXNlKTsNCisNCisgICAgICAgcmV0 dXJuIHBzMl9jb21tYW5kKHBzMmRldiwgTlVMTCwgUFNNT1VTRV9DTURfRU5BQkxFKTsNCisNCitl cnJvcjoNCisgICAgICAgYWxwc19leGl0X2NvbW1hbmRfbW9kZShwc21vdXNlKTsNCisgICAgICAg cmV0dXJuIHJldDsNCit9DQorDQogc3RhdGljIGludCBhbHBzX3NldF9wcm90b2NvbChzdHJ1Y3Qg cHNtb3VzZSAqcHNtb3VzZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFs cHNfZGF0YSAqcHJpdiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0 IGFscHNfcHJvdG9jb2xfaW5mbyAqcHJvdG9jb2wpDQpAQCAtMjMxNCw2ICsyNjA2LDE5IEBAIHN0 YXRpYyBpbnQgYWxwc19zZXRfcHJvdG9jb2woc3RydWN0IHBzbW91c2UgKnBzbW91c2UsDQogICAg ICAgICAgICAgICAgICAgICAgICBwcml2LT5mbGFncyB8PSBBTFBTX0JVVFRPTlBBRDsNCg0KICAg ICAgICAgICAgICAgIGJyZWFrOw0KKw0KKyAgICAgICBjYXNlIEFMUFNfUFJPVE9fVjg6DQorICAg ICAgICAgICAgICAgcHJpdi0+aHdfaW5pdCA9IGFscHNfaHdfaW5pdF9zczRfdjI7DQorICAgICAg ICAgICAgICAgcHJpdi0+cHJvY2Vzc19wYWNrZXQgPSBhbHBzX3Byb2Nlc3NfcGFja2V0X3NzNF92 MjsNCisgICAgICAgICAgICAgICBwcml2LT5kZWNvZGVfZmllbGRzID0gYWxwc19kZWNvZGVfc3M0 X3YyOw0KKyAgICAgICAgICAgICAgIHByaXYtPnNldF9hYnNfcGFyYW1zID0gYWxwc19zZXRfYWJz X3BhcmFtc19zczRfdjI7DQorICAgICAgICAgICAgICAgcHJpdi0+bmliYmxlX2NvbW1hbmRzID0g YWxwc192M19uaWJibGVfY29tbWFuZHM7DQorICAgICAgICAgICAgICAgcHJpdi0+YWRkcl9jb21t YW5kID0gUFNNT1VTRV9DTURfUkVTRVRfV1JBUDsNCisNCisgICAgICAgICAgICAgICBpZiAoYWxw c19zZXRfZGVmYXVsdHNfc3M0X3YyKHBzbW91c2UsIHByaXYpKQ0KKyAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIC1FSU87DQorDQorICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0N Cg0KICAgICAgICByZXR1cm4gMDsNCkBAIC0yMzgyLDYgKzI2ODcsOSBAQCBzdGF0aWMgaW50IGFs cHNfaWRlbnRpZnkoc3RydWN0IHBzbW91c2UgKnBzbW91c2UsIHN0cnVjdCBhbHBzX2RhdGEgKnBy aXYpDQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlY1swXSA9PSAweDg4ICYmIGVjWzFdID09 IDB4MDcgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjWzJdID49IDB4OTAgJiYgZWNb Ml0gPD0gMHg5ZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2wgPSAmYWxwc192 M19wcm90b2NvbF9kYXRhOw0KKyAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZTdbMF0gPT0gMHg3 MyAmJiBlN1sxXSA9PSAweDAzICYmDQorICAgICAgICAgICAgICAgICAgICAgICAgICBlN1syXSA9 PSAweDE0ICYmIGVjWzFdID09IDB4MDIpIHsNCisgICAgICAgICAgICAgICAgICAgICAgIHByb3Rv Y29sID0gJmFscHNfdjhfcHJvdG9jb2xfZGF0YTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0K ICAgICAgICAgICAgICAgICAgICAgICAgcHNtb3VzZV9kYmcocHNtb3VzZSwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJMaWtlbHkgbm90IGFuIEFMUFMgdG91Y2hwYWQ6IEU3 PSUzcGgsIEVDPSUzcGhcbiIsIGU3LCBlYyk7DQpAQCAtMjQ2NSw2ICsyNzczLDIwIEBAIHN0YXRp YyB2b2lkIGFscHNfc2V0X2Fic19wYXJhbXNfdjcoc3RydWN0IGFscHNfZGF0YSAqcHJpdiwNCiAg ICAgICAgaW5wdXRfbXRfaW5pdF9zbG90cyhkZXYxLCBNQVhfVE9VQ0hFUywNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJTlBVVF9NVF9QT0lOVEVSIHwgSU5QVVRfTVRfRFJPUF9VTlVTRUQg fA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlBVVF9NVF9UUkFDSyk7DQorDQor ICAgICAgIHNldF9iaXQoQlROX1RPT0xfUVVJTlRUQVAsIGRldjEtPmtleWJpdCk7DQorfQ0KKw0K K3N0YXRpYyB2b2lkIGFscHNfc2V0X2Fic19wYXJhbXNfc3M0X3YyKHN0cnVjdCBhbHBzX2RhdGEg KnByaXYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW5w dXRfZGV2ICpkZXYxKQ0KK3sNCisgICAgICAgYWxwc19zZXRfYWJzX3BhcmFtc19tdF9jb21tb24o cHJpdiwgZGV2MSk7DQorICAgICAgIGlucHV0X3NldF9hYnNfcGFyYW1zKGRldjEsIEFCU19QUkVT U1VSRSwgMCwgMTI3LCAwLCAwKTsNCisgICAgICAgc2V0X2JpdChCVE5fVE9PTF9RVUlOVFRBUCwg ZGV2MS0+a2V5Yml0KTsNCisNCisgICAgICAgaW5wdXRfbXRfaW5pdF9zbG90cyhkZXYxLCBNQVhf VE9VQ0hFUywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlBVVF9NVF9QT0lOVEVSIHwg SU5QVVRfTVRfRFJPUF9VTlVTRUQgfA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ TlBVVF9NVF9UUkFDSyk7DQogfQ0KDQogaW50IGFscHNfaW5pdChzdHJ1Y3QgcHNtb3VzZSAqcHNt b3VzZSkNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21vdXNlL2FscHMuaCBiL2RyaXZlcnMv aW5wdXQvbW91c2UvYWxwcy5oDQppbmRleCAwMjUxM2MwLi42ZGZkY2NjIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9pbnB1dC9tb3VzZS9hbHBzLmgNCisrKyBiL2RyaXZlcnMvaW5wdXQvbW91c2UvYWxw cy5oDQpAQCAtMjIsMTQgKzIyLDkwIEBADQogI2RlZmluZSBBTFBTX1BST1RPX1Y1ICAgICAgICAg IDB4NTAwDQogI2RlZmluZSBBTFBTX1BST1RPX1Y2ICAgICAgICAgIDB4NjAwDQogI2RlZmluZSBB TFBTX1BST1RPX1Y3ICAgICAgICAgIDB4NzAwICAgLyogdDNidGwgdDRzICovDQorI2RlZmluZSBB TFBTX1BST1RPX1Y4ICAgICAgICAgIDB4ODAwICAgLyogU1M0YnRsIFNTNHMgKi8NCg0KLSNkZWZp bmUgTUFYX1RPVUNIRVMgICAgMg0KKyNkZWZpbmUgTUFYX1RPVUNIRVMgICAgNA0KDQogI2RlZmlu ZSBET0xQSElOX0NPVU5UX1BFUl9FTEVDVFJPREUgICAgNjQNCiAjZGVmaW5lIERPTFBISU5fUFJP RklMRV9YT0ZGU0VUICAgICAgICAgICAgICAgIDggICAgICAgLyogeC1lbGVjdHJvZGUgb2Zmc2V0 ICovDQogI2RlZmluZSBET0xQSElOX1BST0ZJTEVfWU9GRlNFVCAgICAgICAgICAgICAgICAxICAg ICAgIC8qIHktZWxlY3Ryb2RlIG9mZnNldCAqLw0KDQogLyoNCisgKiBlbnVtIFNTNF9QQUNLRVRf SUQgLSBkZWZpbmVzIHRoZSBwYWNrZXQgdHlwZSBmb3IgVjgNCisgKiBTUzRfUEFDS0VUX0lEX0lE TEU6IFRoZXJlJ3Mgbm8gZmluZ2VyIGFuZCBubyBidXR0b24gYWN0aXZpdHkuDQorICogU1M0X1BB Q0tFVF9JRF9PTkU6IFRoZXJlJ3Mgb25lIGZpbmdlciBvbiB0b3VjaHBhZA0KKyAqICBvciB0aGVy ZSdzIGJ1dHRvbiBhY3Rpdml0aWVzLg0KKyAqIFNTNF9QQUNLRVRfSURfVFdPOiBUaGVyZSdzIHR3 byBvciBtb3JlIGZpbmdlcnMgb24gdG91Y2hwYWQNCisgKiBTUzRfUEFDS0VUX0lEX01VTFRJOiBU aGVyZSdzIHRocmVlIG9yIG1vcmUgZmluZ2VycyBvbiB0b3VjaHBhZA0KKyovDQorZW51bSBTUzRf UEFDS0VUX0lEIHsNCisgICAgICAgU1M0X1BBQ0tFVF9JRF9JRExFID0gMCwNCisgICAgICAgU1M0 X1BBQ0tFVF9JRF9PTkUsDQorICAgICAgIFNTNF9QQUNLRVRfSURfVFdPLA0KKyAgICAgICBTUzRf UEFDS0VUX0lEX01VTFRJLA0KK307DQorDQorI2RlZmluZSBTUzRfQ09VTlRfUEVSX0VMRUNUUk9E RSAgICAgICAgICAgICAgICAyNTYNCisjZGVmaW5lIFNTNF9OVU1TRU5TT1JfWE9GRlNFVCAgICAg ICAgICA3DQorI2RlZmluZSBTUzRfTlVNU0VOU09SX1lPRkZTRVQgICAgICAgICAgNw0KKyNkZWZp bmUgU1M0X01JTl9QSVRDSF9NTSAgICAgICAgICAgICAgIDUwDQorDQorI2RlZmluZSBTUzRfTUFT S19OT1JNQUxfQlVUVE9OUyAgICAgICAgICAgICAgICAweDA3DQorDQorI2RlZmluZSBTUzRfMUZf WF9WMihfYikgICAgICAgICAgICAgICAgKChfYlswXSAmIDB4MDAwNykgfCAgICAgICAgICAgICBc DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKF9iWzFdIDw8IDMpICYgMHgwMDc4 KSB8ICAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChfYlsxXSA8PCAy KSAmIDB4MDM4MCkgfCAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgo X2JbMl0gPDwgNSkgJiAweDFDMDApICAgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkNCisNCisjZGVmaW5lIFNTNF8xRl9ZX1YyKF9iKSAgICAgICAgICAgICAgICAoKChf YlsyXSkgJiAweDAwMEYpIHwgICAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgoX2JbM10gPj4gMikgJiAweDAwMzApIHwgICAgICBcDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoKF9iWzRdIDw8IDYpICYgMHgwM0MwKSB8ICAgICAgXA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKChfYls0XSA8PCA1KSAmIDB4MEMwMCkgICAgICAg IFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KKw0KKyNkZWZpbmUgU1M0XzFG X1pfVjIoX2IpICAgICAgICAgICAgICAgICgoKF9iWzVdKSAmIDB4MEYpIHwgICAgICAgICAgICAg XA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChfYls1XSA+PiAxKSAmIDB4NzAp IHwgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoX2JbNF0pICYg MHg4MCkgICAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkN CisNCisjZGVmaW5lIFNTNF8xRl9MRkJfVjIoX2IpICAgICAgKCgoX2JbMl0gPj4gNCkgJiAweDAx KSA9PSAweDAxKQ0KKw0KKyNkZWZpbmUgU1M0X01GX0xGX1YyKF9iLCBfaSkgICAoKF9iWzEgKyAo X2kpICogM10gJiAweDAwMDQpID09IDB4MDAwNCkNCisNCisjZGVmaW5lIFNTNF9CVE5fVjIoX2Ip ICAgICAgICAgKChfYlswXSA+PiA1KSAmIFNTNF9NQVNLX05PUk1BTF9CVVRUT05TKQ0KKw0KKyNk ZWZpbmUgU1M0X1NURF9NRl9YX1YyKF9iLCBfaSkgICAgICAgICgoKF9iWzAgKyAoX2kpICogM10g PDwgNSkgJiAweDAwRTApIHwgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo KF9iWzEgKyBfaSAqIDNdICA8PCA1KSAmIDB4MUYwMCkgICAgICBcDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkNCisNCisjZGVmaW5lIFNTNF9TVERfTUZfWV9WMihfYiwgX2kpICAg ICAgICAoKChfYlsxICsgKF9pKSAqIDNdIDw8IDMpICYgMHgwMDEwKSB8ICAgXA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKChfYlsyICsgKF9pKSAqIDNdIDw8IDUpICYgMHgwMUUw KSB8ICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChfYlsyICsgKF9pKSAq IDNdIDw8IDQpICYgMHgwRTAwKSAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICApDQorDQorI2RlZmluZSBTUzRfQlRMX01GX1hfVjIoX2IsIF9pKSAgICAgICAgKFNTNF9TVERf TUZfWF9WMihfYiwgX2kpIHwgICAgICAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgoX2JbMCArIChfaSkgKiAzXSA+PiAzKSAmIDB4MDAxMCkgICAgIFwNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KKw0KKyNkZWZpbmUgU1M0X0JUTF9NRl9ZX1Yy KF9iLCBfaSkgICAgICAgIChTUzRfU1REX01GX1lfVjIoX2IsIF9pKSB8IFwNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgoX2JbMCArIChfaSkgKiAzXSA+PiAzKSAmIDB4MDAwOCkg ICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KKw0KKyNkZWZpbmUgU1M0 X01GX1pfVjIoX2IsIF9pKSAgICAoKChfYlsxICsgKF9pKSAqIDNdKSAmIDB4MDAwMSkgfCAgICAg ICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChfYlsxICsgKF9pKSAqIDNd ID4+IDEpICYgMHgwMDAyKSAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp DQorDQorI2RlZmluZSBTUzRfSVNfTUZfQ09OVElOVUUoX2IpICgoX2JbMl0gJiAweDEwKSA9PSAw eDEwKQ0KKyNkZWZpbmUgU1M0X0lTXzVGX0RFVEVDVEVEKF9iKSAoKF9iWzJdICYgMHgxMCkgPT0g MHgxMCkNCisNCisNCisjZGVmaW5lIFNTNF9NRlBBQ0tFVF9OT19BWCAgICAgODE2MCAgICAvKiBY LUNvb3JkaW5hdGUgdmFsdWUgKi8NCisjZGVmaW5lIFNTNF9NRlBBQ0tFVF9OT19BWSAgICAgNDA4 MCAgICAvKiBZLUNvb3JkaW5hdGUgdmFsdWUgKi8NCisjZGVmaW5lIFNTNF9NRlBBQ0tFVF9OT19B WF9CTCAgODE3NiAgICAvKiBCdXR0b25sZXNzIFgtQ29vcmRpbmF0ZSB2YWx1ZSAqLw0KKyNkZWZp bmUgU1M0X01GUEFDS0VUX05PX0FZX0JMICA0MDg4ICAgIC8qIEJ1dHRvbmxlc3MgWS1Db29yZGlu YXRlIHZhbHVlICovDQorDQorLyoNCiAgKiBlbnVtIFY3X1BBQ0tFVF9JRCAtIGRlZmluZXMgdGhl IHBhY2tldCB0eXBlIGZvciBWNw0KICAqIFY3X1BBQ0tFVF9JRF9JRExFOiBUaGVyZSdzIG5vIGZp bmdlciBhbmQgbm8gYnV0dG9uIGFjdGl2aXR5Lg0KICAqIFY3X1BBQ0tFVF9JRF9UV086IFRoZXJl J3Mgb25lIG9yIHR3byBub24tcmVzdGluZyBmaW5nZXJzIG9uIHRvdWNocGFkDQo=