Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S266303AbUFQASG (ORCPT ); Wed, 16 Jun 2004 20:18:06 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S264774AbUFQASG (ORCPT ); Wed, 16 Jun 2004 20:18:06 -0400 Received: from hqemgate00.nvidia.com ([216.228.112.144]:12806 "EHLO hqemgate00.nvidia.com") by vger.kernel.org with ESMTP id S264330AbUFQARm (ORCPT ); Wed, 16 Jun 2004 20:17:42 -0400 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C45400.7C14AF00" X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0 Subject: [PATCH 2.6.7] new NVIDIA libata SATA driver Date: Wed, 16 Jun 2004 17:17:33 -0700 Message-ID: X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: [PATCH 2.6.7] new NVIDIA libata SATA driver Thread-Index: AcRUAH3AU+4XAPSfR+qlWQOT9J/JoQ== From: "Andrew Chew" To: Cc: , Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 22629 Lines: 312 This is a multi-part message in MIME format. ------_=_NextPart_001_01C45400.7C14AF00 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable This patch adds the file linux-2.6.7/drivers/scsi/sata_nv.c, updates linux-2.6.7/drivers/scsi/Makefile and linux-2.6.7/drivers/scsi/Kconfig to include the new driver, and removes PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA, and PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 device IDs from the linux-2.6.7/drivers/ide/pci/amd74xx.c driver (these IDs will now be in the sata_nv.c driver). This patch is to be applied to the linux-2.6.7 kernel. Attaching patch file, as the patch is kind of large. ------_=_NextPart_001_01C45400.7C14AF00 Content-Type: application/octet-stream; name="linux-2.6.7-sata.diff" Content-Transfer-Encoding: base64 Content-Description: linux-2.6.7-sata.diff Content-Disposition: attachment; filename="linux-2.6.7-sata.diff" ZGlmZiAtTnJ1IGxpbnV4LTIuNi43L2RyaXZlcnMvaWRlL3BjaS9hbWQ3NHh4LmMgbGludXgvZHJp dmVycy9pZGUvcGNpL2FtZDc0eHguYwotLS0gbGludXgtMi42LjcvZHJpdmVycy9pZGUvcGNpL2Ft ZDc0eHguYwkyMDA0LTA2LTE1IDIyOjIwOjI2LjAwMDAwMDAwMCAtMDcwMAorKysgbGludXgvZHJp dmVycy9pZGUvcGNpL2FtZDc0eHguYwkyMDA0LTA2LTE2IDExOjA2OjI4LjAwMDAwMDAwMCAtMDcw MApAQCAtNjUsMTEgKzY1LDggQEAKIAl7IFBDSV9ERVZJQ0VfSURfTlZJRElBX05GT1JDRV9JREUs CTB4NTAsIEFNRF9VRE1BXzEwMCB9LAogCXsgUENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNFMl9J REUsCTB4NTAsIEFNRF9VRE1BXzEzMyB9LAogCXsgUENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNF MlNfSURFLAkweDUwLCBBTURfVURNQV8xMzMgfSwKLQl7IFBDSV9ERVZJQ0VfSURfTlZJRElBX05G T1JDRTJTX1NBVEEsCTB4NTAsIEFNRF9VRE1BXzEzMyB9LAogCXsgUENJX0RFVklDRV9JRF9OVklE SUFfTkZPUkNFM19JREUsCTB4NTAsIEFNRF9VRE1BXzEzMyB9LAogCXsgUENJX0RFVklDRV9JRF9O VklESUFfTkZPUkNFM1NfSURFLAkweDUwLCBBTURfVURNQV8xMzMgfSwKLQl7IFBDSV9ERVZJQ0Vf SURfTlZJRElBX05GT1JDRTNTX1NBVEEsCTB4NTAsIEFNRF9VRE1BXzEzMyB9LAotCXsgUENJX0RF VklDRV9JRF9OVklESUFfTkZPUkNFM1NfU0FUQTIsCTB4NTAsIEFNRF9VRE1BXzEzMyB9LAogCXsg UENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNFX0NLODA0X0lERSwJMHg1MCwgQU1EX1VETUFfMTMz IH0sCiAJeyBQQ0lfREVWSUNFX0lEX05WSURJQV9ORk9SQ0VfQ0s4MDRfU0FUQSwJMHg1MCwgQU1E X1VETUFfMTMzIH0sCiAJeyBQQ0lfREVWSUNFX0lEX05WSURJQV9ORk9SQ0VfQ0s4MDRfU0FUQTIs CTB4NTAsIEFNRF9VRE1BXzEzMyB9LApAQCAtNDgxLDE3ICs0NzgsMTQgQEAKIAkvKiAgNSAqLyBE RUNMQVJFX05WX0RFVigiTkZPUkNFIiksCiAJLyogIDYgKi8gREVDTEFSRV9OVl9ERVYoIk5GT1JD RTIiKSwKIAkvKiAgNyAqLyBERUNMQVJFX05WX0RFVigiTkZPUkNFMi1VNDAwUiIpLAotCS8qICA4 ICovIERFQ0xBUkVfTlZfREVWKCJORk9SQ0UyLVU0MDBSLVNBVEEiKSwKLQkvKiAgOSAqLyBERUNM QVJFX05WX0RFVigiTkZPUkNFMy0xNTAiKSwKLQkvKiAxMCAqLyBERUNMQVJFX05WX0RFVigiTkZP UkNFMy0yNTAiKSwKLQkvKiAxMSAqLyBERUNMQVJFX05WX0RFVigiTkZPUkNFMy0yNTAtU0FUQSIp LAotCS8qIDEyICovIERFQ0xBUkVfTlZfREVWKCJORk9SQ0UzLTI1MC1TQVRBMiIpLAotCS8qIDEz ICovIERFQ0xBUkVfTlZfREVWKCJORk9SQ0UtQ0s4MDQiKSwKLQkvKiAxNCAqLyBERUNMQVJFX05W X0RFVigiTkZPUkNFLUNLODA0LVNBVEEiKSwKLQkvKiAxNSAqLyBERUNMQVJFX05WX0RFVigiTkZP UkNFLUNLODA0LVNBVEEyIiksCi0JLyogMTYgKi8gREVDTEFSRV9OVl9ERVYoIk5GT1JDRS1NQ1Aw NCIpLAotCS8qIDE3ICovIERFQ0xBUkVfTlZfREVWKCJORk9SQ0UtTUNQMDQtU0FUQSIpLAotCS8q IDE4ICovIERFQ0xBUkVfTlZfREVWKCJORk9SQ0UtTUNQMDQtU0FUQTIiKQorCS8qICA4ICovIERF Q0xBUkVfTlZfREVWKCJORk9SQ0UzLTE1MCIpLAorCS8qICA5ICovIERFQ0xBUkVfTlZfREVWKCJO Rk9SQ0UzLTI1MCIpLAorCS8qIDEwICovIERFQ0xBUkVfTlZfREVWKCJORk9SQ0UtQ0s4MDQiKSwK KwkvKiAxMSAqLyBERUNMQVJFX05WX0RFVigiTkZPUkNFLUNLODA0LVNBVEEiKSwKKwkvKiAxMiAq LyBERUNMQVJFX05WX0RFVigiTkZPUkNFLUNLODA0LVNBVEEyIiksCisJLyogMTMgKi8gREVDTEFS RV9OVl9ERVYoIk5GT1JDRS1NQ1AwNCIpLAorCS8qIDE0ICovIERFQ0xBUkVfTlZfREVWKCJORk9S Q0UtTUNQMDQtU0FUQSIpLAorCS8qIDE1ICovIERFQ0xBUkVfTlZfREVWKCJORk9SQ0UtTUNQMDQt U0FUQTIiKQogfTsKIAogc3RhdGljIGludCBfX2RldmluaXQgYW1kNzR4eF9wcm9iZShzdHJ1Y3Qg cGNpX2RldiAqZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpCkBAIC01MTIsMTcg KzUwNiwxNCBAQAogCXsgUENJX1ZFTkRPUl9JRF9OVklESUEsIFBDSV9ERVZJQ0VfSURfTlZJRElB X05GT1JDRV9JREUsCVBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsICA1IH0sCiAJeyBQQ0lf VkVORE9SX0lEX05WSURJQSwgUENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNFMl9JREUsCVBDSV9B TllfSUQsIFBDSV9BTllfSUQsIDAsIDAsICA2IH0sCiAJeyBQQ0lfVkVORE9SX0lEX05WSURJQSwg UENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNFMlNfSURFLAlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lE LCAwLCAwLCAgNyB9LAotCXsgUENJX1ZFTkRPUl9JRF9OVklESUEsIFBDSV9ERVZJQ0VfSURfTlZJ RElBX05GT1JDRTJTX1NBVEEsCVBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsICA4IH0sCi0J eyBQQ0lfVkVORE9SX0lEX05WSURJQSwgUENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNFM19JREUs CVBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsICA5IH0sCi0JeyBQQ0lfVkVORE9SX0lEX05W SURJQSwgUENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNFM1NfSURFLAlQQ0lfQU5ZX0lELCBQQ0lf QU5ZX0lELCAwLCAwLCAxMCB9LAotCXsgUENJX1ZFTkRPUl9JRF9OVklESUEsIFBDSV9ERVZJQ0Vf SURfTlZJRElBX05GT1JDRTNTX1NBVEEsCVBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDEx IH0sCi0JeyBQQ0lfVkVORE9SX0lEX05WSURJQSwgUENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNF M1NfU0FUQTIsCVBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDEyIH0sCi0JeyBQQ0lfVkVO RE9SX0lEX05WSURJQSwgUENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNFX0NLODA0X0lERSwJUENJ X0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMTMgfSwKLQl7IFBDSV9WRU5ET1JfSURfTlZJRElB LCBQQ0lfREVWSUNFX0lEX05WSURJQV9ORk9SQ0VfQ0s4MDRfU0FUQSwJUENJX0FOWV9JRCwgUENJ X0FOWV9JRCwgMCwgMCwgMTQgfSwKLQl7IFBDSV9WRU5ET1JfSURfTlZJRElBLCBQQ0lfREVWSUNF X0lEX05WSURJQV9ORk9SQ0VfQ0s4MDRfU0FUQTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAs IDAsIDE1IH0sCi0JeyBQQ0lfVkVORE9SX0lEX05WSURJQSwgUENJX0RFVklDRV9JRF9OVklESUFf TkZPUkNFX01DUDA0X0lERSwJUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMTYgfSwKLQl7 IFBDSV9WRU5ET1JfSURfTlZJRElBLCBQQ0lfREVWSUNFX0lEX05WSURJQV9ORk9SQ0VfTUNQMDRf U0FUQSwJUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMTcgfSwKLQl7IFBDSV9WRU5ET1Jf SURfTlZJRElBLCBQQ0lfREVWSUNFX0lEX05WSURJQV9ORk9SQ0VfTUNQMDRfU0FUQTIsIFBDSV9B TllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDE4IH0sCisJeyBQQ0lfVkVORE9SX0lEX05WSURJQSwg UENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNFM19JREUsCVBDSV9BTllfSUQsIFBDSV9BTllfSUQs IDAsIDAsICA4IH0sCisJeyBQQ0lfVkVORE9SX0lEX05WSURJQSwgUENJX0RFVklDRV9JRF9OVklE SUFfTkZPUkNFM1NfSURFLAlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAgOSB9LAorCXsg UENJX1ZFTkRPUl9JRF9OVklESUEsIFBDSV9ERVZJQ0VfSURfTlZJRElBX05GT1JDRV9DSzgwNF9J REUsCVBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDEwIH0sCisJeyBQQ0lfVkVORE9SX0lE X05WSURJQSwgUENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNFX0NLODA0X1NBVEEsCVBDSV9BTllf SUQsIFBDSV9BTllfSUQsIDAsIDAsIDExIH0sCisJeyBQQ0lfVkVORE9SX0lEX05WSURJQSwgUENJ X0RFVklDRV9JRF9OVklESUFfTkZPUkNFX0NLODA0X1NBVEEyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5Z X0lELCAwLCAwLCAxMiB9LAorCXsgUENJX1ZFTkRPUl9JRF9OVklESUEsIFBDSV9ERVZJQ0VfSURf TlZJRElBX05GT1JDRV9NQ1AwNF9JREUsCVBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDEz IH0sCisJeyBQQ0lfVkVORE9SX0lEX05WSURJQSwgUENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNF X01DUDA0X1NBVEEsCVBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDE0IH0sCisJeyBQQ0lf VkVORE9SX0lEX05WSURJQSwgUENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNFX01DUDA0X1NBVEEy LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAxNSB9LAogCXsgMCwgfSwKIH07CiBNT0RV TEVfREVWSUNFX1RBQkxFKHBjaSwgYW1kNzR4eF9wY2lfdGJsKTsKZGlmZiAtTnJ1IGxpbnV4LTIu Ni43L2RyaXZlcnMvc2NzaS9LY29uZmlnIGxpbnV4L2RyaXZlcnMvc2NzaS9LY29uZmlnCi0tLSBs aW51eC0yLjYuNy9kcml2ZXJzL3Njc2kvS2NvbmZpZwkyMDA0LTA2LTE1IDIyOjIwOjAzLjAwMDAw MDAwMCAtMDcwMAorKysgbGludXgvZHJpdmVycy9zY3NpL0tjb25maWcJMjAwNC0wNi0xNiAxMTow MzoyMS4wMDAwMDAwMDAgLTA3MDAKQEAgLTQ3MCw2ICs0NzAsMTQgQEAKIAogCSAgSWYgdW5zdXJl LCBzYXkgTi4KIAorY29uZmlnIFNDU0lfU0FUQV9OVgorCXRyaXN0YXRlICJOVklESUEgU0FUQSBz dXBwb3J0IgorCWRlcGVuZHMgb24gU0NTSV9TQVRBICYmIFBDSSAmJiBFWFBFUklNRU5UQUwKKwlo ZWxwCisJICBUaGlzIG9wdGlvbiBlbmFibGVzIHN1cHBvcnQgZm9yIE5WSURJQSBTZXJpYWwgQVRB LgorCisJICBJZiB1bnN1cmUsIHNheSBOLgorCiBjb25maWcgU0NTSV9CVVNMT0dJQwogCXRyaXN0 YXRlICJCdXNMb2dpYyBTQ1NJIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiAoUENJIHx8IElTQSB8fCBN Q0EpICYmIFNDU0kKZGlmZiAtTnJ1IGxpbnV4LTIuNi43L2RyaXZlcnMvc2NzaS9NYWtlZmlsZSBs aW51eC9kcml2ZXJzL3Njc2kvTWFrZWZpbGUKLS0tIGxpbnV4LTIuNi43L2RyaXZlcnMvc2NzaS9N YWtlZmlsZQkyMDA0LTA2LTE1IDIyOjE5OjUyLjAwMDAwMDAwMCAtMDcwMAorKysgbGludXgvZHJp dmVycy9zY3NpL01ha2VmaWxlCTIwMDQtMDYtMTYgMTE6MDI6MjIuMDAwMDAwMDAwIC0wNzAwCkBA IC0xMjcsNiArMTI3LDcgQEAKIG9iai0kKENPTkZJR19TQ1NJX1NBVEFfVklURVNTRSkJKz0gbGli YXRhLm8gc2F0YV92c2Mubwogb2JqLSQoQ09ORklHX1NDU0lfU0FUQV9TSVMpCSs9IGxpYmF0YS5v IHNhdGFfc2lzLm8KIG9iai0kKENPTkZJR19TQ1NJX1NBVEFfU1g0KQkrPSBsaWJhdGEubyBzYXRh X3N4NC5vCitvYmotJChDT05GSUdfU0NTSV9TQVRBX05WKQkrPSBsaWJhdGEubyBzYXRhX252Lm8K IAogb2JqLSQoQ09ORklHX0FSTSkJCSs9IGFybS8KIApkaWZmIC1OcnUgbGludXgtMi42LjcvZHJp dmVycy9zY3NpL3NhdGFfbnYuYyBsaW51eC9kcml2ZXJzL3Njc2kvc2F0YV9udi5jCi0tLSBsaW51 eC0yLjYuNy9kcml2ZXJzL3Njc2kvc2F0YV9udi5jCTE5NjktMTItMzEgMTY6MDA6MDAuMDAwMDAw MDAwIC0wODAwCisrKyBsaW51eC9kcml2ZXJzL3Njc2kvc2F0YV9udi5jCTIwMDQtMDYtMTYgMTU6 MDA6NDguMDAwMDAwMDAwIC0wNzAwCkBAIC0wLDAgKzEsMzQ1IEBACisvKgorICogIHNhdGFfbnYu YyAtIE5WSURJQSBuRm9yY2UgU0FUQQorICoKKyAqICBDb3B5cmlnaHQgMjAwNCBOVklESUEgQ29y cC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IDIwMDQgQW5kcmV3IENoZXcK KyAqCisgKiAgVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgT3Bl bgorICogIFNvZnR3YXJlIExpY2Vuc2UgdmVyc2lvbiAxLjEgdGhhdCBjYW4gYmUgZm91bmQgYXQK KyAqICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL29zbC0xLjEudHh0IGFuZCBp cyBpbmNsdWRlZCBoZXJlaW4KKyAqICBieSByZWZlcmVuY2UuCisgKgorICogIEFsdGVybmF0aXZl bHksIHRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgbWF5IGJlIHVzZWQgdW5kZXIgdGhlIHRlcm1z CisgKiAgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiAodGhlICJH UEwiKSBhcyBkaXN0cmlidXRlZAorICogIGluIHRoZSBrZXJuZWwgc291cmNlIENPUFlJTkcgZmls ZSwgaW4gd2hpY2ggY2FzZSB0aGUgcHJvdmlzaW9ucyBvZgorICogIHRoZSBHUEwgYXJlIGFwcGxp Y2FibGUgaW5zdGVhZCBvZiB0aGUgYWJvdmUuICBJZiB5b3Ugd2lzaCB0byBhbGxvdworICogIHRo ZSB1c2Ugb2YgeW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBvbmx5IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUKKyAqICBHUEwgYW5kIG5vdCB0byBhbGxvdyBvdGhlcnMgdG8gdXNlIHlvdXIgdmVyc2lv biBvZiB0aGlzIGZpbGUgdW5kZXIKKyAqICB0aGUgT1NMLCBpbmRpY2F0ZSB5b3VyIGRlY2lzaW9u IGJ5IGRlbGV0aW5nIHRoZSBwcm92aXNpb25zIGFib3ZlIGFuZAorICogIHJlcGxhY2UgdGhlbSB3 aXRoIHRoZSBub3RpY2UgYW5kIG90aGVyIHByb3Zpc2lvbnMgcmVxdWlyZWQgYnkgdGhlIEdQTC4K KyAqICBJZiB5b3UgZG8gbm90IGRlbGV0ZSB0aGUgcHJvdmlzaW9ucyBhYm92ZSwgYSByZWNpcGll bnQgbWF5IHVzZSB5b3VyCisgKiAgdmVyc2lvbiBvZiB0aGlzIGZpbGUgdW5kZXIgZWl0aGVyIHRo ZSBPU0wgb3IgdGhlIEdQTC4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgor I2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2lu Y2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxs aW51eC9ibGtkZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4 L2ludGVycnVwdC5oPgorI2luY2x1ZGUgInNjc2kuaCIKKyNpbmNsdWRlICJob3N0cy5oIgorI2lu Y2x1ZGUgPGxpbnV4L2xpYmF0YS5oPgorCisjZGVmaW5lIERSVl9OQU1FCQkJInNhdGFfbnYiCisj ZGVmaW5lIERSVl9WRVJTSU9OCQkJIjAuMDEiCisKKyNkZWZpbmUgTlZfUE9SVFMJCQkyCisjZGVm aW5lIE5WX1BJT19NQVNLCQkJMHgxZgorI2RlZmluZSBOVl9VRE1BX01BU0sJCQkweDdmCisjZGVm aW5lIE5WX1BPUlQwX0JNRE1BX1JFR19PRkZTRVQJMHgwMAorI2RlZmluZSBOVl9QT1JUMV9CTURN QV9SRUdfT0ZGU0VUCTB4MDgKKyNkZWZpbmUgTlZfUE9SVDBfU0NSX1JFR19PRkZTRVQJCTB4MDAK KyNkZWZpbmUgTlZfUE9SVDFfU0NSX1JFR19PRkZTRVQJCTB4NDAKKworI2RlZmluZSBOVl9JTlRf U1RBVFVTCQkJMHgxMAorI2RlZmluZSBOVl9JTlRfU1RBVFVTX1BERVZfSU5UCQkweDAxCisjZGVm aW5lIE5WX0lOVF9TVEFUVVNfUERFVl9QTQkJMHgwMgorI2RlZmluZSBOVl9JTlRfU1RBVFVTX1BE RVZfQURERUQJMHgwNAorI2RlZmluZSBOVl9JTlRfU1RBVFVTX1BERVZfUkVNT1ZFRAkweDA4Cisj ZGVmaW5lIE5WX0lOVF9TVEFUVVNfU0RFVl9JTlQJCTB4MTAKKyNkZWZpbmUgTlZfSU5UX1NUQVRV U19TREVWX1BNCQkweDIwCisjZGVmaW5lIE5WX0lOVF9TVEFUVVNfU0RFVl9BRERFRAkweDQwCisj ZGVmaW5lIE5WX0lOVF9TVEFUVVNfU0RFVl9SRU1PVkVECTB4ODAKKyNkZWZpbmUgTlZfSU5UX1NU QVRVU19QREVWX0hPVFBMVUcJKE5WX0lOVF9TVEFUVVNfUERFVl9BRERFRCB8IFwKKwkJCQkJTlZf SU5UX1NUQVRVU19QREVWX1JFTU9WRUQpCisjZGVmaW5lIE5WX0lOVF9TVEFUVVNfU0RFVl9IT1RQ TFVHCShOVl9JTlRfU1RBVFVTX1NERVZfQURERUQgfCBcCisJCQkJCU5WX0lOVF9TVEFUVVNfU0RF Vl9SRU1PVkVEKQorI2RlZmluZSBOVl9JTlRfU1RBVFVTX0hPVFBMVUcJCShOVl9JTlRfU1RBVFVT X1BERVZfSE9UUExVRyB8IFwKKwkJCQkJTlZfSU5UX1NUQVRVU19TREVWX0hPVFBMVUcpCisKKyNk ZWZpbmUgTlZfSU5UX0VOQUJMRQkJCTB4MTEKKyNkZWZpbmUgTlZfSU5UX0VOQUJMRV9QREVWX01B U0sJCTB4MDEKKyNkZWZpbmUgTlZfSU5UX0VOQUJMRV9QREVWX1BNCQkweDAyCisjZGVmaW5lIE5W X0lOVF9FTkFCTEVfUERFVl9BRERFRAkweDA0CisjZGVmaW5lIE5WX0lOVF9FTkFCTEVfUERFVl9S RU1PVkVECTB4MDgKKyNkZWZpbmUgTlZfSU5UX0VOQUJMRV9TREVWX01BU0sJCTB4MTAKKyNkZWZp bmUgTlZfSU5UX0VOQUJMRV9TREVWX1BNCQkweDIwCisjZGVmaW5lIE5WX0lOVF9FTkFCTEVfU0RF Vl9BRERFRAkweDQwCisjZGVmaW5lIE5WX0lOVF9FTkFCTEVfU0RFVl9SRU1PVkVECTB4ODAKKyNk ZWZpbmUgTlZfSU5UX0VOQUJMRV9QREVWX0hPVFBMVUcJKE5WX0lOVF9FTkFCTEVfUERFVl9BRERF RCB8IFwKKwkJCQkJTlZfSU5UX0VOQUJMRV9QREVWX1JFTU9WRUQpCisjZGVmaW5lIE5WX0lOVF9F TkFCTEVfU0RFVl9IT1RQTFVHCShOVl9JTlRfRU5BQkxFX1NERVZfQURERUQgfCBcCisJCQkJCU5W X0lOVF9FTkFCTEVfU0RFVl9SRU1PVkVEKQorI2RlZmluZSBOVl9JTlRfRU5BQkxFX0hPVFBMVUcJ CShOVl9JTlRfRU5BQkxFX1BERVZfSE9UUExVRyB8IFwKKwkJCQkJTlZfSU5UX0VOQUJMRV9TREVW X0hPVFBMVUcpCisKKyNkZWZpbmUgTlZfSU5UX0NPTkZJRwkJCTB4MTIKKyNkZWZpbmUgTlZfSU5U X0NPTkZJR19NRVRIRAkJMHgwMSAvLyAwID0gSU5ULCAxID0gU01JCisKK3N0YXRpYyBpbnQgbnZf aW5pdF9vbmUgKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9p ZCAqZW50KTsKK2lycXJldHVybl90IG52X2ludGVycnVwdCAoaW50IGlycSwgdm9pZCAqZGV2X2lu c3RhbmNlLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CitzdGF0aWMgdTMyIG52X3Njcl9yZWFkIChz dHJ1Y3QgYXRhX3BvcnQgKmFwLCB1bnNpZ25lZCBpbnQgc2NfcmVnKTsKK3N0YXRpYyB2b2lkIG52 X3Njcl93cml0ZSAoc3RydWN0IGF0YV9wb3J0ICphcCwgdW5zaWduZWQgaW50IHNjX3JlZywgdTMy IHZhbCk7CitzdGF0aWMgdm9pZCBudl9ob3N0X3N0b3AgKHN0cnVjdCBhdGFfaG9zdF9zZXQgKmhv c3Rfc2V0KTsKKworc3RhdGljIHN0cnVjdCBwY2lfZGV2aWNlX2lkIG52X3BjaV90YmxbXSA9IHsK Kwl7IFBDSV9WRU5ET1JfSURfTlZJRElBLCBQQ0lfREVWSUNFX0lEX05WSURJQV9ORk9SQ0UyU19T QVRBLAorCQlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwIH0sCisJeyBQQ0lfVkVORE9S X0lEX05WSURJQSwgUENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNFM1NfU0FUQSwKKwkJUENJX0FO WV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMSB9LAorCXsgUENJX1ZFTkRPUl9JRF9OVklESUEsIFBD SV9ERVZJQ0VfSURfTlZJRElBX05GT1JDRTNTX1NBVEEyLAorCQlQQ0lfQU5ZX0lELCBQQ0lfQU5Z X0lELCAwLCAwLCAyIH0sCisJeyAwLCB9IC8qIHRlcm1pbmF0ZSBsaXN0ICovCit9OworCitzdGF0 aWMgc3RydWN0IHBjaV9kcml2ZXIgbnZfcGNpX2RyaXZlciA9IHsKKwkubmFtZQkJCT0gRFJWX05B TUUsCisJLmlkX3RhYmxlCQk9IG52X3BjaV90YmwsCisJLnByb2JlCQkJPSBudl9pbml0X29uZSwK KwkucmVtb3ZlCQkJPSBhdGFfcGNpX3JlbW92ZV9vbmUsCit9OworCitzdGF0aWMgU2NzaV9Ib3N0 X1RlbXBsYXRlIG52X3NodCA9IHsKKwkubW9kdWxlCQkJPSBUSElTX01PRFVMRSwKKwkubmFtZQkJ CT0gRFJWX05BTUUsCisJLnF1ZXVlY29tbWFuZAkJPSBhdGFfc2NzaV9xdWV1ZWNtZCwKKwkuZWhf c3RyYXRlZ3lfaGFuZGxlcgk9IGF0YV9zY3NpX2Vycm9yLAorCS5jYW5fcXVldWUJCT0gQVRBX0RF Rl9RVUVVRSwKKwkudGhpc19pZAkJPSBBVEFfU0hUX1RISVNfSUQsCisJLnNnX3RhYmxlc2l6ZQkJ PSBBVEFfTUFYX1BSRCwKKwkubWF4X3NlY3RvcnMJCT0gQVRBX01BWF9TRUNUT1JTLAorCS5jbWRf cGVyX2x1bgkJPSBBVEFfU0hUX0NNRF9QRVJfTFVOLAorCS5lbXVsYXRlZAkJPSBBVEFfU0hUX0VN VUxBVEVELAorCS51c2VfY2x1c3RlcmluZwkJPSBBVEFfU0hUX1VTRV9DTFVTVEVSSU5HLAorCS5w cm9jX25hbWUJCT0gRFJWX05BTUUsCisJLmRtYV9ib3VuZGFyeQkJPSBBVEFfRE1BX0JPVU5EQVJZ LAorCS5zbGF2ZV9jb25maWd1cmUJPSBhdGFfc2NzaV9zbGF2ZV9jb25maWcsCisJLmJpb3NfcGFy YW0JCT0gYXRhX3N0ZF9iaW9zX3BhcmFtLAorfTsKKworc3RhdGljIHN0cnVjdCBhdGFfcG9ydF9v cGVyYXRpb25zIG52X29wcyA9IHsKKwkucG9ydF9kaXNhYmxlCQk9IGF0YV9wb3J0X2Rpc2FibGUs CisJLnRmX2xvYWQJCT0gYXRhX3RmX2xvYWRfcGlvLAorCS50Zl9yZWFkCQk9IGF0YV90Zl9yZWFk X3BpbywKKwkuZXhlY19jb21tYW5kCQk9IGF0YV9leGVjX2NvbW1hbmRfcGlvLAorCS5jaGVja19z dGF0dXMJCT0gYXRhX2NoZWNrX3N0YXR1c19waW8sCisJLnBoeV9yZXNldAkJPSBzYXRhX3BoeV9y ZXNldCwKKwkuYm1kbWFfc2V0dXAJCT0gYXRhX2JtZG1hX3NldHVwX3BpbywKKwkuYm1kbWFfc3Rh cnQJCT0gYXRhX2JtZG1hX3N0YXJ0X3BpbywKKwkuZmlsbF9zZwkJPSBhdGFfZmlsbF9zZywKKwku ZW5nX3RpbWVvdXQJCT0gYXRhX2VuZ190aW1lb3V0LAorCS5pcnFfaGFuZGxlcgkJPSBudl9pbnRl cnJ1cHQsCisJLnNjcl9yZWFkCQk9IG52X3Njcl9yZWFkLAorCS5zY3Jfd3JpdGUJCT0gbnZfc2Ny X3dyaXRlLAorCS5wb3J0X3N0YXJ0CQk9IGF0YV9wb3J0X3N0YXJ0LAorCS5wb3J0X3N0b3AJCT0g YXRhX3BvcnRfc3RvcCwKKwkuaG9zdF9zdG9wCQk9IG52X2hvc3Rfc3RvcCwKK307CisKK01PRFVM RV9BVVRIT1IoIk5WSURJQSIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJsb3ctbGV2ZWwgZHJpdmVy IGZvciBOVklESUEgbkZvcmNlIFNBVEEgY29udHJvbGxlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQ TCIpOworTU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG52X3BjaV90YmwpOworCitpcnFyZXR1cm5f dCBudl9pbnRlcnJ1cHQgKGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSwgc3RydWN0IHB0X3Jl Z3MgKnJlZ3MpCit7CisJc3RydWN0IGF0YV9ob3N0X3NldCAqaG9zdF9zZXQgPSBkZXZfaW5zdGFu Y2U7CisJdW5zaWduZWQgaW50IGk7CisJdW5zaWduZWQgaW50IGhhbmRsZWQgPSAwOworCXVuc2ln bmVkIGxvbmcgZmxhZ3M7CisJdTggaW50cl9zdGF0dXM7CisJdTggaW50cl9lbmFibGU7CisKKwlz cGluX2xvY2tfaXJxc2F2ZSgmaG9zdF9zZXQtPmxvY2ssIGZsYWdzKTsKKworCWZvciAoaSA9IDA7 IGkgPCBob3N0X3NldC0+bl9wb3J0czsgaSsrKSB7CisJCXN0cnVjdCBhdGFfcG9ydCAqYXA7CisK KwkJYXAgPSBob3N0X3NldC0+cG9ydHNbaV07CisJCWlmIChhcCAmJiAoIShhcC0+ZmxhZ3MgJiBB VEFfRkxBR19QT1JUX0RJU0FCTEVEKSkpIHsKKwkJCXN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWM7 CisKKwkJCXFjID0gYXRhX3FjX2Zyb21fdGFnKGFwLCBhcC0+YWN0aXZlX3RhZyk7CisJCQlpZiAo cWMgJiYgKCEocWMtPnRmLmN0bCAmIEFUQV9OSUVOKSkpCisJCQkJaGFuZGxlZCArPSBhdGFfaG9z dF9pbnRyKGFwLCBxYyk7CisJCX0KKworCQlpbnRyX3N0YXR1cyA9IGluYihhcC0+aW9hZGRyLnNj cl9hZGRyICsgTlZfSU5UX1NUQVRVUyk7CisJCWludHJfZW5hYmxlID0gaW5iKGFwLT5pb2FkZHIu c2NyX2FkZHIgKyBOVl9JTlRfRU5BQkxFKTsKKworCQkvLyBDbGVhciBpbnRlcnJ1cHQgc3RhdHVz LgorCQlvdXRiKDB4ZmYsIGFwLT5pb2FkZHIuc2NyX2FkZHIgKyBOVl9JTlRfU1RBVFVTKTsKKwor CQlpZiAoaW50cl9zdGF0dXMgJiBOVl9JTlRfU1RBVFVTX0hPVFBMVUcpIHsKKwkJCWlmIChpbnRy X3N0YXR1cyAmIE5WX0lOVF9TVEFUVVNfUERFVl9BRERFRCkgeworCQkJCXByaW50ayhLRVJOX1dB Uk5JTkcgImF0YSV1OiAiCisJCQkJCSJQcmltYXJ5IGRldmljZSBhZGRlZFxuIiwgYXAtPmlkKTsK KwkJCX0KKworCQkJaWYgKGludHJfc3RhdHVzICYgTlZfSU5UX1NUQVRVU19QREVWX1JFTU9WRUQp IHsKKwkJCQlwcmludGsoS0VSTl9XQVJOSU5HICJhdGEldTogIgorCQkJCQkiUHJpbWFyeSBkZXZp Y2UgcmVtb3ZlZFxuIiwgYXAtPmlkKTsKKwkJCX0KKworCQkJaWYgKGludHJfc3RhdHVzICYgTlZf SU5UX1NUQVRVU19TREVWX0FEREVEKSB7CisJCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYXRhJXU6 ICIKKwkJCQkJIlNlY29uZGFyeSBkZXZpY2UgYWRkZWRcbiIsIGFwLT5pZCk7CisJCQl9CisKKwkJ CWlmIChpbnRyX3N0YXR1cyAmIE5WX0lOVF9TVEFUVVNfU0RFVl9SRU1PVkVEKSB7CisJCQkJcHJp bnRrKEtFUk5fV0FSTklORyAiYXRhJXU6ICIKKwkJCQkJIlNlY29uZGFyeSBkZXZpY2UgcmVtb3Zl ZFxuIiwgYXAtPmlkKTsKKwkJCX0KKwkJfQorCX0KKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo Jmhvc3Rfc2V0LT5sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gSVJRX1JFVFZBTChoYW5kbGVkKTsK K30KKworc3RhdGljIHUzMiBudl9zY3JfcmVhZCAoc3RydWN0IGF0YV9wb3J0ICphcCwgdW5zaWdu ZWQgaW50IHNjX3JlZykKK3sKKwlpZiAoc2NfcmVnID4gU0NSX0NPTlRST0wpCisJCXJldHVybiAw eGZmZmZmZmZmVTsKKworCXJldHVybiBpbmwoYXAtPmlvYWRkci5zY3JfYWRkciArIChzY19yZWcg KiA0KSk7Cit9CisKK3N0YXRpYyB2b2lkIG52X3Njcl93cml0ZSAoc3RydWN0IGF0YV9wb3J0ICph cCwgdW5zaWduZWQgaW50IHNjX3JlZywgdTMyIHZhbCkKK3sKKwlpZiAoc2NfcmVnID4gU0NSX0NP TlRST0wpCisJCXJldHVybjsKKworCW91dGwodmFsLCBhcC0+aW9hZGRyLnNjcl9hZGRyICsgKHNj X3JlZyAqIDQpKTsKK30KKworc3RhdGljIHZvaWQgbnZfaG9zdF9zdG9wIChzdHJ1Y3QgYXRhX2hv c3Rfc2V0ICpob3N0X3NldCkKK3sKKwlpbnQgaTsKKworCWZvciAoaT0wOyBpPGhvc3Rfc2V0LT5u X3BvcnRzOyBpKyspIHsKKwkJdTggaW50cl9tYXNrOworCisJCS8vIERpc2FibGUgaG90cGx1ZyBl dmVudCBpbnRlcnJ1cHRzLgorCQlpbnRyX21hc2sgPSBpbmIoaG9zdF9zZXQtPnBvcnRzW2ldLT5p b2FkZHIuc2NyX2FkZHIgKworCQkJCU5WX0lOVF9FTkFCTEUpOworCQlpbnRyX21hc2sgJj0gfihO Vl9JTlRfRU5BQkxFX0hPVFBMVUcpOworCQlvdXRiKGludHJfbWFzaywgaG9zdF9zZXQtPnBvcnRz W2ldLT5pb2FkZHIuc2NyX2FkZHIgKworCQkJCU5WX0lOVF9FTkFCTEUpOworCX0KK30KKworc3Rh dGljIGludCBudl9pbml0X29uZSAoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBw Y2lfZGV2aWNlX2lkICplbnQpCit7CisJc3RhdGljIGludCBwcmludGVkX3ZlcnNpb24gPSAwOwor CXN0cnVjdCBhdGFfcHJvYmVfZW50ICpwcm9iZV9lbnQgPSBOVUxMOworCWludCBpOworCWludCBy YzsKKworCWlmICghcHJpbnRlZF92ZXJzaW9uKyspCisJCXByaW50ayhLRVJOX0RFQlVHIERSVl9O QU1FICIgdmVyc2lvbiAiIERSVl9WRVJTSU9OICJcbiIpOworCisJcmMgPSBwY2lfZW5hYmxlX2Rl dmljZShwZGV2KTsKKwlpZiAocmMpCisJCXJldHVybiByYzsKKworCXJjID0gcGNpX3JlcXVlc3Rf cmVnaW9ucyhwZGV2LCBEUlZfTkFNRSk7CisJaWYgKHJjKQorCQlnb3RvIGVycl9vdXQ7CisKKwly YyA9IHBjaV9zZXRfZG1hX21hc2socGRldiwgQVRBX0RNQV9NQVNLKTsKKwlpZiAocmMpCisJCWdv dG8gZXJyX291dF9yZWdpb25zOworCXJjID0gcGNpX3NldF9jb25zaXN0ZW50X2RtYV9tYXNrKHBk ZXYsIEFUQV9ETUFfTUFTSyk7CisJaWYgKHJjKQorCQlnb3RvIGVycl9vdXRfcmVnaW9uczsKKwor CXByb2JlX2VudCA9IGttYWxsb2Moc2l6ZW9mKCpwcm9iZV9lbnQpLCBHRlBfS0VSTkVMKTsKKwlp ZiAoIXByb2JlX2VudCkgeworCQlyYyA9IC1FTk9NRU07CisJCWdvdG8gZXJyX291dF9yZWdpb25z OworCX0KKworCW1lbXNldChwcm9iZV9lbnQsIDAsIHNpemVvZigqcHJvYmVfZW50KSk7CisJSU5J VF9MSVNUX0hFQUQoJnByb2JlX2VudC0+bm9kZSk7CisKKwlwcm9iZV9lbnQtPnBkZXYgPSBwZGV2 OworCXByb2JlX2VudC0+c2h0ID0gJm52X3NodDsKKwlwcm9iZV9lbnQtPmhvc3RfZmxhZ3MgPSBB VEFfRkxBR19TQVRBIHwKKwkJCQlBVEFfRkxBR19TQVRBX1JFU0VUIHwKKwkJCQlBVEFfRkxBR19T UlNUIHwKKwkJCQlBVEFfRkxBR19OT19MRUdBQ1k7CisJcHJvYmVfZW50LT5wb3J0X29wcyA9ICZu dl9vcHM7CisJcHJvYmVfZW50LT5uX3BvcnRzID0gTlZfUE9SVFM7CisJcHJvYmVfZW50LT5pcnEg PSBwZGV2LT5pcnE7CisJcHJvYmVfZW50LT5pcnFfZmxhZ3MgPSBTQV9TSElSUTsKKwlwcm9iZV9l bnQtPnBpb19tYXNrID0gTlZfUElPX01BU0s7CisJcHJvYmVfZW50LT51ZG1hX21hc2sgPSBOVl9V RE1BX01BU0s7CisKKwlwcm9iZV9lbnQtPnBvcnRbMF0uY21kX2FkZHIgPSBwY2lfcmVzb3VyY2Vf c3RhcnQocGRldiwgMCk7CisJYXRhX3N0ZF9wb3J0cygmcHJvYmVfZW50LT5wb3J0WzBdKTsKKwlw cm9iZV9lbnQtPnBvcnRbMF0uYWx0c3RhdHVzX2FkZHIgPQorCXByb2JlX2VudC0+cG9ydFswXS5j dGxfYWRkciA9CisJCXBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAxKSB8IEFUQV9QQ0lfQ1RMX09G UzsKKwlwcm9iZV9lbnQtPnBvcnRbMF0uYm1kbWFfYWRkciA9CisJCXBjaV9yZXNvdXJjZV9zdGFy dChwZGV2LCA0KSB8IE5WX1BPUlQwX0JNRE1BX1JFR19PRkZTRVQ7CisJcHJvYmVfZW50LT5wb3J0 WzBdLnNjcl9hZGRyID0KKwkJcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDUpIHwgTlZfUE9SVDBf U0NSX1JFR19PRkZTRVQ7CisKKwlwcm9iZV9lbnQtPnBvcnRbMV0uY21kX2FkZHIgPSBwY2lfcmVz b3VyY2Vfc3RhcnQocGRldiwgMik7CisJYXRhX3N0ZF9wb3J0cygmcHJvYmVfZW50LT5wb3J0WzFd KTsKKwlwcm9iZV9lbnQtPnBvcnRbMV0uYWx0c3RhdHVzX2FkZHIgPQorCXByb2JlX2VudC0+cG9y dFsxXS5jdGxfYWRkciA9CisJCXBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAzKSB8IEFUQV9QQ0lf Q1RMX09GUzsKKwlwcm9iZV9lbnQtPnBvcnRbMV0uYm1kbWFfYWRkciA9CisJCXBjaV9yZXNvdXJj ZV9zdGFydChwZGV2LCA0KSB8IE5WX1BPUlQxX0JNRE1BX1JFR19PRkZTRVQ7CisJcHJvYmVfZW50 LT5wb3J0WzFdLnNjcl9hZGRyID0KKwkJcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDUpIHwgTlZf UE9SVDFfU0NSX1JFR19PRkZTRVQ7CisKKwlwY2lfc2V0X21hc3RlcihwZGV2KTsKKworCXJjID0g YXRhX2RldmljZV9hZGQocHJvYmVfZW50KTsKKwlpZiAocmMgIT0gTlZfUE9SVFMpCisJCWdvdG8g ZXJyX291dF9yZWdpb25zOworCisJLy8gRW5hYmxlIGhvdHBsdWcgZXZlbnQgaW50ZXJydXB0cy4K Kwlmb3IgKGk9MDsgaTxwcm9iZV9lbnQtPm5fcG9ydHM7IGkrKykgeworCQl1OCBpbnRyX21hc2s7 CisKKwkJb3V0YihOVl9JTlRfU1RBVFVTX0hPVFBMVUcsIHByb2JlX2VudC0+cG9ydFtpXS5zY3Jf YWRkciArCisJCQkJCQlOVl9JTlRfU1RBVFVTKTsKKworCQlpbnRyX21hc2sgPSBpbmIocHJvYmVf ZW50LT5wb3J0W2ldLnNjcl9hZGRyICsgTlZfSU5UX0VOQUJMRSk7CisJCWludHJfbWFzayB8PSBO Vl9JTlRfRU5BQkxFX0hPVFBMVUc7CisJCW91dGIoaW50cl9tYXNrLCBwcm9iZV9lbnQtPnBvcnRb aV0uc2NyX2FkZHIgKyBOVl9JTlRfRU5BQkxFKTsKKwl9CisKKwlrZnJlZShwcm9iZV9lbnQpOwor CisJcmV0dXJuIDA7CisKK2Vycl9vdXRfcmVnaW9uczoKKwlwY2lfcmVsZWFzZV9yZWdpb25zKHBk ZXYpOworCitlcnJfb3V0OgorCXBjaV9kaXNhYmxlX2RldmljZShwZGV2KTsKKwlyZXR1cm4gcmM7 Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IG52X2luaXQodm9pZCkKK3sKKwlyZXR1cm4gcGNpX21v ZHVsZV9pbml0KCZudl9wY2lfZHJpdmVyKTsKK30KKworc3RhdGljIHZvaWQgX19leGl0IG52X2V4 aXQodm9pZCkKK3sKKwlwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoJm52X3BjaV9kcml2ZXIpOworfQor Cittb2R1bGVfaW5pdChudl9pbml0KTsKK21vZHVsZV9leGl0KG52X2V4aXQpOwo= ------_=_NextPart_001_01C45400.7C14AF00-- - 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/