From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak M Subject: [CABC PATCH v1 3/3][RFC] drm/i915: CABC support for backlight control Date: Mon, 6 Jul 2015 09:46:07 +0530 Message-ID: <1436156167-16127-4-git-send-email-m.deepak@intel.com> References: <1436156167-16127-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 00FAC6E310 for ; Sun, 5 Jul 2015 21:11:52 -0700 (PDT) In-Reply-To: <1436156167-16127-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 List-Id: intel-gfx@lists.freedesktop.org SW4gQ0FCQyAoQ29udGVudCBBZGFwdGl2ZSBCcmlnaHRuZXNzIENvbnRyb2wpIGNvbnRlbnQgZ3Jl eSBsZXZlbApzY2FsZSBjYW4gYmUgaW5jcmVhc2VkIHdoaWxlIHNpbXVsdGFuZW91c2x5IGRlY3Jl YXNpbmcKYnJpZ2h0bmVzcyBvZiB0aGUgYmFja2xpZ2h0IHRvIGFjaGlldmUgc2FtZSBwZXJjZWl2 ZWQgYnJpZ2h0bmVzcy4KClRoZSBDQUJDIGlzIG5vdCBzdGFuZGFyZGl6ZWQgYW5kIHBhbmVsIHZl bmRvcnMgYXJlIGZyZWUgdG8gZm9sbG93CnRoZWlyIGltcGxlbWVudGF0aW9uLiBUaGUgQ0FCQyBp bXBsZW1lbnRhaW9uIGhlcmUgYXNzdW1lcyB0aGF0IHRoZQpwYW5lbHMgdXNlIHN0YW5kYXJkIFNX IHJlZ2lzdGVyIGZvciBjb250cm9sLgoKSW4gdGhpcyBkZXNpZ24gdGhlcmUgd2lsbCBiZSBubyBQ V00gc2lnbmFsIGZyb20gdGhlIFNvQyBhbmQgRENTCmNvbW1hbmRzIGFyZSBzZW50IHRvIGVuYWJs ZSBhbmQgY29udHJvbCB0aGUgYmFja2xpZ2h0IGJyaWdodG5lc3MuCgpTaWduZWQtb2ZmLWJ5OiBE ZWVwYWsgTSA8bS5kZWVwYWtAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaS5oICAgfCAgIDEzICsrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwu YyB8ICAyMjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBpbmNsdWRlL3Zp ZGVvL21pcGlfZGlzcGxheS5oICAgICAgIHwgICAgOCArKwogMyBmaWxlcyBjaGFuZ2VkLCAyNDIg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2kuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oCmlu ZGV4IGMzOWUzOWQuLjFmMzNjYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oCkBAIC0zNCw2 ICszNCwxOSBAQAogI2RlZmluZSBEU0lfRFVBTF9MSU5LX0ZST05UX0JBQ0sJMQogI2RlZmluZSBE U0lfRFVBTF9MSU5LX1BJWEVMX0FMVAkJMgogCisjZGVmaW5lIENBQkNfT0ZGCQkJKDAgPDwgMCkK KyNkZWZpbmUgQ0FCQ19VU0VSX0lOVEVSRkFDRV9JTUFHRQkoMSA8PCAwKQorI2RlZmluZSBDQUJD X1NUSUxMX1BJQ1RVUkUJCSgyIDw8IDApCisjZGVmaW5lIENBQkNfVklERU9fTU9ERQkJCSgzIDw8 IDApCisKKyNkZWZpbmUgQ0FCQ19CQUNLTElHSFQJCQkoMSA8PCAyKQorI2RlZmluZSBDQUJDX0RJ TU1JTkdfRElTUExBWQkJKDEgPDwgMykKKyNkZWZpbmUgQ0FCQ19CQ1RSTAkJCSgxIDw8IDUpCisK KyNkZWZpbmUgQ0FCQ19QT1JUX0EJCQkweDAwCisjZGVmaW5lIENBQkNfUE9SVF9DCQkJMHgwMQor I2RlZmluZSBDQUJDX1BPUlRfQV9BTkRfQwkJMHgwMgorCiBzdHJ1Y3QgaW50ZWxfZHNpX2hvc3Q7 CiAKIHN0cnVjdCBpbnRlbF9kc2kgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcGFuZWwuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKaW5kZXgg NTVhYWQyMy4uN2FhMjExZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cGFuZWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCkBAIC0zMiw3 ICszMiwxMCBAQAogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgv bW9kdWxlcGFyYW0uaD4KKyNpbmNsdWRlIDx2aWRlby9taXBpX2Rpc3BsYXkuaD4KKyNpbmNsdWRl IDxkcm0vZHJtX21pcGlfZHNpLmg+CiAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAi aW50ZWxfZHNpLmgiCiAKIHZvaWQKIGludGVsX2ZpeGVkX3BhbmVsX21vZGUoY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGUsCkBAIC01MzYsNiArNTM5LDM3IEBAIHN0YXRp YyB1MzIgdmx2X2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQogCXJldHVybiBfdmx2X2dldF9iYWNrbGlnaHQoZGV2LCBwaXBlKTsKIH0KIAorc3RhdGljIHUz MiBjYWJjX2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQor eworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2OworCXN0cnVj dCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IE5VTEw7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0g TlVMTDsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7CisJc3RydWN0IG1p cGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsKKwl1OCBkYXRhWzJdID0gezB9OworCWVudW0gcG9y dCBwb3J0ID0gUE9SVF9BOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShjcnRjLCAmZGV2LT5tb2Rl X2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKKwkJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRl diwgY3J0YywgZW5jb2RlcikgeworCQkJaWYgKGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVU X0RTSSkKKwkJCQlpbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsK KwkJfQorCX0KKworCWlmIChpbnRlbF9kc2ktPmR1YWxfbGluaykgeworCQlpZiAoaW50ZWxfZHNp LT5kbF9jYWJjX3BvcnQgPT0gQ0FCQ19QT1JUX0EgfHwKKwkJCQlpbnRlbF9kc2ktPmRsX2NhYmNf cG9ydCA9PSBDQUJDX1BPUlRfQV9BTkRfQykKKwkJCXBvcnQgPSBQT1JUX0E7CisJCWVsc2UgaWYg KGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09IENBQkNfUE9SVF9DKQorCQkJcG9ydCA9IFBPUlRf QzsKKwl9CisKKwlkc2lfZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9zdHNbcG9ydF0tPmRldmlj ZTsKKwltaXBpX2RzaV9kY3NfcmVhZChkc2lfZGV2aWNlLCBNSVBJX0RDU19DQUJDX0xFVkVMX1JE LCBkYXRhLCAyKTsKKworCXJldHVybiBkYXRhWzFdOworfQorCiBzdGF0aWMgdTMyIGJ4dF9nZXRf YmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKQEAgLTYyNCw2ICs2NTgsNDcg QEAgc3RhdGljIHZvaWQgdmx2X3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yLCB1MzIgbGV2ZWwpCiAJSTkxNV9XUklURShWTFZfQkxDX1BXTV9DVEwocGlwZSks IHRtcCB8IGxldmVsKTsKIH0KIAorc3RhdGljIHZvaWQgY2FiY19zZXRfYmFja2xpZ2h0KHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIGxldmVsKQoreworCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2OworCXN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSA9IE5VTEw7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gTlVMTDsKKwlzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7CisJc3RydWN0IG1pcGlfZHNpX2RldmljZSAq ZHNpX2RldmljZTsKKwl1OCBkYXRhWzJdID0gezB9OworCWVudW0gcG9ydCBwb3J0ID0gUE9SVF9B OworCXU4IGNvdW50ID0gMTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY3J0YywgJmRldi0+bW9k ZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7CisJCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0Yyhk ZXYsIGNydGMsIGVuY29kZXIpIHsKKwkJCWlmIChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBV VF9EU0kpCisJCQkJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7 CisJCX0KKwl9CisKKwlpZiAoaW50ZWxfZHNpLT5kdWFsX2xpbmspIHsKKwkJaWYgKGludGVsX2Rz aS0+ZGxfY2FiY19wb3J0ID09IENBQkNfUE9SVF9BKQorCQkJcG9ydCA9IFBPUlRfQTsKKwkJZWxz ZSBpZiAoaW50ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0gQ0FCQ19QT1JUX0MpCisJCQlwb3J0ID0g UE9SVF9DOworCQllbHNlIGlmIChpbnRlbF9kc2ktPmRsX2NhYmNfcG9ydCA9PSBDQUJDX1BPUlRf QV9BTkRfQykKKwkJCXBvcnQgPSBQT1JUX0E7CisJfQorCisJaWYgKGludGVsX2RzaS0+ZHVhbF9s aW5rICYmIGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09CisJCQlDQUJDX1BPUlRfQV9BTkRfQykK KwkJY291bnQgPSAyOworCisJZG8geworCQlkc2lfZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lfaG9z dHNbcG9ydF0tPmRldmljZTsKKwkJZGF0YVsxXSA9IGxldmVsOworCQlkYXRhWzBdID0gTUlQSV9E Q1NfQ0FCQ19MRVZFTF9XUjsKKwkJbWlwaV9kc2lfZGNzX3dyaXRlX2J1ZmZlcihkc2lfZGV2aWNl LCBkYXRhLCAyKTsKKwkJaWYgKGNvdW50ID09IDIpCisJCQlwb3J0ID0gUE9SVF9DOworCX0gd2hp bGUgKC0tY291bnQgPiAwKTsKK30KKwogc3RhdGljIHZvaWQgYnh0X3NldF9iYWNrbGlnaHQoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCiB7CiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7CkBAIC03NTcsNiArODMyLDUyIEBA IHN0YXRpYyB2b2lkIHZsdl9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpCiAJSTkxNV9XUklURShWTFZfQkxDX1BXTV9DVEwyKHBpcGUpLCB0bXAgJiB+ QkxNX1BXTV9FTkFCTEUpOwogfQogCitzdGF0aWMgdm9pZCBjYWJjX2Rpc2FibGVfYmFja2xpZ2h0 KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2kgPSBOVUxMOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IE5VTEw7CisJc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIgPSBOVUxMOworCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9k ZXZpY2U7CisJZW51bSBwb3J0IHBvcnQgPSBQT1JUX0E7CisJdTggZGF0YVsyXSA9IHswfTsKKwl1 OCBjb3VudCA9IDE7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMsICZkZXYtPm1vZGVfY29u ZmlnLmNydGNfbGlzdCwgaGVhZCkgeworCQlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBj cnRjLCBlbmNvZGVyKSB7CisJCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFNJ KQorCQkJCWludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOworCQl9 CisJfQorCisJaWYgKGludGVsX2RzaS0+ZHVhbF9saW5rKSB7CisJCWlmIChpbnRlbF9kc2ktPmRs X2NhYmNfcG9ydCA9PSBDQUJDX1BPUlRfQSkKKwkJCXBvcnQgPSBQT1JUX0E7CisJCWVsc2UgaWYg KGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09IENBQkNfUE9SVF9DKQorCQkJcG9ydCA9IFBPUlRf QzsKKwkJZWxzZSBpZiAoaW50ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0gQ0FCQ19QT1JUX0FfQU5E X0MpCisJCQlwb3J0ID0gUE9SVF9BOworCX0KKworCWlmIChpbnRlbF9kc2ktPmR1YWxfbGluayAm JiBpbnRlbF9kc2ktPmRsX2NhYmNfcG9ydCA9PQorCQkJQ0FCQ19QT1JUX0FfQU5EX0MpCisJCWNv dW50ID0gMjsKKworCWRvIHsKKwkJZHNpX2RldmljZSA9IGludGVsX2RzaS0+ZHNpX2hvc3RzW3Bv cnRdLT5kZXZpY2U7CisKKwkJaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChjb25u ZWN0b3IsIDApOworCQlkYXRhWzFdID0gQ0FCQ19PRkY7CisJCWRhdGFbMF0gPSBNSVBJX0RDU19D QUJDX0NPTlRST0xfV1I7CisJCW1pcGlfZHNpX2Rjc193cml0ZV9idWZmZXIoZHNpX2RldmljZSwg ZGF0YSwgMik7CisJCWRhdGFbMF0gPSBNSVBJX0RDU19DQUJDX0NPTlRST0xfQlJJR0hUX1dSOwor CQltaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVyKGRzaV9kZXZpY2UsIGRhdGEsIDIpOworCisJCWlm IChjb3VudCA9PSAyKQorCQkJcG9ydCA9IFBPUlRfQzsKKwl9IHdoaWxlICgtLWNvdW50ID4gMCk7 Cit9CisKIHN0YXRpYyB2b2lkIGJ4dF9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rv ci0+YmFzZS5kZXY7CkBAIC0xMDQzLDYgKzExNjQsNTYgQEAgdm9pZCBpbnRlbF9wYW5lbF9lbmFi bGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAltdXRleF91 bmxvY2soJmRldl9wcml2LT5iYWNrbGlnaHRfbG9jayk7CiB9CiAKK3N0YXRpYyB2b2lkIGNhYmNf ZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7CisJc3RydWN0IGlu dGVsX2RzaSAqaW50ZWxfZHNpID0gTlVMTDsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBOVUxM OworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gTlVMTDsKKwlzdHJ1Y3QgaW50ZWxf cGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7CisJc3RydWN0IG1pcGlfZHNpX2Rldmlj ZSAqZHNpX2RldmljZTsKKwllbnVtIHBvcnQgcG9ydCA9IFBPUlRfQTsKKwl1OCBkYXRhWzJdID0g ezB9OworCXU4IGNvdW50ID0gMTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY3J0YywgJmRldi0+ bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7CisJCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0 YyhkZXYsIGNydGMsIGVuY29kZXIpIHsKKwkJCWlmIChlbmNvZGVyLT50eXBlID09IElOVEVMX09V VFBVVF9EU0kpCisJCQkJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFz ZSk7CisJCX0KKwl9CisKKwlpZiAoaW50ZWxfZHNpLT5kdWFsX2xpbmspIHsKKwkJaWYgKGludGVs X2RzaS0+ZGxfY2FiY19wb3J0ID09IENBQkNfUE9SVF9BKQorCQkJcG9ydCA9IFBPUlRfQTsKKwkJ ZWxzZSBpZiAoaW50ZWxfZHNpLT5kbF9jYWJjX3BvcnQgPT0gQ0FCQ19QT1JUX0MpCisJCQlwb3J0 ID0gUE9SVF9DOworCQllbHNlIGlmIChpbnRlbF9kc2ktPmRsX2NhYmNfcG9ydCA9PSBDQUJDX1BP UlRfQV9BTkRfQykKKwkJCXBvcnQgPSBQT1JUX0E7CisJfQorCisJaWYgKGludGVsX2RzaS0+ZHVh bF9saW5rICYmIGludGVsX2RzaS0+ZGxfY2FiY19wb3J0ID09CisJCQlDQUJDX1BPUlRfQV9BTkRf QykKKwkJY291bnQgPSAyOworCisJZG8geworCQlkc2lfZGV2aWNlID0gaW50ZWxfZHNpLT5kc2lf aG9zdHNbcG9ydF0tPmRldmljZTsKKworCisJCWRhdGFbMF0gPSBNSVBJX0RDU19DQUJDX0NPTlRS T0xfQlJJR0hUX1dSOworCQlkYXRhWzFdID0gQ0FCQ19CQUNLTElHSFQgfCBDQUJDX0RJTU1JTkdf RElTUExBWSB8IENBQkNfQkNUUkw7CisJCW1pcGlfZHNpX2Rjc193cml0ZV9idWZmZXIoZHNpX2Rl dmljZSwgZGF0YSwgMik7CisJCWRhdGFbMF0gPSBNSVBJX0RDU19DQUJDX0NPTlRST0xfV1I7CisJ CWRhdGFbMV0gPSBDQUJDX1ZJREVPX01PREU7CisJCW1pcGlfZHNpX2Rjc193cml0ZV9idWZmZXIo ZHNpX2RldmljZSwgZGF0YSwgMik7CisKKwkJaWYgKGNvdW50ID09IDIpCisJCQlwb3J0ID0gUE9S VF9DOworCX0gd2hpbGUgKC0tY291bnQgPiAwKTsKKworCWludGVsX3BhbmVsX2FjdHVhbGx5X3Nl dF9iYWNrbGlnaHQoY29ubmVjdG9yLCBwYW5lbC0+YmFja2xpZ2h0LmxldmVsKTsKK30KKwogI2lm IElTX0VOQUJMRUQoQ09ORklHX0JBQ0tMSUdIVF9DTEFTU19ERVZJQ0UpCiBzdGF0aWMgaW50IGlu dGVsX2JhY2tsaWdodF9kZXZpY2VfdXBkYXRlX3N0YXR1cyhzdHJ1Y3QgYmFja2xpZ2h0X2Rldmlj ZSAqYmQpCiB7CkBAIC0xMzYyLDYgKzE1MzMsMzMgQEAgc3RhdGljIGludCB2bHZfc2V0dXBfYmFj a2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlIHBpcGUK IAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBjYWJjX3NldHVwX2JhY2tsaWdodChzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJCWVudW0gcGlwZSB1bnVzZWQpCit7CisJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7CisJc3RydWN0IGlu dGVsX2RzaSAqaW50ZWxfZHNpID0gTlVMTDsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBOVUxM OworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gTlVMTDsKKwlzdHJ1Y3QgaW50ZWxf cGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7CisJc3RydWN0IG1pcGlfZHNpX2Rldmlj ZSAqZHNpX2RldmljZTsKKwl1OCBsZXZlbDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY3J0Yywg JmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7CisJCWZvcl9lYWNoX2VuY29kZXJf b25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpIHsKKwkJCWlmIChlbmNvZGVyLT50eXBlID09IElO VEVMX09VVFBVVF9EU0kpCisJCQkJaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rl ci0+YmFzZSk7CisJCX0KKwl9CisJZHNpX2RldmljZSA9IGludGVsX2RzaS0+ZHNpX2hvc3RzWzBd LT5kZXZpY2U7CisJcGFuZWwtPmJhY2tsaWdodC5tYXggPSAweEZGOworCXBhbmVsLT5iYWNrbGln aHQubGV2ZWwgPSAweEZGOworCisJbGV2ZWwgPSAyNTU7CisJcGFuZWwtPmJhY2tsaWdodC5lbmFi bGVkID0KKwkJKGxldmVsICYgMHgwMikgJiYgcGFuZWwtPmJhY2tsaWdodC5sZXZlbCAhPSAwOwor CXJldHVybiAwOworfQorCiBzdGF0aWMgaW50CiBieHRfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlIHVudXNlZCkKIHsKQEAgLTE0Mzgs MTEgKzE2MzYsMjkgQEAgdm9pZCBpbnRlbF9wYW5lbF9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7CiAKIAlpZiAoSVNfQlJPWFRPTihkZXYpKSB7Ci0JCWRldl9wcml2 LT5kaXNwbGF5LnNldHVwX2JhY2tsaWdodCA9IGJ4dF9zZXR1cF9iYWNrbGlnaHQ7Ci0JCWRldl9w cml2LT5kaXNwbGF5LmVuYWJsZV9iYWNrbGlnaHQgPSBieHRfZW5hYmxlX2JhY2tsaWdodDsKLQkJ ZGV2X3ByaXYtPmRpc3BsYXkuZGlzYWJsZV9iYWNrbGlnaHQgPSBieHRfZGlzYWJsZV9iYWNrbGln aHQ7Ci0JCWRldl9wcml2LT5kaXNwbGF5LnNldF9iYWNrbGlnaHQgPSBieHRfc2V0X2JhY2tsaWdo dDsKLQkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2JhY2tsaWdodCA9IGJ4dF9nZXRfYmFja2xpZ2h0 OworCQlpZiAoZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnLT5jYWJjX3N1cHBvcnRlZCkgeworCQkJ ZGV2X3ByaXYtPmRpc3BsYXkuc2V0dXBfYmFja2xpZ2h0ID0KKwkJCQkJY2FiY19zZXR1cF9iYWNr bGlnaHQ7CisJCQlkZXZfcHJpdi0+ZGlzcGxheS5lbmFibGVfYmFja2xpZ2h0ID0KKwkJCQkJY2Fi Y19lbmFibGVfYmFja2xpZ2h0OworCQkJZGV2X3ByaXYtPmRpc3BsYXkuZGlzYWJsZV9iYWNrbGln aHQgPQorCQkJCQljYWJjX2Rpc2FibGVfYmFja2xpZ2h0OworCQkJZGV2X3ByaXYtPmRpc3BsYXku c2V0X2JhY2tsaWdodCA9CisJCQkJCWNhYmNfc2V0X2JhY2tsaWdodDsKKwkJCWRldl9wcml2LT5k aXNwbGF5LmdldF9iYWNrbGlnaHQgPQorCQkJCQljYWJjX2dldF9iYWNrbGlnaHQ7CisJCX0gZWxz ZSB7CisJCQlkZXZfcHJpdi0+ZGlzcGxheS5zZXR1cF9iYWNrbGlnaHQgPQorCQkJCQlieHRfc2V0 dXBfYmFja2xpZ2h0OworCQkJZGV2X3ByaXYtPmRpc3BsYXkuZW5hYmxlX2JhY2tsaWdodCA9CisJ CQkJCWJ4dF9lbmFibGVfYmFja2xpZ2h0OworCQkJZGV2X3ByaXYtPmRpc3BsYXkuZGlzYWJsZV9i YWNrbGlnaHQgPQorCQkJCQlieHRfZGlzYWJsZV9iYWNrbGlnaHQ7CisJCQlkZXZfcHJpdi0+ZGlz cGxheS5zZXRfYmFja2xpZ2h0ID0KKwkJCQkJYnh0X3NldF9iYWNrbGlnaHQ7CisJCQlkZXZfcHJp di0+ZGlzcGxheS5nZXRfYmFja2xpZ2h0ID0KKwkJCQkJYnh0X2dldF9iYWNrbGlnaHQ7CisJCX0K IAl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXYpIHx8IElTX1NLWUxBS0UoZGV2KSkgewogCQlk ZXZfcHJpdi0+ZGlzcGxheS5zZXR1cF9iYWNrbGlnaHQgPSBiZHdfc2V0dXBfYmFja2xpZ2h0Owog CQlkZXZfcHJpdi0+ZGlzcGxheS5lbmFibGVfYmFja2xpZ2h0ID0gYmR3X2VuYWJsZV9iYWNrbGln aHQ7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZpZGVvL21pcGlfZGlzcGxheS5oIGIvaW5jbHVkZS92 aWRlby9taXBpX2Rpc3BsYXkuaAppbmRleCBkZGNjOGNhLi41YjhlZWVjIDEwMDY0NAotLS0gYS9p bmNsdWRlL3ZpZGVvL21pcGlfZGlzcGxheS5oCisrKyBiL2luY2x1ZGUvdmlkZW8vbWlwaV9kaXNw bGF5LmgKQEAgLTExNyw2ICsxMTcsMTQgQEAgZW51bSB7CiAJTUlQSV9EQ1NfR0VUX1NDQU5MSU5F CQk9IDB4NDUsCiAJTUlQSV9EQ1NfUkVBRF9EREJfU1RBUlQJCT0gMHhBMSwKIAlNSVBJX0RDU19S RUFEX0REQl9DT05USU5VRQk9IDB4QTgsCisJTUlQSV9EQ1NfQ0FCQ19MRVZFTF9SRCAgICAgICAg ICA9IDB4NTIsCisJTUlQSV9EQ1NfQ0FCQ19NSU5fQlJJR0hUTkVTU19SRCA9IDB4NUYsCisJTUlQ SV9EQ1NfQ0FCQ19DT05UUk9MX1JEICAgICAgICA9IDB4NTYsCisJTUlQSV9EQ1NfQ0FCQ19DT05U Uk9MX0JSSUdIVF9SRCA9IDB4NTQsCisJTUlQSV9EQ1NfQ0FCQ19MRVZFTF9XUiAgICAgICAgICA9 IDB4NTEsCisJTUlQSV9EQ1NfQ0FCQ19NSU5fQlJJR0hUTkVTU19XUiA9IDB4NUUsCisJTUlQSV9E Q1NfQ0FCQ19DT05UUk9MX1dSICAgICAgICA9IDB4NTUsCisJTUlQSV9EQ1NfQ0FCQ19DT05UUk9M X0JSSUdIVF9XUiA9IDB4NTMsCiB9OwogCiAvKiBNSVBJIERDUyBwaXhlbCBmb3JtYXRzICovCi0t IAoxLjcuOS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=