From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 08/18] drm/i915: Rework primary plane stuff slightly. Date: Thu, 2 Jul 2015 16:36:52 +0200 Message-ID: <1435847822-5318-9-git-send-email-maarten.lankhorst@linux.intel.com> References: <1435847822-5318-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 ESMTPS id B22F26EC9C for ; Thu, 2 Jul 2015 07:37:25 -0700 (PDT) In-Reply-To: <1435847822-5318-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 TWFrZSBzdXJlIHRoZSBwcmltYXJ5IHBsYW5lIGlzIHNldCB1cCBjb3JyZWN0bHkuIFRoaXMgaXMg ZG9uZSBieQpzZXR0aW5nIHBsYW5lX3N0YXRlLT5zcmMgYW5kIHBsYW5lX3N0YXRlLT5jcnRjLgoK QWxsIG5vbi1wcmltYXJ5IHBsYW5lcyBnZXQgZGlzYWJsZWQuIEkgZmVhciB0aGlzIG1heSB0cmln Z2VyCnRyaWdnZXJzIERhbmllbCBTdG9uZSdzIGJsYWNrIHNjcmVlbiBidWcsIHNvIGNhbGxzIHRv CmludGVsX3VwZGF0ZV9zcHJpdGVfd2F0ZXJtYXJrcyBtYXkgaGF2ZSB0byBiZSByZW1vdmVkLgoK U2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4 LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyAgfCAg IDcgLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDE2NyArKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggICAgIHwgICAyIC0KIDMgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMTE2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0 b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKaW5kZXggNDI5Njc3 YTExMWQ1Li5iNTkzNjEyYTkxN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCkBA IC05OCwxMyArOTgsNiBAQCBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChjcnRjX3N0YXRlICYmCi0JICAg IGNydGNfc3RhdGUtPnF1aXJrcyAmIFBJUEVfQ09ORklHX1FVSVJLX0lOSVRJQUxfUExBTkVTKSB7 Ci0JCXJldCA9IGRybV9hdG9taWNfYWRkX2FmZmVjdGVkX3BsYW5lcyhzdGF0ZSwgJm51Y2xlYXJf Y3J0Yy0+YmFzZSk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCX0KLQogCXJldCA9IGRy bV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lcyhkZXYsIHN0YXRlKTsKIAlpZiAocmV0KQogCQly ZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDNkZTg1NWFl YjJjNC4uNjlhYWZhYThlZDczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBA IC0xMDksNiArMTA5LDcgQEAgc3RhdGljIHZvaWQgc2tsX2luaXRfc2NhbGVycyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3IKIAlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiBzdGF0aWMgaW50IGk5eHhfZ2V0X3JlZmNsayhjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgIGludCBudW1fY29u bmVjdG9ycyk7CitzdGF0aWMgdm9pZCBpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5KHN0cnVjdCBk cm1fY3J0YyAqY3J0Yyk7CiAKIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZmlu ZF9lbmNvZGVyKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgaW50IHBpcGUpCiB7 CkBAIC0yNTgyLDExICsyNTgzLDEyIEBAIGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGludGVsX2NydGMtPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9jcnRjICpjOwotCXN0cnVjdCBpbnRl bF9jcnRjICppOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGRy bV9wbGFuZSAqcHJpbWFyeSA9IGludGVsX2NydGMtPmJhc2UucHJpbWFyeTsKIAlzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYjsKKwlzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5ID0gaW50ZWxfY3J0 Yy0+YmFzZS5wcmltYXJ5OworCXN0cnVjdCBpbnRlbF9wbGFuZSAqcDsKKwlzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0KKwkJdG9faW50ZWxfcGxhbmVfc3RhdGUocHJpbWFy eS0+c3RhdGUpOwogCiAJaWYgKCFwbGFuZV9jb25maWctPmZiKQogCQlyZXR1cm47CkBAIC0yNjAy LDE2ICsyNjA0LDExIEBAIGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMsCiAJICogRmFpbGVkIHRvIGFsbG9jIHRoZSBvYmosIGNoZWNrIHRv IHNlZSBpZiB3ZSBzaG91bGQgc2hhcmUKIAkgKiBhbiBmYiB3aXRoIGFub3RoZXIgQ1JUQyBpbnN0 ZWFkCiAJICovCi0JZm9yX2VhY2hfY3J0YyhkZXYsIGMpIHsKLQkJaSA9IHRvX2ludGVsX2NydGMo Yyk7Ci0KLQkJaWYgKGMgPT0gJmludGVsX2NydGMtPmJhc2UpCi0JCQljb250aW51ZTsKLQotCQlp ZiAoIWktPmFjdGl2ZSkKKwlmb3JfZWFjaF9pbnRlbF9wbGFuZShkZXYsIHApIHsKKwkJaWYgKHAt PmJhc2UudHlwZSAhPSBEUk1fUExBTkVfVFlQRV9QUklNQVJZKQogCQkJY29udGludWU7CiAKLQkJ ZmIgPSBjLT5wcmltYXJ5LT5mYjsKKwkJZmIgPSBwLT5iYXNlLnN0YXRlLT5mYjsKIAkJaWYgKCFm YikKIAkJCWNvbnRpbnVlOwogCkBAIC0yNjIyLDE4ICsyNjE5LDI4IEBAIGludGVsX2ZpbmRfaW5p dGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJCX0KIAl9CiAK KwlpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5KCZpbnRlbF9jcnRjLT5iYXNlKTsKKwl0b19pbnRl bF9wbGFuZShwcmltYXJ5KS0+ZGlzYWJsZV9wbGFuZShwcmltYXJ5LCAmaW50ZWxfY3J0Yy0+YmFz ZSk7CisKIAlyZXR1cm47CiAKIHZhbGlkX2ZiOgorCWRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2Uo ZmIpOworCXByaW1hcnktPmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmIgPSBmYjsKKwlwbGFuZV9z dGF0ZS0+YmFzZS5jcnRjID0gcHJpbWFyeS0+Y3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNlOworCisJ cGxhbmVfc3RhdGUtPmJhc2Uuc3JjX3ggPSBwbGFuZV9zdGF0ZS0+YmFzZS5zcmNfeSA9IDA7CisJ cGxhbmVfc3RhdGUtPmJhc2Uuc3JjX3cgPSBmYi0+d2lkdGggPDwgMTY7CisJcGxhbmVfc3RhdGUt PmJhc2Uuc3JjX2ggPSBmYi0+aGVpZ2h0IDw8IDE2OworCisJcGxhbmVfc3RhdGUtPmJhc2UuY3J0 Y194ID0gcGxhbmVfc3RhdGUtPmJhc2Uuc3JjX3kgPSAwOworCXBsYW5lX3N0YXRlLT5iYXNlLmNy dGNfdyA9IGZiLT53aWR0aDsKKwlwbGFuZV9zdGF0ZS0+YmFzZS5jcnRjX2ggPSBmYi0+aGVpZ2h0 OworCisJcGxhbmVfc3RhdGUtPnZpc2libGUgPSB0cnVlOwogCW9iaiA9IGludGVsX2ZiX29iaihm Yik7CiAJaWYgKG9iai0+dGlsaW5nX21vZGUgIT0gSTkxNV9USUxJTkdfTk9ORSkKIAkJZGV2X3By aXYtPnByZXNlcnZlX2Jpb3Nfc3dpenpsZSA9IHRydWU7Ci0KLQlwcmltYXJ5LT5mYiA9IGZiOwot CXByaW1hcnktPmNydGMgPSBwcmltYXJ5LT5zdGF0ZS0+Y3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNl OwotCXVwZGF0ZV9zdGF0ZV9mYihwcmltYXJ5KTsKLQlpbnRlbF9jcnRjLT5iYXNlLnN0YXRlLT5w bGFuZV9tYXNrIHw9ICgxIDw8IGRybV9wbGFuZV9pbmRleChwcmltYXJ5KSk7Ci0Jb2JqLT5mcm9u dGJ1ZmZlcl9iaXRzIHw9IHRvX2ludGVsX3BsYW5lKHByaW1hcnkpLT5mcm9udGJ1ZmZlcl9iaXQ7 CiB9CiAKIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9j cnRjICpjcnRjLApAQCAtMTE3NzQsMzQgKzExNzgxLDYgQEAgc3RhdGljIGJvb2wgY2hlY2tfZW5j b2Rlcl9jbG9uaW5nKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAlyZXR1cm4gdHJ1 ZTsKIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19jaGVja19pbml0aWFsX3BsYW5lcyhzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCi0JCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCi17Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0KLQkJdG9f aW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKLQlzdHJ1Y3QgZHJtX3BsYW5lICpwOwotCXVu c2lnbmVkIHZpc2libGVfbWFzayA9IDA7Ci0KLQlkcm1fZm9yX2VhY2hfcGxhbmVfbWFzayhwLCBj cnRjLT5kZXYsIGNydGNfc3RhdGUtPnBsYW5lX21hc2spIHsKLQkJc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGUgPQotCQkJZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfcGxhbmVfc3Rh dGUoY3J0Y19zdGF0ZS0+c3RhdGUsIHApOwotCi0JCWlmIChXQVJOX09OKCFwbGFuZV9zdGF0ZSkp Ci0JCQljb250aW51ZTsKLQotCQlpZiAoIXBsYW5lX3N0YXRlLT5mYikKLQkJCWNydGNfc3RhdGUt PnBsYW5lX21hc2sgJj0KLQkJCQl+KDEgPDwgZHJtX3BsYW5lX2luZGV4KHApKTsKLQkJZWxzZSBp ZiAodG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpLT52aXNpYmxlKQotCQkJdmlzaWJs ZV9tYXNrIHw9IDEgPDwgZHJtX3BsYW5lX2luZGV4KHApOwotCX0KLQotCWlmICghdmlzaWJsZV9t YXNrKQotCQlyZXR1cm47Ci0KLQlwaXBlX2NvbmZpZy0+cXVpcmtzICY9IH5QSVBFX0NPTkZJR19R VUlSS19JTklUSUFMX1BMQU5FUzsKLX0KLQogc3RhdGljIGludCBpbnRlbF9jcnRjX2F0b21pY19j aGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewpAQCAtMTE4MjMsMTAgKzExODAyLDYgQEAgc3RhdGljIGludCBpbnRl bF9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCSJbQ1JUQzolaV0g bWlzbWF0Y2ggYmV0d2VlbiBzdGF0ZS0+YWN0aXZlKCVpKSBhbmQgY3J0Yy0+YWN0aXZlKCVpKVxu IiwKIAkJaWR4LCBjcnRjLT5zdGF0ZS0+YWN0aXZlLCBpbnRlbF9jcnRjLT5hY3RpdmUpOwogCi0J LyogcGxhbmUgbWFzayBpcyBmaXhlZCB1cCBhZnRlciBhbGwgaW5pdGlhbCBwbGFuZXMgYXJlIGNh bGN1bGF0ZWQgKi8KLQlpZiAocGlwZV9jb25maWctPnF1aXJrcyAmIFBJUEVfQ09ORklHX1FVSVJL X0lOSVRJQUxfUExBTkVTKQotCQlpbnRlbF9jcnRjX2NoZWNrX2luaXRpYWxfcGxhbmVzKGNydGMs IGNydGNfc3RhdGUpOwotCiAJaWYgKG1vZGVfY2hhbmdlZCAmJiAhY3J0Y19zdGF0ZS0+YWN0aXZl KQogCQlpbnRlbF9jcnRjLT5hdG9taWMudXBkYXRlX3dtX3Bvc3QgPSB0cnVlOwogCkBAIC0xMzE2 OCwxOSArMTMxNDMsNiBAQCBpbnRlbF9tb2Rlc2V0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJaWYgKHBpcGVfY29u ZmlnLT5xdWlya3MgJiBQSVBFX0NPTkZJR19RVUlSS19JTklUSUFMX1BMQU5FUykgewotCQkJcmV0 ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfcGxhbmVzKHN0YXRlLCBjcnRjKTsKLQkJCWlmIChy ZXQpCi0JCQkJcmV0dXJuIHJldDsKLQotCQkJLyoKLQkJCSAqIFdlIG91Z2h0IHRvIGhhbmRsZSBp OTE1LmZhc3Rib290IGhlcmUuCi0JCQkgKiBJZiBubyBtb2Rlc2V0IGlzIHJlcXVpcmVkIGFuZCB0 aGUgcHJpbWFyeSBwbGFuZSBoYXMKLQkJCSAqIGEgZmIsIHVwZGF0ZSB0aGUgbWVtYmVycyBvZiBj cnRjX3N0YXRlIGFzIG5lZWRlZCwKLQkJCSAqIGFuZCBydW4gdGhlIG5lY2Vzc2FyeSB1cGRhdGVz IGR1cmluZyB2YmxhbmsgZXZhc2lvbi4KLQkJCSAqLwotCQl9Ci0KIAkJaWYgKCFuZWVkc19tb2Rl c2V0KGNydGNfc3RhdGUpKSB7CiAJCQlpZiAoIShwaXBlX2NvbmZpZy0+cXVpcmtzICYgUElQRV9D T05GSUdfUVVJUktfSU5IRVJJVEVEX01PREUpKQogCQkJCWNvbnRpbnVlOwpAQCAtMTUxNjQsMjUg KzE1MTI2LDMwIEBAIHZvaWQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXYpOwogCiAJZm9yX2VhY2hfaW50ZWxfY3J0 YyhkZXYsIGNydGMpIHsKLQkJaWYgKCFjcnRjLT5hY3RpdmUpCisJCXN0cnVjdCBpbnRlbF9pbml0 aWFsX3BsYW5lX2NvbmZpZyBwbGFuZV9jb25maWc7CisJCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l OworCisJCWlmICghY3J0Yy0+YmFzZS5zdGF0ZS0+YWN0aXZlKQogCQkJY29udGludWU7CiAKKwkJ LyogZGlzYWJsZSBhbGwgbm9uLXByaW1hcnkgcGxhbmVzICovCisJCWRybV9mb3JfZWFjaF9wbGFu ZV9tYXNrKHBsYW5lLCBkZXYsCisJCQkJCWNydGMtPmJhc2Uuc3RhdGUtPnBsYW5lX21hc2spCisJ CQlpZiAocGxhbmUtPnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkKKwkJCQl0b19pbnRl bF9wbGFuZShwbGFuZSktPmRpc2FibGVfcGxhbmUocGxhbmUsICZjcnRjLT5iYXNlKTsKKworCQlj cnRjLT5iYXNlLnN0YXRlLT5wbGFuZV9tYXNrICY9CisJCQkxIDw8IGRybV9wbGFuZV9pbmRleChj cnRjLT5iYXNlLnByaW1hcnkpOworCisJCXBsYW5lX2NvbmZpZy5mYiA9IE5VTEw7CisJCWRldl9w cml2LT5kaXNwbGF5LmdldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhjcnRjLAorCQkJCQkJCSAgICZw bGFuZV9jb25maWcpOworCiAJCS8qCi0JCSAqIE5vdGUgdGhhdCByZXNlcnZpbmcgdGhlIEJJT1Mg ZmIgdXAgZnJvbnQgcHJldmVudHMgdXMKLQkJICogZnJvbSBzdHVmZmluZyBvdGhlciBzdG9sZW4g YWxsb2NhdGlvbnMgbGlrZSB0aGUgcmluZwotCQkgKiBvbiB0b3AuICBUaGlzIHByZXZlbnRzIHNv bWUgdWdsaW5lc3MgYXQgYm9vdCB0aW1lLCBhbmQKLQkJICogY2FuIGV2ZW4gYWxsb3cgZm9yIHNt b290aCBib290IHRyYW5zaXRpb25zIGlmIHRoZSBCSU9TCi0JCSAqIGZiIGlzIGxhcmdlIGVub3Vn aCBmb3IgdGhlIGFjdGl2ZSBwaXBlIGNvbmZpZ3VyYXRpb24uCisJCSAqIElmIHRoZSBmYiBpcyBz aGFyZWQgYmV0d2VlbiBtdWx0aXBsZSBoZWFkcywgd2UnbGwKKwkJICoganVzdCBnZXQgdGhlIGZp cnN0IG9uZS4KIAkJICovCi0JCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5nZXRfaW5pdGlhbF9wbGFu ZV9jb25maWcpIHsKLQkJCWRldl9wcml2LT5kaXNwbGF5LmdldF9pbml0aWFsX3BsYW5lX2NvbmZp ZyhjcnRjLAotCQkJCQkJCSAgICZjcnRjLT5wbGFuZV9jb25maWcpOwotCQkJLyoKLQkJCSAqIElm IHRoZSBmYiBpcyBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSBoZWFkcywgd2UnbGwKLQkJCSAqIGp1 c3QgZ2V0IHRoZSBmaXJzdCBvbmUuCi0JCQkgKi8KLQkJCWludGVsX2ZpbmRfaW5pdGlhbF9wbGFu ZV9vYmooY3J0YywgJmNydGMtPnBsYW5lX2NvbmZpZyk7Ci0JCX0KKwkJaW50ZWxfZmluZF9pbml0 aWFsX3BsYW5lX29iaihjcnRjLCAmcGxhbmVfY29uZmlnKTsKIAl9CiB9CiAKQEAgLTE1NDMwLDQ3 ICsxNTM5NywzMCBAQCBzdGF0aWMgdm9pZCByZWFkb3V0X3BsYW5lX3N0YXRlKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcDsKIAlzdHJ1Y3QgZHJtX3BsYW5l X3N0YXRlICpkcm1fcGxhbmVfc3RhdGU7CiAJYm9vbCBhY3RpdmUgPSBjcnRjX3N0YXRlLT5iYXNl LmFjdGl2ZTsKKwlib29sIHdyb25nX3BsYW5lOwogCi0JaWYgKGFjdGl2ZSkgewotCQljcnRjX3N0 YXRlLT5xdWlya3MgfD0gUElQRV9DT05GSUdfUVVJUktfSU5JVElBTF9QTEFORVM7Ci0KLQkJLyog YXBwbHkgdG8gcHJldmlvdXMgc3cgc3RhdGUgdG9vICovCi0JCXRvX2ludGVsX2NydGNfc3RhdGUo Y3J0Yy0+YmFzZS5zdGF0ZSktPnF1aXJrcyB8PQotCQkJUElQRV9DT05GSUdfUVVJUktfSU5JVElB TF9QTEFORVM7Ci0JfQorCXdyb25nX3BsYW5lID0gYWN0aXZlICYmICFpbnRlbF9jaGVja19wbGFu ZV9tYXBwaW5nKGNydGMpOworCWlmICh3cm9uZ19wbGFuZSkKKwkJY3J0Yy0+cGlwZSA9ICFjcnRj LT5waXBlOwogCiAJZm9yX2VhY2hfaW50ZWxfcGxhbmUoY3J0Yy0+YmFzZS5kZXYsIHApIHsKLQkJ Ym9vbCB2aXNpYmxlID0gYWN0aXZlOwotCiAJCWlmIChjcnRjLT5waXBlICE9IHAtPnBpcGUpCiAJ CQljb250aW51ZTsKIAogCQlkcm1fcGxhbmVfc3RhdGUgPSBwLT5iYXNlLnN0YXRlOwogCi0JCS8q IFBsYW5lIHNjYWxlciBzdGF0ZSBpcyBub3QgdG91Y2hlZCBoZXJlLiBUaGUgZmlyc3QgYXRvbWlj Ci0JCSAqIGNvbW1pdCB3aWxsIHJlc3RvcmUgYWxsIHBsYW5lIHNjYWxlcnMgdG8gaXRzIG9sZCBz dGF0ZS4KLQkJICovCi0KLQkJaWYgKGFjdGl2ZSAmJiBwLT5iYXNlLnR5cGUgPT0gRFJNX1BMQU5F X1RZUEVfUFJJTUFSWSkgewotCQkJdmlzaWJsZSA9IHByaW1hcnlfZ2V0X2h3X3N0YXRlKGNydGMp OwotCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUoZHJtX3BsYW5lX3N0YXRlKS0+dmlzaWJsZSA9IHZp c2libGU7Ci0JCX0gZWxzZSB7Ci0JCQkvKgotCQkJICogdW5rbm93biBzdGF0ZSwgYXNzdW1lIGl0 J3Mgb2ZmIHRvIGZvcmNlIGEgdHJhbnNpdGlvbgotCQkJICogdG8gb24gd2hlbiBjYWxjdWxhdGlu ZyBzdGF0ZSBjaGFuZ2VzLgotCQkJICovCisJCWlmIChwLT5iYXNlLnR5cGUgPT0gRFJNX1BMQU5F X1RZUEVfUFJJTUFSWSkKKwkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9wbGFuZV9zdGF0ZSkt PnZpc2libGUgPQorCQkJCXByaW1hcnlfZ2V0X2h3X3N0YXRlKGNydGMpOworCQllbHNlCiAJCQl0 b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fcGxhbmVfc3RhdGUpLT52aXNpYmxlID0gZmFsc2U7Ci0J CX0KIAotCQlpZiAodmlzaWJsZSkgewotCQkJY3J0Y19zdGF0ZS0+YmFzZS5wbGFuZV9tYXNrIHw9 Ci0JCQkJMSA8PCBkcm1fcGxhbmVfaW5kZXgoJnAtPmJhc2UpOwotCQl9IGVsc2UgaWYgKGNydGNf c3RhdGUtPmJhc2Uuc3RhdGUpIHsKLQkJCS8qIE1ha2UgdGhpcyB1bmNvbmRpdGlvbmFsIGZvciBh dG9taWMgaHcgcmVhZG91dC4gKi8KLQkJCWNydGNfc3RhdGUtPmJhc2UucGxhbmVfbWFzayAmPQot CQkJCX4oMSA8PCBkcm1fcGxhbmVfaW5kZXgoJnAtPmJhc2UpKTsKLQkJfQorCQljcnRjX3N0YXRl LT5iYXNlLnBsYW5lX21hc2sgfD0KKwkJCTEgPDwgZHJtX3BsYW5lX2luZGV4KCZwLT5iYXNlKTsK IAl9CisKKwlpZiAod3JvbmdfcGxhbmUpCisJCWNydGMtPnBpcGUgPSAhY3J0Yy0+cGlwZTsKIH0K IAogc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCkBAIC0xNTY3NCw2ICsxNTYyNCw5IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9n ZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJdXBkYXRlX3N0YXRlX2ZiKGMtPnBy aW1hcnkpOwogCQkJYy0+c3RhdGUtPnBsYW5lX21hc2sgJj0gfigxIDw8IGRybV9wbGFuZV9pbmRl eChjLT5wcmltYXJ5KSk7CiAJCX0KKwkJZWxzZQorCQkJb2JqLT5mcm9udGJ1ZmZlcl9iaXRzIHw9 CisJCQkJdG9faW50ZWxfcGxhbmUoYy0+cHJpbWFyeSktPmZyb250YnVmZmVyX2JpdDsKIAl9CiAK IAlpbnRlbF9iYWNrbGlnaHRfcmVnaXN0ZXIoZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK aW5kZXggZWIzYmM4YTYxMjg1Li44OTg2MWZiZjAzMWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCkBAIC0zNDEsNyArMzQxLDYgQEAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewogCSAqLwog I2RlZmluZSBQSVBFX0NPTkZJR19RVUlSS19NT0RFX1NZTkNfRkxBR1MJKDE8PDApIC8qIHVucmVs aWFibGUgc3luYyBtb2RlLmZsYWdzICovCiAjZGVmaW5lIFBJUEVfQ09ORklHX1FVSVJLX0lOSEVS SVRFRF9NT0RFCSgxPDwxKSAvKiBtb2RlIGluaGVyaXRlZCBmcm9tIGZpcm13YXJlICovCi0jZGVm aW5lIFBJUEVfQ09ORklHX1FVSVJLX0lOSVRJQUxfUExBTkVTCSgxPDwyKSAvKiBwbGFuZXMgYXJl IGluIHVua25vd24gc3RhdGUgKi8KIAl1bnNpZ25lZCBsb25nIHF1aXJrczsKIAogCS8qIFBpcGUg c291cmNlIHNpemUgKGllLiBwYW5lbCBmaXR0ZXIgaW5wdXQgc2l6ZSkKQEAgLTU1MCw3ICs1NDks NiBAQCBzdHJ1Y3QgaW50ZWxfY3J0YyB7CiAJdWludDMyX3QgY3Vyc29yX3NpemU7CiAJdWludDMy X3QgY3Vyc29yX2Jhc2U7CiAKLQlzdHJ1Y3QgaW50ZWxfaW5pdGlhbF9wbGFuZV9jb25maWcgcGxh bmVfY29uZmlnOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWc7CiAJYm9vbCBuZXdf ZW5hYmxlZDsKIAotLSAKMi4xLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==