From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH] drm/i915/BXT: Fixed COS blanking issue Date: Tue, 1 Mar 2016 00:19:20 +0530 Message-ID: <1456771760-18823-1-git-send-email-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 54A6F6E354 for ; Mon, 29 Feb 2016 18:57:36 +0000 (UTC) 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 List-Id: intel-gfx@lists.freedesktop.org RHVyaW5nIENoYXJnaW5nIE9TIG1vZGUsIG1pcGkgZGlzcGxheSB3YXMgYmxhbmtpbmcuVGhpcyBp cwpiZWNhdXNlIGR1cmluZyBkcml2ZXIgbG9hZCwgdGhvdWdoIGVuY29kZXIsIGNvbm5lY3RvciB3 ZXJlCmFjdGl2ZSBidXQgY3J0YyByZXR1cm5lZCBpbmFjdGl2ZS4gVGhpcyBjYXVzZWQgc2FuaXRp emUKZnVuY3Rpb24gdG8gZGlzYWJsZSB0aGUgRFNJIHBhbmVsLiBJbiBBT1MsIHRoaXMgaXMgZmlu ZQpzaW5jZSBIV0Mgd2lsbCBkbyBhIG1vZGVzZXQgYW5kIGNydGMsIGNvbm5lY3RvciwgZW5jb2Rl cgptYXBwaW5nIHdpbGwgYmUgcmVzdG9yZWQuIEJ1dCBpbiBDT1MsIG5vIG1vZGVzZXQgaXMgY2Fs bGVkLAppdCBqdXN0IGNhbGxzIERQTVMgT04vT0ZGLgoKVGhpcyBpcyBmaW5lIG9uIEJZVC9DSFQg c2luY2UgdHJhbnNjb2RlciBpcyBjb21tb24gYi93CmFsbCBlbmNvZGVycy4gQnV0IGZvciBCWFQs IHRoZXJlIGlzIGEgc2VwYXJhdGUgbWlwaQp0cmFuc2NvZGVyLiBIZW5jZSB0aGlzIG5lZWRzIHNw ZWNpYWwgaGFuZGxpbmcgZm9yIEJYVC4KClYyOiBwaXBlX2NvbmZpZy0+aGFzX2RzaV9lbmNvZGVy IGlzIHNldCBmb3IgQlhUIFtCeSBKYW5pXQoKVjM6IFRpbWluZyBwYXJhbWV0ZXJzIGFyZSByZXRy aWV2ZWQgZnJvbSBWQlQuIFtCeSBKYW5pXQoKVjQ6IFJldHJpZXZpbmcgdGhlIHBpcGUgdGltaW5n IGZyb20gdGhlIERTSSBwb3J0IHJlZ2lzdGVycy4KICAgIEFkZGVkIGEgZW5jb2RlciBmdW5jdGlv biBmb3IgdGhpcyBwdXJwb3NlLiBbQnkgSmFuaV0KClNpZ25lZC1vZmYtYnk6IFVtYSBTaGFua2Fy IDx1bWEuc2hhbmthckBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFt YWxpbmdhbS5jQGludGVsLmNvbT4KLS0tClJldmlldyBvZiBwcmV2aW91cyBwYXRjaCBzZXQgY2Fu IGJlIGZvdW5kIGF0Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2ludGVs LWdmeC8yMDE2LUZlYnJ1YXJ5LzA4ODA2MC5odG1sCgogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIHwgICA4OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgIDkgKysrLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHNpLmMgICAgIHwgICA5OCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE4OSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBhZGRlNmY4Li4zMWI5 YTcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0zNCw2ICszNCw3IEBA CiAjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+CiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNs dWRlICJpbnRlbF9kcnYuaCIKKyNpbmNsdWRlICJpbnRlbF9kc2kuaCIKICNpbmNsdWRlIDxkcm0v aTkxNV9kcm0uaD4KICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImk5MTVfdHJhY2Uu aCIKQEAgLTk5ODEsMTEgKzk5ODIsNjYgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9nZXRfZGRpX3Bv cnRfc3RhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJfQogfQogCitlbnVtIHBpcGUgcGlw ZV9saW5rZWRfdG9fZHNpX3BvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwb3J0IHBv cnQpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKKwllbnVtIHBpcGUgcGlwZSA9IElOVkFMSURfUElQRTsKKwl1aW50MzJfdCBkc2lfY3Ry bDsKKworCWRzaV9jdHJsID0gSTkxNV9SRUFEKE1JUElfQ1RSTChwb3J0KSk7CisJc3dpdGNoIChk c2lfY3RybCAmIEJYVF9QSVBFX1NFTEVDVF9NQVNLKSB7CisJY2FzZSBCWFRfUElQRV9TRUxFQ1Qo UElQRV9BKToKKwkJcGlwZSA9IFBJUEVfQTsKKwkJYnJlYWs7CisJY2FzZSBCWFRfUElQRV9TRUxF Q1QoUElQRV9CKToKKwkJcGlwZSA9IFBJUEVfQjsKKwkJYnJlYWs7CisJY2FzZSBCWFRfUElQRV9T RUxFQ1QoUElQRV9DKToKKwkJcGlwZSA9IFBJUEVfQzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJ V0FSTigxLCAidW5rbm93biBwaXBlIGxpbmtlZCB0byBkc2kgdHJhbnNjb2RlclxuIik7CisJfQor CisJcmV0dXJuIHBpcGU7Cit9CisKK3N0cnVjdCBpbnRlbF9lbmNvZGVyICpieHRfZ2V0X2RzaV9l bmNvZGVyX2Zvcl9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJCQlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGMtPmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXI7CisJ c3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpOworCWVudW0gcG9ydCBwb3J0OworCisJZm9yX2Vh Y2hfaW50ZWxfZW5jb2RlcihkZXYsIGludGVsX2VuY29kZXIpIHsKKwkJaWYgKGludGVsX2VuY29k ZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RTSSkgeworCQkJaW50ZWxfZHNpID0gZW5jX3RvX2lu dGVsX2RzaSgmaW50ZWxfZW5jb2Rlci0+YmFzZSk7CisJCQlpZiAoIWludGVsX2RzaSkKKwkJCQlj b250aW51ZTsKKworCQkJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykg eworCQkJCWlmICghKEk5MTVfUkVBRChCWFRfTUlQSV9QT1JUX0NUUkwocG9ydCkpICYKKwkJCQkJ CQkJRFBJX0VOQUJMRSkpCisJCQkJCWNvbnRpbnVlOworCQkJCWlmIChwaXBlX2xpbmtlZF90b19k c2lfcG9ydChkZXYsIHBvcnQpID09CisJCQkJCQkJCWNydGMtPnBpcGUpIHsKKwkJCQkJcGlwZV9j b25maWctPmhhc19kc2lfZW5jb2RlciA9IHRydWU7CisJCQkJCXJldHVybiBpbnRlbF9lbmNvZGVy OworCQkJCX0KKwkJCX0KKwkJfQorCX0KKwlyZXR1cm4gTlVMTDsKK30KKwogc3RhdGljIGJvb2wg aGFzd2VsbF9nZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkJICAg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxf ZW5jb2RlciwgKmF0dGFjaGVkX2VuY29kZXIgPSBOVUxMOwogCWVudW0gaW50ZWxfZGlzcGxheV9w b3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwogCXVuc2lnbmVkIGxvbmcgcG93ZXJfZG9tYWluX21h c2s7CiAJdWludDMyX3QgdG1wOwpAQCAtMTAwMjMsMTggKzEwMDc5LDQwIEBAIHN0YXRpYyBib29s IGhhc3dlbGxfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJcGlw ZV9jb25maWctPmNwdV90cmFuc2NvZGVyID0gVFJBTlNDT0RFUl9FRFA7CiAJfQogCisJZm9yX2Vh Y2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgJmNydGMtPmJhc2UsIGludGVsX2VuY29kZXIpCisJCWF0 dGFjaGVkX2VuY29kZXIgPSBpbnRlbF9lbmNvZGVyOworCisJLyoKKwkgKiBhdHRhY2hlZF9lbmNv ZGVyIHdpbGwgYmUgTlVMTCwgaWYgdGhlcmUgaXMgbm8gbW9kZXNldCBmcm9tIHRoZQorCSAqIGtl cm5lbCBib290dXAuCisJICovCisJaWYgKCFhdHRhY2hlZF9lbmNvZGVyICYmIGRldl9wcml2LT52 YnQuaGFzX21pcGkgJiYgSVNfQlJPWFRPTihkZXYpKQorCQlhdHRhY2hlZF9lbmNvZGVyID0KKwkJ CQlieHRfZ2V0X2RzaV9lbmNvZGVyX2Zvcl9jcnRjKGNydGMsIHBpcGVfY29uZmlnKTsKKwogCXBv d2VyX2RvbWFpbiA9IFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSKHBpcGVfY29uZmlnLT5jcHVfdHJh bnNjb2Rlcik7CiAJaWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFibGVkKGRldl9w cml2LCBwb3dlcl9kb21haW4pKQogCQlnb3RvIG91dDsKIAlwb3dlcl9kb21haW5fbWFzayB8PSBC SVQocG93ZXJfZG9tYWluKTsKIAotCXRtcCA9IEk5MTVfUkVBRChQSVBFQ09ORihwaXBlX2NvbmZp Zy0+Y3B1X3RyYW5zY29kZXIpKTsKLQlpZiAoISh0bXAgJiBQSVBFQ09ORl9FTkFCTEUpKQotCQln b3RvIG91dDsKKwlpZiAoYXR0YWNoZWRfZW5jb2RlciAmJiBhdHRhY2hlZF9lbmNvZGVyLT5nZXRf cGlwZV9jb25maWcpCisJCS8qCisJCSAqIEJYVCBkb2Vzbid0IGhhdmUgdGhlIFBJUEUgdGltaW5n IHJlZ2lzdGVycy4KKwkJICogSGVuY2UgcmV0cmlldmVkIHRoZSBwaXBlIGRldGFpbCBmcm9tIFBP UlQgcmVnaXN0ZXIuCisJCSAqIEFuZCB0aW1pbmcgcGFyYW1ldGVycyBhcmUgb2J0YWluZWQgZnJv bSBWQlQKKwkJICovCisJCWF0dGFjaGVkX2VuY29kZXItPmdldF9waXBlX2NvbmZpZyhhdHRhY2hl ZF9lbmNvZGVyLAorCQkJCQkJCQlwaXBlX2NvbmZpZyk7CisJZWxzZSB7CisJCXRtcCA9IEk5MTVf UkVBRChQSVBFQ09ORihwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIpKTsKKwkJaWYgKCEodG1w ICYgUElQRUNPTkZfRU5BQkxFKSkKKwkJCWdvdG8gb3V0OwogCi0JaGFzd2VsbF9nZXRfZGRpX3Bv cnRfc3RhdGUoY3J0YywgcGlwZV9jb25maWcpOworCQlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2KSkK KwkJCWhhc3dlbGxfZ2V0X2RkaV9wb3J0X3N0YXRlKGNydGMsIHBpcGVfY29uZmlnKTsKIAotCWlu dGVsX2dldF9waXBlX3RpbWluZ3MoY3J0YywgcGlwZV9jb25maWcpOworCQlpbnRlbF9nZXRfcGlw ZV90aW1pbmdzKGNydGMsIHBpcGVfY29uZmlnKTsKKwl9CiAKIAlpZiAoSU5URUxfSU5GTyhkZXYp LT5nZW4gPj0gOSkgewogCQlza2xfaW5pdF9zY2FsZXJzKGRldiwgY3J0YywgcGlwZV9jb25maWcp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA0ODUyMDQ5Li41ODk3OWU0IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMTUyLDYgKzE1MiwxMyBAQCBzdHJ1Y3QgaW50ZWxfZW5j b2RlciB7CiAJdm9pZCAoKmdldF9jb25maWcpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCiAJCQkg ICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwogCS8qCisJICogUmV0cml2 ZXMgdGhlIFBJUEUgY29uZmlnIGZyb20gdGhlIFBPUlQgcmVnaXN0ZXJzIHdoZXJlIFBJUEUKKwkg KiByZWdpc3RlcnMgYXJlIGludmFsaWQgYW5kIG9ubHkgUE9SVCByZWdpc3RlcnMgd2lsbCBob2xk IHRoZSB0aW1pbmcKKwkgKiBwYXJhbWV0ZXJzLgorCSAqLworCXZvaWQgKCpnZXRfcGlwZV9jb25m aWcpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCisJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcpOworCS8qCiAJICogQ2FsbGVkIGR1cmluZyBzeXN0ZW0gc3VzcGVuZCBh ZnRlciBhbGwgcGVuZGluZyByZXF1ZXN0cyBmb3IgdGhlCiAJICogZW5jb2RlciBhcmUgZmx1c2hl ZCAoZm9yIGV4YW1wbGUgZm9yIERQIEFVWCB0cmFuc2FjdGlvbnMpIGFuZAogCSAqIGRldmljZSBp bnRlcnJ1cHRzIGFyZSBkaXNhYmxlZC4KQEAgLTEyOTAsNyArMTI5Nyw3IEBAIGludCBpbnRlbF9k cF9tc3RfZW5jb2Rlcl9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0LCBpbnQgY29uCiB2b2lkIGludGVsX2RwX21zdF9lbmNvZGVyX2NsZWFudXAoc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpOwogLyogaW50ZWxfZHNpLmMgKi8KIHZv aWQgaW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KK2VudW0gcGlwZSBw aXBlX2xpbmtlZF90b19kc2lfcG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBvcnQg cG9ydCk7CiAKIC8qIGludGVsX2R2by5jICovCiB2b2lkIGludGVsX2R2b19pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwppbmRleCA3MzRmMDZhLi43 ZmJlYWU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwpAQCAtNzQ1LDYgKzc0NSwxMDMgQEAg c3RhdGljIHZvaWQgaW50ZWxfZHNpX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBwY2xrOwogfQogCisvKiByZXR1cm4g cGl4ZWxzIGVxdXZhbGVudCB0byB0eGJ5dGVjbGtocyAqLworc3RhdGljIHUxNiBwaXhlbHNfZnJv bV90eGJ5dGVjbGtocyh1MTYgY2xrX2hzLCBpbnQgYnBwLCBpbnQgbGFuZV9jb3VudCwKKwkJICAg ICAgIHUxNiBidXJzdF9tb2RlX3JhdGlvKQoreworCXJldHVybiBESVZfUk9VTkRfVVAoKGNsa19o cyAqIGxhbmVfY291bnQgKiA4ICogMTAwKSwKKwkJCQkJCShicHAgKiBidXJzdF9tb2RlX3JhdGlv KSk7Cit9CisKK3N0YXRpYyB2b2lkIGJ4dF9kc2lfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAorCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9j b25maWcpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQorCQkJCQkmcGlwZV9jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPQor CQkJCWVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOworCXVuc2lnbmVkIGludCBicHAg PSBkc2lfcGl4ZWxfZm9ybWF0X2JwcChpbnRlbF9kc2ktPnBpeGVsX2Zvcm1hdCk7CisJdW5zaWdu ZWQgaW50IGxhbmVfY291bnQgPSBpbnRlbF9kc2ktPmxhbmVfY291bnQ7CisJZW51bSBwb3J0IHBv cnQ7CisJZW51bSBwaXBlIGRzaV9waXBlOworCXUxNiBoYWN0aXZlLCBoZnAsIGhzeW5jLCBoYnAs IHZmcCwgdnN5bmMsIHZicDsKKwl1aW50MzJfdCB0bXA7CisKKwlmb3JfZWFjaF9kc2lfcG9ydChw b3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7CisJCWlmICghKEk5MTVfUkVBRChCWFRfTUlQSV9QT1JU X0NUUkwocG9ydCkpICYgRFBJX0VOQUJMRSkpCisJCQljb250aW51ZTsKKworCQkvKiBJbiB0ZXJt cyBvZiBwaXhlbHMgKi8KKwkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSA9CisJCQkJCUk5 MTVfUkVBRChCWFRfTUlQSV9UUkFOU19IQUNUSVZFKHBvcnQpKTsKKwkJYWRqdXN0ZWRfbW9kZS0+ Y3J0Y192ZGlzcGxheSA9CisJCQkJCUk5MTVfUkVBRChCWFRfTUlQSV9UUkFOU19WQUNUSVZFKHBv cnQpKTsKKwkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y192dG90YWwgPQorCQkJCQlJOTE1X1JFQUQoQlhU X01JUElfVFJBTlNfVlRPVEFMKHBvcnQpKTsKKworCQloYWN0aXZlID0gYWRqdXN0ZWRfbW9kZS0+ Y3J0Y19oZGlzcGxheTsKKwkJaGZwID0gSTkxNV9SRUFEKE1JUElfSEZQX0NPVU5UKHBvcnQpKTsK KworCQkvKgorCQkgKiBtZWFuaW5nZnVsIGZvciB2aWRlbyBtb2RlIG5vbi1idXJzdCBzeW5jIHB1 bHNlIG1vZGUgb25seSwKKwkJICogY2FuIGJlIHplcm8gZm9yIG5vbi1idXJzdCBzeW5jIGV2ZW50 cyBhbmQgYnVyc3QgbW9kZXMKKwkJICovCisJCWhzeW5jID0gSTkxNV9SRUFEKE1JUElfSFNZTkNf UEFERElOR19DT1VOVChwb3J0KSk7CisJCWhicCA9IEk5MTVfUkVBRChNSVBJX0hCUF9DT1VOVChw b3J0KSk7CisKKwkJLyogaG9yaXpvbnRhbCB2YWx1ZXMgYXJlIGluIHRlcm1zIG9mIGhpZ2ggc3Bl ZWQgYnl0ZSBjbG9jayAqLworCQloZnAgPSBwaXhlbHNfZnJvbV90eGJ5dGVjbGtocyhoZnAsIGJw cCwgbGFuZV9jb3VudCwKKwkJCQkJCWludGVsX2RzaS0+YnVyc3RfbW9kZV9yYXRpbyk7CisJCWhz eW5jID0gcGl4ZWxzX2Zyb21fdHhieXRlY2xraHMoaHN5bmMsIGJwcCwgbGFuZV9jb3VudCwKKwkJ CQkJCWludGVsX2RzaS0+YnVyc3RfbW9kZV9yYXRpbyk7CisJCWhicCA9IHBpeGVsc19mcm9tX3R4 Ynl0ZWNsa2hzKGhicCwgYnBwLCBsYW5lX2NvdW50LAorCQkJCQkJaW50ZWxfZHNpLT5idXJzdF9t b2RlX3JhdGlvKTsKKworCQlpZiAoaW50ZWxfZHNpLT5kdWFsX2xpbmspIHsKKwkJCWhmcCAqPSAy OworCQkJaHN5bmMgKj0gMjsKKwkJCWhicCAqPSAyOworCQl9CisKKwkJLyogdmVydGljYWwgdmFs dWVzIGFyZSBpbiB0ZXJtcyBvZiBsaW5lcyAqLworCQl2ZnAgPSBJOTE1X1JFQUQoTUlQSV9WRlBf Q09VTlQocG9ydCkpOworCQl2c3luYyA9IEk5MTVfUkVBRChNSVBJX1ZTWU5DX1BBRERJTkdfQ09V TlQocG9ydCkpOworCQl2YnAgPSBJOTE1X1JFQUQoTUlQSV9WQlBfQ09VTlQocG9ydCkpOworCisJ CWFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsID0gaGFjdGl2ZSArIGhmcCArIGhzeW5jICsgaGJw OworCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2hzeW5jX3N0YXJ0ID0KKwkJCQkJaGZwICsgYWRqdXN0 ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheTsKKwkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oc3luY19lbmQg PQorCQkJCQloc3luYyArIGFkanVzdGVkX21vZGUtPmNydGNfaHN5bmNfc3RhcnQ7CisKKwkJYWRq dXN0ZWRfbW9kZS0+Y3J0Y19oYmxhbmtfc3RhcnQgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNw bGF5OworCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2hibGFua19lbmQgPSBhZGp1c3RlZF9tb2RlLT5j cnRjX2h0b3RhbDsKKworCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZzeW5jX3N0YXJ0ID0KKwkJCQkJ dmZwICsgYWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlzcGxheTsKKwkJYWRqdXN0ZWRfbW9kZS0+Y3J0 Y192c3luY19lbmQgPQorCQkJCQl2c3luYyArIGFkanVzdGVkX21vZGUtPmNydGNfdnN5bmNfc3Rh cnQ7CisKKwkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y192Ymxhbmtfc3RhcnQgPSBhZGp1c3RlZF9tb2Rl LT5jcnRjX3ZkaXNwbGF5OworCQlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZibGFua19lbmQgPSBhZGp1 c3RlZF9tb2RlLT5jcnRjX3Z0b3RhbDsKKworCQlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPQorCQkJ CWRzaV9waXhlbF9mb3JtYXRfYnBwKGludGVsX2RzaS0+cGl4ZWxfZm9ybWF0KTsKKworCQlkc2lf cGlwZSA9IHBpcGVfbGlua2VkX3RvX2RzaV9wb3J0KGRldiwgcG9ydCk7CisJCXRtcCA9IEk5MTVf UkVBRChQSVBFU1JDKGRzaV9waXBlKSk7CisJCXBpcGVfY29uZmlnLT5waXBlX3NyY19oID0gKHRt cCAmIDB4ZmZmZikgKyAxOworCQlwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyA9ICgodG1wID4+IDE2 KSAmIDB4ZmZmZikgKyAxOworCisJCXBpcGVfY29uZmlnLT5iYXNlLm1vZGUudmRpc3BsYXkgPSBw aXBlX2NvbmZpZy0+cGlwZV9zcmNfaDsKKwkJcGlwZV9jb25maWctPmJhc2UubW9kZS5oZGlzcGxh eSA9IHBpcGVfY29uZmlnLT5waXBlX3NyY193OworCisJCWJyZWFrOworCX0KK30KKwogc3RhdGlj IGVudW0gZHJtX21vZGVfc3RhdHVzCiBpbnRlbF9kc2lfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAogCQkgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl KQpAQCAtMTE3Myw2ICsxMjcwLDcgQEAgdm9pZCBpbnRlbF9kc2lfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCWludGVsX2VuY29kZXItPnBvc3RfZGlzYWJsZSA9IGludGVsX2RzaV9wb3N0 X2Rpc2FibGU7CiAJaW50ZWxfZW5jb2Rlci0+Z2V0X2h3X3N0YXRlID0gaW50ZWxfZHNpX2dldF9o d19zdGF0ZTsKIAlpbnRlbF9lbmNvZGVyLT5nZXRfY29uZmlnID0gaW50ZWxfZHNpX2dldF9jb25m aWc7CisJaW50ZWxfZW5jb2Rlci0+Z2V0X3BpcGVfY29uZmlnID0gYnh0X2RzaV9nZXRfcGlwZV9j b25maWc7CiAKIAlpbnRlbF9jb25uZWN0b3ItPmdldF9od19zdGF0ZSA9IGludGVsX2Nvbm5lY3Rv cl9nZXRfaHdfc3RhdGU7CiAJaW50ZWxfY29ubmVjdG9yLT51bnJlZ2lzdGVyID0gaW50ZWxfY29u bmVjdG9yX3VucmVnaXN0ZXI7Ci0tIAoxLjcuOS41CgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK