From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak M Subject: [MIPI CABC 2/2] drm/i915: CABC support for backlight control Date: Tue, 22 Mar 2016 11:11:10 +0530 Message-ID: <1458625270-29433-3-git-send-email-m.deepak@intel.com> References: <1458625270-29433-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id F3A046E6D9 for ; Tue, 22 Mar 2016 05:41:00 +0000 (UTC) In-Reply-To: <1458625270-29433-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 YXNlCgpDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KQ2M6IERhbmllbCBW ZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgpDYzogWWV0dW5kZSBBZGViaXNpIDx5ZXR1 bmRleC5hZGViaXNpQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGVlcGFrIE0gPG0uZGVlcGFr QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgIHwg ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgfCAgIDIgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jICAgICAgfCAgMTkgKysrLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHNpLmggICAgICB8ICAgNCArCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2lfY2FiYy5jIHwgMTc5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICAgfCAgIDQgKwogNiBmaWxl cyBjaGFuZ2VkLCAyMDYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5jCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9N YWtlZmlsZQppbmRleCA3ZmZiNTFiLi4wNjVjNDEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAt ODMsNiArODMsNyBAQCBpOTE1LXkgKz0gZHZvX2NoNzAxNy5vIFwKIAkgIGludGVsX2RwX21zdC5v IFwKIAkgIGludGVsX2RwLm8gXAogCSAgaW50ZWxfZHNpLm8gXAorCSAgaW50ZWxfZHNpX2NhYmMu byBcCiAJICBpbnRlbF9kc2lfcGFuZWxfdmJ0Lm8gXAogCSAgaW50ZWxfZHNpX3BsbC5vIFwKIAkg IGludGVsX2R2by5vIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDA1MGQ4NjAuLmQxOTY0 MDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMzQ4OSw3ICszNDg5LDcgQEAgdm9pZCBp bnRlbF9zYmlfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MTYgcmVn LCB1MzIgdmFsdWUsCiAJCSAgICAgZW51bSBpbnRlbF9zYmlfZGVzdGluYXRpb24gZGVzdGluYXRp b24pOwogdTMyIHZsdl9mbGlzZHNpX3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1MzIgcmVnKTsKIHZvaWQgdmx2X2ZsaXNkc2lfd3JpdGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCB1MzIgcmVnLCB1MzIgdmFsKTsKLQoraW50IGludGVsX2RzaV9jYWJj X2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5l Y3Rvcik7CiBpbnQgaW50ZWxfZ3B1X2ZyZXEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCBpbnQgdmFsKTsKIGludCBpbnRlbF9mcmVxX29wY29kZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCmluZGV4 IDQ1NjY3NmMuLjdhYTcwN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCkBAIC0xMjA5LDEw ICsxMjA5LDI1IEBAIHZvaWQgaW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAllbHNlCiAJCWludGVsX2VuY29kZXItPmNydGNfbWFzayA9IEJJVChQSVBFX0IpOwogCi0JaWYg KGRldl9wcml2LT52YnQuZHNpLmNvbmZpZy0+ZHVhbF9saW5rKQorCWlmIChkZXZfcHJpdi0+dmJ0 LmRzaS5jb25maWctPmR1YWxfbGluaykgewogCQlpbnRlbF9kc2ktPnBvcnRzID0gQklUKFBPUlRf QSkgfCBCSVQoUE9SVF9DKTsKLQllbHNlCisJCXN3aXRjaCAoZGV2X3ByaXYtPnZidC5kc2kuY29u ZmlnLT5kbF9jYWJjX3BvcnQpIHsKKwkJY2FzZSBDQUJDX1BPUlRfQToKKwkJCWludGVsX2RzaS0+ YmtsX2Rjc19wb3J0cyA9IEJJVChQT1JUX0EpOworCQkJYnJlYWs7CisJCWNhc2UgQ0FCQ19QT1JU X0M6CisJCQlpbnRlbF9kc2ktPmJrbF9kY3NfcG9ydHMgPSBCSVQoUE9SVF9DKTsKKwkJCWJyZWFr OworCQljYXNlIENBQkNfUE9SVF9BX0FORF9DOgorCQkJaW50ZWxfZHNpLT5ia2xfZGNzX3BvcnRz ID0gQklUKFBPUlRfQSkgfCBCSVQoUE9SVF9DKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJ RFJNX0VSUk9SKCJVbmtub3duIE1JUEkgcG9ydHMgZm9yIHNlbmRpbmcgRENTXG4iKTsKKwkJfQor CX0gZWxzZSB7CiAJCWludGVsX2RzaS0+cG9ydHMgPSBCSVQocG9ydCk7CisJCWludGVsX2RzaS0+ YmtsX2Rjc19wb3J0cyA9IEJJVChwb3J0KTsKKwl9CiAKIAkvKiBDcmVhdGUgYSBEU0kgaG9zdCAo YW5kIGEgZGV2aWNlKSBmb3IgZWFjaCBwb3J0LiAqLwogCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQs IGludGVsX2RzaS0+cG9ydHMpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKaW5kZXggMGU3NThm MS4uNWMwN2Q1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmgKQEAgLTM0LDYgKzM0LDEwIEBA CiAjZGVmaW5lIERTSV9EVUFMX0xJTktfRlJPTlRfQkFDSwkxCiAjZGVmaW5lIERTSV9EVUFMX0xJ TktfUElYRUxfQUxUCQkyCiAKKyNkZWZpbmUgQ0FCQ19QT1JUX0EgICAgICAgICAgICAgICAgICAg ICAweDAwCisjZGVmaW5lIENBQkNfUE9SVF9DICAgICAgICAgICAgICAgICAgICAgMHgwMQorI2Rl ZmluZSBDQUJDX1BPUlRfQV9BTkRfQyAgICAgICAgICAgICAgIDB4MDIKKwogc3RydWN0IGludGVs X2RzaV9ob3N0OwogCiBzdHJ1Y3QgaW50ZWxfZHNpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RzaV9jYWJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k c2lfY2FiYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxNGE2NjkKLS0t IC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfY2FiYy5jCkBA IC0wLDAgKzEsMTc5IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMDYtMjAxMCBJbnRlbCBDb3Jw b3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh cmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUg YW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICog dG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3Bp ZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAq IFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg cGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFs bCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo ZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM SVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF TUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M REVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklM SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0Us IEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX QVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAq CisgKiBBdXRob3I6IERlZXBhayBNIDxtLmRlZXBhayBhdCBpbnRlbC5jb20+CisgKi8KKworI2lu Y2x1ZGUgImludGVsX2Rydi5oIgorI2luY2x1ZGUgImludGVsX2RzaS5oIgorI2luY2x1ZGUgImk5 MTVfZHJ2LmgiCisjaW5jbHVkZSA8ZHJtL2RybV9taXBpX2RzaS5oPgorCisjZGVmaW5lIENBQkNf T0ZGICAgICAgICAgICAgICAgICAgICAgICAgKDAgPDwgMCkKKyNkZWZpbmUgQ0FCQ19VU0VSX0lO VEVSRkFDRV9JTUFHRSAgICAgICAoMSA8PCAwKQorI2RlZmluZSBDQUJDX1NUSUxMX1BJQ1RVUkUg ICAgICAgICAgICAgICgyIDw8IDApCisjZGVmaW5lIENBQkNfVklERU9fTU9ERSAgICAgICAgICAg ICAgICAgKDMgPDwgMCkKKworI2RlZmluZSBDQUJDX0JBQ0tMSUdIVCAgICAgICAgICAgICAgICAg ICgxIDw8IDIpCisjZGVmaW5lIENBQkNfRElNTUlOR19ESVNQTEFZICAgICAgICAgICAgKDEgPDwg MykKKyNkZWZpbmUgQ0FCQ19CQ1RSTCAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQorCisj ZGVmaW5lIENBQkNfTUFYX1ZBTFVFICAgICAgICAgICAgICAgICAgMHhGRgorCisjZGVmaW5lIE1J UElfRENTX0NBQkNfTEVWRUxfUkQgICAgICAgICAgMHg1MgorI2RlZmluZSBNSVBJX0RDU19DQUJD X01JTl9CUklHSFRORVNTX1JEIDB4NUYKKyNkZWZpbmUgTUlQSV9EQ1NfQ0FCQ19DT05UUk9MX1JE ICAgICAgICAweDU2CisjZGVmaW5lIE1JUElfRENTX0NBQkNfQ09OVFJPTF9CUklHSFRfUkQgMHg1 NAorI2RlZmluZSBNSVBJX0RDU19DQUJDX0xFVkVMX1dSICAgICAgICAgIDB4NTEKKyNkZWZpbmUg TUlQSV9EQ1NfQ0FCQ19NSU5fQlJJR0hUTkVTU19XUiAweDVFCisjZGVmaW5lIE1JUElfRENTX0NB QkNfQ09OVFJPTF9XUiAgICAgICAgMHg1NQorI2RlZmluZSBNSVBJX0RDU19DQUJDX0NPTlRST0xf QlJJR0hUX1dSIDB4NTMKKworc3RhdGljIHUzMiBjYWJjX2dldF9iYWNrbGlnaHQoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2Rz aSA9IE5VTEw7CisJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBOVUxMOworCXN0cnVj dCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7CisJdTggZGF0YVsyXSA9IHswfTsKKwllbnVt IHBvcnQgcG9ydDsKKworCWVuY29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7CisJaW50ZWxfZHNp ID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CisKKwlmb3JfZWFjaF9kc2lfcG9y dChwb3J0LCBpbnRlbF9kc2ktPmJrbF9kY3NfcG9ydHMpIHsKKwkJZHNpX2RldmljZSA9IGludGVs X2RzaS0+ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7CisJCW1pcGlfZHNpX2Rjc19yZWFkKGRzaV9k ZXZpY2UsIE1JUElfRENTX0NBQkNfTEVWRUxfUkQsIGRhdGEsIDIpOworCX0KKworCXJldHVybiBk YXRhWzFdOworfQorCitzdGF0aWMgdm9pZCBjYWJjX3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCit7CisJc3RydWN0IGludGVsX2RzaSAq aW50ZWxfZHNpID0gTlVMTDsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7 CisJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsKKwl1OCBkYXRhWzJdID0gezB9 OworCWVudW0gcG9ydCBwb3J0OworCisJZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKKwlp bnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKKworCWZvcl9lYWNo X2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+YmtsX2Rjc19wb3J0cykgeworCQlkc2lfZGV2aWNl ID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRldmljZTsKKwkJZGF0YVsxXSA9IGxldmVs OworCQlkYXRhWzBdID0gTUlQSV9EQ1NfQ0FCQ19MRVZFTF9XUjsKKwkJbWlwaV9kc2lfZGNzX3dy aXRlX2J1ZmZlcihkc2lfZGV2aWNlLCBkYXRhLCAyKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGNh YmNfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQor eworCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IE5VTEw7CisJc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIgPSBOVUxMOworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZp Y2U7CisJZW51bSBwb3J0IHBvcnQ7CisJdTggZGF0YVsyXSA9IHswfTsKKworCWVuY29kZXIgPSBj b25uZWN0b3ItPmVuY29kZXI7CisJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rl ci0+YmFzZSk7CisKKwljYWJjX3NldF9iYWNrbGlnaHQoY29ubmVjdG9yLCAwKTsKKworCWZvcl9l YWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+YmtsX2Rjc19wb3J0cykgeworCQlkc2lfZGV2 aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRldmljZTsKKwkJZGF0YVsxXSA9IENB QkNfT0ZGOworCQlkYXRhWzBdID0gTUlQSV9EQ1NfQ0FCQ19DT05UUk9MX1dSOworCQltaXBpX2Rz aV9kY3Nfd3JpdGVfYnVmZmVyKGRzaV9kZXZpY2UsIGRhdGEsIDIpOworCQlkYXRhWzBdID0gTUlQ SV9EQ1NfQ0FCQ19DT05UUk9MX0JSSUdIVF9XUjsKKwkJbWlwaV9kc2lfZGNzX3dyaXRlX2J1ZmZl cihkc2lfZGV2aWNlLCBkYXRhLCAyKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGNhYmNfZW5hYmxl X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0 IGludGVsX2RzaSAqaW50ZWxfZHNpID0gTlVMTDsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciA9IE5VTEw7CisJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBh bmVsOworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7CisJZW51bSBwb3J0IHBv cnQ7CisJdTggZGF0YVsyXSA9IHswfTsKKworCWVuY29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7 CisJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CisKKwlmb3Jf ZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPmJrbF9kY3NfcG9ydHMpIHsKKwkJZHNpX2Rl dmljZSA9IGludGVsX2RzaS0+ZHNpX2hvc3RzW3BvcnRdLT5kZXZpY2U7CisJCWRhdGFbMF0gPSBN SVBJX0RDU19DQUJDX0NPTlRST0xfQlJJR0hUX1dSOworCQlkYXRhWzFdID0gQ0FCQ19CQUNLTElH SFQgfCBDQUJDX0RJTU1JTkdfRElTUExBWSB8IENBQkNfQkNUUkw7CisJCW1pcGlfZHNpX2Rjc193 cml0ZV9idWZmZXIoZHNpX2RldmljZSwgZGF0YSwgMik7CisJCWRhdGFbMF0gPSBNSVBJX0RDU19D QUJDX0NPTlRST0xfV1I7CisJCWRhdGFbMV0gPSBDQUJDX1NUSUxMX1BJQ1RVUkU7CisJCW1pcGlf ZHNpX2Rjc193cml0ZV9idWZmZXIoZHNpX2RldmljZSwgZGF0YSwgMik7CisJfQorCisJY2FiY19z ZXRfYmFja2xpZ2h0KGNvbm5lY3RvciwgcGFuZWwtPmJhY2tsaWdodC5sZXZlbCk7Cit9CisKK3N0 YXRpYyBpbnQgY2FiY19zZXR1cF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yLAorCQllbnVtIHBpcGUgdW51c2VkKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBjb25uZWN0b3ItPmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25u ZWN0b3ItPnBhbmVsOworCisJaWYgKGRldl9wcml2LT52YnQuYmFja2xpZ2h0LnByZXNlbnQpCisJ CXBhbmVsLT5iYWNrbGlnaHQucHJlc2VudCA9IHRydWU7CisJZWxzZSB7CisJCURSTV9FUlJPUigi bm8gYmFja2xpZ2h0IHByZXNlbnQgcGVyIFZCVFxuIik7CisJCXJldHVybiAwOworCX0KKworCXBh bmVsLT5iYWNrbGlnaHQubWF4ID0gQ0FCQ19NQVhfVkFMVUU7CisJcGFuZWwtPmJhY2tsaWdodC5s ZXZlbCA9IENBQkNfTUFYX1ZBTFVFOworCisJcmV0dXJuIDA7Cit9CisKK2ludCBpbnRlbF9kc2lf Y2FiY19pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9j b25uZWN0b3IpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2Nvbm5lY3Rvci0+ YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGludGVsX2Nvbm5lY3Rv ci0+ZW5jb2RlcjsKKwlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmludGVsX2Nvbm5lY3Rv ci0+cGFuZWw7CisKKwlpZiAoIWRldl9wcml2LT52YnQuZHNpLmNvbmZpZy0+Y2FiY19zdXBwb3J0 ZWQpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKGVuY29kZXItPnR5cGUgIT0gSU5URUxfT1VU UFVUX0RTSSkgeworCQlEUk1fRVJST1IoIlVzZSBEU0kgZW5jb2RlciBmb3IgQ0FCQ1xuIik7CisJ CXJldHVybiAtRUlOVkFMOworCX0KKworCXBhbmVsLT5iYWNrbGlnaHQuc2V0dXAgPSBjYWJjX3Nl dHVwX2JhY2tsaWdodDsKKwlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZSA9IGNhYmNfZW5hYmxlX2Jh Y2tsaWdodDsKKwlwYW5lbC0+YmFja2xpZ2h0LmRpc2FibGUgPSBjYWJjX2Rpc2FibGVfYmFja2xp Z2h0OworCXBhbmVsLT5iYWNrbGlnaHQuc2V0ID0gY2FiY19zZXRfYmFja2xpZ2h0OworCXBhbmVs LT5iYWNrbGlnaHQuZ2V0ID0gY2FiY19nZXRfYmFja2xpZ2h0OworCisJcmV0dXJuIDA7Cit9CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwppbmRleCA4Yzg5OTZmLi4wZjliZjgwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKQEAgLTE3MTgsNiArMTcxOCwxMCBAQCBpbnRlbF9wYW5l bF9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsKQogCQljb250 YWluZXJfb2YocGFuZWwsIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IsIHBhbmVsKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYp OwogCisJaWYgKGNvbm5lY3Rvci0+YmFzZS5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05O RUNUT1JfRFNJICYmCisJCQlpbnRlbF9kc2lfY2FiY19pbml0X2JhY2tsaWdodF9mdW5jcyhjb25u ZWN0b3IpID09IDApCisJCXJldHVybjsKKwogCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewog CQlwYW5lbC0+YmFja2xpZ2h0LnNldHVwID0gYnh0X3NldHVwX2JhY2tsaWdodDsKIAkJcGFuZWwt PmJhY2tsaWdodC5lbmFibGUgPSBieHRfZW5hYmxlX2JhY2tsaWdodDsKLS0gCjEuOS4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK