From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak M Subject: [PATCH 2/2] drm/i915: CABC support for backlight control Date: Thu, 24 Mar 2016 15:04:38 +0530 Message-ID: <1458812078-3326-2-git-send-email-m.deepak@intel.com> References: <1458812078-3326-1-git-send-email-m.deepak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 9C70B6E936 for ; Thu, 24 Mar 2016 09:34:49 +0000 (UTC) In-Reply-To: <1458812078-3326-1-git-send-email-m.deepak@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: Deepak M , Jani Nikula , Yetunde Adebisi , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org SW4gQ0FCQyAoQ29udGVudCBBZGFwdGl2ZSBCcmlnaHRuZXNzIENvbnRyb2wpIGNvbnRlbnQgZ3Jl eSBsZXZlbApzY2FsZSBjYW4gYmUgaW5jcmVhc2VkIHdoaWxlIHNpbXVsdGFuZW91c2x5IGRlY3Jl YXNpbmcKYnJpZ2h0bmVzcyBvZiB0aGUgYmFja2xpZ2h0IHRvIGFjaGlldmUgc2FtZSBwZXJjZWl2 ZWQgYnJpZ2h0bmVzcy4KClRoZSBDQUJDIGlzIG5vdCBzdGFuZGFyZGl6ZWQgYW5kIHBhbmVsIHZl bmRvcnMgYXJlIGZyZWUgdG8gZm9sbG93CnRoZWlyIGltcGxlbWVudGF0aW9uLiBUaGUgQ0FCQyBp bXBsZW1lbnRhaW9uIGhlcmUgYXNzdW1lcyB0aGF0IHRoZQpwYW5lbHMgdXNlIHN0YW5kYXJkIFNX IHJlZ2lzdGVyIGZvciBjb250cm9sLgoKSW4gdGhpcyBkZXNpZ24gdGhlcmUgd2lsbCBiZSBubyBQ V00gc2lnbmFsIGZyb20gdGhlIFNvQyBhbmQgRENTCmNvbW1hbmRzIGFyZSBzZW50IHRvIGVuYWJs ZSBhbmQgY29udHJvbCB0aGUgYmFja2xpZ2h0IGJyaWdodG5lc3MuCgp2MjogTW92aW5nIHRoZSBD QUJDIGJrbCBmdW5jdGlvbnMgdG8gbmV3IGZpbGUuKEphbmkpCgp2MzogUmViYXNlCgp2NDogUmVi YXNlCgp2NTogVXNlIG1pcGlfZHNpX2Rjc193cml0ZSgpIGluc3RlYWQgb2YgbWlwaV9kc2lfZGNz X3dyaXRlX2J1ZmZlcigpIChKYW5pKQogICAgTW92ZSBEQ1MgbWFjcm9gcyB0byBpbmNsdWRlL3Zp ZGVvL21pcGlfZGlzcGxheS5oIChKYW5pKQoKQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBp bnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KQ2M6 IFlldHVuZGUgQWRlYmlzaSA8eWV0dW5kZXguYWRlYmlzaUBpbnRlbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERlZXBhayBNIDxtLmRlZXBha0BpbnRlbC5jb20+Ci0tLQoKVGhlIERDUyBjb21tYW5kIG1h Y3JvYHMgYXJlIGRlZmluZWQgaW4gdGhlIHBhdGNoIHdoaWNoIGlzIHBvc3RlZCBpbiB0aGUKZHJp LWRldmVsIGxpc3QuCgogZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICB8ICAg MSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgIHwgICAxIC0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHNpLmMgICAgICB8ICAxOSArKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHNpLmggICAgICB8ICAgNCArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lf Y2FiYy5jIHwgMTU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICAgfCAgIDQgKwogNyBmaWxlcyBjaGFuZ2VkLCAx ODIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRl eCA3ZmZiNTFiLi4wNjVjNDEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtl ZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtODMsNiArODMsNyBA QCBpOTE1LXkgKz0gZHZvX2NoNzAxNy5vIFwKIAkgIGludGVsX2RwX21zdC5vIFwKIAkgIGludGVs X2RwLm8gXAogCSAgaW50ZWxfZHNpLm8gXAorCSAgaW50ZWxfZHNpX2NhYmMubyBcCiAJICBpbnRl bF9kc2lfcGFuZWxfdmJ0Lm8gXAogCSAgaW50ZWxfZHNpX3BsbC5vIFwKIAkgIGludGVsX2R2by5v IFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDA1MGQ4NjAuLjllZDYwZjggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaApAQCAtMzQ4OSw3ICszNDg5LDYgQEAgdm9pZCBpbnRlbF9zYmlfd3Jp dGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MTYgcmVnLCB1MzIgdmFsdWUs CiAJCSAgICAgZW51bSBpbnRlbF9zYmlfZGVzdGluYXRpb24gZGVzdGluYXRpb24pOwogdTMyIHZs dl9mbGlzZHNpX3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcmVn KTsKIHZvaWQgdmx2X2ZsaXNkc2lfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1MzIgcmVnLCB1MzIgdmFsKTsKLQogaW50IGludGVsX2dwdV9mcmVxKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZhbCk7CiBpbnQgaW50ZWxfZnJlcV9vcGNvZGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdmFsKTsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAppbmRleCBjODdiNDUwLi45ZTQ5Mzk2IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaApAQCAtMTMyNSw2ICsxMzI1LDggQEAgdm9pZCBpbnRlbF9kcF9tc3RfZW5jb2Rlcl9j bGVhbnVwKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KTsKIC8qIGlu dGVsX2RzaS5jICovCiB2b2lkIGludGVsX2RzaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp OwogCisvKiBpbnRlbF9kc2lfY2FiYy5jICovCitpbnQgaW50ZWxfZHNpX2NhYmNfaW5pdF9iYWNr bGlnaHRfZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKTsKIAog LyogaW50ZWxfZHZvLmMgKi8KIHZvaWQgaW50ZWxfZHZvX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCmluZGV4IDQ1NjY3NmMuLjdhYTcwN2YgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCkBAIC0xMjA5LDEwICsxMjA5LDI1IEBAIHZvaWQgaW50 ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAllbHNlCiAJCWludGVsX2VuY29k ZXItPmNydGNfbWFzayA9IEJJVChQSVBFX0IpOwogCi0JaWYgKGRldl9wcml2LT52YnQuZHNpLmNv bmZpZy0+ZHVhbF9saW5rKQorCWlmIChkZXZfcHJpdi0+dmJ0LmRzaS5jb25maWctPmR1YWxfbGlu aykgewogCQlpbnRlbF9kc2ktPnBvcnRzID0gQklUKFBPUlRfQSkgfCBCSVQoUE9SVF9DKTsKLQll bHNlCisJCXN3aXRjaCAoZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnLT5kbF9jYWJjX3BvcnQpIHsK KwkJY2FzZSBDQUJDX1BPUlRfQToKKwkJCWludGVsX2RzaS0+YmtsX2Rjc19wb3J0cyA9IEJJVChQ T1JUX0EpOworCQkJYnJlYWs7CisJCWNhc2UgQ0FCQ19QT1JUX0M6CisJCQlpbnRlbF9kc2ktPmJr bF9kY3NfcG9ydHMgPSBCSVQoUE9SVF9DKTsKKwkJCWJyZWFrOworCQljYXNlIENBQkNfUE9SVF9B X0FORF9DOgorCQkJaW50ZWxfZHNpLT5ia2xfZGNzX3BvcnRzID0gQklUKFBPUlRfQSkgfCBCSVQo UE9SVF9DKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJRFJNX0VSUk9SKCJVbmtub3duIE1J UEkgcG9ydHMgZm9yIHNlbmRpbmcgRENTXG4iKTsKKwkJfQorCX0gZWxzZSB7CiAJCWludGVsX2Rz aS0+cG9ydHMgPSBCSVQocG9ydCk7CisJCWludGVsX2RzaS0+YmtsX2Rjc19wb3J0cyA9IEJJVChw b3J0KTsKKwl9CiAKIAkvKiBDcmVhdGUgYSBEU0kgaG9zdCAoYW5kIGEgZGV2aWNlKSBmb3IgZWFj aCBwb3J0LiAqLwogCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKaW5kZXggMGU3NThmMS4uNWMwN2Q1OSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHNpLmgKQEAgLTM0LDYgKzM0LDEwIEBACiAjZGVmaW5lIERTSV9EVUFMX0xJ TktfRlJPTlRfQkFDSwkxCiAjZGVmaW5lIERTSV9EVUFMX0xJTktfUElYRUxfQUxUCQkyCiAKKyNk ZWZpbmUgQ0FCQ19QT1JUX0EgICAgICAgICAgICAgICAgICAgICAweDAwCisjZGVmaW5lIENBQkNf UE9SVF9DICAgICAgICAgICAgICAgICAgICAgMHgwMQorI2RlZmluZSBDQUJDX1BPUlRfQV9BTkRf QyAgICAgICAgICAgICAgIDB4MDIKKwogc3RydWN0IGludGVsX2RzaV9ob3N0OwogCiBzdHJ1Y3Qg aW50ZWxfZHNpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9j YWJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzMGVlNGYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5jCkBAIC0wLDAgKzEsMTU0IEBACisvKgor ICogQ29weXJpZ2h0IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9u IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p bmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp b24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdp dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSBy aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBz dWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRv IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8g ZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRp bmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGll cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRI RSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL SU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP IFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAor ICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xB SU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g T0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0Yg T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisg KiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yOiBEZWVwYWsgTSA8bS5k ZWVwYWsgYXQgaW50ZWwuY29tPgorICovCisKKyNpbmNsdWRlICJpbnRlbF9kcnYuaCIKKyNpbmNs dWRlICJpbnRlbF9kc2kuaCIKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgPHZpZGVv L21pcGlfZGlzcGxheS5oPgorI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4KKworI2RlZmlu ZSBDQUJDX09GRiAgICAgICAgICAgICAgICAgICAgICAgICgwIDw8IDApCisjZGVmaW5lIENBQkNf VVNFUl9JTlRFUkZBQ0VfSU1BR0UgICAgICAgKDEgPDwgMCkKKyNkZWZpbmUgQ0FCQ19TVElMTF9Q SUNUVVJFICAgICAgICAgICAgICAoMiA8PCAwKQorI2RlZmluZSBDQUJDX1ZJREVPX01PREUgICAg ICAgICAgICAgICAgICgzIDw8IDApCisKKyNkZWZpbmUgQ0FCQ19CQUNLTElHSFQgICAgICAgICAg ICAgICAgICAoMSA8PCAyKQorI2RlZmluZSBDQUJDX0RJTU1JTkdfRElTUExBWSAgICAgICAgICAg ICgxIDw8IDMpCisjZGVmaW5lIENBQkNfQkNUUkwgICAgICAgICAgICAgICAgICAgICAgKDEgPDwg NSkKKworI2RlZmluZSBDQUJDX01BWF9WQUxVRSAgICAgICAgICAgICAgICAgIDB4RkYKKworc3Rh dGljIHUzMiBjYWJjX2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yKQoreworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gY29ubmVjdG9yLT5lbmNv ZGVyOworCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVu Y29kZXItPmJhc2UpOworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7CisJdTgg ZGF0YVsyXSA9IHswfTsKKwllbnVtIHBvcnQgcG9ydDsKKworCWZvcl9lYWNoX2RzaV9wb3J0KHBv cnQsIGludGVsX2RzaS0+YmtsX2Rjc19wb3J0cykgeworCQlkc2lfZGV2aWNlID0gaW50ZWxfZHNp LT5kc2lfaG9zdHNbcG9ydF0tPmRldmljZTsKKwkJbWlwaV9kc2lfZGNzX3JlYWQoZHNpX2Rldmlj ZSwgTUlQSV9EQ1NfR0VUX0RJU1BMQVlfQlJJR0hUTkVTUywKKwkJCQkJZGF0YSwgMik7CisJfQor CisJcmV0dXJuIGRhdGFbMV07Cit9CisKK3N0YXRpYyB2b2lkIGNhYmNfc2V0X2JhY2tsaWdodChz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkKK3sKKwlzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKKwlzdHJ1Y3QgaW50 ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKKwlz dHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2lfZGV2aWNlOworCXU4IGRhdGEgPSAwOworCWVudW0g cG9ydCBwb3J0OworCisJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5ia2xfZGNz X3BvcnRzKSB7CisJCWRzaV9kZXZpY2UgPSBpbnRlbF9kc2ktPmRzaV9ob3N0c1twb3J0XS0+ZGV2 aWNlOworCQlkYXRhID0gbGV2ZWw7CisJCW1pcGlfZHNpX2Rjc193cml0ZShkc2lfZGV2aWNlLCBN SVBJX0RDU19TRVRfRElTUExBWV9CUklHSFRORVNTLAorCQkJCQkmZGF0YSwgc2l6ZW9mKGRhdGEp KTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGNhYmNfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyID0gY29ubmVjdG9yLT5lbmNvZGVyOworCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9 IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOworCXN0cnVjdCBtaXBpX2RzaV9kZXZp Y2UgKmRzaV9kZXZpY2U7CisJZW51bSBwb3J0IHBvcnQ7CisJdTggZGF0YSA9IDA7CisKKwljYWJj X3NldF9iYWNrbGlnaHQoY29ubmVjdG9yLCAwKTsKKworCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQs IGludGVsX2RzaS0+YmtsX2Rjc19wb3J0cykgeworCQlkc2lfZGV2aWNlID0gaW50ZWxfZHNpLT5k c2lfaG9zdHNbcG9ydF0tPmRldmljZTsKKwkJZGF0YSA9IENBQkNfT0ZGOworCQltaXBpX2RzaV9k Y3Nfd3JpdGUoZHNpX2RldmljZSwgTUlQSV9EQ1NfV1JJVEVfUE9XRVJfU0FWRSwKKwkJCQkJJmRh dGEsIHNpemVvZihkYXRhKSk7CisJCW1pcGlfZHNpX2Rjc193cml0ZShkc2lfZGV2aWNlLCBNSVBJ X0RDU19XUklURV9DT05UUk9MX0RJU1BMQVksCisJCQkJCSZkYXRhLCBzaXplb2YoZGF0YSkpOwor CX0KK30KKworc3RhdGljIHZvaWQgY2FiY19lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9 IGNvbm5lY3Rvci0+ZW5jb2RlcjsKKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNf dG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVs ID0gJmNvbm5lY3Rvci0+cGFuZWw7CisJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpX2Rldmlj ZTsKKwllbnVtIHBvcnQgcG9ydDsKKwl1OCBkYXRhID0gMDsKKworCWZvcl9lYWNoX2RzaV9wb3J0 KHBvcnQsIGludGVsX2RzaS0+YmtsX2Rjc19wb3J0cykgeworCQlkc2lfZGV2aWNlID0gaW50ZWxf ZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRldmljZTsKKwkJZGF0YSA9IENBQkNfQkFDS0xJR0hUIHwg Q0FCQ19ESU1NSU5HX0RJU1BMQVkgfCBDQUJDX0JDVFJMOworCQltaXBpX2RzaV9kY3Nfd3JpdGUo ZHNpX2RldmljZSwgTUlQSV9EQ1NfV1JJVEVfQ09OVFJPTF9ESVNQTEFZLAorCQkJCQkmZGF0YSwg c2l6ZW9mKGRhdGEpKTsKKwkJZGF0YSA9IENBQkNfU1RJTExfUElDVFVSRTsKKwkJbWlwaV9kc2lf ZGNzX3dyaXRlKGRzaV9kZXZpY2UsIE1JUElfRENTX1dSSVRFX1BPV0VSX1NBVkUsCisJCQkJCSZk YXRhLCBzaXplb2YoZGF0YSkpOworCX0KKworCWNhYmNfc2V0X2JhY2tsaWdodChjb25uZWN0b3Is IHBhbmVsLT5iYWNrbGlnaHQubGV2ZWwpOworfQorCitzdGF0aWMgaW50IGNhYmNfc2V0dXBfYmFj a2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJZW51bSBwaXBlIHVu dXNlZCkKK3sKKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7 CisKKwlwYW5lbC0+YmFja2xpZ2h0Lm1heCA9IENBQkNfTUFYX1ZBTFVFOworCXBhbmVsLT5iYWNr bGlnaHQubGV2ZWwgPSBDQUJDX01BWF9WQUxVRTsKKworCXJldHVybiAwOworfQorCitpbnQgaW50 ZWxfZHNpX2NhYmNfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAq aW50ZWxfY29ubmVjdG9yKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9jb25u ZWN0b3ItPmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBpbnRlbF9j b25uZWN0b3ItPmVuY29kZXI7CisJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZpbnRlbF9j b25uZWN0b3ItPnBhbmVsOworCisJaWYgKCFkZXZfcHJpdi0+dmJ0LmRzaS5jb25maWctPmNhYmNf c3VwcG9ydGVkKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmIChlbmNvZGVyLT50eXBlICE9IElO VEVMX09VVFBVVF9EU0kpIHsKKwkJRFJNX0VSUk9SKCJVc2UgRFNJIGVuY29kZXIgZm9yIENBQkNc biIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoV0FSTl9PTihlbmNvZGVyLT50eXBl ICE9IElOVEVMX09VVFBVVF9EU0kpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXBhbmVsLT5iYWNr bGlnaHQuc2V0dXAgPSBjYWJjX3NldHVwX2JhY2tsaWdodDsKKwlwYW5lbC0+YmFja2xpZ2h0LmVu YWJsZSA9IGNhYmNfZW5hYmxlX2JhY2tsaWdodDsKKwlwYW5lbC0+YmFja2xpZ2h0LmRpc2FibGUg PSBjYWJjX2Rpc2FibGVfYmFja2xpZ2h0OworCXBhbmVsLT5iYWNrbGlnaHQuc2V0ID0gY2FiY19z ZXRfYmFja2xpZ2h0OworCXBhbmVsLT5iYWNrbGlnaHQuZ2V0ID0gY2FiY19nZXRfYmFja2xpZ2h0 OworCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwppbmRleCA4Yzg5 OTZmLi42NDFjMzhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5l bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKQEAgLTE3MTgsNiAr MTcxOCwxMCBAQCBpbnRlbF9wYW5lbF9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxf cGFuZWwgKnBhbmVsKQogCQljb250YWluZXJfb2YocGFuZWwsIHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IsIHBhbmVsKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCisJaWYgKGNvbm5lY3Rvci0+YmFzZS5jb25uZWN0b3Jf dHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfRFNJICYmCisJCWludGVsX2RzaV9jYWJjX2luaXRf YmFja2xpZ2h0X2Z1bmNzKGNvbm5lY3RvcikgPT0gMCkKKwkJcmV0dXJuOworCiAJaWYgKElTX0JS T1hUT04oZGV2X3ByaXYpKSB7CiAJCXBhbmVsLT5iYWNrbGlnaHQuc2V0dXAgPSBieHRfc2V0dXBf YmFja2xpZ2h0OwogCQlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZSA9IGJ4dF9lbmFibGVfYmFja2xp Z2h0OwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=