Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Thu, 15 Mar 2001 16:12:26 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Thu, 15 Mar 2001 16:12:17 -0500 Received: from www2.scram.de ([195.226.127.84]:6361 "EHLO www2.scram.de") by vger.kernel.org with ESMTP id ; Thu, 15 Mar 2001 16:12:02 -0500 Date: Thu, 15 Mar 2001 22:11:14 +0100 (CET) From: Jochen Friedrich To: Subject: Linux Patch 2.4.2 for AVM A1 PCMCIA Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/Mixed; BOUNDARY="-1463804317-1548386187-984246539=:2270" Content-ID: Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---1463804317-1548386187-984246539=:2270 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: Hello, this patch includes the ISDN driver for AVM A1 PCMCIA from Carsten Paeth into the linux kernel sources. Without the patch, it might be confusing for a user to be able to select AVM A1 PCMCIA support for the kernel, but it still doesn't work (because the PCMCIA part is missing). Cheers, Jochen ---1463804317-1548386187-984246539=:2270 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME=avmdiff Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: ATTACHMENT; FILENAME=avmdiff ZGlmZiAtdSAtciAtTiBsaW51eC9kcml2ZXJzL2lzZG4vTWFrZWZpbGUgbGlu dXgtMi40LjIvZHJpdmVycy9pc2RuL01ha2VmaWxlDQotLS0gbGludXgvZHJp dmVycy9pc2RuL01ha2VmaWxlCUZyaSBEZWMgMjkgMjM6NDA6NTQgMjAwMA0K KysrIGxpbnV4LTIuNC4yL2RyaXZlcnMvaXNkbi9NYWtlZmlsZQlTYXQgTWFy IDEwIDE1OjU1OjU5IDIwMDENCkBAIC00NSw2ICs0NSwxNSBAQA0KIHN1YmRp ci0kKENPTkZJR19JU0ROX0RSVl9FSUNPTikJCSs9IGVpY29uDQogc3ViZGly LSQoQ09ORklHX0hZU0ROKQkJCSs9IGh5c2RuDQogDQoraWZlcSAoJChDT05G SUdfUENNQ0lBKSx5KQ0KKyAgc3ViZGlyLXkgKz0gcGNtY2lhDQorICBzdWJk aXItbSArPSBwY21jaWENCitlbHNlDQorICBpZmVxICgkKENPTkZJR19QQ01D SUEpLG0pDQorICAgIHN1YmRpci1tICs9IHBjbWNpYQ0KKyAgZW5kaWYNCitl bmRpZg0KKw0KIG9iai15ICs9ICQoYWRkc3VmZml4IC92bWxpbnV4LW9iai5v LCAkKHN1YmRpci15KSkNCiANCiAjIFRoZSBnbG9iYWwgUnVsZXMubWFrZS4N CmRpZmYgLXUgLXIgLU4gbGludXgvZHJpdmVycy9pc2RuL3BjbWNpYS9NYWtl ZmlsZSBsaW51eC0yLjQuMi9kcml2ZXJzL2lzZG4vcGNtY2lhL01ha2VmaWxl DQotLS0gbGludXgvZHJpdmVycy9pc2RuL3BjbWNpYS9NYWtlZmlsZQlUaHUg SmFuICAxIDAxOjAwOjAwIDE5NzANCisrKyBsaW51eC0yLjQuMi9kcml2ZXJz L2lzZG4vcGNtY2lhL01ha2VmaWxlCVNhdCBNYXIgMTAgMTU6NTU6MzAgMjAw MQ0KQEAgLTAsMCArMSwyMCBAQA0KKyMNCisjIE1ha2VmaWxlIGZvciBkcml2 ZXJzL2lzZG4vcGNtY2lhDQorIw0KKyMgTm90ZSEgRGVwZW5kZW5jaWVzIGFy ZSBkb25lIGF1dG9tYWdpY2FsbHkgYnkgJ21ha2UgZGVwJywgd2hpY2ggYWxz bw0KKyMgcmVtb3ZlcyBhbnkgb2xkIGRlcGVuZGVuY2llcy4gRE9OJ1QgcHV0 IHlvdXIgb3duIGRlcGVuZGVuY2llcyBoZXJlDQorIyB1bmxlc3MgaXQncyBz b21ldGhpbmcgc3BlY2lhbCAoaWUgbm90IGEgLmMgZmlsZSkuDQorIw0KKw0K K29iai15ICAgOj0NCitvYmotbiAgIDo9DQorb2JqLW0gICA6PQ0KK29iai0g ICAgOj0NCisNCitpZmVxICgkKENPTkZJR19JU0ROX0RSVl9ISVNBWCksbSkN CisgIGlmZXEgKCQoQ09ORklHX0hJU0FYX0FWTV9BMV9QQ01DSUEpLHkpDQor ICAgIG9iai1tICs9IGF2bWExX2NzLm8NCisgIGVuZGlmDQorZW5kaWYNCisN CitpbmNsdWRlICQoVE9QRElSKS9SdWxlcy5tYWtlDQpkaWZmIC11IC1yIC1O IGxpbnV4L2RyaXZlcnMvaXNkbi9wY21jaWEvYXZtYTFfY3MuYyBsaW51eC0y LjQuMi9kcml2ZXJzL2lzZG4vcGNtY2lhL2F2bWExX2NzLmMNCi0tLSBsaW51 eC9kcml2ZXJzL2lzZG4vcGNtY2lhL2F2bWExX2NzLmMJVGh1IEphbiAgMSAw MTowMDowMCAxOTcwDQorKysgbGludXgtMi40LjIvZHJpdmVycy9pc2RuL3Bj bWNpYS9hdm1hMV9jcy5jCVNhdCBNYXIgMTAgMTU6NTU6MzAgMjAwMQ0KQEAg LTAsMCArMSw1NDEgQEANCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N CisNCisgICAgQSBQQ01DSUEgY2xpZW50IGRyaXZlciBmb3IgQVZNIEIxL00x L00yDQorDQorICAgIFdyaXR0ZW4gYnkgQ2Fyc3RlbiBQYWV0aCwgY2FsbGVA Y2FsbGUuaW4tYmVybGluLmRlDQorICAgIA0KKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0qLw0KKw0KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCisj aW5jbHVkZSA8bGludXgva2VybmVsLmg+DQorI2luY2x1ZGUgPGxpbnV4L3Nj aGVkLmg+DQorI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPg0KKyNpbmNsdWRl IDxsaW51eC9tYWxsb2MuaD4NCisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+ DQorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+DQorI2luY2x1ZGUgPGFzbS9p by5oPg0KKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+DQorDQorI2luY2x1ZGUg PHBjbWNpYS92ZXJzaW9uLmg+DQorI2luY2x1ZGUgPHBjbWNpYS9jc190eXBl cy5oPg0KKyNpbmNsdWRlIDxwY21jaWEvY3MuaD4NCisjaW5jbHVkZSA8cGNt Y2lhL2Npc3RwbC5oPg0KKyNpbmNsdWRlIDxwY21jaWEvZHMuaD4NCisNCitp bnQgYXZtX2ExX2luaXRfcGNtY2lhKHZvaWQgKnBjbV9pb2IsIGludCBwY21f aXJxLCBpbnQgKmJ1c3lfZmxhZywgaW50IHByb3QpOw0KK3ZvaWQgSGlTYXhf Y2xvc2VjYXJkKGludCBjYXJkbnIpOw0KKw0KKw0KKy8qDQorICAgQWxsIHRo ZSBQQ01DSUEgbW9kdWxlcyB1c2UgUENNQ0lBX0RFQlVHIHRvIGNvbnRyb2wg ZGVidWdnaW5nLiAgSWYNCisgICB5b3UgZG8gbm90IGRlZmluZSBQQ01DSUFf REVCVUcgYXQgYWxsLCBhbGwgdGhlIGRlYnVnIGNvZGUgd2lsbCBiZQ0KKyAg IGxlZnQgb3V0LiAgSWYgeW91IGNvbXBpbGUgd2l0aCBQQ01DSUFfREVCVUc9 MCwgdGhlIGRlYnVnIGNvZGUgd2lsbA0KKyAgIGJlIHByZXNlbnQgYnV0IGRp c2FibGVkIC0tIGJ1dCBpdCBjYW4gdGhlbiBiZSBlbmFibGVkIGZvciBzcGVj aWZpYw0KKyAgIG1vZHVsZXMgYXQgbG9hZCB0aW1lIHdpdGggYSAncGNfZGVi dWc9Iycgb3B0aW9uIHRvIGluc21vZC4NCisqLw0KKyNpZmRlZiBQQ01DSUFf REVCVUcNCitzdGF0aWMgaW50IHBjX2RlYnVnID0gUENNQ0lBX0RFQlVHOw0K K01PRFVMRV9QQVJNKHBjX2RlYnVnLCAiaSIpOw0KKyNkZWZpbmUgREVCVUco biwgYXJncy4uLikgaWYgKHBjX2RlYnVnPihuKSkgcHJpbnRrKEtFUk5fREVC VUcgYXJncyk7DQorc3RhdGljIGNoYXIgKnZlcnNpb24gPQ0KKyJhdm1hMV9j cy5jIDEuMDAgMTk5OC8wMS8yMyAxMDowMDowMCAoQ2Fyc3RlbiBQYWV0aCki Ow0KKyNlbHNlDQorI2RlZmluZSBERUJVRyhuLCBhcmdzLi4uKQ0KKyNlbmRp Zg0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKw0KKy8qIFBh cmFtZXRlcnMgdGhhdCBjYW4gYmUgc2V0IHdpdGggJ2luc21vZCcgKi8NCisN CitzdGF0aWMgaW50IGRlZmF1bHRfaXJxX2xpc3RbMTFdID0geyAxNSwgMTMs IDEyLCAxMSwgMTAsIDksIDcsIDUsIDQsIDMsIC0xIH07DQorc3RhdGljIGlu dCBpcnFfbGlzdFsxMV0gPSB7IC0xIH07DQorc3RhdGljIGludCBpc2RucHJv dCA9IDI7DQorDQorTU9EVUxFX1BBUk0oaXJxX2xpc3QsICIxLTExaSIpOw0K K01PRFVMRV9QQVJNKGlzZG5wcm90LCAiMS00Iik7DQorDQorLyo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PSovDQorDQorLyoNCisgICBUaGUgZXZlbnQoKSBm dW5jdGlvbiBpcyB0aGlzIGRyaXZlcidzIENhcmQgU2VydmljZXMgZXZlbnQg aGFuZGxlci4NCisgICBJdCB3aWxsIGJlIGNhbGxlZCBieSBDYXJkIFNlcnZp Y2VzIHdoZW4gYW4gYXBwcm9wcmlhdGUgY2FyZCBzdGF0dXMNCisgICBldmVu dCBpcyByZWNlaXZlZC4gIFRoZSBjb25maWcoKSBhbmQgcmVsZWFzZSgpIGVu dHJ5IHBvaW50cyBhcmUNCisgICB1c2VkIHRvIGNvbmZpZ3VyZSBvciByZWxl YXNlIGEgc29ja2V0LCBpbiByZXNwb25zZSB0byBjYXJkIGluc2VydGlvbg0K KyAgIGFuZCBlamVjdGlvbiBldmVudHMuICBUaGV5IGFyZSBpbnZva2VkIGZy b20gdGhlIHNrZWxldG9uIGV2ZW50DQorICAgaGFuZGxlci4NCisqLw0KKw0K K3N0YXRpYyB2b2lkIGF2bWExY3NfY29uZmlnKGRldl9saW5rX3QgKmxpbmsp Ow0KK3N0YXRpYyB2b2lkIGF2bWExY3NfcmVsZWFzZSh1X2xvbmcgYXJnKTsN CitzdGF0aWMgaW50IGF2bWExY3NfZXZlbnQoZXZlbnRfdCBldmVudCwgaW50 IHByaW9yaXR5LA0KKwkJCSAgZXZlbnRfY2FsbGJhY2tfYXJnc190ICphcmdz KTsNCisNCisvKg0KKyAgIFRoZSBhdHRhY2goKSBhbmQgZGV0YWNoKCkgZW50 cnkgcG9pbnRzIGFyZSB1c2VkIHRvIGNyZWF0ZSBhbmQgZGVzdHJveQ0KKyAg ICJpbnN0YW5jZXMiIG9mIHRoZSBkcml2ZXIsIHdoZXJlIGVhY2ggaW5zdGFu Y2UgcmVwcmVzZW50cyBldmVyeXRoaW5nDQorICAgbmVlZGVkIHRvIG1hbmFn ZSBvbmUgYWN0dWFsIFBDTUNJQSBjYXJkLg0KKyovDQorDQorc3RhdGljIGRl dl9saW5rX3QgKmF2bWExY3NfYXR0YWNoKHZvaWQpOw0KK3N0YXRpYyB2b2lk IGF2bWExY3NfZGV0YWNoKGRldl9saW5rX3QgKik7DQorDQorLyoNCisgICBU aGUgZGV2X2luZm8gdmFyaWFibGUgaXMgdGhlICJrZXkiIHRoYXQgaXMgdXNl ZCB0byBtYXRjaCB1cCB0aGlzDQorICAgZGV2aWNlIGRyaXZlciB3aXRoIGFw cHJvcHJpYXRlIGNhcmRzLCB0aHJvdWdoIHRoZSBjYXJkIGNvbmZpZ3VyYXRp b24NCisgICBkYXRhYmFzZS4NCisqLw0KKw0KK3N0YXRpYyBkZXZfaW5mb190 IGRldl9pbmZvID0gImF2bWExX2NzIjsNCisNCisvKg0KKyAgIEEgbGlua2Vk IGxpc3Qgb2YgImluc3RhbmNlcyIgb2YgdGhlIHNrZWxldG9uIGRldmljZS4g IEVhY2ggYWN0dWFsDQorICAgUENNQ0lBIGNhcmQgY29ycmVzcG9uZHMgdG8g b25lIGRldmljZSBpbnN0YW5jZSwgYW5kIGlzIGRlc2NyaWJlZA0KKyAgIGJ5 IG9uZSBkZXZfbGlua190IHN0cnVjdHVyZSAoZGVmaW5lZCBpbiBkcy5oKS4N CisNCisgICBZb3UgbWF5IG5vdCB3YW50IHRvIHVzZSBhIGxpbmtlZCBsaXN0 IGZvciB0aGlzIC0tIGZvciBleGFtcGxlLCB0aGUNCisgICBtZW1vcnkgY2Fy ZCBkcml2ZXIgdXNlcyBhbiBhcnJheSBvZiBkZXZfbGlua190IHBvaW50ZXJz LCB3aGVyZSBtaW5vcg0KKyAgIGRldmljZSBudW1iZXJzIGFyZSB1c2VkIHRv IGRlcml2ZSB0aGUgY29ycmVzcG9uZGluZyBhcnJheSBpbmRleC4NCisqLw0K Kw0KK3N0YXRpYyBkZXZfbGlua190ICpkZXZfbGlzdCA9IE5VTEw7DQorDQor LyoNCisgICBBIGRldl9saW5rX3Qgc3RydWN0dXJlIGhhcyBmaWVsZHMgZm9y IG1vc3QgdGhpbmdzIHRoYXQgYXJlIG5lZWRlZA0KKyAgIHRvIGtlZXAgdHJh Y2sgb2YgYSBzb2NrZXQsIGJ1dCB0aGVyZSB3aWxsIHVzdWFsbHkgYmUgc29t ZSBkZXZpY2UNCisgICBzcGVjaWZpYyBpbmZvcm1hdGlvbiB0aGF0IGFsc28g bmVlZHMgdG8gYmUga2VwdCB0cmFjayBvZi4gIFRoZQ0KKyAgICdwcml2JyBw b2ludGVyIGluIGEgZGV2X2xpbmtfdCBzdHJ1Y3R1cmUgY2FuIGJlIHVzZWQg dG8gcG9pbnQgdG8NCisgICBhIGRldmljZS1zcGVjaWZpYyBwcml2YXRlIGRh dGEgc3RydWN0dXJlLCBsaWtlIHRoaXMuDQorDQorICAgQSBkcml2ZXIgbmVl ZHMgdG8gcHJvdmlkZSBhIGRldl9ub2RlX3Qgc3RydWN0dXJlIGZvciBlYWNo IGRldmljZQ0KKyAgIG9uIGEgY2FyZC4gIEluIHNvbWUgY2FzZXMsIHRoZXJl IGlzIG9ubHkgb25lIGRldmljZSBwZXIgY2FyZCAoZm9yDQorICAgZXhhbXBs ZSwgZXRoZXJuZXQgY2FyZHMsIG1vZGVtcykuICBJbiBvdGhlciBjYXNlcywg dGhlcmUgbWF5IGJlDQorICAgbWFueSBhY3R1YWwgb3IgbG9naWNhbCBkZXZp Y2VzIChTQ1NJIGFkYXB0ZXJzLCBtZW1vcnkgY2FyZHMgd2l0aA0KKyAgIG11 bHRpcGxlIHBhcnRpdGlvbnMpLiAgVGhlIGRldl9ub2RlX3Qgc3RydWN0dXJl cyBuZWVkIHRvIGJlIGtlcHQNCisgICBpbiBhIGxpbmtlZCBsaXN0IHN0YXJ0 aW5nIGF0IHRoZSAnZGV2JyBmaWVsZCBvZiBhIGRldl9saW5rX3QNCisgICBz dHJ1Y3R1cmUuICBXZSBhbGxvY2F0ZSB0aGVtIGluIHRoZSBjYXJkJ3MgcHJp dmF0ZSBkYXRhIHN0cnVjdHVyZSwNCisgICBiZWNhdXNlIHRoZXkgZ2VuZXJh bGx5IGNhbid0IGJlIGFsbG9jYXRlZCBkeW5hbWljYWxseS4NCisqLw0KKyAg IA0KK3R5cGVkZWYgc3RydWN0IGxvY2FsX2luZm9fdCB7DQorICAgIGRldl9u b2RlX3QJbm9kZTsNCit9IGxvY2FsX2luZm9fdDsNCisNCisvKj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ki8NCisNCitzdGF0aWMgdm9pZCBjc19lcnJvcihj bGllbnRfaGFuZGxlX3QgaGFuZGxlLCBpbnQgZnVuYywgaW50IHJldCkNCit7 DQorICAgIGVycm9yX2luZm9fdCBlcnIgPSB7IGZ1bmMsIHJldCB9Ow0KKyAg ICBDYXJkU2VydmljZXMoUmVwb3J0RXJyb3IsIGhhbmRsZSwgJmVycik7DQor fQ0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKw0KKyAgICBh dm1hMWNzX2F0dGFjaCgpIGNyZWF0ZXMgYW4gImluc3RhbmNlIiBvZiB0aGUg ZHJpdmVyLCBhbGxvY2F0aW5nDQorICAgIGxvY2FsIGRhdGEgc3RydWN0dXJl cyBmb3Igb25lIGRldmljZS4gIFRoZSBkZXZpY2UgaXMgcmVnaXN0ZXJlZA0K KyAgICB3aXRoIENhcmQgU2VydmljZXMuDQorDQorICAgIFRoZSBkZXZfbGlu ayBzdHJ1Y3R1cmUgaXMgaW5pdGlhbGl6ZWQsIGJ1dCB3ZSBkb24ndCBhY3R1 YWxseQ0KKyAgICBjb25maWd1cmUgdGhlIGNhcmQgYXQgdGhpcyBwb2ludCAt LSB3ZSB3YWl0IHVudGlsIHdlIHJlY2VpdmUgYQ0KKyAgICBjYXJkIGluc2Vy dGlvbiBldmVudC4NCisgICAgDQorPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PSovDQorDQorc3RhdGljIGRldl9saW5rX3QgKmF2bWExY3NfYXR0YWNoKHZv aWQpDQorew0KKyAgICBjbGllbnRfcmVnX3QgY2xpZW50X3JlZzsNCisgICAg ZGV2X2xpbmtfdCAqbGluazsNCisgICAgbG9jYWxfaW5mb190ICpsb2NhbDsN CisgICAgaW50IHJldCwgaTsNCisgICAgDQorICAgIERFQlVHKDAsICJhdm1h MWNzX2F0dGFjaCgpXG4iKTsNCisNCisgICAgLyogSW5pdGlhbGl6ZSB0aGUg ZGV2X2xpbmtfdCBzdHJ1Y3R1cmUgKi8NCisgICAgbGluayA9IGttYWxsb2Mo c2l6ZW9mKHN0cnVjdCBkZXZfbGlua190KSwgR0ZQX0tFUk5FTCk7DQorICAg IG1lbXNldChsaW5rLCAwLCBzaXplb2Yoc3RydWN0IGRldl9saW5rX3QpKTsN CisgICAgbGluay0+cmVsZWFzZS5mdW5jdGlvbiA9ICZhdm1hMWNzX3JlbGVh c2U7DQorICAgIGxpbmstPnJlbGVhc2UuZGF0YSA9ICh1X2xvbmcpbGluazsN CisNCisgICAgLyogVGhlIGlvIHN0cnVjdHVyZSBkZXNjcmliZXMgSU8gcG9y dCBtYXBwaW5nICovDQorICAgIGxpbmstPmlvLk51bVBvcnRzMSA9IDE2Ow0K KyAgICBsaW5rLT5pby5BdHRyaWJ1dGVzMSA9IElPX0RBVEFfUEFUSF9XSURU SF84Ow0KKyAgICBsaW5rLT5pby5OdW1Qb3J0czIgPSAxNjsNCisgICAgbGlu ay0+aW8uQXR0cmlidXRlczIgPSBJT19EQVRBX1BBVEhfV0lEVEhfMTY7DQor ICAgIGxpbmstPmlvLklPQWRkckxpbmVzID0gNTsNCisNCisgICAgLyogSW50 ZXJydXB0IHNldHVwICovDQorICAgIGxpbmstPmlycS5BdHRyaWJ1dGVzID0g SVJRX1RZUEVfRVhDTFVTSVZFOw0KKyAgICBsaW5rLT5pcnEuQXR0cmlidXRl cyA9IElSUV9UWVBFX0RZTkFNSUNfU0hBUklOR3xJUlFfRklSU1RfU0hBUkVE Ow0KKw0KKyAgICBsaW5rLT5pcnEuSVJRSW5mbzEgPSBJUlFfSU5GTzJfVkFM SUR8SVJRX0xFVkVMX0lEOw0KKyAgICBpZiAoaXJxX2xpc3RbMF0gIT0gLTEp IHsNCisJICAgIGZvciAoaSA9IDA7IGkgPCAxMCAmJiBpcnFfbGlzdFtpXSA+ IDA7IGkrKykNCisJICAgICAgIGxpbmstPmlycS5JUlFJbmZvMiB8PSAxIDw8 IGlycV9saXN0W2ldOw0KKyAgICB9IGVsc2Ugew0KKwkgICAgZm9yIChpID0g MDsgaSA8IDEwICYmIGRlZmF1bHRfaXJxX2xpc3RbaV0gPiAwOyBpKyspDQor CSAgICAgICBsaW5rLT5pcnEuSVJRSW5mbzIgfD0gMSA8PCBkZWZhdWx0X2ly cV9saXN0W2ldOw0KKyAgICB9DQorICAgIA0KKyAgICAvKiBHZW5lcmFsIHNv Y2tldCBjb25maWd1cmF0aW9uICovDQorICAgIGxpbmstPmNvbmYuQXR0cmli dXRlcyA9IENPTkZfRU5BQkxFX0lSUTsNCisgICAgbGluay0+Y29uZi5WY2Mg PSA1MDsNCisgICAgbGluay0+Y29uZi5JbnRUeXBlID0gSU5UX01FTU9SWV9B TkRfSU87DQorICAgIGxpbmstPmNvbmYuQ29uZmlnSW5kZXggPSAxOw0KKyAg ICBsaW5rLT5jb25mLlByZXNlbnQgPSBQUkVTRU5UX09QVElPTjsNCisNCisg ICAgLyogQWxsb2NhdGUgc3BhY2UgZm9yIHByaXZhdGUgZGV2aWNlLXNwZWNp ZmljIGRhdGEgKi8NCisgICAgbG9jYWwgPSBrbWFsbG9jKHNpemVvZihsb2Nh bF9pbmZvX3QpLCBHRlBfS0VSTkVMKTsNCisgICAgbWVtc2V0KGxvY2FsLCAw LCBzaXplb2YobG9jYWxfaW5mb190KSk7DQorICAgIGxpbmstPnByaXYgPSBs b2NhbDsNCisgICAgDQorICAgIC8qIFJlZ2lzdGVyIHdpdGggQ2FyZCBTZXJ2 aWNlcyAqLw0KKyAgICBsaW5rLT5uZXh0ID0gZGV2X2xpc3Q7DQorICAgIGRl dl9saXN0ID0gbGluazsNCisgICAgY2xpZW50X3JlZy5kZXZfaW5mbyA9ICZk ZXZfaW5mbzsNCisgICAgY2xpZW50X3JlZy5BdHRyaWJ1dGVzID0gSU5GT19J T19DTElFTlQgfCBJTkZPX0NBUkRfU0hBUkU7DQorICAgIGNsaWVudF9yZWcu RXZlbnRNYXNrID0NCisJQ1NfRVZFTlRfQ0FSRF9JTlNFUlRJT04gfCBDU19F VkVOVF9DQVJEX1JFTU9WQUwgfA0KKwlDU19FVkVOVF9SRVNFVF9QSFlTSUNB TCB8IENTX0VWRU5UX0NBUkRfUkVTRVQgfA0KKwlDU19FVkVOVF9QTV9TVVNQ RU5EIHwgQ1NfRVZFTlRfUE1fUkVTVU1FOw0KKyAgICBjbGllbnRfcmVnLmV2 ZW50X2hhbmRsZXIgPSAmYXZtYTFjc19ldmVudDsNCisgICAgY2xpZW50X3Jl Zy5WZXJzaW9uID0gMHgwMjEwOw0KKyAgICBjbGllbnRfcmVnLmV2ZW50X2Nh bGxiYWNrX2FyZ3MuY2xpZW50X2RhdGEgPSBsaW5rOw0KKyAgICByZXQgPSBD YXJkU2VydmljZXMoUmVnaXN0ZXJDbGllbnQsICZsaW5rLT5oYW5kbGUsICZj bGllbnRfcmVnKTsNCisgICAgaWYgKHJldCAhPSAwKSB7DQorCWNzX2Vycm9y KGxpbmstPmhhbmRsZSwgUmVnaXN0ZXJDbGllbnQsIHJldCk7DQorCWF2bWEx Y3NfZGV0YWNoKGxpbmspOw0KKwlyZXR1cm4gTlVMTDsNCisgICAgfQ0KKw0K KyAgICByZXR1cm4gbGluazsNCit9IC8qIGF2bWExY3NfYXR0YWNoICovDQor DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQorICAgIFRoaXMg ZGVsZXRlcyBhIGRyaXZlciAiaW5zdGFuY2UiLiAgVGhlIGRldmljZSBpcyBk ZS1yZWdpc3RlcmVkDQorICAgIHdpdGggQ2FyZCBTZXJ2aWNlcy4gIElmIGl0 IGhhcyBiZWVuIHJlbGVhc2VkLCBhbGwgbG9jYWwgZGF0YQ0KKyAgICBzdHJ1 Y3R1cmVzIGFyZSBmcmVlZC4gIE90aGVyd2lzZSwgdGhlIHN0cnVjdHVyZXMg d2lsbCBiZSBmcmVlZA0KKyAgICB3aGVuIHRoZSBkZXZpY2UgaXMgcmVsZWFz ZWQuDQorDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQorc3Rh dGljIHZvaWQgYXZtYTFjc19kZXRhY2goZGV2X2xpbmtfdCAqbGluaykNCit7 DQorICAgIGRldl9saW5rX3QgKipsaW5rcDsNCisNCisgICAgREVCVUcoMCwg ImF2bWExY3NfZGV0YWNoKDB4JXApXG4iLCBsaW5rKTsNCisgICAgDQorICAg IC8qIExvY2F0ZSBkZXZpY2Ugc3RydWN0dXJlICovDQorICAgIGZvciAobGlu a3AgPSAmZGV2X2xpc3Q7ICpsaW5rcDsgbGlua3AgPSAmKCpsaW5rcCktPm5l eHQpDQorCWlmICgqbGlua3AgPT0gbGluaykgYnJlYWs7DQorICAgIGlmICgq bGlua3AgPT0gTlVMTCkNCisJcmV0dXJuOw0KKw0KKyAgICAvKg0KKyAgICAg ICBJZiB0aGUgZGV2aWNlIGlzIGN1cnJlbnRseSBjb25maWd1cmVkIGFuZCBh Y3RpdmUsIHdlIHdvbid0DQorICAgICAgIGFjdHVhbGx5IGRlbGV0ZSBpdCB5 ZXQuICBJbnN0ZWFkLCBpdCBpcyBtYXJrZWQgc28gdGhhdCB3aGVuDQorICAg ICAgIHRoZSByZWxlYXNlKCkgZnVuY3Rpb24gaXMgY2FsbGVkLCB0aGF0IHdp bGwgdHJpZ2dlciBhIHByb3Blcg0KKyAgICAgICBkZXRhY2goKS4NCisgICAg Ki8NCisgICAgaWYgKGxpbmstPnN0YXRlICYgREVWX0NPTkZJRykgew0KKyNp ZmRlZiBQQ01DSUFfREVCVUcNCisJcHJpbnRrKEtFUk5fREVCVUcgImF2bWEx X2NzOiBkZXRhY2ggcG9zdHBvbmVkLCAnJXMnICINCisJICAgICAgICJzdGls bCBsb2NrZWRcbiIsIGxpbmstPmRldi0+ZGV2X25hbWUpOw0KKyNlbmRpZg0K KwlsaW5rLT5zdGF0ZSB8PSBERVZfU1RBTEVfTElOSzsNCisJcmV0dXJuOw0K KyAgICB9DQorDQorICAgIC8qIEJyZWFrIHRoZSBsaW5rIHdpdGggQ2FyZCBT ZXJ2aWNlcyAqLw0KKyAgICBpZiAobGluay0+aGFuZGxlKQ0KKwlDYXJkU2Vy dmljZXMoRGVyZWdpc3RlckNsaWVudCwgbGluay0+aGFuZGxlKTsNCisgICAg DQorICAgIC8qIFVubGluayBkZXZpY2Ugc3RydWN0dXJlLCBmcmVlIHBpZWNl cyAqLw0KKyAgICAqbGlua3AgPSBsaW5rLT5uZXh0Ow0KKyAgICBpZiAobGlu ay0+cHJpdikgew0KKwlrZnJlZShsaW5rLT5wcml2KTsNCisgICAgfQ0KKyAg ICBrZnJlZShsaW5rKTsNCisgICAgDQorfSAvKiBhdm1hMWNzX2RldGFjaCAq Lw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKw0KKyAgICBh dm1hMWNzX2NvbmZpZygpIGlzIHNjaGVkdWxlZCB0byBydW4gYWZ0ZXIgYSBD QVJEX0lOU0VSVElPTiBldmVudA0KKyAgICBpcyByZWNlaXZlZCwgdG8gY29u ZmlndXJlIHRoZSBQQ01DSUEgc29ja2V0LCBhbmQgdG8gbWFrZSB0aGUNCisg ICAgZXRoZXJuZXQgZGV2aWNlIGF2YWlsYWJsZSB0byB0aGUgc3lzdGVtLg0K KyAgICANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCitzdGF0 aWMgaW50IGdldF90dXBsZShpbnQgZm4sIGNsaWVudF9oYW5kbGVfdCBoYW5k bGUsIHR1cGxlX3QgKnR1cGxlLA0KKwkJICAgICBjaXNwYXJzZV90ICpwYXJz ZSkNCit7DQorICAgIGludCBpOw0KKyAgICBpID0gQ2FyZFNlcnZpY2VzKGZu LCBoYW5kbGUsIHR1cGxlKTsNCisgICAgaWYgKGkgIT0gQ1NfU1VDQ0VTUykg cmV0dXJuIGk7DQorICAgIGkgPSBDYXJkU2VydmljZXMoR2V0VHVwbGVEYXRh LCBoYW5kbGUsIHR1cGxlKTsNCisgICAgaWYgKGkgIT0gQ1NfU1VDQ0VTUykg cmV0dXJuIGk7DQorICAgIHJldHVybiBDYXJkU2VydmljZXMoUGFyc2VUdXBs ZSwgaGFuZGxlLCB0dXBsZSwgcGFyc2UpOw0KK30NCisNCisjZGVmaW5lIGZp cnN0X3R1cGxlKGEsIGIsIGMpIGdldF90dXBsZShHZXRGaXJzdFR1cGxlLCBh LCBiLCBjKQ0KKyNkZWZpbmUgbmV4dF90dXBsZShhLCBiLCBjKSBnZXRfdHVw bGUoR2V0TmV4dFR1cGxlLCBhLCBiLCBjKQ0KKw0KK3N0YXRpYyB2b2lkIGF2 bWExY3NfY29uZmlnKGRldl9saW5rX3QgKmxpbmspDQorew0KKyAgICBjbGll bnRfaGFuZGxlX3QgaGFuZGxlOw0KKyAgICB0dXBsZV90IHR1cGxlOw0KKyAg ICBjaXNwYXJzZV90IHBhcnNlOw0KKyAgICBjaXN0cGxfY2Z0YWJsZV9lbnRy eV90ICpjZiA9ICZwYXJzZS5jZnRhYmxlX2VudHJ5Ow0KKyAgICBsb2NhbF9p bmZvX3QgKmRldjsNCisgICAgaW50IGk7DQorICAgIHVfY2hhciBidWZbNjRd Ow0KKyAgICBjaGFyIGRldm5hbWVbMTI4XTsNCisgICAgaW50IGJ1c3kgPSAw Ow0KKyAgICANCisgICAgaGFuZGxlID0gbGluay0+aGFuZGxlOw0KKyAgICBk ZXYgPSBsaW5rLT5wcml2Ow0KKw0KKyAgICBERUJVRygwLCAiYXZtYTFjc19j b25maWcoMHglcClcbiIsIGxpbmspOw0KKw0KKyAgICAvKg0KKyAgICAgICBU aGlzIHJlYWRzIHRoZSBjYXJkJ3MgQ09ORklHIHR1cGxlIHRvIGZpbmQgaXRz IGNvbmZpZ3VyYXRpb24NCisgICAgICAgcmVnaXN0ZXJzLg0KKyAgICAqLw0K KyAgICBkbyB7DQorCXR1cGxlLkRlc2lyZWRUdXBsZSA9IENJU1RQTF9DT05G SUc7DQorCWkgPSBDYXJkU2VydmljZXMoR2V0Rmlyc3RUdXBsZSwgaGFuZGxl LCAmdHVwbGUpOw0KKwlpZiAoaSAhPSBDU19TVUNDRVNTKSBicmVhazsNCisJ dHVwbGUuVHVwbGVEYXRhID0gYnVmOw0KKwl0dXBsZS5UdXBsZURhdGFNYXgg PSA2NDsNCisJdHVwbGUuVHVwbGVPZmZzZXQgPSAwOw0KKwlpID0gQ2FyZFNl cnZpY2VzKEdldFR1cGxlRGF0YSwgaGFuZGxlLCAmdHVwbGUpOw0KKwlpZiAo aSAhPSBDU19TVUNDRVNTKSBicmVhazsNCisJaSA9IENhcmRTZXJ2aWNlcyhQ YXJzZVR1cGxlLCBoYW5kbGUsICZ0dXBsZSwgJnBhcnNlKTsNCisJaWYgKGkg IT0gQ1NfU1VDQ0VTUykgYnJlYWs7DQorCWxpbmstPmNvbmYuQ29uZmlnQmFz ZSA9IHBhcnNlLmNvbmZpZy5iYXNlOw0KKyAgICB9IHdoaWxlICgwKTsNCisg ICAgaWYgKGkgIT0gQ1NfU1VDQ0VTUykgew0KKwljc19lcnJvcihsaW5rLT5o YW5kbGUsIFBhcnNlVHVwbGUsIGkpOw0KKwlsaW5rLT5zdGF0ZSAmPSB+REVW X0NPTkZJR19QRU5ESU5HOw0KKwlyZXR1cm47DQorICAgIH0NCisgICAgDQor ICAgIC8qIENvbmZpZ3VyZSBjYXJkICovDQorICAgIGxpbmstPnN0YXRlIHw9 IERFVl9DT05GSUc7DQorDQorICAgIGRvIHsNCisNCisJdHVwbGUuQXR0cmli dXRlcyA9IDA7DQorCXR1cGxlLlR1cGxlRGF0YSA9IGJ1ZjsNCisJdHVwbGUu VHVwbGVEYXRhTWF4ID0gMjU0Ow0KKwl0dXBsZS5UdXBsZU9mZnNldCA9IDA7 DQorCXR1cGxlLkRlc2lyZWRUdXBsZSA9IENJU1RQTF9WRVJTXzE7DQorDQor CWRldm5hbWVbMF0gPSAwOw0KKwlpZiggIWZpcnN0X3R1cGxlKGhhbmRsZSwg JnR1cGxlLCAmcGFyc2UpICYmIHBhcnNlLnZlcnNpb25fMS5ucyA+IDEgKSB7 DQorCSAgICBzdHJuY3B5KGRldm5hbWUscGFyc2UudmVyc2lvbl8xLnN0ciAr IHBhcnNlLnZlcnNpb25fMS5vZnNbMV0sIA0KKwkJCXNpemVvZihkZXZuYW1l KSk7DQorCX0NCisJLyoNCisgICAgICAgICAqIGZpbmQgSU8gcG9ydA0KKyAg ICAgICAgICovDQorCXR1cGxlLlR1cGxlRGF0YSA9IChjaXNkYXRhX3QgKili dWY7DQorCXR1cGxlLlR1cGxlT2Zmc2V0ID0gMDsgdHVwbGUuVHVwbGVEYXRh TWF4ID0gMjU1Ow0KKwl0dXBsZS5BdHRyaWJ1dGVzID0gMDsNCisJdHVwbGUu RGVzaXJlZFR1cGxlID0gQ0lTVFBMX0NGVEFCTEVfRU5UUlk7DQorCWkgPSBm aXJzdF90dXBsZShoYW5kbGUsICZ0dXBsZSwgJnBhcnNlKTsNCisJd2hpbGUg KGkgPT0gQ1NfU1VDQ0VTUykgew0KKwkgICAgaWYgKGNmLT5pby5ud2luID4g MCkgew0KKwkJbGluay0+Y29uZi5Db25maWdJbmRleCA9IGNmLT5pbmRleDsN CisJCWxpbmstPmlvLkJhc2VQb3J0MSA9IGNmLT5pby53aW5bMF0uYmFzZTsN CisJCWxpbmstPmlvLk51bVBvcnRzMSA9IGNmLT5pby53aW5bMF0ubGVuOw0K KwkJbGluay0+aW8uQmFzZVBvcnQyID0gMDsNCisJCWxpbmstPmlvLk51bVBv cnRzMiA9IDA7DQorICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8g ImF2bWExX2NzOiB0ZXN0aW5nIGkvbyAlI3gtJSN4XG4iLA0KKwkJCWxpbmst PmlvLkJhc2VQb3J0MSwNCisJCSAgICAgICAgbGluay0+aW8uQmFzZVBvcnQx K2xpbmstPmlvLk51bVBvcnRzMSk7DQorCQlpID0gQ2FyZFNlcnZpY2VzKFJl cXVlc3RJTywgbGluay0+aGFuZGxlLCAmbGluay0+aW8pOw0KKwkJaWYgKGkg PT0gQ1NfU1VDQ0VTUykgZ290byBmb3VuZF9wb3J0Ow0KKwkgICAgfQ0KKwkg ICAgaSA9IG5leHRfdHVwbGUoaGFuZGxlLCAmdHVwbGUsICZwYXJzZSk7DQor CX0NCitmb3VuZF9wb3J0Og0KKwlpZiAoaSAhPSBDU19TVUNDRVNTKSB7DQor CSAgICBjc19lcnJvcihsaW5rLT5oYW5kbGUsIFJlcXVlc3RJTywgaSk7DQor CSAgICBicmVhazsNCisJfQ0KKwkNCisJLyoNCisJICogYWxsb2NhdGUgYW4g aW50ZXJydXB0IGxpbmUNCisJICovDQorCWkgPSBDYXJkU2VydmljZXMoUmVx dWVzdElSUSwgbGluay0+aGFuZGxlLCAmbGluay0+aXJxKTsNCisJaWYgKGkg IT0gQ1NfU1VDQ0VTUykgew0KKwkgICAgY3NfZXJyb3IobGluay0+aGFuZGxl LCBSZXF1ZXN0SVJRLCBpKTsNCisJICAgIENhcmRTZXJ2aWNlcyhSZWxlYXNl SU8sIGxpbmstPmhhbmRsZSwgJmxpbmstPmlvKTsNCisJICAgIGJyZWFrOw0K Kwl9DQorCQ0KKwkvKg0KKyAgICAgICAgICogY29uZmlndXJlIHRoZSBQQ01D SUEgc29ja2V0DQorCSAgKi8NCisJaSA9IENhcmRTZXJ2aWNlcyhSZXF1ZXN0 Q29uZmlndXJhdGlvbiwgbGluay0+aGFuZGxlLCAmbGluay0+Y29uZik7DQor CWlmIChpICE9IENTX1NVQ0NFU1MpIHsNCisJICAgIGNzX2Vycm9yKGxpbmst PmhhbmRsZSwgUmVxdWVzdENvbmZpZ3VyYXRpb24sIGkpOw0KKwkgICAgQ2Fy ZFNlcnZpY2VzKFJlbGVhc2VJTywgbGluay0+aGFuZGxlLCAmbGluay0+aW8p Ow0KKwkgICAgQ2FyZFNlcnZpY2VzKFJlbGVhc2VJUlEsIGxpbmstPmhhbmRs ZSwgJmxpbmstPmlycSk7DQorCSAgICBicmVhazsNCisJfQ0KKw0KKyAgICB9 IHdoaWxlICgwKTsNCisNCisgICAgLyogQXQgdGhpcyBwb2ludCwgdGhlIGRl dl9ub2RlX3Qgc3RydWN0dXJlKHMpIHNob3VsZCBiZQ0KKyAgICAgICBpbml0 aWFsaXplZCBhbmQgYXJyYW5nZWQgaW4gYSBsaW5rZWQgbGlzdCBhdCBsaW5r LT5kZXYuICovDQorDQorICAgIHN0cmNweShkZXYtPm5vZGUuZGV2X25hbWUs ICJBMSIpOw0KKyAgICBkZXYtPm5vZGUubWFqb3IgPSA0NTsNCisgICAgZGV2 LT5ub2RlLm1pbm9yID0gMDsNCisgICAgbGluay0+ZGV2ID0gJmRldi0+bm9k ZTsNCisgICAgDQorICAgIGxpbmstPnN0YXRlICY9IH5ERVZfQ09ORklHX1BF TkRJTkc7DQorICAgIC8qIElmIGFueSBzdGVwIGZhaWxlZCwgcmVsZWFzZSBh bnkgcGFydGlhbGx5IGNvbmZpZ3VyZWQgc3RhdGUgKi8NCisgICAgaWYgKGkg IT0gMCkgew0KKwlhdm1hMWNzX3JlbGVhc2UoKHVfbG9uZylsaW5rKTsNCisJ cmV0dXJuOw0KKyAgICB9DQorDQorICAgIHByaW50ayhLRVJOX05PVElDRSAi YXZtYTFfY3M6IGNoZWNraW5nIGF0IGkvbyAlI3gsIGlycSAlZFxuIiwNCisJ CQkJbGluay0+aW8uQmFzZVBvcnQxLCBsaW5rLT5pcnEuQXNzaWduZWRJUlEp Ow0KKw0KKyAgICBpZiAoYXZtX2ExX2luaXRfcGNtY2lhKCh2b2lkICopKGlu dClsaW5rLT5pby5CYXNlUG9ydDEsDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGluay0+aXJxLkFzc2lnbmVkSVJRLA0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICZidXN5LCBpc2RucHJvdCkgIT0gMCkgew0KKyAgICAg ICBwcmludGsoS0VSTl9FUlIgImF2bWExX2NzOiBmYWlsZWQgdG8gaW5pdGlh bGl6ZSBBVk0gQTEgUENNQ0lBICVkIGF0IGkvbyAlI3hcbiIsIGksIGxpbmst PmlvLkJhc2VQb3J0MSk7DQorICAgICAgIHJldHVybjsNCisgICAgfQ0KKw0K KyAgICBpID0gMDsgLyogbm8gcmV0dXJuY29kZSBmb3IgY2FyZG5yIDotKCAq Lw0KKw0KKyAgICBkZXYtPm5vZGUubWlub3IgPSBpOw0KKw0KK30gLyogYXZt YTFjc19jb25maWcgKi8NCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCisNCisgICAgQWZ0ZXIgYSBjYXJkIGlzIHJlbW92ZWQsIGF2bWExY3Nf cmVsZWFzZSgpIHdpbGwgdW5yZWdpc3RlciB0aGUgbmV0DQorICAgIGRldmlj ZSwgYW5kIHJlbGVhc2UgdGhlIFBDTUNJQSBjb25maWd1cmF0aW9uLiAgSWYg dGhlIGRldmljZSBpcw0KKyAgICBzdGlsbCBvcGVuLCB0aGlzIHdpbGwgYmUg cG9zdHBvbmVkIHVudGlsIGl0IGlzIGNsb3NlZC4NCisgICAgDQorPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PSovDQorDQorc3RhdGljIHZvaWQgYXZtYTFj c19yZWxlYXNlKHVfbG9uZyBhcmcpDQorew0KKyAgICBkZXZfbGlua190ICps aW5rID0gKGRldl9saW5rX3QgKilhcmc7DQorICAgIGxvY2FsX2luZm9fdCAq bG9jYWwgPSBsaW5rLT5wcml2Ow0KKw0KKyAgICBERUJVRygwLCAiYXZtYTFj c19yZWxlYXNlKDB4JXApXG4iLCBsaW5rKTsNCisNCisgICAgLyoNCisgICAg ICAgSWYgdGhlIGRldmljZSBpcyBjdXJyZW50bHkgaW4gdXNlLCB3ZSB3b24n dCByZWxlYXNlIHVudGlsIGl0DQorICAgICAgIGlzIGFjdHVhbGx5IGNsb3Nl ZC4NCisgICAgKi8NCisgICAgaWYgKGxpbmstPm9wZW4pIHsNCisJREVCVUco MSwgImF2bWExX2NzOiByZWxlYXNlIHBvc3Rwb25lZCwgJyVzJyBzdGlsbCBv cGVuXG4iLA0KKwkgICAgICBsaW5rLT5kZXYtPmRldl9uYW1lKTsNCisJbGlu ay0+c3RhdGUgfD0gREVWX1NUQUxFX0NPTkZJRzsNCisJcmV0dXJuOw0KKyAg ICB9DQorDQorICAgIC8qIG5vIHVucmVnaXN0ZXIgZnVuY3Rpb24gd2l0aCBo aXNheCAqLw0KKyAgICBIaVNheF9jbG9zZWNhcmQobG9jYWwtPm5vZGUubWlu b3IpOw0KKw0KKyAgICAvKiBVbmxpbmsgdGhlIGRldmljZSBjaGFpbiAqLw0K KyAgICBsaW5rLT5kZXYgPSBOVUxMOw0KKyAgICANCisgICAgLyogRG9uJ3Qg Ym90aGVyIGNoZWNraW5nIHRvIHNlZSBpZiB0aGVzZSBzdWNjZWVkIG9yIG5v dCAqLw0KKyAgICBDYXJkU2VydmljZXMoUmVsZWFzZUNvbmZpZ3VyYXRpb24s IGxpbmstPmhhbmRsZSk7DQorICAgIENhcmRTZXJ2aWNlcyhSZWxlYXNlSU8s IGxpbmstPmhhbmRsZSwgJmxpbmstPmlvKTsNCisgICAgQ2FyZFNlcnZpY2Vz KFJlbGVhc2VJUlEsIGxpbmstPmhhbmRsZSwgJmxpbmstPmlycSk7DQorICAg IGxpbmstPnN0YXRlICY9IH5ERVZfQ09ORklHOw0KKyAgICANCisgICAgaWYg KGxpbmstPnN0YXRlICYgREVWX1NUQUxFX0xJTkspDQorCWF2bWExY3NfZGV0 YWNoKGxpbmspOw0KKyAgICANCit9IC8qIGF2bWExY3NfcmVsZWFzZSAqLw0K Kw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKw0KKyAgICBUaGUg Y2FyZCBzdGF0dXMgZXZlbnQgaGFuZGxlci4gIE1vc3RseSwgdGhpcyBzY2hl ZHVsZXMgb3RoZXINCisgICAgc3R1ZmYgdG8gcnVuIGFmdGVyIGFuIGV2ZW50 IGlzIHJlY2VpdmVkLiAgQSBDQVJEX1JFTU9WQUwgZXZlbnQNCisgICAgYWxz byBzZXRzIHNvbWUgZmxhZ3MgdG8gZGlzY291cmFnZSB0aGUgbmV0IGRyaXZl cnMgZnJvbSB0cnlpbmcNCisgICAgdG8gdGFsayB0byB0aGUgY2FyZCBhbnkg bW9yZS4NCisNCisgICAgV2hlbiBhIENBUkRfUkVNT1ZBTCBldmVudCBpcyBy ZWNlaXZlZCwgd2UgaW1tZWRpYXRlbHkgc2V0IGEgZmxhZw0KKyAgICB0byBi bG9jayBmdXR1cmUgYWNjZXNzZXMgdG8gdGhpcyBkZXZpY2UuICBBbGwgdGhl IGZ1bmN0aW9ucyB0aGF0DQorICAgIGFjdHVhbGx5IGFjY2VzcyB0aGUgZGV2 aWNlIHNob3VsZCBjaGVjayB0aGlzIGZsYWcgdG8gbWFrZSBzdXJlDQorICAg IHRoZSBjYXJkIGlzIHN0aWxsIHByZXNlbnQuDQorICAgIA0KKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0qLw0KKw0KK3N0YXRpYyBpbnQgYXZtYTFjc19l dmVudChldmVudF90IGV2ZW50LCBpbnQgcHJpb3JpdHksDQorCQkJICBldmVu dF9jYWxsYmFja19hcmdzX3QgKmFyZ3MpDQorew0KKyAgICBkZXZfbGlua190 ICpsaW5rID0gYXJncy0+Y2xpZW50X2RhdGE7DQorDQorICAgIERFQlVHKDEs ICJhdm1hMWNzX2V2ZW50KDB4JTA2eClcbiIsIGV2ZW50KTsNCisgICAgDQor ICAgIHN3aXRjaCAoZXZlbnQpIHsNCisgICAgY2FzZSBDU19FVkVOVF9DQVJE X1JFTU9WQUw6DQorCWxpbmstPnN0YXRlICY9IH5ERVZfUFJFU0VOVDsNCisJ aWYgKGxpbmstPnN0YXRlICYgREVWX0NPTkZJRykgew0KKwkgICAgbGluay0+ cmVsZWFzZS5leHBpcmVzID0gKGppZmZpZXMrKEhaLzIwKSk7DQorCSAgICBh ZGRfdGltZXIoJmxpbmstPnJlbGVhc2UpOw0KKwl9DQorCWJyZWFrOw0KKyAg ICBjYXNlIENTX0VWRU5UX0NBUkRfSU5TRVJUSU9OOg0KKwlsaW5rLT5zdGF0 ZSB8PSBERVZfUFJFU0VOVCB8IERFVl9DT05GSUdfUEVORElORzsNCisJYXZt YTFjc19jb25maWcobGluayk7DQorCWJyZWFrOw0KKyAgICBjYXNlIENTX0VW RU5UX1BNX1NVU1BFTkQ6DQorCWxpbmstPnN0YXRlIHw9IERFVl9TVVNQRU5E Ow0KKwkvKiBGYWxsIHRocm91Z2guLi4gKi8NCisgICAgY2FzZSBDU19FVkVO VF9SRVNFVF9QSFlTSUNBTDoNCisJaWYgKGxpbmstPnN0YXRlICYgREVWX0NP TkZJRykNCisJICAgIENhcmRTZXJ2aWNlcyhSZWxlYXNlQ29uZmlndXJhdGlv biwgbGluay0+aGFuZGxlKTsNCisJYnJlYWs7DQorICAgIGNhc2UgQ1NfRVZF TlRfUE1fUkVTVU1FOg0KKwlsaW5rLT5zdGF0ZSAmPSB+REVWX1NVU1BFTkQ7 DQorCS8qIEZhbGwgdGhyb3VnaC4uLiAqLw0KKyAgICBjYXNlIENTX0VWRU5U X0NBUkRfUkVTRVQ6DQorCWlmIChsaW5rLT5zdGF0ZSAmIERFVl9DT05GSUcp DQorCSAgICBDYXJkU2VydmljZXMoUmVxdWVzdENvbmZpZ3VyYXRpb24sIGxp bmstPmhhbmRsZSwgJmxpbmstPmNvbmYpOw0KKwlicmVhazsNCisgICAgfQ0K KyAgICByZXR1cm4gMDsNCit9IC8qIGF2bWExY3NfZXZlbnQgKi8NCisNCisv Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCitpbnQgaW5pdF9tb2R1 bGUodm9pZCkNCit7DQorICAgIHNlcnZpbmZvX3Qgc2VydjsNCisgICAgREVC VUcoMCwgIiVzXG4iLCB2ZXJzaW9uKTsNCisgICAgQ2FyZFNlcnZpY2VzKEdl dENhcmRTZXJ2aWNlc0luZm8sICZzZXJ2KTsNCisgICAgaWYgKHNlcnYuUmV2 aXNpb24gIT0gQ1NfUkVMRUFTRV9DT0RFKSB7DQorCXByaW50ayhLRVJOX05P VElDRSAiYXZtYTFfY3M6IENhcmQgU2VydmljZXMgcmVsZWFzZSAiDQorCSAg ICAgICAiZG9lcyBub3QgbWF0Y2ghXG4iKTsNCisJcmV0dXJuIC0xOw0KKyAg ICB9DQorICAgIHJlZ2lzdGVyX3BjbWNpYV9kcml2ZXIoJmRldl9pbmZvLCAm YXZtYTFjc19hdHRhY2gsICZhdm1hMWNzX2RldGFjaCk7DQorICAgIHJldHVy biAwOw0KK30NCisNCit2b2lkIGNsZWFudXBfbW9kdWxlKHZvaWQpDQorew0K KyAgICBERUJVRygwLCAiYXZtYTFfY3M6IHVubG9hZGluZ1xuIik7DQorICAg IHVucmVnaXN0ZXJfcGNtY2lhX2RyaXZlcigmZGV2X2luZm8pOw0KKyAgICB3 aGlsZSAoZGV2X2xpc3QgIT0gTlVMTCkgew0KKwlpZiAoZGV2X2xpc3QtPnN0 YXRlICYgREVWX0NPTkZJRykNCisJICAgIGF2bWExY3NfcmVsZWFzZSgodV9s b25nKWRldl9saXN0KTsNCisJYXZtYTFjc19kZXRhY2goZGV2X2xpc3QpOw0K KyAgICB9DQorfQ0K ---1463804317-1548386187-984246539=:2270-- - 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/