From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [RFC PATCH] drm/i915: Use universal planes for cursor on skylake. Date: Thu, 27 Aug 2015 12:08:30 +0200 Message-ID: <55DEE19E.9070702@mblankhorst.nl> 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 ESMTPS id A6E2D6E020 for ; Thu, 27 Aug 2015 03:08:33 -0700 (PDT) Received: from patser.lan (5ED48611.cm-7-5c.dynamic.ziggo.nl [94.212.134.17]) (using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: mlankhorst) by mblankhorst.nl (Postfix) with ESMTPSA id 569C2E0001 for ; Thu, 27 Aug 2015 12:08:32 +0200 (CEST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel Graphics Development List-Id: intel-gfx@lists.freedesktop.org VGhpcyBhcHBlYXJzIHRvIG1ha2UgYWxsIHRoZSBjdXJzb3IgdGVzdHMgcmVhbGx5IHNsb3cgYmVj YXVzZSBvZiB0aGUgbWFueSBjYWxscyB0byBza2xfdXBkYXRlX3dtCndoZW4gdGhlIGN1cnNvciBw bGFuZSB2aXNpYmlsaXR5IGlzIGNoYW5nZWQuIEl0IHBlcmZvcm1zIGRvZXMgMyB2YmxhbmtzIGVh Y2ggdGltZSBpdCdzIGNhbGxlZCwgYW5kCml0J3MgcHJvYmFibHkgY2FsbGVkIG1vcmUgdGhhbiBv bmNlIG9uIGVhY2ggdXBkYXRlLgoKU21hcnRlciB3YXRlcm1hcmsgdXBkYXRlcyB3aWxsIGhvcGVm dWxseSBmaXggdGhpcy4uCgpUaGlzIHBhdGNoIGlzIHRlc3RlZCB3aXRoIFhvcmcgYW5kIGttc19j dXJzb3JfY3JjLCBhbmQgaXMganVzdCBhIFJGQy4gOikKClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4g TGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Ci0tLQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKaW5kZXggMDU1MjM0OTFhZDZmLi5iZjVmODE0ZjcyYWUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaApAQCAtMjYzLDExICsyNjMsMTEgQEAgc3RydWN0IGk5MTVfaG90cGx1 ZyB7CiAJZm9yICgoX19wKSA9IDA7IChfX3ApIDwgSU5URUxfSU5GTyhfX2Rldl9wcml2KS0+bnVt X3BpcGVzOyAoX19wKSsrKQogI2RlZmluZSBmb3JfZWFjaF9wbGFuZShfX2Rldl9wcml2LCBfX3Bp cGUsIF9fcCkJCQkJXAogCWZvciAoKF9fcCkgPSAwOwkJCQkJCQlcCi0JICAgICAoX19wKSA8IElO VEVMX0lORk8oX19kZXZfcHJpdiktPm51bV9zcHJpdGVzWyhfX3BpcGUpXSArIDE7CVwKKwkgICAg IChfX3ApIDwgSU5URUxfSU5GTyhfX2Rldl9wcml2KS0+bnVtX3Nwcml0ZXNbKF9fcGlwZSldICsg MSArIElTX0dFTjkoX19kZXZfcHJpdik7CVwKIAkgICAgIChfX3ApKyspCiAjZGVmaW5lIGZvcl9l YWNoX3Nwcml0ZShfX2Rldl9wcml2LCBfX3AsIF9fcykJCQkJXAogCWZvciAoKF9fcykgPSAwOwkJ CQkJCQlcCi0JICAgICAoX19zKSA8IElOVEVMX0lORk8oX19kZXZfcHJpdiktPm51bV9zcHJpdGVz WyhfX3ApXTsJXAorCSAgICAgKF9fcykgPCBJTlRFTF9JTkZPKF9fZGV2X3ByaXYpLT5udW1fc3By aXRlc1soX19wKV0gKyBJU19HRU45KF9fZGV2X3ByaXYpOwlcCiAJICAgICAoX19zKSsrKQogCiAj ZGVmaW5lIGZvcl9lYWNoX2NydGMoZGV2LCBjcnRjKSBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKaW5kZXggOTJlM2YwNzRhZTMwLi4zMDdkMTM3NGRhYTUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTE0MDIsNyArMTQwMiw3IEBAIHN0YXRpYyB2b2lkIGFz c2VydF9zcHJpdGVzX2Rpc2FibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7CiAJCWZvcl9lYWNoX3Nwcml0ZShk ZXZfcHJpdiwgcGlwZSwgc3ByaXRlKSB7Ci0JCQl2YWwgPSBJOTE1X1JFQUQoUExBTkVfQ1RMKHBp cGUsIHNwcml0ZSkpOworCQkJdmFsID0gSTkxNV9SRUFEKFBMQU5FX0NUTChwaXBlLCBzcHJpdGUg KyAxKSk7CiAJCQlJOTE1X1NUQVRFX1dBUk4odmFsICYgUExBTkVfQ1RMX0VOQUJMRSwKIAkJCSAg ICAgInBsYW5lICVkIGFzc2VydGlvbiBmYWlsdXJlLCBzaG91bGQgYmUgb2ZmIG9uIHBpcGUgJWMg YnV0IGlzIHN0aWxsIGFjdGl2ZVxuIiwKIAkJCSAgICAgc3ByaXRlLCBwaXBlX25hbWUocGlwZSkp OwpAQCAtMTE1NjMsMTIgKzExNTYzLDE1IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2FsY19j aGFuZ2VzKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlib29sIG1vZGVfY2hh bmdlZCA9IG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSk7CiAJYm9vbCB3YXNfY3J0Y19lbmFibGVk ID0gY3J0Yy0+c3RhdGUtPmFjdGl2ZTsKIAlib29sIGlzX2NydGNfZW5hYmxlZCA9IGNydGNfc3Rh dGUtPmFjdGl2ZTsKLQorCWVudW0gZHJtX3BsYW5lX3R5cGUgcGxhbmVfdHlwZSA9IHBsYW5lLT50 eXBlOwogCWJvb2wgdHVybl9vZmYsIHR1cm5fb24sIHZpc2libGUsIHdhc192aXNpYmxlOwogCXN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmZiOwogCisJaWYgKElTX0dF TjkoZGV2KSAmJiBwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpCisJCXBsYW5l X3R5cGUgPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZOworCiAJaWYgKGNydGNfc3RhdGUgJiYgSU5U RUxfSU5GTyhkZXYpLT5nZW4gPj0gOSAmJgotCSAgICBwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVf VFlQRV9DVVJTT1IpIHsKKwkgICAgcGxhbmVfdHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1Ip IHsKIAkJcmV0ID0gc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUoCiAJCQl0b19pbnRlbF9jcnRjX3N0 YXRlKGNydGNfc3RhdGUpLAogCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpKTsK QEAgLTExNjAxLDcgKzExNjA0LDcgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5n ZXMoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWlmICh0dXJuX29uKSB7CiAJ CWludGVsX2NydGMtPmF0b21pYy51cGRhdGVfd21fcHJlID0gdHJ1ZTsKIAkJLyogbXVzdCBkaXNh YmxlIGN4c3IgYXJvdW5kIHBsYW5lIGVuYWJsZS9kaXNhYmxlICovCi0JCWlmIChwbGFuZS0+dHlw ZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpIHsKKwkJaWYgKHBsYW5lX3R5cGUgIT0gRFJNX1BM QU5FX1RZUEVfQ1VSU09SKSB7CiAJCQlpbnRlbF9jcnRjLT5hdG9taWMuZGlzYWJsZV9jeHNyID0g dHJ1ZTsKIAkJCS8qIHRvIHBvdGVudGlhbGx5IHJlLWVuYWJsZSBjeHNyICovCiAJCQlpbnRlbF9j cnRjLT5hdG9taWMud2FpdF92YmxhbmsgPSB0cnVlOwpAQCAtMTE2MTAsNyArMTE2MTMsNyBAQCBp bnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJfSBlbHNlIGlmICh0dXJuX29mZikgewogCQlpbnRlbF9jcnRjLT5hdG9t aWMudXBkYXRlX3dtX3Bvc3QgPSB0cnVlOwogCQkvKiBtdXN0IGRpc2FibGUgY3hzciBhcm91bmQg cGxhbmUgZW5hYmxlL2Rpc2FibGUgKi8KLQkJaWYgKHBsYW5lLT50eXBlICE9IERSTV9QTEFORV9U WVBFX0NVUlNPUikgeworCQlpZiAocGxhbmVfdHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1Ip IHsKIAkJCWlmIChpc19jcnRjX2VuYWJsZWQpCiAJCQkJaW50ZWxfY3J0Yy0+YXRvbWljLndhaXRf dmJsYW5rID0gdHJ1ZTsKIAkJCWludGVsX2NydGMtPmF0b21pYy5kaXNhYmxlX2N4c3IgPSB0cnVl OwpAQCAtMTE2MjMsNyArMTE2MjYsNyBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hh bmdlcyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCWludGVsX2NydGMtPmF0 b21pYy5mYl9iaXRzIHw9CiAJCQl0b19pbnRlbF9wbGFuZShwbGFuZSktPmZyb250YnVmZmVyX2Jp dDsKIAotCXN3aXRjaCAocGxhbmUtPnR5cGUpIHsKKwlzd2l0Y2ggKHBsYW5lX3R5cGUpIHsKIAlj YXNlIERSTV9QTEFORV9UWVBFX1BSSU1BUlk6CiAJCWludGVsX2NydGMtPmF0b21pYy53YWl0X2Zv cl9mbGlwcyA9IHRydWU7CiAJCWludGVsX2NydGMtPmF0b21pYy5wcmVfZGlzYWJsZV9wcmltYXJ5 ID0gdHVybl9vZmY7CkBAIC0xMzc3MCw3ICsxMzc3Myw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Ny dGNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGlwZSkKIAlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9IE5VTEw7CiAJc3RydWN0IGRybV9wbGFuZSAqcHJpbWFy eSA9IE5VTEw7CiAJc3RydWN0IGRybV9wbGFuZSAqY3Vyc29yID0gTlVMTDsKLQlpbnQgaSwgcmV0 OworCWludCBpLCByZXQsIHNwcml0ZTsKIAogCWludGVsX2NydGMgPSBremFsbG9jKHNpemVvZigq aW50ZWxfY3J0YyksIEdGUF9LRVJORUwpOwogCWlmIChpbnRlbF9jcnRjID09IE5VTEwpCkBAIC0x Mzc5Nyw5ICsxMzgwMCwzMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCiAJaWYgKCFwcmltYXJ5KQogCQlnb3RvIGZhaWw7CiAK LQljdXJzb3IgPSBpbnRlbF9jdXJzb3JfcGxhbmVfY3JlYXRlKGRldiwgcGlwZSk7Ci0JaWYgKCFj dXJzb3IpCi0JCWdvdG8gZmFpbDsKKwlpZiAoIUlTX0dFTjkoZGV2KSkgeworCQljdXJzb3IgPSBp bnRlbF9jdXJzb3JfcGxhbmVfY3JlYXRlKGRldiwgcGlwZSk7CisJCWlmICghY3Vyc29yKQorCQkJ Z290byBmYWlsOworCX0KKworCWZvcl9lYWNoX3Nwcml0ZShkZXZfcHJpdiwgcGlwZSwgc3ByaXRl KSB7CisJCWVudW0gZHJtX3BsYW5lX3R5cGUgcGxhbmVfdHlwZTsKKwkJc3RydWN0IGRybV9wbGFu ZSAqcGxhbmU7CisKKwkJaWYgKHNwcml0ZSA8IElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fc3By aXRlc1twaXBlXSkKKwkJCXBsYW5lX3R5cGUgPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZOworCQll bHNlCisJCQlwbGFuZV90eXBlID0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SOworCisJCXBsYW5lID0g aW50ZWxfcGxhbmVfaW5pdChkZXYsIHBpcGUsIHNwcml0ZSwgcGxhbmVfdHlwZSk7CisJCWlmIChJ U19FUlIocGxhbmUpKSB7CisJCQlEUk1fREVCVUdfS01TKCJwaXBlICVjIHNwcml0ZSAlYyBpbml0 IGZhaWxlZDogJWxkXG4iLAorCQkJCSAgICAgIHBpcGVfbmFtZShwaXBlKSwgc3ByaXRlX25hbWUo cGlwZSwgc3ByaXRlKSwgUFRSX0VSUihwbGFuZSkpOworCQkJZ290byBmYWlsOworCQl9CisKKwkJ aWYgKHBsYW5lX3R5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKQorCQkJY3Vyc29yID0gcGxh bmU7CisJfQogCiAJcmV0ID0gZHJtX2NydGNfaW5pdF93aXRoX3BsYW5lcyhkZXYsICZpbnRlbF9j cnRjLT5iYXNlLCBwcmltYXJ5LAogCQkJCQljdXJzb3IsICZpbnRlbF9jcnRjX2Z1bmNzKTsKQEAg LTE0NzI0LDcgKzE0NzQ5LDYgQEAgdm9pZCBpbnRlbF9tb2Rlc2V0X2luaXRfaHcoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIHZvaWQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKLQlpbnQgc3ByaXRlLCByZXQ7CiAJZW51bSBwaXBlIHBpcGU7CiAJc3RydWN0IGlu dGVsX2NydGMgKmNydGM7CiAKQEAgLTE0Nzc4LDE1ICsxNDgwMiw4IEBAIHZvaWQgaW50ZWxfbW9k ZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCSAgICAgIElOVEVMX0lORk8oZGV2 KS0+bnVtX3BpcGVzLAogCQkgICAgICBJTlRFTF9JTkZPKGRldiktPm51bV9waXBlcyA+IDEgPyAi cyIgOiAiIik7CiAKLQlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBwaXBlKSB7CisJZm9yX2VhY2hf cGlwZShkZXZfcHJpdiwgcGlwZSkKIAkJaW50ZWxfY3J0Y19pbml0KGRldiwgcGlwZSk7Ci0JCWZv cl9lYWNoX3Nwcml0ZShkZXZfcHJpdiwgcGlwZSwgc3ByaXRlKSB7Ci0JCQlyZXQgPSBpbnRlbF9w bGFuZV9pbml0KGRldiwgcGlwZSwgc3ByaXRlKTsKLQkJCWlmIChyZXQpCi0JCQkJRFJNX0RFQlVH X0tNUygicGlwZSAlYyBzcHJpdGUgJWMgaW5pdCBmYWlsZWQ6ICVkXG4iLAotCQkJCQkgICAgICBw aXBlX25hbWUocGlwZSksIHNwcml0ZV9uYW1lKHBpcGUsIHNwcml0ZSksIHJldCk7Ci0JCX0KLQl9 CiAKIAlpbnRlbF9pbml0X2RwaW8oZGV2KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRl eCAzOTA4MDU5ZmM0MmYuLmRmM2JjYTZlNDAzMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK QEAgLTg5MCwxMSArODkwLDEyIEBAIGhkbWlfdG9fZGlnX3BvcnQoc3RydWN0IGludGVsX2hkbWkg KmludGVsX2hkbWkpCiAKIC8qCiAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgcGxhbmVzIGZvciB0 aGlzIHBpcGUsIGllIHRoZSBudW1iZXIgb2Ygc3ByaXRlcyArIDEKLSAqIChwcmltYXJ5IHBsYW5l KS4gVGhpcyBkb2Vzbid0IGNvdW50IHRoZSBjdXJzb3IgcGxhbmUgdGhlbi4KKyAqIChwcmltYXJ5 IHBsYW5lKS4gVGhpcyBkb2Vzbid0IGNvdW50IHRoZSBjdXJzb3IgcGxhbmUgZXhjZXB0IG9uIEdF TjksCisgKiB3aGljaCBoYXMgYSB1bml2ZXJzYWwgcGxhbmUgbWFza2VkIGFzIGN1cnNvciBwbGFu ZS4KICAqLwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgaW50ZWxfbnVtX3BsYW5lcyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YykKIHsKLQlyZXR1cm4gSU5URUxfSU5GTyhjcnRjLT5iYXNlLmRl diktPm51bV9zcHJpdGVzW2NydGMtPnBpcGVdICsgMTsKKwlyZXR1cm4gSU5URUxfSU5GTyhjcnRj LT5iYXNlLmRldiktPm51bV9zcHJpdGVzW2NydGMtPnBpcGVdICsgMSArIElTX0dFTjkoY3J0Yy0+ YmFzZS5kZXYpOwogfQogCiAvKiBpbnRlbF9maWZvX3VuZGVycnVuLmMgKi8KQEAgLTEzODgsNyAr MTM4OSw4IEBAIGJvb2wgaW50ZWxfc2R2b19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVp bnQzMl90IHNkdm9fcmVnLCBib29sIGlzX3Nkdm9iKTsKIAogCiAvKiBpbnRlbF9zcHJpdGUuYyAq LwotaW50IGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBl IHBpcGUsIGludCBwbGFuZSk7CitzdHJ1Y3QgZHJtX3BsYW5lICppbnRlbF9wbGFuZV9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLAorCQkJCSAgIGludCBwbGFuZSwg ZW51bSBkcm1fcGxhbmVfdHlwZSBwbGFuZV90eXBlKTsKIGludCBpbnRlbF9zcHJpdGVfc2V0X2Nv bG9ya2V5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkgICAgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CiB2b2lkIGludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggZmZmMGMy MjY4MmVlLi5iNmVhMzQ1ZTJmMWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMjk3MCw3 ICsyOTcwLDcgQEAgc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJ ZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwogCXN0cnVjdCBza2xfZGRiX2VudHJ5 ICphbGxvYyA9ICZkZGItPnBpcGVbcGlwZV07Ci0JdWludDE2X3QgYWxsb2Nfc2l6ZSwgc3RhcnQs IGN1cnNvcl9ibG9ja3M7CisJdWludDE2X3QgYWxsb2Nfc2l6ZSwgc3RhcnQ7CiAJdWludDE2X3Qg bWluaW11bVtJOTE1X01BWF9QTEFORVNdOwogCXVpbnQxNl90IHlfbWluaW11bVtJOTE1X01BWF9Q TEFORVNdOwogCXVuc2lnbmVkIGludCB0b3RhbF9kYXRhX3JhdGU7CkBAIC0yOTg0LDEyICsyOTg0 LDE2IEBAIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCXJl dHVybjsKIAl9CiAKLQljdXJzb3JfYmxvY2tzID0gc2tsX2N1cnNvcl9hbGxvY2F0aW9uKGNvbmZp Zyk7Ci0JZGRiLT5jdXJzb3JbcGlwZV0uc3RhcnQgPSBhbGxvYy0+ZW5kIC0gY3Vyc29yX2Jsb2Nr czsKLQlkZGItPmN1cnNvcltwaXBlXS5lbmQgPSBhbGxvYy0+ZW5kOworCWlmICghSVNfR0VOOShk ZXYpKSB7CisJCXVpbnQxNl90IGN1cnNvcl9ibG9ja3M7CiAKLQlhbGxvY19zaXplIC09IGN1cnNv cl9ibG9ja3M7Ci0JYWxsb2MtPmVuZCAtPSBjdXJzb3JfYmxvY2tzOworCQljdXJzb3JfYmxvY2tz ID0gc2tsX2N1cnNvcl9hbGxvY2F0aW9uKGNvbmZpZyk7CisJCWRkYi0+Y3Vyc29yW3BpcGVdLnN0 YXJ0ID0gYWxsb2MtPmVuZCAtIGN1cnNvcl9ibG9ja3M7CisJCWRkYi0+Y3Vyc29yW3BpcGVdLmVu ZCA9IGFsbG9jLT5lbmQ7CisKKwkJYWxsb2Nfc2l6ZSAtPSBjdXJzb3JfYmxvY2tzOworCQlhbGxv Yy0+ZW5kIC09IGN1cnNvcl9ibG9ja3M7CisJfQogCiAJLyogMS4gQWxsb2NhdGUgdGhlIG1pbmlu dW0gcmVxdWlyZWQgYmxvY2tzIGZvciBlYWNoIGFjdGl2ZSBwbGFuZSAqLwogCWZvcl9lYWNoX3Bs YW5lKGRldl9wcml2LCBwaXBlLCBwbGFuZSkgewpAQCAtMzE4Niw3ICszMTkwLDcgQEAgc3RhdGlj IHZvaWQgc2tsX2NvbXB1dGVfd21fcGlwZV9wYXJhbWV0ZXJzKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAogCQlmYiA9IGNydGMtPmN1cnNvci0+c3RhdGUtPmZiOwogCQlwLT5jdXJzb3IueV9ieXRl c19wZXJfcGl4ZWwgPSAwOwotCQlpZiAoZmIpIHsKKwkJaWYgKCFJU19HRU45KGRldikgJiYgZmIp IHsKIAkJCXAtPmN1cnNvci5lbmFibGVkID0gdHJ1ZTsKIAkJCXAtPmN1cnNvci5ieXRlc19wZXJf cGl4ZWwgPSBmYi0+Yml0c19wZXJfcGl4ZWwgLyA4OwogCQkJcC0+Y3Vyc29yLmhvcml6X3BpeGVs cyA9IGNydGMtPmN1cnNvci0+c3RhdGUtPmNydGNfdzsKQEAgLTMyMDIsOCArMzIwNiwxMSBAQCBz dGF0aWMgdm9pZCBza2xfY29tcHV0ZV93bV9waXBlX3BhcmFtZXRlcnMoc3RydWN0IGRybV9jcnRj ICpjcnRjLAogCWxpc3RfZm9yX2VhY2hfZW50cnkocGxhbmUsICZkZXYtPm1vZGVfY29uZmlnLnBs YW5lX2xpc3QsIGhlYWQpIHsKIAkJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRv X2ludGVsX3BsYW5lKHBsYW5lKTsKIAotCQlpZiAoaW50ZWxfcGxhbmUtPnBpcGUgPT0gcGlwZSAm JgotCQkJcGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSkKKwkJaWYgKGludGVs X3BsYW5lLT5waXBlICE9IHBpcGUpCisJCQljb250aW51ZTsKKworCQlpZiAocGxhbmUtPnR5cGUg PT0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSB8fAorCQkgICAgKElTX0dFTjkoZGV2KSAmJiBwbGFu ZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpKQogCQkJcC0+cGxhbmVbaSsrXSA9IGlu dGVsX3BsYW5lLT53bTsKIAl9CiB9CkBAIC0zMzkwLDExICszMzk3LDEzIEBAIHN0YXRpYyB2b2lk IHNrbF9jb21wdXRlX3dtX3Jlc3VsdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCQl0ZW1w ID0gMDsKIAotCQl0ZW1wIHw9IHBfd20tPndtW2xldmVsXS5jdXJzb3JfcmVzX2wgPDwgUExBTkVf V01fTElORVNfU0hJRlQ7Ci0JCXRlbXAgfD0gcF93bS0+d21bbGV2ZWxdLmN1cnNvcl9yZXNfYjsK KwkJaWYgKCFJU19HRU45KGRldikpIHsKKwkJCXRlbXAgfD0gcF93bS0+d21bbGV2ZWxdLmN1cnNv cl9yZXNfbCA8PCBQTEFORV9XTV9MSU5FU19TSElGVDsKKwkJCXRlbXAgfD0gcF93bS0+d21bbGV2 ZWxdLmN1cnNvcl9yZXNfYjsKIAotCQlpZiAocF93bS0+d21bbGV2ZWxdLmN1cnNvcl9lbikKLQkJ CXRlbXAgfD0gUExBTkVfV01fRU47CisJCQlpZiAocF93bS0+d21bbGV2ZWxdLmN1cnNvcl9lbikK KwkJCQl0ZW1wIHw9IFBMQU5FX1dNX0VOOworCQl9CiAKIAkJci0+Y3Vyc29yW3BpcGVdW2xldmVs XSA9IHRlbXA7CiAKQEAgLTM0MTIsMTAgKzM0MjEsMTIgQEAgc3RhdGljIHZvaWQgc2tsX2NvbXB1 dGVfd21fcmVzdWx0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCX0KIAogCXRlbXAgPSAwOwot CXRlbXAgfD0gcF93bS0+dHJhbnNfd20uY3Vyc29yX3Jlc19sIDw8IFBMQU5FX1dNX0xJTkVTX1NI SUZUOwotCXRlbXAgfD0gcF93bS0+dHJhbnNfd20uY3Vyc29yX3Jlc19iOwotCWlmIChwX3dtLT50 cmFuc193bS5jdXJzb3JfZW4pCi0JCXRlbXAgfD0gUExBTkVfV01fRU47CisJaWYgKCFJU19HRU45 KGRldikpIHsKKwkJdGVtcCB8PSBwX3dtLT50cmFuc193bS5jdXJzb3JfcmVzX2wgPDwgUExBTkVf V01fTElORVNfU0hJRlQ7CisJCXRlbXAgfD0gcF93bS0+dHJhbnNfd20uY3Vyc29yX3Jlc19iOwor CQlpZiAocF93bS0+dHJhbnNfd20uY3Vyc29yX2VuKQorCQkJdGVtcCB8PSBQTEFORV9XTV9FTjsK Kwl9CiAKIAlyLT5jdXJzb3JfdHJhbnNbcGlwZV0gPSB0ZW1wOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nwcml0ZS5jCmluZGV4IDlkOGFmMmY4YTg3NS4uNTk2ZmE0MzE5NjgxIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zcHJpdGUuYwpAQCAtOTYxLDcgKzk2MSw4IEBAIGludCBpbnRlbF9zcHJp dGVfc2V0X2NvbG9ya2V5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCXJl dHVybiAtRUlOVkFMOwogCiAJcGxhbmUgPSBkcm1fcGxhbmVfZmluZChkZXYsIHNldC0+cGxhbmVf aWQpOwotCWlmICghcGxhbmUgfHwgcGxhbmUtPnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxB WSkKKwlpZiAoIXBsYW5lIHx8IHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkg fHwKKwkgICAgKCFJU19HRU45KGRldikgJiYgcGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVf Q1VSU09SKSkKIAkJcmV0dXJuIC1FTk9FTlQ7CiAKIAlkcm1fbW9kZXNldF9hY3F1aXJlX2luaXQo JmN0eCwgMCk7CkBAIC0xMDQwLDggKzEwNDEsOCBAQCBzdGF0aWMgdWludDMyX3Qgc2tsX3BsYW5l X2Zvcm1hdHNbXSA9IHsKIAlEUk1fRk9STUFUX1ZZVVksCiB9OwogCi1pbnQKLWludGVsX3BsYW5l X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkK K3N0cnVjdCBkcm1fcGxhbmUgKgoraW50ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lLCBlbnVtIGRybV9wbGFuZV90eXBlIHBsYW5l X3R5cGUpCiB7CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKIAlzdHJ1Y3QgaW50 ZWxfcGxhbmVfc3RhdGUgKnN0YXRlOwpAQCAtMTA1MSwxNiArMTA1MiwxNiBAQCBpbnRlbF9wbGFu ZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLCBpbnQgcGxhbmUp CiAJaW50IHJldDsKIAogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDUpCi0JCXJldHVybiAt RU5PREVWOworCQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKIAogCWludGVsX3BsYW5lID0ga3ph bGxvYyhzaXplb2YoKmludGVsX3BsYW5lKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFpbnRlbF9wbGFu ZSkKLQkJcmV0dXJuIC1FTk9NRU07CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCiAJc3Rh dGUgPSBpbnRlbF9jcmVhdGVfcGxhbmVfc3RhdGUoJmludGVsX3BsYW5lLT5iYXNlKTsKIAlpZiAo IXN0YXRlKSB7CiAJCWtmcmVlKGludGVsX3BsYW5lKTsKLQkJcmV0dXJuIC1FTk9NRU07CisJCXJl dHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCX0KIAlpbnRlbF9wbGFuZS0+YmFzZS5zdGF0ZSA9ICZz dGF0ZS0+YmFzZTsKIApAQCAtMTExNiw3ICsxMTE3LDcgQEAgaW50ZWxfcGxhbmVfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKQogCQlicmVhazsK IAlkZWZhdWx0OgogCQlrZnJlZShpbnRlbF9wbGFuZSk7Ci0JCXJldHVybiAtRU5PREVWOworCQly ZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKIAl9CiAKIAlpbnRlbF9wbGFuZS0+cGlwZSA9IHBpcGU7 CkBAIC0xMTI4LDcgKzExMjksNyBAQCBpbnRlbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGVudW0gcGlwZSBwaXBlLCBpbnQgcGxhbmUpCiAJcmV0ID0gZHJtX3VuaXZlcnNhbF9w bGFuZV9pbml0KGRldiwgJmludGVsX3BsYW5lLT5iYXNlLCBwb3NzaWJsZV9jcnRjcywKIAkJCQkg ICAgICAgJmludGVsX3BsYW5lX2Z1bmNzLAogCQkJCSAgICAgICBwbGFuZV9mb3JtYXRzLCBudW1f cGxhbmVfZm9ybWF0cywKLQkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSk7CisJCQkJ ICAgICAgIHBsYW5lX3R5cGUpOwogCWlmIChyZXQpIHsKIAkJa2ZyZWUoaW50ZWxfcGxhbmUpOwog CQlnb3RvIG91dDsKQEAgLTExMzgsNiArMTEzOSw4IEBAIGludGVsX3BsYW5lX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKIAogCWRybV9wbGFu ZV9oZWxwZXJfYWRkKCZpbnRlbF9wbGFuZS0+YmFzZSwgJmludGVsX3BsYW5lX2hlbHBlcl9mdW5j cyk7CiAKKwlyZXR1cm4gJmludGVsX3BsYW5lLT5iYXNlOworCiBvdXQ6Ci0JcmV0dXJuIHJldDsK KwlyZXR1cm4gRVJSX1BUUihyZXQpOwogfQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK