From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH v2 07/16] drm/i915: Add vblank based delayed watermark update mechanism Date: Thu, 22 May 2014 17:48:12 +0300 Message-ID: <1400770101-14277-8-git-send-email-ville.syrjala@linux.intel.com> References: <1400770101-14277-1-git-send-email-ville.syrjala@linux.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 B93826EC34 for ; Thu, 22 May 2014 07:48:50 -0700 (PDT) In-Reply-To: <1400770101-14277-1-git-send-email-ville.syrjala@linux.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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFk ZCBhIG1lY2hhbmlzbSBieSB3aGljaCB5b3UgY2FuIHF1ZXVlIHVwIHdhdGVybWFyayB1cGRhdGUg dG8gaGFwcGVuCmFmdGVyIHRoZSB2YmxhbmsgY291bnRlciBoYXMgcmVhY2hlZCBhIGNlcnRhaW4g dmFsdWUuIFRoZSB2YmxhbmsKaW50ZXJydXB0IGhhbmRsZXIgd2lsbCBzY2hlZHVsZSBhIHdvcmsg d2hpY2ggd2lsbCBkbyB0aGUgYWN0dWFsCndhdGVybWFyayBwcm9ncmFtbWluZyBpbiBwcm9jZXNz IGNvbnRleHQuCgp2MjogUmViYXNlIGFuZCBzL2ludGVsX2NydGMvY3J0Yy8KClNpZ25lZC1vZmYt Ynk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgICAyICsKIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICB8ICAxMiArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCAgICAgfCAgMjcgKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAg IHwgMTQ0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5n ZWQsIDE4MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCmluZGV4IGEyMzAyYTcuLmM5MGQ1YWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAt MTU0MSw2ICsxNTQxLDggQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCQkgKiBzdGF0ZSBh cyB3ZWxsIGFzIHRoZSBhY3R1YWwgaGFyZHdhcmUgcmVnaXN0ZXJzCiAJCSAqLwogCQlzdHJ1Y3Qg bXV0ZXggbXV0ZXg7CisKKwkJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiAJfSB3bTsKIAogCXN0 cnVjdCBpOTE1X3J1bnRpbWVfcG0gcG07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCAzMDRm ODZhLi5jNjgwMDIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTIwNjcsOCArMjA2Nywx MCBAQCBzdGF0aWMgdm9pZCBpbGtfZGlzcGxheV9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB1MzIgZGVfaWlyKQogCQlEUk1fRVJST1IoIlBvaXNvbiBpbnRlcnJ1cHRcbiIpOwog CiAJZm9yX2VhY2hfcGlwZShwaXBlKSB7Ci0JCWlmIChkZV9paXIgJiBERV9QSVBFX1ZCTEFOSyhw aXBlKSkKKwkJaWYgKGRlX2lpciAmIERFX1BJUEVfVkJMQU5LKHBpcGUpKSB7CiAJCQlpbnRlbF9w aXBlX2hhbmRsZV92YmxhbmsoZGV2LCBwaXBlKTsKKwkJCWlsa191cGRhdGVfcGlwZV93bShkZXYs IHBpcGUpOworCQl9CiAKIAkJaWYgKGRlX2lpciAmIERFX1BJUEVfRklGT19VTkRFUlJVTihwaXBl KSkKIAkJCWlmIChpbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldiwgcGlw ZSwgZmFsc2UpKQpAQCAtMjExNyw4ICsyMTE5LDEwIEBAIHN0YXRpYyB2b2lkIGl2Yl9kaXNwbGF5 X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBkZV9paXIpCiAJCWludGVs X29wcmVnaW9uX2FzbGVfaW50cihkZXYpOwogCiAJZm9yX2VhY2hfcGlwZShwaXBlKSB7Ci0JCWlm IChkZV9paXIgJiAoREVfUElQRV9WQkxBTktfSVZCKHBpcGUpKSkKKwkJaWYgKGRlX2lpciAmIChE RV9QSVBFX1ZCTEFOS19JVkIocGlwZSkpKSB7CiAJCQlpbnRlbF9waXBlX2hhbmRsZV92Ymxhbmso ZGV2LCBwaXBlKTsKKwkJCWlsa191cGRhdGVfcGlwZV93bShkZXYsIHBpcGUpOworCQl9CiAKIAkJ LyogcGxhbmUvcGlwZXMgbWFwIDE6MSBvbiBpbGsrICovCiAJCWlmIChkZV9paXIgJiBERV9QTEFO RV9GTElQX0RPTkVfSVZCKHBpcGUpKSB7CkBAIC0yMjYwLDggKzIyNjQsMTAgQEAgc3RhdGljIGly cXJldHVybl90IGdlbjhfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCQkJY29udGlu dWU7CiAKIAkJcGlwZV9paXIgPSBJOTE1X1JFQUQoR0VOOF9ERV9QSVBFX0lJUihwaXBlKSk7Ci0J CWlmIChwaXBlX2lpciAmIEdFTjhfUElQRV9WQkxBTkspCisJCWlmIChwaXBlX2lpciAmIEdFTjhf UElQRV9WQkxBTkspIHsKIAkJCWludGVsX3BpcGVfaGFuZGxlX3ZibGFuayhkZXYsIHBpcGUpOwor CQkJaWxrX3VwZGF0ZV9waXBlX3dtKGRldiwgcGlwZSk7CisJCX0KIAogCQlpZiAocGlwZV9paXIg JiBHRU44X1BJUEVfUFJJTUFSWV9GTElQX0RPTkUpIHsKIAkJCWludGVsX3ByZXBhcmVfcGFnZV9m bGlwKGRldiwgcGlwZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggYTEx YmQ3OC4uNDA4YjIzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTA5 NjEsNiArMTA5NjEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgaW50IHBpcGUpCiAJCWludGVsX2NydGMtPnBsYW5lID0gIXBpcGU7CiAJfQog CisJc3Bpbl9sb2NrX2luaXQoJmludGVsX2NydGMtPndtLmxvY2spOwogCWluaXRfd2FpdHF1ZXVl X2hlYWQoJmludGVsX2NydGMtPnZibF93YWl0KTsKIAogCUJVR19PTihwaXBlID49IEFSUkFZX1NJ WkUoZGV2X3ByaXYtPnBsYW5lX3RvX2NydGNfbWFwcGluZykgfHwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKaW5kZXggZDc1Y2MyYi4uNzJmMDFiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK QEAgLTQwOSw2ICs0MDksMzIgQEAgc3RydWN0IGludGVsX2NydGMgewogCQkgKiBwcm90ZWN0ZWQg YnkgZGV2X3ByaXYtPndtLm11dGV4CiAJCSAqLwogCQlzdHJ1Y3QgaW50ZWxfcGlwZV93bSBhY3Rp dmU7CisJCS8qCisJCSAqIHdhdGVybWFya3MgcXVldWVkIGZvciBuZXh0IHZibGFuaworCQkgKiBw cm90ZWN0ZWQgYnkgZGV2X3ByaXYtPndtLm11dGV4CisJCSAqLworCQlzdHJ1Y3QgaW50ZWxfcGlw ZV93bSBwZW5kaW5nOworCisJCS8qCisJCSAqIHRoZSB2YmxhbmsgY291bnQgYWZ0ZXIgd2hpY2gg d2UgY2FuIHN3aXRjaCBvdmVyIHRvICdwZW5kaW5nJworCQkgKiBwcm90ZWN0ZWQgYnkgaW50ZWxf Y3J0Yy0+d20ubG9jaworCQkgKi8KKwkJdTMyIHBlbmRpbmdfdmJsX2NvdW50OworCQkvKgorCQkg KiBpbmRpY2F0ZXMgdGhhdCAncGVuZGluZycgY29udGFpbnMgY2hhbmdlZCB3YXRlcm1hcmtzCisJ CSAqIHByb3RlY3RlZCBieSBpbnRlbF9jcnRjLT53bS5sb2NrCisJCSAqLworCQlib29sIGRpcnR5 OworCQkvKgorCQkgKiB3YXRlcm1hcmsgdXBkYXRlIGhhcyBhIHZibGFuayByZWZlcmVuY2U/CisJ CSAqIHByb3RlY3RlZCBieSBpbnRlbF9jcnRjLT53bS5sb2NrCisJCSAqLworCQlib29sIHZibGFu azsKKworCQkvKgorCQkgKiBwcm90ZWN0cyBzb21lIGludGVsX2NydGMtPndtIHN0YXRlCisJCSAq LworCQlzcGlubG9ja190IGxvY2s7CiAJfSB3bTsKIAogCXdhaXRfcXVldWVfaGVhZF90IHZibF93 YWl0OwpAQCAtOTc0LDYgKzEwMDAsNyBAQCB2b2lkIGludGVsX3J1bnRpbWVfcG1fcHV0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGludGVsX2luaXRfcnVudGltZV9w bShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF9maW5pX3J1 bnRpbWVfcG0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaWxrX3dt X2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK3ZvaWQgaWxrX3VwZGF0ZV9w aXBlX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlKTsKIAogCiAvKiBp bnRlbF9zZHZvLmMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDJhNjM0MTguLjZmYzY0 MTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMjc1Miw2ICsyNzUyLDY1IEBAIHN0YXRp YyBib29sIGlsa19kaXNhYmxlX2xwX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJcmV0dXJu IGNoYW5nZWQ7CiB9CiAKK3N0YXRpYyBib29sIHZibF9jb3VudF9hZnRlcl9lcShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1MzIgYSwgdTMyIGIpCit7CisJdTMyIG1hc2sgPSBkZXYtPm1heF92Ymxh bmtfY291bnQ7CisKKwkvKiBqdXN0IHRoZSBtc2IgcGxlYXNlICovCisJbWFzayAmPSB+KG1hc2sg Pj4gMSk7CisKKwlyZXR1cm4gISgoYSAtIGIpICYgbWFzayk7Cit9CisKK3N0YXRpYyBib29sIGls a19wZW5kaW5nX3dhdGVybWFya3NfcmVhZHkoc3RydWN0IGludGVsX2NydGMgKmNydGMpCit7CisJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OworCXUzMiB2YmxfY291bnQ7 CisKKwlhc3NlcnRfc3Bpbl9sb2NrZWQoJmNydGMtPndtLmxvY2spOworCisJaWYgKCFjcnRjLT53 bS5kaXJ0eSkKKwkJcmV0dXJuIGZhbHNlOworCisJdmJsX2NvdW50ID0gZGV2LT5kcml2ZXItPmdl dF92YmxhbmtfY291bnRlcihkZXYsIGNydGMtPnBpcGUpOworCisJaWYgKCF2YmxfY291bnRfYWZ0 ZXJfZXEoZGV2LCB2YmxfY291bnQsIGNydGMtPndtLnBlbmRpbmdfdmJsX2NvdW50KSkKKwkJcmV0 dXJuIGZhbHNlOworCisJaWYgKGNydGMtPndtLnZibGFuaykgeworCQlkcm1fdmJsYW5rX3B1dChk ZXYsIGNydGMtPnBpcGUpOworCQljcnRjLT53bS52YmxhbmsgPSBmYWxzZTsKKwl9CisKKwlyZXR1 cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wgaWxrX3JlZnJlc2hfcGVuZGluZ193YXRlcm1hcmtz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisJ Ym9vbCBjaGFuZ2VkID0gZmFsc2U7CisKKwlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0Yykg eworCQlib29sIHJlYWR5OworCisJCXNwaW5fbG9ja19pcnEoJmNydGMtPndtLmxvY2spOworCisJ CXJlYWR5ID0gaWxrX3BlbmRpbmdfd2F0ZXJtYXJrc19yZWFkeShjcnRjKTsKKwkJaWYgKHJlYWR5 KQorCQkJY3J0Yy0+d20uZGlydHkgPSBmYWxzZTsKKworCQlzcGluX3VubG9ja19pcnEoJmNydGMt PndtLmxvY2spOworCisJCWlmICghcmVhZHkpCisJCQljb250aW51ZTsKKworCQljcnRjLT53bS5h Y3RpdmUgPSBjcnRjLT53bS5wZW5kaW5nOworCQljaGFuZ2VkID0gdHJ1ZTsKKwl9CisKKwlyZXR1 cm4gY2hhbmdlZDsKK30KKwogc3RhdGljIHZvaWQgaWxrX3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CkBAIC0yODEwLDYgKzI4NjksODcgQEAgc3RhdGljIHZvaWQg aWxrX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+d20ubXV0ZXgpOwogfQogCitzdGF0aWMgdm9pZCBpbGtfdXBkYXRlX3dhdGVybWFya3Mo c3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlib29sIGNoYW5nZWQ7CisKKwljaGFuZ2VkID0g aWxrX3JlZnJlc2hfcGVuZGluZ193YXRlcm1hcmtzKGRldik7CisKKwlpZiAoY2hhbmdlZCkKKwkJ aWxrX3Byb2dyYW1fd2F0ZXJtYXJrcyhkZXYpOworfQorCitzdGF0aWMgdm9pZCBpbGtfc2V0dXBf cGVuZGluZ193YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJCQkgY29uc3Qg c3RydWN0IGludGVsX3BpcGVfd20gKnBpcGVfd20sCisJCQkJCSB1MzIgdmJsX2NvdW50KQorewor CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKKwllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7CisKKwlXQVJOKCFjcnRjLT5hY3RpdmUsICJwaXBlICVjIHNob3VsZCBi ZSBlbmFibGVkXG4iLAorCSAgICAgcGlwZV9uYW1lKHBpcGUpKTsKKworCS8qIGRvIHRoZSB3YXRl cm1hcmtzIGFjdHVhbGx5IG5lZWQgY2hhbmdpbmc/ICovCisJaWYgKCFtZW1jbXAoJmNydGMtPndt LnBlbmRpbmcsIHBpcGVfd20sIHNpemVvZigqcGlwZV93bSkpKQorCQlyZXR1cm47CisKKwljcnRj LT53bS5wZW5kaW5nID0gKnBpcGVfd207CisKKwlzcGluX2xvY2tfaXJxKCZjcnRjLT53bS5sb2Nr KTsKKwljcnRjLT53bS5wZW5kaW5nX3ZibF9jb3VudCA9ICh2YmxfY291bnQgKyAxKSAmIGRldi0+ bWF4X3ZibGFua19jb3VudDsKKwljcnRjLT53bS5kaXJ0eSA9IHRydWU7CisJc3Bpbl91bmxvY2tf aXJxKCZjcnRjLT53bS5sb2NrKTsKKworCS8qIHRyeSB0byB1cGRhdGUgaW1tZWRpYXRlbHkgKi8K KwlpbGtfdXBkYXRlX3dhdGVybWFya3MoZGV2KTsKKworCXNwaW5fbG9ja19pcnEoJmNydGMtPndt LmxvY2spOworCisJLyogZGlkIHRoZSBpbW1lZGlhdGUgdXBkYXRlIHN1Y2NlZWQ/ICovCisJaWYg KCFjcnRjLT53bS5kaXJ0eSkKKwkJZ290byB1bmxvY2s7CisKKwkvKgorCSAqIFdlIG1pZ2h0IGFs cmVhZHkgaGF2ZSBhIHBlbmRpbmcgd2F0ZXJtYXJrIHVwZGF0ZSwgaW4KKwkgKiB3aGljaCBjYXNl IHdlIHNob3VsZG4ndCBncmFiIGFub3RoZXIgdmJsYW5rIHJlZmVyZW5jZS4KKwkgKi8KKwlpZiAo IWNydGMtPndtLnZibGFuayAmJiBkcm1fdmJsYW5rX2dldChkZXYsIHBpcGUpID09IDApCisJCWNy dGMtPndtLnZibGFuayA9IHRydWU7CisKKwlXQVJOKCFjcnRjLT53bS52YmxhbmssCisJICAgICAi dW5hYmxlIHRvIHNldCB1cCB3YXRlcm1hcmtzIGZvciBwaXBlICVjXG4iLCBwaXBlX25hbWUocGlw ZSkpOworCisgdW5sb2NrOgorCXNwaW5fdW5sb2NrX2lycSgmY3J0Yy0+d20ubG9jayk7Cit9CisK K3N0YXRpYyB2b2lkIGlsa193YXRlcm1hcmtfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmsp Cit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KKwkJY29udGFpbmVyX29m KHdvcmssIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLCB3bS53b3JrKTsKKworCW11dGV4X2xvY2so JmRldl9wcml2LT53bS5tdXRleCk7CisKKwlpbGtfdXBkYXRlX3dhdGVybWFya3MoZGV2X3ByaXYt PmRldik7CisKKwltdXRleF91bmxvY2soJmRldl9wcml2LT53bS5tdXRleCk7Cit9CisKKy8qIENh bGxlZCBmcm9tIHZibGFuayBpcnEgKi8KK3ZvaWQgaWxrX3VwZGF0ZV9waXBlX3dtKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPQorCQl0b19pbnRlbF9jcnRjKGRldl9wcml2LT5waXBlX3RvX2NydGNfbWFwcGluZ1twaXBl XSk7CisKKwlzcGluX2xvY2soJmNydGMtPndtLmxvY2spOworCisJaWYgKGlsa19wZW5kaW5nX3dh dGVybWFya3NfcmVhZHkoY3J0YykpCisJCXNjaGVkdWxlX3dvcmsoJmRldl9wcml2LT53bS53b3Jr KTsKKworCXNwaW5fdW5sb2NrKCZjcnRjLT53bS5sb2NrKTsKK30KKwogc3RhdGljIHZvaWQgaWxr X3VwZGF0ZV9zcHJpdGVfd20oc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJICAgICBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJICAgICB1aW50MzJfdCBzcHJpdGVfd2lkdGgsIGludCBw aXhlbF9zaXplLApAQCAtMjg3Miw2ICszMDEyLDkgQEAgc3RhdGljIHZvaWQgX2lsa19waXBlX3dt X2h3X3RvX3N3KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkJZm9yIChsZXZlbCA9IDA7IGxldmVs IDw9IG1heF9sZXZlbDsgbGV2ZWwrKykKIAkJCWFjdGl2ZS0+d21bbGV2ZWxdLmVuYWJsZSA9IHRy dWU7CiAJfQorCisJLyogbm8gdXBkYXRlIHBlbmRpbmcgKi8KKwlpbnRlbF9jcnRjLT53bS5wZW5k aW5nID0gaW50ZWxfY3J0Yy0+d20uYWN0aXZlOwogfQogCiB2b2lkIGlsa193bV9nZXRfaHdfc3Rh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKQEAgLTYzODUsNiArNjUyOCw3IEBAIHZvaWQgaW50 ZWxfaW5pdF9wbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAKIAltdXRleF9pbml0KCZkZXZfcHJp di0+d20ubXV0ZXgpOworCUlOSVRfV09SSygmZGV2X3ByaXYtPndtLndvcmssIGlsa193YXRlcm1h cmtfd29yayk7CiAKIAlpZiAoSEFTX0ZCQyhkZXYpKSB7CiAJCWlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA+PSA3KSB7Ci0tIAoxLjguNS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=