From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3 17/19] drm/i915: Make setting color key atomic. Date: Mon, 15 Jun 2015 12:33:54 +0200 Message-ID: <1434364436-6366-18-git-send-email-maarten.lankhorst@linux.intel.com> References: <1434364436-6366-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTP id F05666E739 for ; Mon, 15 Jun 2015 03:34:14 -0700 (PDT) In-Reply-To: <1434364436-6366-1-git-send-email-maarten.lankhorst@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 QnkgbWFraW5nIGNvbG9yIGtleSBhdG9taWMgdGhlcmUgYXJlIG5vIG1vcmUgdHJhbnNpdGlvbmFs IGhlbHBlcnMuClRoZSBwbGFuZSBjaGVjayBmdW5jdGlvbiB3aWxsIHJlamVjdCB0aGUgY29sb3Ig a2V5IHdoZW4gYSBzY2FsZXIgaXMKYWN0aXZlLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5r aG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYyB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgIHwgIDcgKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCAgICAgICAgICB8ICA2ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMgICAgICAgfCA4NSArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiA0IGZp bGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKaW5kZXggOTFkNTM3NjhkZjlkLi4xMGE4 ZWNlZGM5NDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19w bGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jCkBA IC01Niw2ICs1Niw3IEBAIGludGVsX2NyZWF0ZV9wbGFuZV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSkKIAogCXN0YXRlLT5iYXNlLnBsYW5lID0gcGxhbmU7CiAJc3RhdGUtPmJhc2Uucm90 YXRpb24gPSBCSVQoRFJNX1JPVEFURV8wKTsKKwlzdGF0ZS0+Y2tleS5mbGFncyA9IEk5MTVfU0VU X0NPTE9SS0VZX05PTkU7CiAKIAlyZXR1cm4gc3RhdGU7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKaW5kZXggNWZhY2QwNTAxYTM0Li43NDZjNzNkMmFiODQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTQ0MDEsOSArNDQwMSw5IEBAIHN0YXRpYyBpbnQg c2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCiAJCXJldHVybiByZXQ7CiAKIAkvKiBjaGVjayBjb2xvcmtleSAqLwotCWlmIChXQVJOX09O KGludGVsX3BsYW5lLT5ja2V5LmZsYWdzICE9IEk5MTVfU0VUX0NPTE9SS0VZX05PTkUpKSB7CisJ aWYgKHBsYW5lX3N0YXRlLT5ja2V5LmZsYWdzICE9IEk5MTVfU0VUX0NPTE9SS0VZX05PTkUpIHsK IAkJRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVkXSBzY2FsaW5nIHdpdGggY29sb3Iga2V5IG5vdCBh bGxvd2VkIiwKLQkJCWludGVsX3BsYW5lLT5iYXNlLmJhc2UuaWQpOworCQkJICAgICAgaW50ZWxf cGxhbmUtPmJhc2UuYmFzZS5pZCk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApAQCAtMTM3MzMs NyArMTM3MzMsNyBAQCBpbnRlbF9jaGVja19wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAogCiAJLyogdXNlIHNjYWxlciB3aGVuIGNvbG9ya2V5IGlzIG5vdCByZXF1aXJlZCAq LwogCWlmIChJTlRFTF9JTkZPKHBsYW5lLT5kZXYpLT5nZW4gPj0gOSAmJgotCSAgICB0b19pbnRl bF9wbGFuZShwbGFuZSktPmNrZXkuZmxhZ3MgPT0gSTkxNV9TRVRfQ09MT1JLRVlfTk9ORSkgewor CSAgICBzdGF0ZS0+Y2tleS5mbGFncyA9PSBJOTE1X1NFVF9DT0xPUktFWV9OT05FKSB7CiAJCW1p bl9zY2FsZSA9IDE7CiAJCW1heF9zY2FsZSA9IHNrbF9tYXhfc2NhbGUodG9faW50ZWxfY3J0Yyhj cnRjKSwgY3J0Y19zdGF0ZSk7CiAJCWNhbl9wb3NpdGlvbiA9IHRydWU7CkBAIC0xMzg4MSw3ICsx Mzg4MSw2IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX3BsYW5lICppbnRlbF9wcmltYXJ5X3BsYW5lX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXByaW1hcnktPmNoZWNrX3BsYW5lID0gaW50 ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZTsKIAlwcmltYXJ5LT5jb21taXRfcGxhbmUgPSBpbnRlbF9j b21taXRfcHJpbWFyeV9wbGFuZTsKIAlwcmltYXJ5LT5kaXNhYmxlX3BsYW5lID0gaW50ZWxfZGlz YWJsZV9wcmltYXJ5X3BsYW5lOwotCXByaW1hcnktPmNrZXkuZmxhZ3MgPSBJOTE1X1NFVF9DT0xP UktFWV9OT05FOwogCWlmIChIQVNfRkJDKGRldikgJiYgSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA0 KQogCQlwcmltYXJ5LT5wbGFuZSA9ICFwaXBlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmlu ZGV4IDkzYjk1NDJhYjhkYy4uM2EyYWM4MmIwOTcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aApAQCAtMjc0LDYgKzI3NCw4IEBAIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7CiAJICogICAg IHVwZGF0ZV9zY2FsZXJfcGxhbmUuCiAJICovCiAJaW50IHNjYWxlcl9pZDsKKworCXN0cnVjdCBk cm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5IGNrZXk7CiB9OwogCiBzdHJ1Y3QgaW50ZWxfaW5pdGlh bF9wbGFuZV9jb25maWcgewpAQCAtNTg4LDkgKzU5MCw2IEBAIHN0cnVjdCBpbnRlbF9wbGFuZSB7 CiAJYm9vbCBjYW5fc2NhbGU7CiAJaW50IG1heF9kb3duc2NhbGU7CiAKLQkvKiBGSVhNRSBjb252 ZXJ0IHRvIHByb3BlcnRpZXMgKi8KLQlzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSBj a2V5OwotCiAJLyogU2luY2Ugd2UgbmVlZCB0byBjaGFuZ2UgdGhlIHdhdGVybWFya3MgYmVmb3Jl L2FmdGVyCiAJICogZW5hYmxpbmcvZGlzYWJsaW5nIHRoZSBwbGFuZXMsIHdlIG5lZWQgdG8gc3Rv cmUgdGhlIHBhcmFtZXRlcnMgaGVyZQogCSAqIGFzIHRoZSBvdGhlciBwaWVjZXMgb2YgdGhlIHN0 cnVjdCBtYXkgbm90IHJlZmxlY3QgdGhlIHZhbHVlcyB3ZSB3YW50CkBAIC0xMzkwLDcgKzEzODks NiBAQCBib29sIGludGVsX3Nkdm9faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50MzJf dCBzZHZvX3JlZywgYm9vbCBpc19zZHZvYik7CiAKIC8qIGludGVsX3Nwcml0ZS5jICovCiBpbnQg aW50ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwg aW50IHBsYW5lKTsKLWludCBpbnRlbF9wbGFuZV9yZXN0b3JlKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lKTsKIGludCBpbnRlbF9zcHJpdGVfc2V0X2NvbG9ya2V5KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCiAJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CiBi b29sIGludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwppbmRleCAxNjhmOTBmMzQ2YzIuLjIxZDNmNzg4MmM0 ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKQEAgLTE4Miw3ICsxODIsOCBAQCBz a2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZSwgc3RydWN0IGRybV9j cnRjICpjcnRjLAogCWNvbnN0IGludCBwbGFuZSA9IGludGVsX3BsYW5lLT5wbGFuZSArIDE7CiAJ dTMyIHBsYW5lX2N0bCwgc3RyaWRlX2Rpdiwgc3RyaWRlOwogCWludCBwaXhlbF9zaXplID0gZHJt X2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7Ci0JY29uc3Qgc3RydWN0IGRy bV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZpbnRlbF9wbGFuZS0+Y2tleTsKKwljb25z dCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0KKwkJJnRvX2ludGVsX3Bs YW5lX3N0YXRlKGRybV9wbGFuZS0+c3RhdGUpLT5ja2V5OwogCXVuc2lnbmVkIGxvbmcgc3VyZl9h ZGRyOwogCXUzMiB0aWxlX2hlaWdodCwgcGxhbmVfb2Zmc2V0LCBwbGFuZV9zaXplOwogCXVuc2ln bmVkIGludCByb3RhdGlvbjsKQEAgLTM0NCw3ICszNDUsOCBAQCB2bHZfdXBkYXRlX3BsYW5lKHN0 cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXUzMiBzcHJj dGw7CiAJdW5zaWduZWQgbG9uZyBzcHJzdXJmX29mZnNldCwgbGluZWFyX29mZnNldDsKIAlpbnQg cGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwot CWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmaW50ZWxfcGxh bmUtPmNrZXk7CisJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9 CisJCSZ0b19pbnRlbF9wbGFuZV9zdGF0ZShkcGxhbmUtPnN0YXRlKS0+Y2tleTsKIAogCXNwcmN0 bCA9IFNQX0VOQUJMRTsKIApAQCAtNDg3LDcgKzQ4OSw4IEBAIGl2Yl91cGRhdGVfcGxhbmUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl1MzIgc3ByY3Rs LCBzcHJzY2FsZSA9IDA7CiAJdW5zaWduZWQgbG9uZyBzcHJzdXJmX29mZnNldCwgbGluZWFyX29m ZnNldDsKIAlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9m b3JtYXQsIDApOwotCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkg PSAmaW50ZWxfcGxhbmUtPmNrZXk7CisJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29s b3JrZXkgKmtleSA9CisJCSZ0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpLT5ja2V5 OwogCiAJc3ByY3RsID0gU1BSSVRFX0VOQUJMRTsKIApAQCAtNjI3LDcgKzYzMCw4IEBAIGlsa191 cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAl1bnNpZ25lZCBsb25nIGR2c3N1cmZfb2Zmc2V0LCBsaW5lYXJfb2Zmc2V0OwogCXUzMiBk dnNjbnRyLCBkdnNzY2FsZTsKIAlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3Bw KGZiLT5waXhlbF9mb3JtYXQsIDApOwotCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2Nv bG9ya2V5ICprZXkgPSAmaW50ZWxfcGxhbmUtPmNrZXk7CisJY29uc3Qgc3RydWN0IGRybV9pbnRl bF9zcHJpdGVfY29sb3JrZXkgKmtleSA9CisJCSZ0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+ c3RhdGUpLT5ja2V5OwogCiAJZHZzY250ciA9IERWU19FTkFCTEU7CiAKQEAgLTc3OCw3ICs3ODIs NyBAQCBpbnRlbF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJ Lyogc2V0dXAgY2FuX3NjYWxlLCBtaW5fc2NhbGUsIG1heF9zY2FsZSAqLwogCWlmIChJTlRFTF9J TkZPKGRldiktPmdlbiA+PSA5KSB7CiAJCS8qIHVzZSBzY2FsZXIgd2hlbiBjb2xvcmtleSBpcyBu b3QgcmVxdWlyZWQgKi8KLQkJaWYgKGludGVsX3BsYW5lLT5ja2V5LmZsYWdzID09IEk5MTVfU0VU X0NPTE9SS0VZX05PTkUpIHsKKwkJaWYgKHN0YXRlLT5ja2V5LmZsYWdzID09IEk5MTVfU0VUX0NP TE9SS0VZX05PTkUpIHsKIAkJCWNhbl9zY2FsZSA9IDE7CiAJCQltaW5fc2NhbGUgPSAxOwogCQkJ bWF4X3NjYWxlID0gc2tsX21heF9zY2FsZShpbnRlbF9jcnRjLCBjcnRjX3N0YXRlKTsKQEAgLTc5 OCw3ICs4MDIsNiBAQCBpbnRlbF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCiAJICogY29vcmRpbmF0ZXMgYW5kIHNpemVzLiBXZSBwcm9iYWJseSBuZWVkIHNvbWUg d2F5IHRvIGRlY2lkZSB3aGV0aGVyCiAJICogbW9yZSBzdHJpY3QgY2hlY2tpbmcgc2hvdWxkIGJl IGRvbmUgaW5zdGVhZC4KIAkgKi8KLQogCWRybV9yZWN0X3JvdGF0ZShzcmMsIGZiLT53aWR0aCA8 PCAxNiwgZmItPmhlaWdodCA8PCAxNiwKIAkJCXN0YXRlLT5iYXNlLnJvdGF0aW9uKTsKIApAQCAt ODA4LDcgKzgxMSw3IEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKIAl2c2NhbGUgPSBkcm1fcmVjdF9jYWxjX3ZzY2FsZV9yZWxheGVkKHNyYywgZHN0 LCBtaW5fc2NhbGUsIG1heF9zY2FsZSk7CiAJQlVHX09OKHZzY2FsZSA8IDApOwogCi0Jc3RhdGUt PnZpc2libGUgPSAgZHJtX3JlY3RfY2xpcF9zY2FsZWQoc3JjLCBkc3QsIGNsaXAsIGhzY2FsZSwg dnNjYWxlKTsKKwlzdGF0ZS0+dmlzaWJsZSA9IGRybV9yZWN0X2NsaXBfc2NhbGVkKHNyYywgZHN0 LCBjbGlwLCBoc2NhbGUsIHZzY2FsZSk7CiAKIAljcnRjX3ggPSBkc3QtPngxOwogCWNydGNfeSA9 IGRzdC0+eTE7CkBAIC05NTAsNyArOTUzLDkgQEAgaW50IGludGVsX3Nwcml0ZV9zZXRfY29sb3Jr ZXkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIHsKIAlzdHJ1Y3QgZHJtX2lu dGVsX3Nwcml0ZV9jb2xvcmtleSAqc2V0ID0gZGF0YTsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZTsKLQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lOworCXN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKnBsYW5lX3N0YXRlOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKKwlz dHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4OwogCWludCByZXQgPSAwOwogCiAJLyog TWFrZSBzdXJlIHdlIGRvbid0IHRyeSB0byBlbmFibGUgYm90aCBzcmMgJiBkZXN0IHNpbXVsdGFu ZW91c2x5ICovCkBAIC05NjEsNTAgKzk2Niw0MSBAQCBpbnQgaW50ZWxfc3ByaXRlX3NldF9jb2xv cmtleShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCSAgICBzZXQtPmZsYWdz ICYgSTkxNV9TRVRfQ09MT1JLRVlfREVTVElOQVRJT04pCiAJCXJldHVybiAtRUlOVkFMOwogCi0J ZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKLQogCXBsYW5lID0gZHJtX3BsYW5lX2ZpbmQoZGV2 LCBzZXQtPnBsYW5lX2lkKTsKLQlpZiAoIXBsYW5lIHx8IHBsYW5lLT50eXBlICE9IERSTV9QTEFO RV9UWVBFX09WRVJMQVkpIHsKLQkJcmV0ID0gLUVOT0VOVDsKLQkJZ290byBvdXRfdW5sb2NrOwot CX0KKwlpZiAoIXBsYW5lIHx8IHBsYW5lLT50eXBlICE9IERSTV9QTEFORV9UWVBFX09WRVJMQVkp CisJCXJldHVybiAtRU5PRU5UOwogCi0JaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFu ZSk7CisJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOwogCi0JaWYgKElOVEVMX0lO Rk8oZGV2KS0+Z2VuID49IDkpIHsKLQkJLyogcGxhbmUgc2NhbGluZyBhbmQgY29sb3JrZXkgYXJl IG11dHVhbGx5IGV4Y2x1c2l2ZSAqLwotCQlpZiAodG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUt PnN0YXRlKS0+c2NhbGVyX2lkID49IDApIHsKLQkJCURSTV9FUlJPUigiY29sb3JrZXkgbm90IGFs bG93ZWQgd2l0aCBzY2FsZXJcbiIpOwotCQkJcmV0ID0gLUVJTlZBTDsKLQkJCWdvdG8gb3V0X3Vu bG9jazsKLQkJfQorCXN0YXRlID0gZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhwbGFuZS0+ZGV2KTsK KwlpZiAoIXN0YXRlKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OwogCX0KKwlzdGF0 ZS0+YWNxdWlyZV9jdHggPSAmY3R4OworCisJd2hpbGUgKDEpIHsKKwkJcGxhbmVfc3RhdGUgPSBk cm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOworCQlyZXQgPSBQVFJfRVJS X09SX1pFUk8ocGxhbmVfc3RhdGUpOworCQlpZiAoIXJldCkgeworCQkJdG9faW50ZWxfcGxhbmVf c3RhdGUocGxhbmVfc3RhdGUpLT5ja2V5ID0gKnNldDsKKwkJCXJldCA9IGRybV9hdG9taWNfY29t bWl0KHN0YXRlKTsKKwkJfQogCi0JaW50ZWxfcGxhbmUtPmNrZXkgPSAqc2V0OwotCi0JLyoKLQkg KiBUaGUgb25seSB3YXkgdGhpcyBjb3VsZCBmYWlsIHdvdWxkIGJlIGR1ZSB0bwotCSAqIHRoZSBj dXJyZW50IHBsYW5lIHN0YXRlIGJlaW5nIHVuc3VwcG9ydGFibGUgYWxyZWFkeSwKLQkgKiBhbmQg d2UgZG9udCd0IGNvbnNpZGVyIHRoYXQgYW4gZXJyb3IgZm9yIHRoZQotCSAqIGNvbG9ya2V5IGlv Y3RsLiBTbyBqdXN0IGlnbm9yZSBhbnkgZXJyb3IuCi0JICovCi0JaW50ZWxfcGxhbmVfcmVzdG9y ZShwbGFuZSk7CisJCWlmIChyZXQgIT0gLUVERUFETEspCisJCQlicmVhazsKIAotb3V0X3VubG9j azoKLQlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7Ci0JcmV0dXJuIHJldDsKLX0KKwkJZHJt X2F0b21pY19zdGF0ZV9jbGVhcihzdGF0ZSk7CisJCWRybV9tb2Rlc2V0X2JhY2tvZmYoJmN0eCk7 CisJfQogCi1pbnQgaW50ZWxfcGxhbmVfcmVzdG9yZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkK LXsKLQlpZiAoIXBsYW5lLT5jcnRjIHx8ICFwbGFuZS0+c3RhdGUtPmZiKQotCQlyZXR1cm4gMDsK KwlpZiAocmV0KQorCQlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwogCi0JcmV0dXJuIGRy bV9wbGFuZV9oZWxwZXJfdXBkYXRlKHBsYW5lLCBwbGFuZS0+Y3J0YywgcGxhbmUtPnN0YXRlLT5m YiwKLQkJCQkgICAgICAgcGxhbmUtPnN0YXRlLT5jcnRjX3gsIHBsYW5lLT5zdGF0ZS0+Y3J0Y195 LAotCQkJCSAgICAgICBwbGFuZS0+c3RhdGUtPmNydGNfdywgcGxhbmUtPnN0YXRlLT5jcnRjX2gs Ci0JCQkJICAgICAgIHBsYW5lLT5zdGF0ZS0+c3JjX3gsIHBsYW5lLT5zdGF0ZS0+c3JjX3ksCi0J CQkJICAgICAgIHBsYW5lLT5zdGF0ZS0+c3JjX3csIHBsYW5lLT5zdGF0ZS0+c3JjX2gpOworb3V0 OgorCWRybV9tb2Rlc2V0X2Ryb3BfbG9ja3MoJmN0eCk7CisJZHJtX21vZGVzZXRfYWNxdWlyZV9m aW5pKCZjdHgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBjb25zdCB1aW50MzJfdCBpbGtf cGxhbmVfZm9ybWF0c1tdID0gewpAQCAtMTEzMyw3ICsxMTI5LDYgQEAgaW50ZWxfcGxhbmVfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKQogCWlu dGVsX3BsYW5lLT5wbGFuZSA9IHBsYW5lOwogCWludGVsX3BsYW5lLT5jaGVja19wbGFuZSA9IGlu dGVsX2NoZWNrX3Nwcml0ZV9wbGFuZTsKIAlpbnRlbF9wbGFuZS0+Y29tbWl0X3BsYW5lID0gaW50 ZWxfY29tbWl0X3Nwcml0ZV9wbGFuZTsKLQlpbnRlbF9wbGFuZS0+Y2tleS5mbGFncyA9IEk5MTVf U0VUX0NPTE9SS0VZX05PTkU7CiAJcG9zc2libGVfY3J0Y3MgPSAoMSA8PCBwaXBlKTsKIAlyZXQg PSBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoZGV2LCAmaW50ZWxfcGxhbmUtPmJhc2UsIHBvc3Np YmxlX2NydGNzLAogCQkJCSAgICAgICAmaW50ZWxfcGxhbmVfZnVuY3MsCi0tIAoyLjEuMAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK