Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760439AbYBTTKs (ORCPT ); Wed, 20 Feb 2008 14:10:48 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753271AbYBTTKg (ORCPT ); Wed, 20 Feb 2008 14:10:36 -0500 Received: from wa-out-1112.google.com ([209.85.146.181]:10110 "EHLO wa-out-1112.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752614AbYBTTKe (ORCPT ); Wed, 20 Feb 2008 14:10:34 -0500 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=r+nBD9vyQHutObWcXK3COfiyXcOqsR/awNLJk/NJqsOcxLhske6CQAksQw4ND6M5UgQtHGG5oKaH5bgp479JqkXDcrxW8Rip7q6/wi+Q11/RT0aDcZTsggJOG5NpFk0SQJc0+4lQ4AuRgC7J0rQVARcyaM02xOvu9WPVYRo8I38= Message-ID: Date: Thu, 21 Feb 2008 03:10:33 +0800 From: "Jeff Chua" To: "Jesse Barnes" Subject: Re: 2.6.25-rc2 System no longer powers off after suspend-to-disk. Screen becomes green. Cc: "Linus Torvalds" , lkml , "Dave Airlie" , "Rafael J. Wysocki" , linux-acpi@vger.kernel.org, "suspend-devel List" , "Greg KH" In-Reply-To: <200802201053.16218.jesse.barnes@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_23868_29910217.1203534633069" References: <200802200950.53591.jesse.barnes@intel.com> <200802201053.16218.jesse.barnes@intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 25119 Lines: 346 ------=_Part_23868_29910217.1203534633069 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Feb 21, 2008 2:53 AM, Jesse Barnes wrote: > > So, next I'll try "shutdown" to see if it work. I was using "platform". > Ok, that would be good to try. "shutdown" does power down properly. But still green on resume. > Looks like the AR registers are hosed, which is what I thought I fixed... Can > you attach your i915_drv.c file just so I can sanity check it? Attached. Thanks, Jeff. ------=_Part_23868_29910217.1203534633069 Content-Type: text/plain; name=i915_drv.c Content-Transfer-Encoding: base64 X-Attachment-Id: f_fcw9f7e30 Content-Disposition: attachment; filename=i915_drv.c LyogaTkxNV9kcnYuYyAtLSBpODMwLGk4NDUsaTg1NSxpODY1LGk5MTUgZHJpdmVyIC0qLSBsaW51 eC1jIC0qLQogKi8KLyoKICoKICogQ29weXJpZ2h0IDIwMDMgVHVuZ3N0ZW4gR3JhcGhpY3MsIElu Yy4sIENlZGFyIFBhcmssIFRleGFzLgogKiBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKiBQZXJt aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv YnRhaW5pbmcgYQogKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlCiAqICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2Fy ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKICogd2l0aG91dCBsaW1pdGF0aW9uIHRo ZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAogKiBkaXN0cmli dXRlLCBzdWIgbGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k IHRvCiAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0 byBkbyBzbywgc3ViamVjdCB0bwogKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CiAqCiAqIFRo ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNs dWRpbmcgdGhlCiAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29w aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCiAqIG9mIHRoZSBTb2Z0d2FyZS4KICoKICogVEhF IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ TkQsIEVYUFJFU1MKICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU SEUgV0FSUkFOVElFUyBPRgogKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5ULgogKiBJTiBOTyBFVkVOVCBTSEFMTCBU VU5HU1RFTiBHUkFQSElDUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SCiAqIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O IE9GIENPTlRSQUNULAogKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0Yg T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQogKiBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVS IERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KICoKICovCgojaW5jbHVkZSAiZHJtUC5oIgojaW5j bHVkZSAiZHJtLmgiCiNpbmNsdWRlICJpOTE1X2RybS5oIgojaW5jbHVkZSAiaTkxNV9kcnYuaCIK CiNpbmNsdWRlICJkcm1fcGNpaWRzLmgiCgpzdGF0aWMgc3RydWN0IHBjaV9kZXZpY2VfaWQgcGNp aWRsaXN0W10gPSB7CglpOTE1X1BDSV9JRFMKfTsKCmVudW0gcGlwZSB7CiAgICBQSVBFX0EgPSAw LAogICAgUElQRV9CLAp9OwoKc3RhdGljIGJvb2wgaTkxNV9waXBlX2VuYWJsZWQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUpCnsKCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CgoJaWYgKHBpcGUgPT0gUElQRV9BKQoJCXJl dHVybiAoSTkxNV9SRUFEKERQTExfQSkgJiBEUExMX1ZDT19FTkFCTEUpOwoJZWxzZQoJCXJldHVy biAoSTkxNV9SRUFEKERQTExfQikgJiBEUExMX1ZDT19FTkFCTEUpOwp9CgpzdGF0aWMgdm9pZCBp OTE1X3NhdmVfcGFsZXR0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkK ewoJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK CXVuc2lnbmVkIGxvbmcgcmVnID0gKHBpcGUgPT0gUElQRV9BID8gUEFMRVRURV9BIDogUEFMRVRU RV9CKTsKCXUzMiAqYXJyYXk7CglpbnQgaTsKCglpZiAoIWk5MTVfcGlwZV9lbmFibGVkKGRldiwg cGlwZSkpCgkJcmV0dXJuOwoKCWlmIChwaXBlID09IFBJUEVfQSkKCQlhcnJheSA9IGRldl9wcml2 LT5zYXZlX3BhbGV0dGVfYTsKCWVsc2UKCQlhcnJheSA9IGRldl9wcml2LT5zYXZlX3BhbGV0dGVf YjsKCglmb3IoaSA9IDA7IGkgPCAyNTY7IGkrKykKCQlhcnJheVtpXSA9IEk5MTVfUkVBRChyZWcg KyAoaSA8PCAyKSk7Cn0KCnN0YXRpYyB2b2lkIGk5MTVfcmVzdG9yZV9wYWxldHRlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlKQp7CglzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwoJdW5zaWduZWQgbG9uZyByZWcgPSAocGlw ZSA9PSBQSVBFX0EgPyBQQUxFVFRFX0EgOiBQQUxFVFRFX0IpOwoJdTMyICphcnJheTsKCWludCBp OwoKCWlmICghaTkxNV9waXBlX2VuYWJsZWQoZGV2LCBwaXBlKSkKCQlyZXR1cm47CgoJaWYgKHBp cGUgPT0gUElQRV9BKQoJCWFycmF5ID0gZGV2X3ByaXYtPnNhdmVfcGFsZXR0ZV9hOwoJZWxzZQoJ CWFycmF5ID0gZGV2X3ByaXYtPnNhdmVfcGFsZXR0ZV9iOwoKCWZvcihpID0gMDsgaSA8IDI1Njsg aSsrKQoJCUk5MTVfV1JJVEUocmVnICsgKGkgPDwgMiksIGFycmF5W2ldKTsKfQoKc3RhdGljIHU4 IGk5MTVfcmVhZF9pbmRleGVkKHUxNiBpbmRleF9wb3J0LCB1MTYgZGF0YV9wb3J0LCB1OCByZWcp CnsKCW91dGIocmVnLCBpbmRleF9wb3J0KTsKCXJldHVybiBpbmIoZGF0YV9wb3J0KTsKfQoKc3Rh dGljIHU4IGk5MTVfcmVhZF9hcih1MTYgc3QwMSwgdTggcmVnLCB1MTYgcGFsZXR0ZV9lbmFibGUp CnsKCWluYihzdDAxKTsKCW91dGIocGFsZXR0ZV9lbmFibGUgfCByZWcsIFZHQV9BUl9JTkRFWCk7 CglyZXR1cm4gaW5iKFZHQV9BUl9EQVRBX1JFQUQpOwp9CgpzdGF0aWMgdm9pZCBpOTE1X3dyaXRl X2FyKHU4IHN0MDEsIHU4IHJlZywgdTggdmFsLCB1MTYgcGFsZXR0ZV9lbmFibGUpCnsKCWluYihz dDAxKTsKCW91dGIocGFsZXR0ZV9lbmFibGUgfCByZWcsIFZHQV9BUl9JTkRFWCk7CglvdXRiKHZh bCwgVkdBX0FSX0RBVEFfV1JJVEUpOwp9CgpzdGF0aWMgdm9pZCBpOTE1X3dyaXRlX2luZGV4ZWQo dTE2IGluZGV4X3BvcnQsIHUxNiBkYXRhX3BvcnQsIHU4IHJlZywgdTggdmFsKQp7CglvdXRiKHJl ZywgaW5kZXhfcG9ydCk7CglvdXRiKHZhbCwgZGF0YV9wb3J0KTsKfQoKc3RhdGljIHZvaWQgaTkx NV9zYXZlX3ZnYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQp7CglzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwoJaW50IGk7Cgl1MTYgY3JfaW5kZXgs IGNyX2RhdGEsIHN0MDE7CgoJLyogVkdBIGNvbG9yIHBhbGV0dGUgcmVnaXN0ZXJzICovCglkZXZf cHJpdi0+c2F2ZURBQ01BU0sgPSBpbmIoVkdBX0RBQ01BU0spOwoJLyogREFDQ1JYIGF1dG9tYXRp Y2FsbHkgaW5jcmVtZW50cyBkdXJpbmcgcmVhZCAqLwoJb3V0YigwLCBWR0FfREFDUlgpOwoJLyog UmVhZCAzIGJ5dGVzIG9mIGNvbG9yIGRhdGEgZnJvbSBlYWNoIGluZGV4ICovCglmb3IgKGkgPSAw OyBpIDwgMjU2ICogMzsgaSsrKQoJCWRldl9wcml2LT5zYXZlREFDREFUQVtpXSA9IGluYihWR0Ff REFDREFUQSk7CgoJLyogTVNSIGJpdHMgKi8KCWRldl9wcml2LT5zYXZlTVNSID0gaW5iKFZHQV9N U1JfUkVBRCk7CglpZiAoZGV2X3ByaXYtPnNhdmVNU1IgJiBWR0FfTVNSX0NHQV9NT0RFKSB7CgkJ Y3JfaW5kZXggPSBWR0FfQ1JfSU5ERVhfQ0dBOwoJCWNyX2RhdGEgPSBWR0FfQ1JfREFUQV9DR0E7 CgkJc3QwMSA9IFZHQV9TVDAxX0NHQTsKCX0gZWxzZSB7CgkJY3JfaW5kZXggPSBWR0FfQ1JfSU5E RVhfTURBOwoJCWNyX2RhdGEgPSBWR0FfQ1JfREFUQV9NREE7CgkJc3QwMSA9IFZHQV9TVDAxX01E QTsKCX0KCgkvKiBDUlQgY29udHJvbGxlciByZWdzICovCglpOTE1X3dyaXRlX2luZGV4ZWQoY3Jf aW5kZXgsIGNyX2RhdGEsIDB4MTEsCgkJCSAgIGk5MTVfcmVhZF9pbmRleGVkKGNyX2luZGV4LCBj cl9kYXRhLCAweDExKSAmCgkJCSAgICh+MHg4MCkpOwoJZm9yIChpID0gMDsgaSA8IDB4MjQ7IGkr KykKCQlkZXZfcHJpdi0+c2F2ZUNSW2ldID0KCQkJaTkxNV9yZWFkX2luZGV4ZWQoY3JfaW5kZXgs IGNyX2RhdGEsIGkpOwoJLyogTWFrZSBzdXJlIHdlIGRvbid0IHR1cm4gb2ZmIENSIGdyb3VwIDAg d3JpdGVzICovCglkZXZfcHJpdi0+c2F2ZUNSWzB4MTFdICY9IH4weDgwOwoKCS8qIEF0dHJpYnV0 ZSBjb250cm9sbGVyIHJlZ2lzdGVycyAqLwoJaW5iKHN0MDEpOwoJZGV2X3ByaXYtPnNhdmVBUl9J TkRFWCA9IGluYihWR0FfQVJfSU5ERVgpOwoJZm9yIChpID0gMDsgaSA8IDIwOyBpKyspCgkJZGV2 X3ByaXYtPnNhdmVBUltpXSA9IGk5MTVfcmVhZF9hcihzdDAxLCBpLCAwKTsKCWluYihzdDAxKTsK CW91dGIoZGV2X3ByaXYtPnNhdmVBUl9JTkRFWCwgVkdBX0FSX0lOREVYKTsKCWluYihzdDAxKTsK CgkvKiBHcmFwaGljcyBjb250cm9sbGVyIHJlZ2lzdGVycyAqLwoJZm9yIChpID0gMDsgaSA8IDk7 IGkrKykKCQlkZXZfcHJpdi0+c2F2ZUdSW2ldID0KCQkJaTkxNV9yZWFkX2luZGV4ZWQoVkdBX0dS X0lOREVYLCBWR0FfR1JfREFUQSwgaSk7CgoJZGV2X3ByaXYtPnNhdmVHUlsweDEwXSA9CgkJaTkx NV9yZWFkX2luZGV4ZWQoVkdBX0dSX0lOREVYLCBWR0FfR1JfREFUQSwgMHgxMCk7CglkZXZfcHJp di0+c2F2ZUdSWzB4MTFdID0KCQlpOTE1X3JlYWRfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9H Ul9EQVRBLCAweDExKTsKCWRldl9wcml2LT5zYXZlR1JbMHgxOF0gPQoJCWk5MTVfcmVhZF9pbmRl eGVkKFZHQV9HUl9JTkRFWCwgVkdBX0dSX0RBVEEsIDB4MTgpOwoKCS8qIFNlcXVlbmNlciByZWdp c3RlcnMgKi8KCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCgkJZGV2X3ByaXYtPnNhdmVTUltpXSA9 CgkJCWk5MTVfcmVhZF9pbmRleGVkKFZHQV9TUl9JTkRFWCwgVkdBX1NSX0RBVEEsIGkpOwp9Cgpz dGF0aWMgdm9pZCBpOTE1X3Jlc3RvcmVfdmdhKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCnsKCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CglpbnQg aTsKCXUxNiBjcl9pbmRleCwgY3JfZGF0YSwgc3QwMTsKCgkvKiBNU1IgYml0cyAqLwoJb3V0Yihk ZXZfcHJpdi0+c2F2ZU1TUiwgVkdBX01TUl9XUklURSk7CglpZiAoZGV2X3ByaXYtPnNhdmVNU1Ig JiBWR0FfTVNSX0NHQV9NT0RFKSB7CgkJY3JfaW5kZXggPSBWR0FfQ1JfSU5ERVhfQ0dBOwoJCWNy X2RhdGEgPSBWR0FfQ1JfREFUQV9DR0E7CgkJc3QwMSA9IFZHQV9TVDAxX0NHQTsKCX0gZWxzZSB7 CgkJY3JfaW5kZXggPSBWR0FfQ1JfSU5ERVhfTURBOwoJCWNyX2RhdGEgPSBWR0FfQ1JfREFUQV9N REE7CgkJc3QwMSA9IFZHQV9TVDAxX01EQTsKCX0KCgkvKiBTZXF1ZW5jZXIgcmVnaXN0ZXJzLCBk b24ndCB3cml0ZSBTUjA3ICovCglmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKQoJCWk5MTVfd3JpdGVf aW5kZXhlZChWR0FfU1JfSU5ERVgsIFZHQV9TUl9EQVRBLCBpLAoJCQkJICAgZGV2X3ByaXYtPnNh dmVTUltpXSk7CgoJLyogQ1JUIGNvbnRyb2xsZXIgcmVncyAqLwoJLyogRW5hYmxlIENSIGdyb3Vw IDAgd3JpdGVzICovCglpOTE1X3dyaXRlX2luZGV4ZWQoY3JfaW5kZXgsIGNyX2RhdGEsIDB4MTEs IGRldl9wcml2LT5zYXZlQ1JbMHgxMV0pOwoJZm9yIChpID0gMDsgaSA8IDB4MjQ7IGkrKykKCQlp OTE1X3dyaXRlX2luZGV4ZWQoY3JfaW5kZXgsIGNyX2RhdGEsIGksIGRldl9wcml2LT5zYXZlQ1Jb aV0pOwoKCS8qIEdyYXBoaWNzIGNvbnRyb2xsZXIgcmVncyAqLwoJZm9yIChpID0gMDsgaSA8IDk7 IGkrKykKCQlpOTE1X3dyaXRlX2luZGV4ZWQoVkdBX0dSX0lOREVYLCBWR0FfR1JfREFUQSwgaSwK CQkJCSAgIGRldl9wcml2LT5zYXZlR1JbaV0pOwoKCWk5MTVfd3JpdGVfaW5kZXhlZChWR0FfR1Jf SU5ERVgsIFZHQV9HUl9EQVRBLCAweDEwLAoJCQkgICBkZXZfcHJpdi0+c2F2ZUdSWzB4MTBdKTsK CWk5MTVfd3JpdGVfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9HUl9EQVRBLCAweDExLAoJCQkg ICBkZXZfcHJpdi0+c2F2ZUdSWzB4MTFdKTsKCWk5MTVfd3JpdGVfaW5kZXhlZChWR0FfR1JfSU5E RVgsIFZHQV9HUl9EQVRBLCAweDE4LAoJCQkgICBkZXZfcHJpdi0+c2F2ZUdSWzB4MThdKTsKCgkv KiBBdHRyaWJ1dGUgY29udHJvbGxlciByZWdpc3RlcnMgKi8KCWZvciAoaSA9IDA7IGkgPCAyMDsg aSsrKQoJCWk5MTVfd3JpdGVfYXIoc3QwMSwgaSwgZGV2X3ByaXYtPnNhdmVBUltpXSwgMCk7Cglp bmIoc3QwMSk7IC8qIHN3aXRjaCBiYWNrIHRvIGluZGV4IG1vZGUgKi8KCW91dGIoZGV2X3ByaXYt PnNhdmVBUl9JTkRFWCB8IDB4MjAsIFZHQV9BUl9JTkRFWCk7CglpbmIoc3QwMSk7CgoJLyogVkdB IGNvbG9yIHBhbGV0dGUgcmVnaXN0ZXJzICovCglvdXRiKGRldl9wcml2LT5zYXZlREFDTUFTSywg VkdBX0RBQ01BU0spOwoJLyogREFDQ1JYIGF1dG9tYXRpY2FsbHkgaW5jcmVtZW50cyBkdXJpbmcg cmVhZCAqLwoJb3V0YigwLCBWR0FfREFDV1gpOwoJLyogUmVhZCAzIGJ5dGVzIG9mIGNvbG9yIGRh dGEgZnJvbSBlYWNoIGluZGV4ICovCglmb3IgKGkgPSAwOyBpIDwgMjU2ICogMzsgaSsrKQoJCW91 dGIoZGV2X3ByaXYtPnNhdmVEQUNEQVRBW2ldLCBWR0FfREFDREFUQSk7Cgp9CgpzdGF0aWMgaW50 IGk5MTVfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUp CnsKCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 CglpbnQgaTsKCglpZiAoIWRldiB8fCAhZGV2X3ByaXYpIHsKCQlwcmludGsoS0VSTl9FUlIgImRl djogJXAsIGRldl9wcml2OiAlcFxuIiwgZGV2LCBkZXZfcHJpdik7CgkJcHJpbnRrKEtFUk5fRVJS ICJEUk0gbm90IGluaXRpYWxpemVkLCBhYm9ydGluZyBzdXNwZW5kLlxuIik7CgkJcmV0dXJuIC1F Tk9ERVY7Cgl9CgoJaWYgKHN0YXRlLmV2ZW50ID09IFBNX0VWRU5UX1BSRVRIQVcpCgkJcmV0dXJu IDA7CgoJcGNpX3NhdmVfc3RhdGUoZGV2LT5wZGV2KTsKCXBjaV9yZWFkX2NvbmZpZ19ieXRlKGRl di0+cGRldiwgTEJCLCAmZGV2X3ByaXYtPnNhdmVMQkIpOwoKCS8qIFBpcGUgJiBwbGFuZSBBIGlu Zm8gKi8KCWRldl9wcml2LT5zYXZlUElQRUFDT05GID0gSTkxNV9SRUFEKFBJUEVBQ09ORik7Cglk ZXZfcHJpdi0+c2F2ZVBJUEVBU1JDID0gSTkxNV9SRUFEKFBJUEVBU1JDKTsKCWRldl9wcml2LT5z YXZlRlBBMCA9IEk5MTVfUkVBRChGUEEwKTsKCWRldl9wcml2LT5zYXZlRlBBMSA9IEk5MTVfUkVB RChGUEExKTsKCWRldl9wcml2LT5zYXZlRFBMTF9BID0gSTkxNV9SRUFEKERQTExfQSk7CglpZiAo SVNfSTk2NUcoZGV2KSkKCQlkZXZfcHJpdi0+c2F2ZURQTExfQV9NRCA9IEk5MTVfUkVBRChEUExM X0FfTUQpOwoJZGV2X3ByaXYtPnNhdmVIVE9UQUxfQSA9IEk5MTVfUkVBRChIVE9UQUxfQSk7Cglk ZXZfcHJpdi0+c2F2ZUhCTEFOS19BID0gSTkxNV9SRUFEKEhCTEFOS19BKTsKCWRldl9wcml2LT5z YXZlSFNZTkNfQSA9IEk5MTVfUkVBRChIU1lOQ19BKTsKCWRldl9wcml2LT5zYXZlVlRPVEFMX0Eg PSBJOTE1X1JFQUQoVlRPVEFMX0EpOwoJZGV2X3ByaXYtPnNhdmVWQkxBTktfQSA9IEk5MTVfUkVB RChWQkxBTktfQSk7CglkZXZfcHJpdi0+c2F2ZVZTWU5DX0EgPSBJOTE1X1JFQUQoVlNZTkNfQSk7 CglkZXZfcHJpdi0+c2F2ZUJDTFJQQVRfQSA9IEk5MTVfUkVBRChCQ0xSUEFUX0EpOwoKCWRldl9w cml2LT5zYXZlRFNQQUNOVFIgPSBJOTE1X1JFQUQoRFNQQUNOVFIpOwoJZGV2X3ByaXYtPnNhdmVE U1BBU1RSSURFID0gSTkxNV9SRUFEKERTUEFTVFJJREUpOwoJZGV2X3ByaXYtPnNhdmVEU1BBU0la RSA9IEk5MTVfUkVBRChEU1BBU0laRSk7CglkZXZfcHJpdi0+c2F2ZURTUEFQT1MgPSBJOTE1X1JF QUQoRFNQQVBPUyk7CglkZXZfcHJpdi0+c2F2ZURTUEFCQVNFID0gSTkxNV9SRUFEKERTUEFCQVNF KTsKCWlmIChJU19JOTY1RyhkZXYpKSB7CgkJZGV2X3ByaXYtPnNhdmVEU1BBU1VSRiA9IEk5MTVf UkVBRChEU1BBU1VSRik7CgkJZGV2X3ByaXYtPnNhdmVEU1BBVElMRU9GRiA9IEk5MTVfUkVBRChE U1BBVElMRU9GRik7Cgl9CglpOTE1X3NhdmVfcGFsZXR0ZShkZXYsIFBJUEVfQSk7CglkZXZfcHJp di0+c2F2ZVBJUEVBU1RBVCA9IEk5MTVfUkVBRChJOTE1UkVHX1BJUEVBU1RBVCk7CgoJLyogUGlw ZSAmIHBsYW5lIEIgaW5mbyAqLwoJZGV2X3ByaXYtPnNhdmVQSVBFQkNPTkYgPSBJOTE1X1JFQUQo UElQRUJDT05GKTsKCWRldl9wcml2LT5zYXZlUElQRUJTUkMgPSBJOTE1X1JFQUQoUElQRUJTUkMp OwoJZGV2X3ByaXYtPnNhdmVGUEIwID0gSTkxNV9SRUFEKEZQQjApOwoJZGV2X3ByaXYtPnNhdmVG UEIxID0gSTkxNV9SRUFEKEZQQjEpOwoJZGV2X3ByaXYtPnNhdmVEUExMX0IgPSBJOTE1X1JFQUQo RFBMTF9CKTsKCWlmIChJU19JOTY1RyhkZXYpKQoJCWRldl9wcml2LT5zYXZlRFBMTF9CX01EID0g STkxNV9SRUFEKERQTExfQl9NRCk7CglkZXZfcHJpdi0+c2F2ZUhUT1RBTF9CID0gSTkxNV9SRUFE KEhUT1RBTF9CKTsKCWRldl9wcml2LT5zYXZlSEJMQU5LX0IgPSBJOTE1X1JFQUQoSEJMQU5LX0Ip OwoJZGV2X3ByaXYtPnNhdmVIU1lOQ19CID0gSTkxNV9SRUFEKEhTWU5DX0IpOwoJZGV2X3ByaXYt PnNhdmVWVE9UQUxfQiA9IEk5MTVfUkVBRChWVE9UQUxfQik7CglkZXZfcHJpdi0+c2F2ZVZCTEFO S19CID0gSTkxNV9SRUFEKFZCTEFOS19CKTsKCWRldl9wcml2LT5zYXZlVlNZTkNfQiA9IEk5MTVf UkVBRChWU1lOQ19CKTsKCWRldl9wcml2LT5zYXZlQkNMUlBBVF9BID0gSTkxNV9SRUFEKEJDTFJQ QVRfQSk7CgoJZGV2X3ByaXYtPnNhdmVEU1BCQ05UUiA9IEk5MTVfUkVBRChEU1BCQ05UUik7Cglk ZXZfcHJpdi0+c2F2ZURTUEJTVFJJREUgPSBJOTE1X1JFQUQoRFNQQlNUUklERSk7CglkZXZfcHJp di0+c2F2ZURTUEJTSVpFID0gSTkxNV9SRUFEKERTUEJTSVpFKTsKCWRldl9wcml2LT5zYXZlRFNQ QlBPUyA9IEk5MTVfUkVBRChEU1BCUE9TKTsKCWRldl9wcml2LT5zYXZlRFNQQkJBU0UgPSBJOTE1 X1JFQUQoRFNQQkJBU0UpOwoJaWYgKElTX0k5NjVHTShkZXYpIHx8IElTX0lHRF9HTShkZXYpKSB7 CgkJZGV2X3ByaXYtPnNhdmVEU1BCU1VSRiA9IEk5MTVfUkVBRChEU1BCU1VSRik7CgkJZGV2X3By aXYtPnNhdmVEU1BCVElMRU9GRiA9IEk5MTVfUkVBRChEU1BCVElMRU9GRik7Cgl9CglpOTE1X3Nh dmVfcGFsZXR0ZShkZXYsIFBJUEVfQik7CglkZXZfcHJpdi0+c2F2ZVBJUEVCU1RBVCA9IEk5MTVf UkVBRChJOTE1UkVHX1BJUEVCU1RBVCk7CgoJLyogQ1JUIHN0YXRlICovCglkZXZfcHJpdi0+c2F2 ZUFEUEEgPSBJOTE1X1JFQUQoQURQQSk7CgoJLyogTFZEUyBzdGF0ZSAqLwoJZGV2X3ByaXYtPnNh dmVQUF9DT05UUk9MID0gSTkxNV9SRUFEKFBQX0NPTlRST0wpOwoJZGV2X3ByaXYtPnNhdmVQRklU X1BHTV9SQVRJT1MgPSBJOTE1X1JFQUQoUEZJVF9QR01fUkFUSU9TKTsKCWRldl9wcml2LT5zYXZl QkxDX1BXTV9DVEwgPSBJOTE1X1JFQUQoQkxDX1BXTV9DVEwpOwoJaWYgKElTX0k5NjVHKGRldikp CgkJZGV2X3ByaXYtPnNhdmVCTENfUFdNX0NUTDIgPSBJOTE1X1JFQUQoQkxDX1BXTV9DVEwyKTsK CWlmIChJU19NT0JJTEUoZGV2KSAmJiAhSVNfSTgzMChkZXYpKQoJCWRldl9wcml2LT5zYXZlTFZE UyA9IEk5MTVfUkVBRChMVkRTKTsKCWlmICghSVNfSTgzMChkZXYpICYmICFJU184NDVHKGRldikp CgkJZGV2X3ByaXYtPnNhdmVQRklUX0NPTlRST0wgPSBJOTE1X1JFQUQoUEZJVF9DT05UUk9MKTsK CWRldl9wcml2LT5zYXZlTFZEU1BQX09OID0gSTkxNV9SRUFEKExWRFNQUF9PTik7CglkZXZfcHJp di0+c2F2ZUxWRFNQUF9PRkYgPSBJOTE1X1JFQUQoTFZEU1BQX09GRik7CglkZXZfcHJpdi0+c2F2 ZVBQX0NZQ0xFID0gSTkxNV9SRUFEKFBQX0NZQ0xFKTsKCgkvKiBGSVhNRTogc2F2ZSBUViAmIFNE Vk8gc3RhdGUgKi8KCgkvKiBGQkMgc3RhdGUgKi8KCWRldl9wcml2LT5zYXZlRkJDX0NGQl9CQVNF ID0gSTkxNV9SRUFEKEZCQ19DRkJfQkFTRSk7CglkZXZfcHJpdi0+c2F2ZUZCQ19MTF9CQVNFID0g STkxNV9SRUFEKEZCQ19MTF9CQVNFKTsKCWRldl9wcml2LT5zYXZlRkJDX0NPTlRST0wyID0gSTkx NV9SRUFEKEZCQ19DT05UUk9MMik7CglkZXZfcHJpdi0+c2F2ZUZCQ19DT05UUk9MID0gSTkxNV9S RUFEKEZCQ19DT05UUk9MKTsKCgkvKiBJbnRlcnJ1cHQgc3RhdGUgKi8KCWRldl9wcml2LT5zYXZl SUlSID0gSTkxNV9SRUFEKEk5MTVSRUdfSU5UX0lERU5USVRZX1IpOwoJZGV2X3ByaXYtPnNhdmVJ RVIgPSBJOTE1X1JFQUQoSTkxNVJFR19JTlRfRU5BQkxFX1IpOwoJZGV2X3ByaXYtPnNhdmVJTVIg PSBJOTE1X1JFQUQoSTkxNVJFR19JTlRfTUFTS19SKTsKCgkvKiBWR0Egc3RhdGUgKi8KCWRldl9w cml2LT5zYXZlVkNMS19ESVZJU09SX1ZHQTAgPSBJOTE1X1JFQUQoVkNMS19ESVZJU09SX1ZHQTAp OwoJZGV2X3ByaXYtPnNhdmVWQ0xLX0RJVklTT1JfVkdBMSA9IEk5MTVfUkVBRChWQ0xLX0RJVklT T1JfVkdBMSk7CglkZXZfcHJpdi0+c2F2ZVZDTEtfUE9TVF9ESVYgPSBJOTE1X1JFQUQoVkNMS19Q T1NUX0RJVik7CglkZXZfcHJpdi0+c2F2ZVZHQUNOVFJMID0gSTkxNV9SRUFEKFZHQUNOVFJMKTsK CgkvKiBDbG9jayBnYXRpbmcgc3RhdGUgKi8KCWRldl9wcml2LT5zYXZlRFNQQ0xLX0dBVEVfRCA9 IEk5MTVfUkVBRChEU1BDTEtfR0FURV9EKTsKCgkvKiBDYWNoZSBtb2RlIHN0YXRlICovCglkZXZf cHJpdi0+c2F2ZUNBQ0hFX01PREVfMCA9IEk5MTVfUkVBRChDQUNIRV9NT0RFXzApOwoKCS8qIE1l bW9yeSBBcmJpdHJhdGlvbiBzdGF0ZSAqLwoJZGV2X3ByaXYtPnNhdmVNSV9BUkJfU1RBVEUgPSBJ OTE1X1JFQUQoTUlfQVJCX1NUQVRFKTsKCgkvKiBTY3JhdGNoIHNwYWNlICovCglmb3IgKGkgPSAw OyBpIDwgMTY7IGkrKykgewoJCWRldl9wcml2LT5zYXZlU1dGMFtpXSA9IEk5MTVfUkVBRChTV0Yw ICsgKGkgPDwgMikpOwoJCWRldl9wcml2LT5zYXZlU1dGMVtpXSA9IEk5MTVfUkVBRChTV0YxMCAr IChpIDw8IDIpKTsKCX0KCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspCgkJZGV2X3ByaXYtPnNhdmVT V0YyW2ldID0gSTkxNV9SRUFEKFNXRjMwICsgKGkgPDwgMikpOwoKCWk5MTVfc2F2ZV92Z2EoZGV2 KTsKCglpZiAoc3RhdGUuZXZlbnQgPT0gUE1fRVZFTlRfU1VTUEVORCkgewoJCS8qIFNodXQgZG93 biB0aGUgZGV2aWNlICovCgkJcGNpX2Rpc2FibGVfZGV2aWNlKGRldi0+cGRldik7CgkJcGNpX3Nl dF9wb3dlcl9zdGF0ZShkZXYtPnBkZXYsIFBDSV9EM2hvdCk7Cgl9CgoJcmV0dXJuIDA7Cn0KCnN0 YXRpYyBpbnQgaTkxNV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKewoJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKCWludCBpOwoKCXBj aV9zZXRfcG93ZXJfc3RhdGUoZGV2LT5wZGV2LCBQQ0lfRDApOwoJcGNpX3Jlc3RvcmVfc3RhdGUo ZGV2LT5wZGV2KTsKCWlmIChwY2lfZW5hYmxlX2RldmljZShkZXYtPnBkZXYpKQoJCXJldHVybiAt MTsKCglwY2lfd3JpdGVfY29uZmlnX2J5dGUoZGV2LT5wZGV2LCBMQkIsIGRldl9wcml2LT5zYXZl TEJCKTsKCgkvKiBQaXBlICYgcGxhbmUgQSBpbmZvICovCgkvKiBQcmltZSB0aGUgY2xvY2sgKi8K CWlmIChkZXZfcHJpdi0+c2F2ZURQTExfQSAmIERQTExfVkNPX0VOQUJMRSkgewoJCUk5MTVfV1JJ VEUoRFBMTF9BLCBkZXZfcHJpdi0+c2F2ZURQTExfQSAmCgkJCSAgIH5EUExMX1ZDT19FTkFCTEUp OwoJCXVkZWxheSgxNTApOwoJfQoJSTkxNV9XUklURShGUEEwLCBkZXZfcHJpdi0+c2F2ZUZQQTAp OwoJSTkxNV9XUklURShGUEExLCBkZXZfcHJpdi0+c2F2ZUZQQTEpOwoJLyogQWN0dWFsbHkgZW5h YmxlIGl0ICovCglJOTE1X1dSSVRFKERQTExfQSwgZGV2X3ByaXYtPnNhdmVEUExMX0EpOwoJdWRl bGF5KDE1MCk7CglpZiAoSVNfSTk2NUcoZGV2KSkKCQlJOTE1X1dSSVRFKERQTExfQV9NRCwgZGV2 X3ByaXYtPnNhdmVEUExMX0FfTUQpOwoJdWRlbGF5KDE1MCk7CgoJLyogUmVzdG9yZSBtb2RlICov CglJOTE1X1dSSVRFKEhUT1RBTF9BLCBkZXZfcHJpdi0+c2F2ZUhUT1RBTF9BKTsKCUk5MTVfV1JJ VEUoSEJMQU5LX0EsIGRldl9wcml2LT5zYXZlSEJMQU5LX0EpOwoJSTkxNV9XUklURShIU1lOQ19B LCBkZXZfcHJpdi0+c2F2ZUhTWU5DX0EpOwoJSTkxNV9XUklURShWVE9UQUxfQSwgZGV2X3ByaXYt PnNhdmVWVE9UQUxfQSk7CglJOTE1X1dSSVRFKFZCTEFOS19BLCBkZXZfcHJpdi0+c2F2ZVZCTEFO S19BKTsKCUk5MTVfV1JJVEUoVlNZTkNfQSwgZGV2X3ByaXYtPnNhdmVWU1lOQ19BKTsKCUk5MTVf V1JJVEUoQkNMUlBBVF9BLCBkZXZfcHJpdi0+c2F2ZUJDTFJQQVRfQSk7CgoJLyogUmVzdG9yZSBw bGFuZSBpbmZvICovCglJOTE1X1dSSVRFKERTUEFTSVpFLCBkZXZfcHJpdi0+c2F2ZURTUEFTSVpF KTsKCUk5MTVfV1JJVEUoRFNQQVBPUywgZGV2X3ByaXYtPnNhdmVEU1BBUE9TKTsKCUk5MTVfV1JJ VEUoUElQRUFTUkMsIGRldl9wcml2LT5zYXZlUElQRUFTUkMpOwoJSTkxNV9XUklURShEU1BBQkFT RSwgZGV2X3ByaXYtPnNhdmVEU1BBQkFTRSk7CglJOTE1X1dSSVRFKERTUEFTVFJJREUsIGRldl9w cml2LT5zYXZlRFNQQVNUUklERSk7CglpZiAoSVNfSTk2NUcoZGV2KSkgewoJCUk5MTVfV1JJVEUo RFNQQVNVUkYsIGRldl9wcml2LT5zYXZlRFNQQVNVUkYpOwoJCUk5MTVfV1JJVEUoRFNQQVRJTEVP RkYsIGRldl9wcml2LT5zYXZlRFNQQVRJTEVPRkYpOwoJfQoKCUk5MTVfV1JJVEUoUElQRUFDT05G LCBkZXZfcHJpdi0+c2F2ZVBJUEVBQ09ORik7CgoJaTkxNV9yZXN0b3JlX3BhbGV0dGUoZGV2LCBQ SVBFX0EpOwoJLyogRW5hYmxlIHRoZSBwbGFuZSAqLwoJSTkxNV9XUklURShEU1BBQ05UUiwgZGV2 X3ByaXYtPnNhdmVEU1BBQ05UUik7CglJOTE1X1dSSVRFKERTUEFCQVNFLCBJOTE1X1JFQUQoRFNQ QUJBU0UpKTsKCgkvKiBQaXBlICYgcGxhbmUgQiBpbmZvICovCglpZiAoZGV2X3ByaXYtPnNhdmVE UExMX0IgJiBEUExMX1ZDT19FTkFCTEUpIHsKCQlJOTE1X1dSSVRFKERQTExfQiwgZGV2X3ByaXYt PnNhdmVEUExMX0IgJgoJCQkgICB+RFBMTF9WQ09fRU5BQkxFKTsKCQl1ZGVsYXkoMTUwKTsKCX0K CUk5MTVfV1JJVEUoRlBCMCwgZGV2X3ByaXYtPnNhdmVGUEIwKTsKCUk5MTVfV1JJVEUoRlBCMSwg ZGV2X3ByaXYtPnNhdmVGUEIxKTsKCS8qIEFjdHVhbGx5IGVuYWJsZSBpdCAqLwoJSTkxNV9XUklU RShEUExMX0IsIGRldl9wcml2LT5zYXZlRFBMTF9CKTsKCXVkZWxheSgxNTApOwoJaWYgKElTX0k5 NjVHKGRldikpCgkJSTkxNV9XUklURShEUExMX0JfTUQsIGRldl9wcml2LT5zYXZlRFBMTF9CX01E KTsKCXVkZWxheSgxNTApOwoKCS8qIFJlc3RvcmUgbW9kZSAqLwoJSTkxNV9XUklURShIVE9UQUxf QiwgZGV2X3ByaXYtPnNhdmVIVE9UQUxfQik7CglJOTE1X1dSSVRFKEhCTEFOS19CLCBkZXZfcHJp di0+c2F2ZUhCTEFOS19CKTsKCUk5MTVfV1JJVEUoSFNZTkNfQiwgZGV2X3ByaXYtPnNhdmVIU1lO Q19CKTsKCUk5MTVfV1JJVEUoVlRPVEFMX0IsIGRldl9wcml2LT5zYXZlVlRPVEFMX0IpOwoJSTkx NV9XUklURShWQkxBTktfQiwgZGV2X3ByaXYtPnNhdmVWQkxBTktfQik7CglJOTE1X1dSSVRFKFZT WU5DX0IsIGRldl9wcml2LT5zYXZlVlNZTkNfQik7CglJOTE1X1dSSVRFKEJDTFJQQVRfQiwgZGV2 X3ByaXYtPnNhdmVCQ0xSUEFUX0IpOwoKCS8qIFJlc3RvcmUgcGxhbmUgaW5mbyAqLwoJSTkxNV9X UklURShEU1BCU0laRSwgZGV2X3ByaXYtPnNhdmVEU1BCU0laRSk7CglJOTE1X1dSSVRFKERTUEJQ T1MsIGRldl9wcml2LT5zYXZlRFNQQlBPUyk7CglJOTE1X1dSSVRFKFBJUEVCU1JDLCBkZXZfcHJp di0+c2F2ZVBJUEVCU1JDKTsKCUk5MTVfV1JJVEUoRFNQQkJBU0UsIGRldl9wcml2LT5zYXZlRFNQ QkJBU0UpOwoJSTkxNV9XUklURShEU1BCU1RSSURFLCBkZXZfcHJpdi0+c2F2ZURTUEJTVFJJREUp OwoJaWYgKElTX0k5NjVHKGRldikpIHsKCQlJOTE1X1dSSVRFKERTUEJTVVJGLCBkZXZfcHJpdi0+ c2F2ZURTUEJTVVJGKTsKCQlJOTE1X1dSSVRFKERTUEJUSUxFT0ZGLCBkZXZfcHJpdi0+c2F2ZURT UEJUSUxFT0ZGKTsKCX0KCglJOTE1X1dSSVRFKFBJUEVCQ09ORiwgZGV2X3ByaXYtPnNhdmVQSVBF QkNPTkYpOwoKCWk5MTVfcmVzdG9yZV9wYWxldHRlKGRldiwgUElQRV9CKTsKCS8qIEVuYWJsZSB0 aGUgcGxhbmUgKi8KCUk5MTVfV1JJVEUoRFNQQkNOVFIsIGRldl9wcml2LT5zYXZlRFNQQkNOVFIp OwoJSTkxNV9XUklURShEU1BCQkFTRSwgSTkxNV9SRUFEKERTUEJCQVNFKSk7CgoJLyogQ1JUIHN0 YXRlICovCglJOTE1X1dSSVRFKEFEUEEsIGRldl9wcml2LT5zYXZlQURQQSk7CgoJLyogTFZEUyBz dGF0ZSAqLwoJaWYgKElTX0k5NjVHKGRldikpCgkJSTkxNV9XUklURShCTENfUFdNX0NUTDIsIGRl dl9wcml2LT5zYXZlQkxDX1BXTV9DVEwyKTsKCWlmIChJU19NT0JJTEUoZGV2KSAmJiAhSVNfSTgz MChkZXYpKQoJCUk5MTVfV1JJVEUoTFZEUywgZGV2X3ByaXYtPnNhdmVMVkRTKTsKCWlmICghSVNf STgzMChkZXYpICYmICFJU184NDVHKGRldikpCgkJSTkxNV9XUklURShQRklUX0NPTlRST0wsIGRl dl9wcml2LT5zYXZlUEZJVF9DT05UUk9MKTsKCglJOTE1X1dSSVRFKFBGSVRfUEdNX1JBVElPUywg ZGV2X3ByaXYtPnNhdmVQRklUX1BHTV9SQVRJT1MpOwoJSTkxNV9XUklURShCTENfUFdNX0NUTCwg ZGV2X3ByaXYtPnNhdmVCTENfUFdNX0NUTCk7CglJOTE1X1dSSVRFKExWRFNQUF9PTiwgZGV2X3By aXYtPnNhdmVMVkRTUFBfT04pOwoJSTkxNV9XUklURShMVkRTUFBfT0ZGLCBkZXZfcHJpdi0+c2F2 ZUxWRFNQUF9PRkYpOwoJSTkxNV9XUklURShQUF9DWUNMRSwgZGV2X3ByaXYtPnNhdmVQUF9DWUNM RSk7CglJOTE1X1dSSVRFKFBQX0NPTlRST0wsIGRldl9wcml2LT5zYXZlUFBfQ09OVFJPTCk7CgoJ LyogRklYTUU6IHJlc3RvcmUgVFYgJiBTRFZPIHN0YXRlICovCgoJLyogRkJDIGluZm8gKi8KCUk5 MTVfV1JJVEUoRkJDX0NGQl9CQVNFLCBkZXZfcHJpdi0+c2F2ZUZCQ19DRkJfQkFTRSk7CglJOTE1 X1dSSVRFKEZCQ19MTF9CQVNFLCBkZXZfcHJpdi0+c2F2ZUZCQ19MTF9CQVNFKTsKCUk5MTVfV1JJ VEUoRkJDX0NPTlRST0wyLCBkZXZfcHJpdi0+c2F2ZUZCQ19DT05UUk9MMik7CglJOTE1X1dSSVRF KEZCQ19DT05UUk9MLCBkZXZfcHJpdi0+c2F2ZUZCQ19DT05UUk9MKTsKCgkvKiBWR0Egc3RhdGUg Ki8KCUk5MTVfV1JJVEUoVkdBQ05UUkwsIGRldl9wcml2LT5zYXZlVkdBQ05UUkwpOwoJSTkxNV9X UklURShWQ0xLX0RJVklTT1JfVkdBMCwgZGV2X3ByaXYtPnNhdmVWQ0xLX0RJVklTT1JfVkdBMCk7 CglJOTE1X1dSSVRFKFZDTEtfRElWSVNPUl9WR0ExLCBkZXZfcHJpdi0+c2F2ZVZDTEtfRElWSVNP Ul9WR0ExKTsKCUk5MTVfV1JJVEUoVkNMS19QT1NUX0RJViwgZGV2X3ByaXYtPnNhdmVWQ0xLX1BP U1RfRElWKTsKCXVkZWxheSgxNTApOwoKCS8qIENsb2NrIGdhdGluZyBzdGF0ZSAqLwoJSTkxNV9X UklURSAoRFNQQ0xLX0dBVEVfRCwgZGV2X3ByaXYtPnNhdmVEU1BDTEtfR0FURV9EKTsKCgkvKiBD YWNoZSBtb2RlIHN0YXRlICovCglJOTE1X1dSSVRFIChDQUNIRV9NT0RFXzAsIGRldl9wcml2LT5z YXZlQ0FDSEVfTU9ERV8wIHwgMHhmZmZmMDAwMCk7CgoJLyogTWVtb3J5IGFyYml0cmF0aW9uIHN0 YXRlICovCglJOTE1X1dSSVRFIChNSV9BUkJfU1RBVEUsIGRldl9wcml2LT5zYXZlTUlfQVJCX1NU QVRFIHwgMHhmZmZmMDAwMCk7CgoJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKCQlJOTE1X1dS SVRFKFNXRjAgKyAoaSA8PCAyKSwgZGV2X3ByaXYtPnNhdmVTV0YwW2ldKTsKCQlJOTE1X1dSSVRF KFNXRjEwICsgKGkgPDwgMiksIGRldl9wcml2LT5zYXZlU1dGMVtpKzddKTsKCX0KCWZvciAoaSA9 IDA7IGkgPCAzOyBpKyspCgkJSTkxNV9XUklURShTV0YzMCArIChpIDw8IDIpLCBkZXZfcHJpdi0+ c2F2ZVNXRjJbaV0pOwoKCWk5MTVfcmVzdG9yZV92Z2EoZGV2KTsKCglyZXR1cm4gMDsKfQoKc3Rh dGljIHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlciA9IHsKCS8qIGRvbid0IHVzZSBtdHJyJ3MgaGVy ZSwgdGhlIFhzZXJ2ZXIgb3IgdXNlciBzcGFjZSBhcHAgc2hvdWxkCgkgKiBkZWFsIHdpdGggdGhl bSBmb3IgaW50ZWwgaGFyZHdhcmUuCgkgKi8KCS5kcml2ZXJfZmVhdHVyZXMgPQoJICAgIERSSVZF Ul9VU0VfQUdQIHwgRFJJVkVSX1JFUVVJUkVfQUdQIHwgLyogRFJJVkVSX1VTRV9NVFJSIHwqLwoJ ICAgIERSSVZFUl9IQVZFX0lSUSB8IERSSVZFUl9JUlFfU0hBUkVEIHwgRFJJVkVSX0lSUV9WQkwg fAoJICAgIERSSVZFUl9JUlFfVkJMMiwKCS5sb2FkID0gaTkxNV9kcml2ZXJfbG9hZCwKCS51bmxv YWQgPSBpOTE1X2RyaXZlcl91bmxvYWQsCgkubGFzdGNsb3NlID0gaTkxNV9kcml2ZXJfbGFzdGNs b3NlLAoJLnByZWNsb3NlID0gaTkxNV9kcml2ZXJfcHJlY2xvc2UsCgkuc3VzcGVuZCA9IGk5MTVf c3VzcGVuZCwKCS5yZXN1bWUgPSBpOTE1X3Jlc3VtZSwKCS5kZXZpY2VfaXNfYWdwID0gaTkxNV9k cml2ZXJfZGV2aWNlX2lzX2FncCwKCS52Ymxhbmtfd2FpdCA9IGk5MTVfZHJpdmVyX3ZibGFua193 YWl0LAoJLnZibGFua193YWl0MiA9IGk5MTVfZHJpdmVyX3ZibGFua193YWl0MiwKCS5pcnFfcHJl aW5zdGFsbCA9IGk5MTVfZHJpdmVyX2lycV9wcmVpbnN0YWxsLAoJLmlycV9wb3N0aW5zdGFsbCA9 IGk5MTVfZHJpdmVyX2lycV9wb3N0aW5zdGFsbCwKCS5pcnFfdW5pbnN0YWxsID0gaTkxNV9kcml2 ZXJfaXJxX3VuaW5zdGFsbCwKCS5pcnFfaGFuZGxlciA9IGk5MTVfZHJpdmVyX2lycV9oYW5kbGVy LAoJLnJlY2xhaW1fYnVmZmVycyA9IGRybV9jb3JlX3JlY2xhaW1fYnVmZmVycywKCS5nZXRfbWFw X29mcyA9IGRybV9jb3JlX2dldF9tYXBfb2ZzLAoJLmdldF9yZWdfb2ZzID0gZHJtX2NvcmVfZ2V0 X3JlZ19vZnMsCgkuaW9jdGxzID0gaTkxNV9pb2N0bHMsCgkuZm9wcyA9IHsKCQkgLm93bmVyID0g VEhJU19NT0RVTEUsCgkJIC5vcGVuID0gZHJtX29wZW4sCgkJIC5yZWxlYXNlID0gZHJtX3JlbGVh c2UsCgkJIC5pb2N0bCA9IGRybV9pb2N0bCwKCQkgLm1tYXAgPSBkcm1fbW1hcCwKCQkgLnBvbGwg PSBkcm1fcG9sbCwKCQkgLmZhc3luYyA9IGRybV9mYXN5bmMsCiNpZmRlZiBDT05GSUdfQ09NUEFU CgkJIC5jb21wYXRfaW9jdGwgPSBpOTE1X2NvbXBhdF9pb2N0bCwKI2VuZGlmCgl9LAoKCS5wY2lf ZHJpdmVyID0gewoJCSAubmFtZSA9IERSSVZFUl9OQU1FLAoJCSAuaWRfdGFibGUgPSBwY2lpZGxp c3QsCgl9LAoKCS5uYW1lID0gRFJJVkVSX05BTUUsCgkuZGVzYyA9IERSSVZFUl9ERVNDLAoJLmRh dGUgPSBEUklWRVJfREFURSwKCS5tYWpvciA9IERSSVZFUl9NQUpPUiwKCS5taW5vciA9IERSSVZF Ul9NSU5PUiwKCS5wYXRjaGxldmVsID0gRFJJVkVSX1BBVENITEVWRUwsCn07CgpzdGF0aWMgaW50 IF9faW5pdCBpOTE1X2luaXQodm9pZCkKewoJZHJpdmVyLm51bV9pb2N0bHMgPSBpOTE1X21heF9p b2N0bDsKCXJldHVybiBkcm1faW5pdCgmZHJpdmVyKTsKfQoKc3RhdGljIHZvaWQgX19leGl0IGk5 MTVfZXhpdCh2b2lkKQp7Cglkcm1fZXhpdCgmZHJpdmVyKTsKfQoKbW9kdWxlX2luaXQoaTkxNV9p bml0KTsKbW9kdWxlX2V4aXQoaTkxNV9leGl0KTsKCk1PRFVMRV9BVVRIT1IoRFJJVkVSX0FVVEhP Uik7Ck1PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7Ck1PRFVMRV9MSUNFTlNFKCJHUEwg YW5kIGFkZGl0aW9uYWwgcmlnaHRzIik7Cg== ------=_Part_23868_29910217.1203534633069-- -- 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/