From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3.1 04/20] drm/i915: Allow fuzzy matching in pipe_config_compare, v2. Date: Tue, 14 Jul 2015 12:17:40 +0200 Message-ID: <55A4E1C4.2080101@linux.intel.com> References: <1436797833-11493-1-git-send-email-maarten.lankhorst@linux.intel.com> <1436797833-11493-5-git-send-email-maarten.lankhorst@linux.intel.com> <20150714094938.GO3736@phenom.ffwll.local> 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 7ADDA6E9EF for ; Tue, 14 Jul 2015 03:17:49 -0700 (PDT) In-Reply-To: <20150714094938.GO3736@phenom.ffwll.local> 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 List-Id: intel-gfx@lists.freedesktop.org SW5zdGVhZCBvZiBkb2luZyBhZC1ob2MgY2hlY2tzIHdlIGFscmVhZHkgaGF2ZSBhIHdheSBvZiBj aGVja2luZwppZiB0aGUgc3RhdGUgaXMgY29tcGF0aWJsZSBvciBub3QuIFVzZSB0aGlzIHRvIGZv cmNlIGEgbW9kZXNldC4KCk9ubHkgZHVyaW5nIG1vZGVzZXRzLCBvciB3aXRoIFBJUEVfQ09ORklH X1FVSVJLX0lOSEVSSVRFRF9NT0RFCndlIHNob3VsZCBjaGVjayBpZiBhIGZ1bGwgbW9kZXNldCBp cyByZWFsbHkgbmVlZGVkLgoKRmFzdGJvb3Qgd2lsbCBhbGxvdyB0aGUgYWRqdXN0IHBhcmFtZXRl ciB0byBpZ25vcmUgc29tZSBzdHVmZgp0b28sIGFuZCBpdCB3aWxsIGZpeCB1cCBkaWZmZXJlbmNl cyBpbiBzdGF0ZSB0aGF0IGFyZSBpZ25vcmVkCmJ5IHRoZSBjb21wYXJlIGZ1bmN0aW9uLgoKQ2hh bmdlcyBzaW5jZSB2MToKLSBJbmNyZWFzZSB0aGUgdmFsdWUgb2YgdGhlIGxvd2VzdCBtL24gdG8g cHJldmVudCB0cnVuY2F0aW9uLgotIER1bXAgcGlwZSBjb25maWcgd2hlbiBmYXN0Ym9vdCdzIHVz ZWQsIHdpdGhvdXQgYSBtb2Rlc2V0LgotIEFkZCBhZGp1c3QgcGFyYW1ldGVyIHRvIGludGVsX2Nv bXBhcmVfbGlua19tX24sIHdoaWNoIGlzCiAgdXNlZCB0byBhZGp1c3QgbTJfbjIgaWYgaXQncyBh IG11bHRpcGxlIG9mIG1fbi4KLSBBZGQgZXhhY3QgcGFyYW1ldGVyIGludGVsX2NvbXBhcmVfbV9u LgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxp bnV4LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IERhbmllbCBTdG9uZSA8ZGFuaWVsc0Bjb2xsYWJv cmEuY29tPgotLS0KRml4ZWQgdGhlIGNvbW1pdCBtZXNzYWdlLgoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwppbmRleCAwZWIxY2M1NDg2NTYuLjEwOWQxYTVjNmM4NyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTIyOTIsMTkgKzEyMjkyLDYgQEAgZW5jb2Rl cl9yZXRyeToKIAlEUk1fREVCVUdfS01TKCJwbGFuZSBicHA6ICVpLCBwaXBlIGJwcDogJWksIGRp dGhlcmluZzogJWlcbiIsCiAJCSAgICAgIGJhc2VfYnBwLCBwaXBlX2NvbmZpZy0+cGlwZV9icHAs IHBpcGVfY29uZmlnLT5kaXRoZXIpOwogCi0JLyogQ2hlY2sgaWYgd2UgbmVlZCB0byBmb3JjZSBh IG1vZGVzZXQgKi8KLQlpZiAocGlwZV9jb25maWctPmhhc19hdWRpbyAhPQotCSAgICB0b19pbnRl bF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKS0+aGFzX2F1ZGlvKSB7Ci0JCXBpcGVfY29uZmlnLT5i YXNlLm1vZGVfY2hhbmdlZCA9IHRydWU7Ci0JCXJldCA9IGRybV9hdG9taWNfYWRkX2FmZmVjdGVk X3BsYW5lcyhzdGF0ZSwgY3J0Yyk7Ci0JfQotCi0JLyoKLQkgKiBOb3RlIHdlIGhhdmUgYW4gaXNz dWUgaGVyZSB3aXRoIGluZm9mcmFtZXM6IGN1cnJlbnQgY29kZQotCSAqIG9ubHkgdXBkYXRlcyB0 aGVtIG9uIHRoZSBmdWxsIG1vZGUgc2V0IHBhdGggcGVyIGh3Ci0JICogcmVxdWlyZW1lbnRzLiAg U28gaGVyZSB3ZSBzaG91bGQgYmUgY2hlY2tpbmcgZm9yIGFueQotCSAqIHJlcXVpcmVkIGNoYW5n ZXMgYW5kIGZvcmNpbmcgYSBtb2RlIHNldC4KLQkgKi8KIGZhaWw6CiAJcmV0dXJuIHJldDsKIH0K QEAgLTEyNDA4LDI3ICsxMjM5NSwxMzMgQEAgc3RhdGljIGJvb2wgaW50ZWxfZnV6enlfY2xvY2tf Y2hlY2soaW50IGNsb2NrMSwgaW50IGNsb2NrMikKIAkJCSAgICBiYXNlLmhlYWQpIFwKIAkJaWYg KG1hc2sgJiAoMSA8PChpbnRlbF9jcnRjKS0+cGlwZSkpCiAKKworc3RhdGljIGJvb2wKK2ludGVs X2NvbXBhcmVfbV9uKHVuc2lnbmVkIGludCBtLCB1bnNpZ25lZCBpbnQgbiwKKwkJICB1bnNpZ25l ZCBpbnQgbTIsIHVuc2lnbmVkIGludCBuMiwKKwkJICBib29sIGV4YWN0KQoreworCWlmIChtID09 IG0yICYmIG4gPT0gbjIpCisJCXJldHVybiB0cnVlOworCisJaWYgKGV4YWN0IHx8ICFtIHx8ICFu IHx8ICFtMiB8fCAhbjIpCisJCXJldHVybiBmYWxzZTsKKworCUJVSUxEX0JVR19PTihEQVRBX0xJ TktfTV9OX01BU0sgPiBJTlRfTUFYKTsKKworCWlmIChtID4gbTIpIHsKKwkJd2hpbGUgKG0gPiBt MikgeworCQkJbTIgPDw9IDE7CisJCQluMiA8PD0gMTsKKwkJfQorCX0gZWxzZSBpZiAobSA8IG0y KSB7CisJCXdoaWxlIChtIDwgbTIpIHsKKwkJCW0gPDw9IDE7CisJCQluIDw8PSAxOworCQl9CisJ fQorCisJcmV0dXJuIG0gPT0gbTIgJiYgbiA9PSBuMjsKK30KKworc3RhdGljIGJvb2wKK2ludGVs X2NvbXBhcmVfbGlua19tX24oY29uc3Qgc3RydWN0IGludGVsX2xpbmtfbV9uICptX24sCisJCSAg ICAgICBzdHJ1Y3QgaW50ZWxfbGlua19tX24gKm0yX24yLAorCQkgICAgICAgYm9vbCBhZGp1c3Qp Cit7CisJaWYgKG1fbi0+dHUgPT0gbTJfbjItPnR1ICYmCisJICAgIGludGVsX2NvbXBhcmVfbV9u KG1fbi0+Z21jaF9tLCBtX24tPmdtY2hfbiwKKwkJCSAgICAgIG0yX24yLT5nbWNoX20sIG0yX24y LT5nbWNoX24sICFhZGp1c3QpICYmCisJICAgIGludGVsX2NvbXBhcmVfbV9uKG1fbi0+bGlua19t LCBtX24tPmxpbmtfbiwKKwkJCSAgICAgIG0yX24yLT5saW5rX20sIG0yX24yLT5saW5rX24sICFh ZGp1c3QpKSB7CisJCWlmIChhZGp1c3QpCisJCQkqbTJfbjIgPSAqbV9uOworCisJCXJldHVybiB0 cnVlOworCX0KKworCXJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIGJvb2wKIGludGVsX3BpcGVf Y29uZmlnX2NvbXBhcmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmlnLAotCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcpCisJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZywKKwkJCSAgYm9vbCBhZGp1c3QpCiB7CisJYm9vbCByZXQgPSB0cnVlOworCisjZGVmaW5lIElO VEVMX0VSUl9PUl9EQkdfS01TKGZtdCwgLi4uKSBcCisJZG8geyBcCisJCWlmICghYWRqdXN0KSBc CisJCQlEUk1fRVJST1IoZm10LCAjI19fVkFfQVJHU19fKTsgXAorCQllbHNlIFwKKwkJCURSTV9E RUJVR19LTVMoZm10LCAjI19fVkFfQVJHU19fKTsgXAorCX0gd2hpbGUgKDApCisKICNkZWZpbmUg UElQRV9DT05GX0NIRUNLX1gobmFtZSkJXAogCWlmIChjdXJyZW50X2NvbmZpZy0+bmFtZSAhPSBw aXBlX2NvbmZpZy0+bmFtZSkgeyBcCi0JCURSTV9FUlJPUigibWlzbWF0Y2ggaW4gIiAjbmFtZSAi ICIgXAorCQlJTlRFTF9FUlJfT1JfREJHX0tNUygibWlzbWF0Y2ggaW4gIiAjbmFtZSAiICIgXAog CQkJICAiKGV4cGVjdGVkIDB4JTA4eCwgZm91bmQgMHglMDh4KVxuIiwgXAogCQkJICBjdXJyZW50 X2NvbmZpZy0+bmFtZSwgXAogCQkJICBwaXBlX2NvbmZpZy0+bmFtZSk7IFwKLQkJcmV0dXJuIGZh bHNlOyBcCisJCXJldCA9IGZhbHNlOyBcCiAJfQogCiAjZGVmaW5lIFBJUEVfQ09ORl9DSEVDS19J KG5hbWUpCVwKIAlpZiAoY3VycmVudF9jb25maWctPm5hbWUgIT0gcGlwZV9jb25maWctPm5hbWUp IHsgXAotCQlEUk1fRVJST1IoIm1pc21hdGNoIGluICIgI25hbWUgIiAiIFwKKwkJSU5URUxfRVJS X09SX0RCR19LTVMoIm1pc21hdGNoIGluICIgI25hbWUgIiAiIFwKIAkJCSAgIihleHBlY3RlZCAl aSwgZm91bmQgJWkpXG4iLCBcCiAJCQkgIGN1cnJlbnRfY29uZmlnLT5uYW1lLCBcCiAJCQkgIHBp cGVfY29uZmlnLT5uYW1lKTsgXAotCQlyZXR1cm4gZmFsc2U7IFwKKwkJcmV0ID0gZmFsc2U7IFwK Kwl9CisKKyNkZWZpbmUgUElQRV9DT05GX0NIRUNLX01fTihuYW1lKSBcCisJaWYgKCFpbnRlbF9j b21wYXJlX2xpbmtfbV9uKCZjdXJyZW50X2NvbmZpZy0+bmFtZSwgXAorCQkJCSAgICAmcGlwZV9j b25maWctPm5hbWUsXAorCQkJCSAgICBhZGp1c3QpKSB7IFwKKwkJSU5URUxfRVJSX09SX0RCR19L TVMoIm1pc21hdGNoIGluICIgI25hbWUgIiAiIFwKKwkJCSAgIihleHBlY3RlZCB0dSAlaSBnbWNo ICVpLyVpIGxpbmsgJWkvJWksICIgXAorCQkJICAiZm91bmQgdHUgJWksIGdtY2ggJWkvJWkgbGlu ayAlaS8laSlcbiIsIFwKKwkJCSAgY3VycmVudF9jb25maWctPm5hbWUudHUsIFwKKwkJCSAgY3Vy cmVudF9jb25maWctPm5hbWUuZ21jaF9tLCBcCisJCQkgIGN1cnJlbnRfY29uZmlnLT5uYW1lLmdt Y2hfbiwgXAorCQkJICBjdXJyZW50X2NvbmZpZy0+bmFtZS5saW5rX20sIFwKKwkJCSAgY3VycmVu dF9jb25maWctPm5hbWUubGlua19uLCBcCisJCQkgIHBpcGVfY29uZmlnLT5uYW1lLnR1LCBcCisJ CQkgIHBpcGVfY29uZmlnLT5uYW1lLmdtY2hfbSwgXAorCQkJICBwaXBlX2NvbmZpZy0+bmFtZS5n bWNoX24sIFwKKwkJCSAgcGlwZV9jb25maWctPm5hbWUubGlua19tLCBcCisJCQkgIHBpcGVfY29u ZmlnLT5uYW1lLmxpbmtfbik7IFwKKwkJcmV0ID0gZmFsc2U7IFwKKwl9CisKKyNkZWZpbmUgUElQ RV9DT05GX0NIRUNLX01fTl9BTFQobmFtZSwgYWx0X25hbWUpIFwKKwlpZiAoIWludGVsX2NvbXBh cmVfbGlua19tX24oJmN1cnJlbnRfY29uZmlnLT5uYW1lLCBcCisJCQkJICAgICZwaXBlX2NvbmZp Zy0+bmFtZSwgYWRqdXN0KSAmJiBcCisJICAgICFpbnRlbF9jb21wYXJlX2xpbmtfbV9uKCZjdXJy ZW50X2NvbmZpZy0+YWx0X25hbWUsIFwKKwkJCQkgICAgJnBpcGVfY29uZmlnLT5uYW1lLCBhZGp1 c3QpKSB7IFwKKwkJSU5URUxfRVJSX09SX0RCR19LTVMoIm1pc21hdGNoIGluICIgI25hbWUgIiAi IFwKKwkJCSAgIihleHBlY3RlZCB0dSAlaSBnbWNoICVpLyVpIGxpbmsgJWkvJWksICIgXAorCQkJ ICAib3IgdHUgJWkgZ21jaCAlaS8laSBsaW5rICVpLyVpLCAiIFwKKwkJCSAgImZvdW5kIHR1ICVp LCBnbWNoICVpLyVpIGxpbmsgJWkvJWkpXG4iLCBcCisJCQkgIGN1cnJlbnRfY29uZmlnLT5uYW1l LnR1LCBcCisJCQkgIGN1cnJlbnRfY29uZmlnLT5uYW1lLmdtY2hfbSwgXAorCQkJICBjdXJyZW50 X2NvbmZpZy0+bmFtZS5nbWNoX24sIFwKKwkJCSAgY3VycmVudF9jb25maWctPm5hbWUubGlua19t LCBcCisJCQkgIGN1cnJlbnRfY29uZmlnLT5uYW1lLmxpbmtfbiwgXAorCQkJICBjdXJyZW50X2Nv bmZpZy0+YWx0X25hbWUudHUsIFwKKwkJCSAgY3VycmVudF9jb25maWctPmFsdF9uYW1lLmdtY2hf bSwgXAorCQkJICBjdXJyZW50X2NvbmZpZy0+YWx0X25hbWUuZ21jaF9uLCBcCisJCQkgIGN1cnJl bnRfY29uZmlnLT5hbHRfbmFtZS5saW5rX20sIFwKKwkJCSAgY3VycmVudF9jb25maWctPmFsdF9u YW1lLmxpbmtfbiwgXAorCQkJICBwaXBlX2NvbmZpZy0+bmFtZS50dSwgXAorCQkJICBwaXBlX2Nv bmZpZy0+bmFtZS5nbWNoX20sIFwKKwkJCSAgcGlwZV9jb25maWctPm5hbWUuZ21jaF9uLCBcCisJ CQkgIHBpcGVfY29uZmlnLT5uYW1lLmxpbmtfbSwgXAorCQkJICBwaXBlX2NvbmZpZy0+bmFtZS5s aW5rX24pOyBcCisJCXJldCA9IGZhbHNlOyBcCiAJfQogCiAvKiBUaGlzIGlzIHJlcXVpcmVkIGZv ciBCRFcrIHdoZXJlIHRoZXJlIGlzIG9ubHkgb25lIHNldCBvZiByZWdpc3RlcnMgZm9yCkBAIC0x MjQzOSwzMCArMTI1MzIsMzAgQEAgaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogI2RlZmluZSBQSVBFX0NPTkZfQ0hFQ0tfSV9BTFQobmFtZSwgYWx0X25h bWUpIFwKIAlpZiAoKGN1cnJlbnRfY29uZmlnLT5uYW1lICE9IHBpcGVfY29uZmlnLT5uYW1lKSAm JiBcCiAJCShjdXJyZW50X2NvbmZpZy0+YWx0X25hbWUgIT0gcGlwZV9jb25maWctPm5hbWUpKSB7 IFwKLQkJCURSTV9FUlJPUigibWlzbWF0Y2ggaW4gIiAjbmFtZSAiICIgXAorCQkJSU5URUxfRVJS X09SX0RCR19LTVMoIm1pc21hdGNoIGluICIgI25hbWUgIiAiIFwKIAkJCQkgICIoZXhwZWN0ZWQg JWkgb3IgJWksIGZvdW5kICVpKVxuIiwgXAogCQkJCSAgY3VycmVudF9jb25maWctPm5hbWUsIFwK IAkJCQkgIGN1cnJlbnRfY29uZmlnLT5hbHRfbmFtZSwgXAogCQkJCSAgcGlwZV9jb25maWctPm5h bWUpOyBcCi0JCQlyZXR1cm4gZmFsc2U7IFwKKwkJCXJldCA9IGZhbHNlOyBcCiAJfQogCiAjZGVm aW5lIFBJUEVfQ09ORl9DSEVDS19GTEFHUyhuYW1lLCBtYXNrKQlcCiAJaWYgKChjdXJyZW50X2Nv bmZpZy0+bmFtZSBeIHBpcGVfY29uZmlnLT5uYW1lKSAmIChtYXNrKSkgeyBcCi0JCURSTV9FUlJP UigibWlzbWF0Y2ggaW4gIiAjbmFtZSAiKCIgI21hc2sgIikgIgkgICBcCisJCUlOVEVMX0VSUl9P Ul9EQkdfS01TKCJtaXNtYXRjaCBpbiAiICNuYW1lICIoIiAjbWFzayAiKSAiIFwKIAkJCSAgIihl eHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLCBcCiAJCQkgIGN1cnJlbnRfY29uZmlnLT5uYW1lICYg KG1hc2spLCBcCiAJCQkgIHBpcGVfY29uZmlnLT5uYW1lICYgKG1hc2spKTsgXAotCQlyZXR1cm4g ZmFsc2U7IFwKKwkJcmV0ID0gZmFsc2U7IFwKIAl9CiAKICNkZWZpbmUgUElQRV9DT05GX0NIRUNL X0NMT0NLX0ZVWlpZKG5hbWUpIFwKIAlpZiAoIWludGVsX2Z1enp5X2Nsb2NrX2NoZWNrKGN1cnJl bnRfY29uZmlnLT5uYW1lLCBwaXBlX2NvbmZpZy0+bmFtZSkpIHsgXAotCQlEUk1fRVJST1IoIm1p c21hdGNoIGluICIgI25hbWUgIiAiIFwKKwkJSU5URUxfRVJSX09SX0RCR19LTVMoIm1pc21hdGNo IGluICIgI25hbWUgIiAiIFwKIAkJCSAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLCBcCiAJ CQkgIGN1cnJlbnRfY29uZmlnLT5uYW1lLCBcCiAJCQkgIHBpcGVfY29uZmlnLT5uYW1lKTsgXAot CQlyZXR1cm4gZmFsc2U7IFwKKwkJcmV0ID0gZmFsc2U7IFwKIAl9CiAKICNkZWZpbmUgUElQRV9D T05GX1FVSVJLKHF1aXJrKQlcCkBAIC0xMjQ3MiwzNSArMTI1NjUsMTggQEAgaW50ZWxfcGlwZV9j b25maWdfY29tcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJUElQRV9DT05GX0NIRUNL X0koaGFzX3BjaF9lbmNvZGVyKTsKIAlQSVBFX0NPTkZfQ0hFQ0tfSShmZGlfbGFuZXMpOwotCVBJ UEVfQ09ORl9DSEVDS19JKGZkaV9tX24uZ21jaF9tKTsKLQlQSVBFX0NPTkZfQ0hFQ0tfSShmZGlf bV9uLmdtY2hfbik7Ci0JUElQRV9DT05GX0NIRUNLX0koZmRpX21fbi5saW5rX20pOwotCVBJUEVf Q09ORl9DSEVDS19JKGZkaV9tX24ubGlua19uKTsKLQlQSVBFX0NPTkZfQ0hFQ0tfSShmZGlfbV9u LnR1KTsKKwlQSVBFX0NPTkZfQ0hFQ0tfTV9OKGZkaV9tX24pOwogCiAJUElQRV9DT05GX0NIRUNL X0koaGFzX2RwX2VuY29kZXIpOwogCiAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgOCkgewot CQlQSVBFX0NPTkZfQ0hFQ0tfSShkcF9tX24uZ21jaF9tKTsKLQkJUElQRV9DT05GX0NIRUNLX0ko ZHBfbV9uLmdtY2hfbik7Ci0JCVBJUEVfQ09ORl9DSEVDS19JKGRwX21fbi5saW5rX20pOwotCQlQ SVBFX0NPTkZfQ0hFQ0tfSShkcF9tX24ubGlua19uKTsKLQkJUElQRV9DT05GX0NIRUNLX0koZHBf bV9uLnR1KTsKLQotCQlpZiAoY3VycmVudF9jb25maWctPmhhc19kcnJzKSB7Ci0JCQlQSVBFX0NP TkZfQ0hFQ0tfSShkcF9tMl9uMi5nbWNoX20pOwotCQkJUElQRV9DT05GX0NIRUNLX0koZHBfbTJf bjIuZ21jaF9uKTsKLQkJCVBJUEVfQ09ORl9DSEVDS19JKGRwX20yX24yLmxpbmtfbSk7Ci0JCQlQ SVBFX0NPTkZfQ0hFQ0tfSShkcF9tMl9uMi5saW5rX24pOwotCQkJUElQRV9DT05GX0NIRUNLX0ko ZHBfbTJfbjIudHUpOwotCQl9Ci0JfSBlbHNlIHsKLQkJUElQRV9DT05GX0NIRUNLX0lfQUxUKGRw X21fbi5nbWNoX20sIGRwX20yX24yLmdtY2hfbSk7Ci0JCVBJUEVfQ09ORl9DSEVDS19JX0FMVChk cF9tX24uZ21jaF9uLCBkcF9tMl9uMi5nbWNoX24pOwotCQlQSVBFX0NPTkZfQ0hFQ0tfSV9BTFQo ZHBfbV9uLmxpbmtfbSwgZHBfbTJfbjIubGlua19tKTsKLQkJUElQRV9DT05GX0NIRUNLX0lfQUxU KGRwX21fbi5saW5rX24sIGRwX20yX24yLmxpbmtfbik7Ci0JCVBJUEVfQ09ORl9DSEVDS19JX0FM VChkcF9tX24udHUsIGRwX20yX24yLnR1KTsKLQl9CisJCVBJUEVfQ09ORl9DSEVDS19NX04oZHBf bV9uKTsKKworCQlQSVBFX0NPTkZfQ0hFQ0tfSShoYXNfZHJycyk7CisJCWlmIChjdXJyZW50X2Nv bmZpZy0+aGFzX2RycnMpCisJCQlQSVBFX0NPTkZfQ0hFQ0tfTV9OKGRwX20yX24yKTsKKwl9IGVs c2UKKwkJUElQRV9DT05GX0NIRUNLX01fTl9BTFQoZHBfbV9uLCBkcF9tMl9uMik7CiAKIAlQSVBF X0NPTkZfQ0hFQ0tfSShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y19oZGlzcGxheSk7CiAJUElQRV9D T05GX0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsKTsKQEAgLTEyNTk2LDgg KzEyNjcyLDkgQEAgaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogI3VuZGVmIFBJUEVfQ09ORl9DSEVDS19GTEFHUwogI3VuZGVmIFBJUEVfQ09ORl9DSEVD S19DTE9DS19GVVpaWQogI3VuZGVmIFBJUEVfQ09ORl9RVUlSSworI3VuZGVmIElOVEVMX0VSUl9P Ul9EQkdfS01TCiAKLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgdm9p ZCBjaGVja193bV9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpAQCAtMTI3ODksOCArMTI4 NjYsMTEgQEAgY2hlY2tfY3J0Y19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkgICAg ICJ0cmFuc2l0aW9uYWwgYWN0aXZlIHN0YXRlIGRvZXMgbm90IG1hdGNoIGF0b21pYyBodyBzdGF0 ZSAiCiAJCSAgICAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLCBjcnRjLT5iYXNlLnN0YXRl LT5hY3RpdmUsIGNydGMtPmFjdGl2ZSk7CiAKLQkJaWYgKGFjdGl2ZSAmJgotCQkgICAgIWludGVs X3BpcGVfY29uZmlnX2NvbXBhcmUoZGV2LCBjcnRjLT5jb25maWcsICZwaXBlX2NvbmZpZykpIHsK KwkJaWYgKCFhY3RpdmUpCisJCQljb250aW51ZTsKKworCQlpZiAoIWludGVsX3BpcGVfY29uZmln X2NvbXBhcmUoZGV2LCBjcnRjLT5jb25maWcsCisJCQkJCSAgICAgICAmcGlwZV9jb25maWcsIGZh bHNlKSkgewogCQkJSTkxNV9TVEFURV9XQVJOKDEsICJwaXBlIHN0YXRlIGRvZXNuJ3QgbWF0Y2gh XG4iKTsKIAkJCWludGVsX2R1bXBfcGlwZV9jb25maWcoY3J0YywgJnBpcGVfY29uZmlnLAogCQkJ CQkgICAgICAgIltodyBzdGF0ZV0iKTsKQEAgLTEzMDkxLDE0ICsxMzE3MSwxNyBAQCBpbnRlbF9t b2Rlc2V0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJ cmV0dXJuIHJldDsKIAogCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNf c3RhdGUsIGkpIHsKKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0KKwkJ CXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7CisJCWJvb2wgbW9kZXNldCwgcmVjYWxj OworCiAJCWlmICghY3J0Y19zdGF0ZS0+ZW5hYmxlKSB7CiAJCQlpZiAobmVlZHNfbW9kZXNldChj cnRjX3N0YXRlKSkKIAkJCQlhbnlfbXMgPSB0cnVlOwogCQkJY29udGludWU7CiAJCX0KIAotCQlp ZiAodG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKS0+cXVpcmtzICYKLQkJICAgIFBJUEVf Q09ORklHX1FVSVJLX0lOSVRJQUxfUExBTkVTKSB7CisJCWlmIChwaXBlX2NvbmZpZy0+cXVpcmtz ICYgUElQRV9DT05GSUdfUVVJUktfSU5JVElBTF9QTEFORVMpIHsKIAkJCXJldCA9IGRybV9hdG9t aWNfYWRkX2FmZmVjdGVkX3BsYW5lcyhzdGF0ZSwgY3J0Yyk7CiAJCQlpZiAocmV0KQogCQkJCXJl dHVybiByZXQ7CkBAIC0xMzExMSwyMyArMTMxOTQsMzYgQEAgaW50ZWxfbW9kZXNldF9jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCQkgKi8KIAkJfQogCi0J CWlmICghbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSkgeworCQltb2Rlc2V0ID0gbmVlZHNfbW9k ZXNldChjcnRjX3N0YXRlKTsKKwkJcmVjYWxjID0gcGlwZV9jb25maWctPnF1aXJrcyAmIFBJUEVf Q09ORklHX1FVSVJLX0lOSEVSSVRFRF9NT0RFOworCisJCWlmICghbW9kZXNldCAmJiAhcmVjYWxj KQorCQkJY29udGludWU7CisKKwkJaWYgKHJlY2FsYykgewogCQkJcmV0ID0gZHJtX2F0b21pY19h ZGRfYWZmZWN0ZWRfY29ubmVjdG9ycyhzdGF0ZSwgY3J0Yyk7CiAJCQlpZiAocmV0KQogCQkJCXJl dHVybiByZXQ7CiAJCX0KIAotCQlyZXQgPSBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKGNydGMs Ci0JCQkJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSkpOworCQlyZXQgPSBpbnRlbF9t b2Rlc2V0X3BpcGVfY29uZmlnKGNydGMsIHBpcGVfY29uZmlnKTsKIAkJaWYgKHJldCkKIAkJCXJl dHVybiByZXQ7CiAKLQkJaWYgKG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCi0JCQlhbnlfbXMg PSB0cnVlOworCQlpZiAocmVjYWxjICYmICFpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKHN0YXRl LT5kZXYsCisJCQkJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLAorCQkJCQlwaXBl X2NvbmZpZywgdHJ1ZSkpIHsKKwkJCW1vZGVzZXQgPSBjcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQg PSB0cnVlOworCisJCQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9wbGFuZXMoc3RhdGUs IGNydGMpOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0OworCQl9CiAKKwkJYW55X21zID0g bW9kZXNldDsKIAkJaW50ZWxfZHVtcF9waXBlX2NvbmZpZyh0b19pbnRlbF9jcnRjKGNydGMpLAot CQkJCSAgICAgICB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpLAotCQkJCSAgICAgICAi W21vZGVzZXRdIik7CisJCQkJICAgICAgIHBpcGVfY29uZmlnLAorCQkJCSAgICAgICBtb2Rlc2V0 ID8gIlttb2Rlc2V0XSIgOiAiW2Zhc3Rib290XSIpOwogCX0KIAogCWlmIChhbnlfbXMpIHsKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==