From mboxrd@z Thu Jan 1 00:00:00 1970 From: Uma Shankar Subject: [BXT MIPI PATCH v3 06/14] drm/i915/bxt: DSI enable for BXT Date: Tue, 1 Sep 2015 19:41:42 +0530 Message-ID: <1441116710-14118-7-git-send-email-uma.shankar@intel.com> References: <1441116710-14118-1-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id B3C5D72094 for ; Tue, 1 Sep 2015 06:45:07 -0700 (PDT) In-Reply-To: <1441116710-14118-1-git-send-email-uma.shankar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: jani.nikula@intel.com, shobhit.kumar@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgoKVGhpcyBw YXRjaCBjb250YWlucyBmb2xsb3dpbmcgY2hhbmdlczoKMS4gTUlQSSBkZXZpY2UgcmVhZHkgY2hh bmdlcyB0byBzdXBwb3J0IGRzaV9wcmVfZW5hYmxlLiBDaGFuZ2VzCiAgIGFyZSBzcGVjaWZpYyB0 byBCWFQgZGV2aWNlIHJlYWR5IHNlcXVlbmNlLiBBZGRlZCBjaGVjayBmb3IKICAgVUxQUyBtb2Rl KE5vIGVmZmVjdHMgb24gVkxWKS4KMi4gQ2hhbmdlcyBpbiBkc2lfZW5hYmxlIHRvIHBpY2sgQlhU IHBvcnQgY29udHJvbCByZWdpc3Rlci4KMy4gQ2hhbmdlcyBpbiBkc2lfcHJlX2VuYWJsZSB0byBy ZXN0cmljdCBEUElPIHByb2dyYW1taW5nIGZvciBWTFYKCnYyOiBGaXhlZCBKYW5pJ3MgcmV2aWV3 IGNvbW1lbnRzLiBSZW1vdmVkIHRoZSBjaGFuZ2VzIGluIFZMVi9DSFYKICAgIGNvZGUuIEZpeGVk IHRoZSBtYWNyb3MgdG8gZ2V0IHByb3BlciBwb3J0IG9mZnNldHMuCgp2MzogUmViYXNlZCBvbiBs YXRlc3QgZHJtLW5pZ2h0bHkgYnJhbmNoLiBGaXhlZCBKYW5pJ3MgcmV2aWV3IGNvbW1lbnRzLgoK U2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBVbWEgU2hhbmthciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggIHwgICAgNyArKwogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHNpLmMgfCAgMTY1ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCA1MyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCA5OTdhOTk5Li41N2M1ZGJmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTc0MDMsNiArNzQwMywxMyBAQCBlbnVtIHNrbF9kaXNw X3Bvd2VyX3dlbGxzIHsKICNkZWZpbmUgX01JUElBX1BPUlRfQ1RSTAkJCShWTFZfRElTUExBWV9C QVNFICsgMHg2MTE5MCkKICNkZWZpbmUgX01JUElDX1BPUlRfQ1RSTAkJCShWTFZfRElTUExBWV9C QVNFICsgMHg2MTcwMCkKICNkZWZpbmUgTUlQSV9QT1JUX0NUUkwocG9ydCkJX01JUElfUE9SVChw b3J0LCBfTUlQSUFfUE9SVF9DVFJMLCBfTUlQSUNfUE9SVF9DVFJMKQorCisgLyogQlhUIHBvcnQg Y29udHJvbCAqLworI2RlZmluZSBfQlhUX01JUElBX1BPUlRfQ1RSTAkJCQkweDZCMEMwCisjZGVm aW5lIF9CWFRfTUlQSUNfUE9SVF9DVFJMCQkJCTB4NkI4QzAKKyNkZWZpbmUgQlhUX01JUElfUE9S VF9DVFJMKHRjKQlfTUlQSV9QT1JUKHRjLCBfQlhUX01JUElBX1BPUlRfQ1RSTCwgXAorCQkJCQkJ X0JYVF9NSVBJQ19QT1JUX0NUUkwpCisKICNkZWZpbmUgIERQSV9FTkFCTEUJCQkJCSgxIDw8IDMx KSAvKiBBICsgQyAqLwogI2RlZmluZSAgTUlQSUFfTUlQSTREUEhZX0RFTEFZX0NPVU5UX1NISUZU CQkyNwogI2RlZmluZSAgTUlQSUFfTUlQSTREUEhZX0RFTEFZX0NPVU5UX01BU0sJCSgweGYgPDwg MjcpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCmluZGV4IDZkMGM5OTIuLjVhNDJmODcgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RzaS5jCkBAIC0yODYsNTggKzI4Niw0NiBAQCBzdGF0aWMgYm9vbCBp bnRlbF9kc2lfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJ cmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2RzaV9wb3J0X2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyB2b2lkIGJ4dF9kc2lfZGV2aWNlX3Jl YWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGVuY29kZXItPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1 Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNl KTsKIAllbnVtIHBvcnQgcG9ydDsKLQl1MzIgdGVtcDsKKwl1MzIgdmFsOwogCi0JaWYgKGludGVs X2RzaS0+ZHVhbF9saW5rID09IERTSV9EVUFMX0xJTktfRlJPTlRfQkFDSykgewotCQl0ZW1wID0g STkxNV9SRUFEKFZMVl9DSElDS0VOXzMpOwotCQl0ZW1wICY9IH5QSVhFTF9PVkVSTEFQX0NOVF9N QVNLIHwKLQkJCQkJaW50ZWxfZHNpLT5waXhlbF9vdmVybGFwIDw8Ci0JCQkJCVBJWEVMX09WRVJM QVBfQ05UX1NISUZUOwotCQlJOTE1X1dSSVRFKFZMVl9DSElDS0VOXzMsIHRlbXApOwotCX0KKwlE Uk1fREVCVUdfS01TKCJcbiIpOwogCisJLyogRXhpdCBMb3cgcG93ZXIgc3RhdGUgaW4gNCBzdGVw cyovCiAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewotCQl0ZW1w ID0gSTkxNV9SRUFEKE1JUElfUE9SVF9DVFJMKHBvcnQpKTsKLQkJdGVtcCAmPSB+TEFORV9DT05G SUdVUkFUSU9OX01BU0s7Ci0JCXRlbXAgJj0gfkRVQUxfTElOS19NT0RFX01BU0s7CiAKLQkJaWYg KGludGVsX2RzaS0+cG9ydHMgPT0gKCgxIDw8IFBPUlRfQSkgfCAoMSA8PCBQT1JUX0MpKSkgewot CQkJdGVtcCB8PSAoaW50ZWxfZHNpLT5kdWFsX2xpbmsgLSAxKQotCQkJCQkJPDwgRFVBTF9MSU5L X01PREVfU0hJRlQ7Ci0JCQl0ZW1wIHw9IGludGVsX2NydGMtPnBpcGUgPwotCQkJCQlMQU5FX0NP TkZJR1VSQVRJT05fRFVBTF9MSU5LX0IgOgotCQkJCQlMQU5FX0NPTkZJR1VSQVRJT05fRFVBTF9M SU5LX0E7Ci0JCX0KLQkJLyogYXNzZXJ0IGlwX3RnX2VuYWJsZSBzaWduYWwgKi8KLQkJSTkxNV9X UklURShNSVBJX1BPUlRfQ1RSTChwb3J0KSwgdGVtcCB8IERQSV9FTkFCTEUpOwotCQlQT1NUSU5H X1JFQUQoTUlQSV9QT1JUX0NUUkwocG9ydCkpOwotCX0KLX0KKwkJLyogMS4gRW5hYmxlIE1JUEkg UEhZIHRyYW5zcGFyZW50IGxhdGNoICovCisJCXZhbCA9IEk5MTVfUkVBRChCWFRfTUlQSV9QT1JU X0NUUkwocG9ydCkpOworCQlJOTE1X1dSSVRFKEJYVF9NSVBJX1BPUlRfQ1RSTChwb3J0KSwgdmFs IHwgTFBfT1VUUFVUX0hPTEQpOworCQl1c2xlZXBfcmFuZ2UoMjAwMCwgMjUwMCk7CiAKLXN0YXRp YyB2b2lkIGludGVsX2RzaV9wb3J0X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OwotCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3Ry dWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFz ZSk7Ci0JZW51bSBwb3J0IHBvcnQ7Ci0JdTMyIHRlbXA7CisJCS8qIDIuIEVudGVyIFVMUFMgKi8K KwkJdmFsID0gSTkxNV9SRUFEKE1JUElfREVWSUNFX1JFQURZKHBvcnQpKTsKKwkJdmFsICY9IH5V TFBTX1NUQVRFX01BU0s7CisJCXZhbCB8PSAoVUxQU19TVEFURV9FTlRFUiB8IERFVklDRV9SRUFE WSk7CisJCUk5MTVfV1JJVEUoTUlQSV9ERVZJQ0VfUkVBRFkocG9ydCksIHZhbCk7CisJCXVzbGVl cF9yYW5nZSgyLCAzKTsKKworCQkvKiAzLiBFeGl0IFVMUFMgKi8KKwkJdmFsID0gSTkxNV9SRUFE KE1JUElfREVWSUNFX1JFQURZKHBvcnQpKTsKKwkJdmFsICY9IH5VTFBTX1NUQVRFX01BU0s7CisJ CXZhbCB8PSAoVUxQU19TVEFURV9FWElUIHwgREVWSUNFX1JFQURZKTsKKwkJSTkxNV9XUklURShN SVBJX0RFVklDRV9SRUFEWShwb3J0KSwgdmFsKTsKKwkJdXNsZWVwX3JhbmdlKDEwMDAsIDE1MDAp OwogCi0JZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewotCQkvKiBk ZS1hc3NlcnQgaXBfdGdfZW5hYmxlIHNpZ25hbCAqLwotCQl0ZW1wID0gSTkxNV9SRUFEKE1JUElf UE9SVF9DVFJMKHBvcnQpKTsKLQkJSTkxNV9XUklURShNSVBJX1BPUlRfQ1RSTChwb3J0KSwgdGVt cCAmIH5EUElfRU5BQkxFKTsKLQkJUE9TVElOR19SRUFEKE1JUElfUE9SVF9DVFJMKHBvcnQpKTsK KwkJLyogQ2xlYXIgVUxQUyBhbmQgc2V0IGRldmljZSByZWFkeSAqLworCQl2YWwgPSBJOTE1X1JF QUQoTUlQSV9ERVZJQ0VfUkVBRFkocG9ydCkpOworCQl2YWwgJj0gflVMUFNfU1RBVEVfTUFTSzsK KwkJdmFsIHw9IERFVklDRV9SRUFEWTsKKwkJSTkxNV9XUklURShNSVBJX0RFVklDRV9SRUFEWShw b3J0KSwgdmFsKTsKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2RzaV9kZXZpY2VfcmVhZHko c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMgdm9pZCB2bHZfZHNpX2Rldmlj ZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmNvZGVyLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CiAJ c3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+ YmFzZSk7CkBAIC0zNzYsNiArMzY0LDcyIEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9kZXZpY2Vf cmVhZHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJfQogfQogCitzdGF0aWMgdm9p ZCBpbnRlbF9kc2lfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQor eworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKKworCWlmIChJ U19WQUxMRVlWSUVXKGRldikpCisJCXZsdl9kc2lfZGV2aWNlX3JlYWR5KGVuY29kZXIpOworCWVs c2UgaWYgKElTX0JST1hUT04oZGV2KSkKKwkJYnh0X2RzaV9kZXZpY2VfcmVhZHkoZW5jb2Rlcik7 Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2RzaV9wb3J0X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFz ZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5j b2Rlci0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9f aW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKKwllbnVtIHBvcnQgcG9ydDsKKwl1MzIgdGVtcDsK Kwl1MzIgcG9ydF9jdHJsOworCisJaWYgKGludGVsX2RzaS0+ZHVhbF9saW5rID09IERTSV9EVUFM X0xJTktfRlJPTlRfQkFDSykgeworCQl0ZW1wID0gSTkxNV9SRUFEKFZMVl9DSElDS0VOXzMpOwor CQl0ZW1wICY9IH5QSVhFTF9PVkVSTEFQX0NOVF9NQVNLIHwKKwkJCQkJaW50ZWxfZHNpLT5waXhl bF9vdmVybGFwIDw8CisJCQkJCVBJWEVMX09WRVJMQVBfQ05UX1NISUZUOworCQlJOTE1X1dSSVRF KFZMVl9DSElDS0VOXzMsIHRlbXApOworCX0KKworCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGlu dGVsX2RzaS0+cG9ydHMpIHsKKwkJcG9ydF9jdHJsID0gSVNfQlJPWFRPTihkZXYpID8gQlhUX01J UElfUE9SVF9DVFJMKHBvcnQpIDoKKwkJCQkJCU1JUElfUE9SVF9DVFJMKHBvcnQpOworCisJCXRl bXAgPSBJOTE1X1JFQUQocG9ydF9jdHJsKTsKKworCQl0ZW1wICY9IH5MQU5FX0NPTkZJR1VSQVRJ T05fTUFTSzsKKwkJdGVtcCAmPSB+RFVBTF9MSU5LX01PREVfTUFTSzsKKworCQlpZiAoaW50ZWxf ZHNpLT5wb3J0cyA9PSAoKDEgPDwgUE9SVF9BKSB8ICgxIDw8IFBPUlRfQykpKSB7CisJCQl0ZW1w IHw9IChpbnRlbF9kc2ktPmR1YWxfbGluayAtIDEpCisJCQkJCQk8PCBEVUFMX0xJTktfTU9ERV9T SElGVDsKKwkJCXRlbXAgfD0gaW50ZWxfY3J0Yy0+cGlwZSA/CisJCQkJCUxBTkVfQ09ORklHVVJB VElPTl9EVUFMX0xJTktfQiA6CisJCQkJCUxBTkVfQ09ORklHVVJBVElPTl9EVUFMX0xJTktfQTsK KwkJfQorCQkvKiBhc3NlcnQgaXBfdGdfZW5hYmxlIHNpZ25hbCAqLworCQlJOTE1X1dSSVRFKHBv cnRfY3RybCwgdGVtcCB8IERQSV9FTkFCTEUpOworCQlQT1NUSU5HX1JFQUQocG9ydF9jdHJsKTsK Kwl9Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2RzaV9wb3J0X2Rpc2FibGUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXIt PmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7CisJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2Rz aSgmZW5jb2Rlci0+YmFzZSk7CisJZW51bSBwb3J0IHBvcnQ7CisJdTMyIHRlbXA7CisKKwlmb3Jf ZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7CisJCS8qIGRlLWFzc2VydCBp cF90Z19lbmFibGUgc2lnbmFsICovCisJCXRlbXAgPSBJOTE1X1JFQUQoTUlQSV9QT1JUX0NUUkwo cG9ydCkpOworCQlJOTE1X1dSSVRFKE1JUElfUE9SVF9DVFJMKHBvcnQpLCB0ZW1wICYgfkRQSV9F TkFCTEUpOworCQlQT1NUSU5HX1JFQUQoTUlQSV9QT1JUX0NUUkwocG9ydCkpOworCX0KK30KKwog c3RhdGljIHZvaWQgaW50ZWxfZHNpX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CkBAIC00 MTUsMTkgKzQ2OSwyNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAogCURSTV9ERUJVR19LTVMoIlxuIik7CiAKLQkvKiBE aXNhYmxlIERQT3VuaXQgY2xvY2sgZ2F0aW5nLCBjYW4gc3RhbGwgcGlwZQotCSAqIGFuZCB3ZSBu ZWVkIERQTEwgUkVGQSBhbHdheXMgZW5hYmxlZCAqLwotCXRtcCA9IEk5MTVfUkVBRChEUExMKHBp cGUpKTsKLQl0bXAgfD0gRFBMTF9SRUZBX0NMS19FTkFCTEVfVkxWOwotCUk5MTVfV1JJVEUoRFBM TChwaXBlKSwgdG1wKTsKLQotCS8qIHVwZGF0ZSB0aGUgaHcgc3RhdGUgZm9yIERQTEwgKi8KLQlp bnRlbF9jcnRjLT5jb25maWctPmRwbGxfaHdfc3RhdGUuZHBsbCA9IERQTExfSU5URUdSQVRFRF9D TE9DS19WTFYgfAotCQlEUExMX1JFRkFfQ0xLX0VOQUJMRV9WTFY7Ci0KLQl0bXAgPSBJOTE1X1JF QUQoRFNQQ0xLX0dBVEVfRCk7Ci0JdG1wIHw9IERQT1VOSVRfQ0xPQ0tfR0FURV9ESVNBQkxFOwot CUk5MTVfV1JJVEUoRFNQQ0xLX0dBVEVfRCwgdG1wKTsKKwlpZiAoSVNfVkFMTEVZVklFVyhkZXYp KSB7CisJCS8qCisJCSAqIERpc2FibGUgRFBPdW5pdCBjbG9jayBnYXRpbmcsIGNhbiBzdGFsbCBw aXBlCisJCSAqIGFuZCB3ZSBuZWVkIERQTEwgUkVGQSBhbHdheXMgZW5hYmxlZAorCQkgKi8KKwkJ dG1wID0gSTkxNV9SRUFEKERQTEwocGlwZSkpOworCQl0bXAgfD0gRFBMTF9SRUZBX0NMS19FTkFC TEVfVkxWOworCQlJOTE1X1dSSVRFKERQTEwocGlwZSksIHRtcCk7CisKKwkJLyogdXBkYXRlIHRo ZSBodyBzdGF0ZSBmb3IgRFBMTCAqLworCQlpbnRlbF9jcnRjLT5jb25maWctPmRwbGxfaHdfc3Rh dGUuZHBsbCA9CisJCQkJRFBMTF9JTlRFR1JBVEVEX0NMT0NLX1ZMViB8CisJCQkJCURQTExfUkVG QV9DTEtfRU5BQkxFX1ZMVjsKKworCQl0bXAgPSBJOTE1X1JFQUQoRFNQQ0xLX0dBVEVfRCk7CisJ CXRtcCB8PSBEUE9VTklUX0NMT0NLX0dBVEVfRElTQUJMRTsKKwkJSTkxNV9XUklURShEU1BDTEtf R0FURV9ELCB0bXApOworCX0KIAogCS8qIHB1dCBkZXZpY2UgaW4gcmVhZHkgc3RhdGUgKi8KIAlp bnRlbF9kc2lfZGV2aWNlX3JlYWR5KGVuY29kZXIpOwotLSAKMS43LjkuNQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK