From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: [PATCH 19/28] drm/vmwgfx: Add a kernel interface to create a framebuffer v2 Date: Wed, 12 Aug 2015 22:43:08 -0700 Message-ID: <1439444597-4664-20-git-send-email-thellstrom@vmware.com> References: <1439444597-4664-1-git-send-email-thellstrom@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx2.bahnhof.se (mx2.bahnhof.se [213.80.101.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 76F2E6EC0F for ; Wed, 12 Aug 2015 23:36:34 -0700 (PDT) Received: from localhost (mf.bahnhof.se [213.80.101.20]) by mx2-reinject (Postfix) with ESMTP id 0B39C411E2 for ; Thu, 13 Aug 2015 08:36:33 +0200 (CEST) Received: from mf2.bahnhof.se ([127.0.0.1]) by localhost (mf2.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wZ7iJR3Kgh+u for ; Thu, 13 Aug 2015 08:36:24 +0200 (CEST) Received: from mail.shipmail.org (h-5-150-198-217.na.cust.bahnhof.se [5.150.198.217]) by mf2.bahnhof.se (Postfix) with ESMTP id 0874B940148 for ; Thu, 13 Aug 2015 08:36:23 +0200 (CEST) Received: from mail.shipmail.org (lin0.kontor.shipmail.org [127.0.0.1]) by mail.shipmail.org (Postfix) with ESMTP id 0B7373F4003 for ; Thu, 13 Aug 2015 07:43:26 +0200 (CEST) Received: from localhost.localdomain (lin0.kontor.shipmail.org [127.0.0.1]) by mail.shipmail.org (Postfix) with ESMTP id E880F3DC002 for ; Thu, 13 Aug 2015 07:43:25 +0200 (CEST) In-Reply-To: <1439444597-4664-1-git-send-email-thellstrom@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlIGtlcm5lbCBpbnRlcmZhY2UgaXMgbmVlZGVkIGZvciBmYmRldiwgYW5kIG5lZWRzIHRvIGJl IGZyZWUgZnJvbQphIGZpbGVfcHJpdiBtZW1iZXIuIFRvIGFjY29tcGxpc2ggdGhpcywgcmVtb3Zl IHRoZSBmYiBzdXJmYWNlIG11dGV4CmFuZCBsaXN0IHdoaWNoIGlzbid0IHVzZWQgYW55bW9yZSwg YW55d2F5LgoKRmluYWxseSwgbWFrZSB0aGUgcGluKCkgYW5kIHVucGluKCkgcGluIHRoZSBmcmFt ZWJ1ZmZlciBmb3IgYWxsIGRpc3BsYXkKc3lzdGVtIGJhY2tlbmRzLCBzbyB0aGF0IGZiZGV2IGNh biBwaW4gaXRzIGZyYW1lYnVmZmVyIGJlZm9yZSBtYXBwaW5nIGl0LgoKdjI6IEFkZHJlc3MgcmV2 aWV3IGNvbW1lbnRzOgotIEZpeCB2bXdfZnJhbWVidWZmZXJfdW5waW4oKSB0byBoYW5kbGUgYWxz byB0aGUgc3VyZmFjZSBmcmFtZWJ1ZmZlciBjYXNlLgotIEZpeCB2bXdfa21zX25ld19mcmFtZWJ1 ZmZlcigpIHRvIGFjdHVhbGx5IHVzZSB0aGUgb25seV8yZCBwYXJhbWV0ZXIuCgpTaWduZWQtb2Zm LWJ5OiBUaG9tYXMgSGVsbHN0cm9tIDx0aGVsbHN0cm9tQHZtd2FyZS5jb20+ClJldmlld2VkLWJ5 OiBTaW5jbGFpciBZZWggPHN5ZWhAdm13YXJlLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9kcnYuYyB8ICAgMiAtCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9k cnYuaCB8ICAgMiAtCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYyB8IDE2MiAr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X2ttcy5oIHwgICA4ICstCiA0IGZpbGVzIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25z KCspLCA3MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCmluZGV4 IGU1NWRiM2YuLmJjZjE5NjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCkBAIC0x MTQyLDggKzExNDIsNiBAQCBzdGF0aWMgdm9pZCB2bXdfbGFzdGNsb3NlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiBzdGF0aWMgdm9pZCB2bXdfbWFzdGVyX2luaXQoc3RydWN0IHZtd19tYXN0ZXIg KnZtYXN0ZXIpCiB7CiAJdHRtX2xvY2tfaW5pdCgmdm1hc3Rlci0+bG9jayk7Ci0JSU5JVF9MSVNU X0hFQUQoJnZtYXN0ZXItPmZiX3N1cmYpOwotCW11dGV4X2luaXQoJnZtYXN0ZXItPmZiX3N1cmZf bXV0ZXgpOwogfQogCiBzdGF0aWMgaW50IHZtd19tYXN0ZXJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCmluZGV4IGQ2YjI0N2IuLjlh ZTU3MzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCkBAIC0zNzIsOCArMzcyLDYg QEAgc3RydWN0IHZtd19vdmVybGF5OwogCiBzdHJ1Y3Qgdm13X21hc3RlciB7CiAJc3RydWN0IHR0 bV9sb2NrIGxvY2s7Ci0Jc3RydWN0IG11dGV4IGZiX3N1cmZfbXV0ZXg7Ci0Jc3RydWN0IGxpc3Rf aGVhZCBmYl9zdXJmOwogfTsKIAogc3RydWN0IHZtd192Z2FfdG9wb2xvZ3lfc3RhdGUgewpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwppbmRleCAyMzRhM2NlLi5kYzlmN2QwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwpAQCAtMzY5LDE0ICszNjksNyBAQCBzdGF0aWMgdm9p ZCB2bXdfZnJhbWVidWZmZXJfc3VyZmFjZV9kZXN0cm95KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZyYW1lYnVmZmVyKQogewogCXN0cnVjdCB2bXdfZnJhbWVidWZmZXJfc3VyZmFjZSAqdmZicyA9 CiAJCXZtd19mcmFtZWJ1ZmZlcl90b192ZmJzKGZyYW1lYnVmZmVyKTsKLQlzdHJ1Y3Qgdm13X21h c3RlciAqdm1hc3RlciA9IHZtd19tYXN0ZXIodmZicy0+bWFzdGVyKTsKIAotCi0JbXV0ZXhfbG9j aygmdm1hc3Rlci0+ZmJfc3VyZl9tdXRleCk7Ci0JbGlzdF9kZWwoJnZmYnMtPmhlYWQpOwotCW11 dGV4X3VubG9jaygmdm1hc3Rlci0+ZmJfc3VyZl9tdXRleCk7Ci0KLQlkcm1fbWFzdGVyX3B1dCgm dmZicy0+bWFzdGVyKTsKIAlkcm1fZnJhbWVidWZmZXJfY2xlYW51cChmcmFtZWJ1ZmZlcik7CiAJ dm13X3N1cmZhY2VfdW5yZWZlcmVuY2UoJnZmYnMtPnN1cmZhY2UpOwogCXR0bV9iYXNlX29iamVj dF91bnJlZigmdmZicy0+YmFzZS51c2VyX29iaik7CkBAIC0zOTYsOSArMzg5LDYgQEAgc3RhdGlj IGludCB2bXdfZnJhbWVidWZmZXJfc3VyZmFjZV9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmcmFtZWJ1ZmZlciwKIAlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBub3JlY3Q7CiAJaW50IHJldCwg aW5jID0gMTsKIAotCWlmICh1bmxpa2VseSh2ZmJzLT5tYXN0ZXIgIT0gZmlsZV9wcml2LT5tYXN0 ZXIpKQotCQlyZXR1cm4gLUVJTlZBTDsKLQogCS8qIExlZ2FjeSBEaXNwbGF5IFVuaXQgZG9lcyBu b3Qgc3VwcG9ydCAzRCAqLwogCWlmIChkZXZfcHJpdi0+YWN0aXZlX2Rpc3BsYXlfdW5pdCA9PSB2 bXdfZHVfbGVnYWN5KQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTQ4NSw3ICs0NzUsNiBAQCBzdGF0 aWMgc3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyB2bXdfZnJhbWVidWZmZXJfc3VyZmFjZV9m dW5jcyA9IHsKIH07CiAKIHN0YXRpYyBpbnQgdm13X2ttc19uZXdfZnJhbWVidWZmZXJfc3VyZmFj ZShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdiwKIAkJCQkJICAgc3RydWN0IHZtd19zdXJmYWNlICpzdXJmYWNlLAogCQkJCQkg ICBzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVyICoqb3V0LAogCQkJCQkgICBjb25zdCBzdHJ1Y3QgZHJt X21vZGVfZmJfY21kCkBAIC00OTYsNyArNDg1LDYgQEAgc3RhdGljIGludCB2bXdfa21zX25ld19m cmFtZWJ1ZmZlcl9zdXJmYWNlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7CiAJc3RydWN0IHZtd19mcmFtZWJ1ZmZl cl9zdXJmYWNlICp2ZmJzOwogCWVudW0gU1ZHQTNkU3VyZmFjZUZvcm1hdCBmb3JtYXQ7Ci0Jc3Ry dWN0IHZtd19tYXN0ZXIgKnZtYXN0ZXIgPSB2bXdfbWFzdGVyKGZpbGVfcHJpdi0+bWFzdGVyKTsK IAlpbnQgcmV0OwogCiAJLyogM0QgaXMgb25seSBzdXBwb3J0ZWQgb24gSFd2OCBhbmQgbmV3ZXIg aG9zdHMgKi8KQEAgLTU2NCwxMyArNTUyLDggQEAgc3RhdGljIGludCB2bXdfa21zX25ld19mcmFt ZWJ1ZmZlcl9zdXJmYWNlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJdmZicy0+YmFz ZS5iYXNlLmhlaWdodCA9IG1vZGVfY21kLT5oZWlnaHQ7CiAJdmZicy0+c3VyZmFjZSA9IHN1cmZh Y2U7CiAJdmZicy0+YmFzZS51c2VyX2hhbmRsZSA9IG1vZGVfY21kLT5oYW5kbGU7Ci0JdmZicy0+ bWFzdGVyID0gZHJtX21hc3Rlcl9nZXQoZmlsZV9wcml2LT5tYXN0ZXIpOwogCXZmYnMtPmlzX2Rt YWJ1Zl9wcm94eSA9IGlzX2RtYWJ1Zl9wcm94eTsKIAotCW11dGV4X2xvY2soJnZtYXN0ZXItPmZi X3N1cmZfbXV0ZXgpOwotCWxpc3RfYWRkX3RhaWwoJnZmYnMtPmhlYWQsICZ2bWFzdGVyLT5mYl9z dXJmKTsKLQltdXRleF91bmxvY2soJnZtYXN0ZXItPmZiX3N1cmZfbXV0ZXgpOwotCiAJKm91dCA9 ICZ2ZmJzLT5iYXNlOwogCiAJcmV0ID0gZHJtX2ZyYW1lYnVmZmVyX2luaXQoZGV2LCAmdmZicy0+ YmFzZS5iYXNlLApAQCAtNjcwLDM5ICs2NTMsNTEgQEAgc3RhdGljIHN0cnVjdCBkcm1fZnJhbWVi dWZmZXJfZnVuY3Mgdm13X2ZyYW1lYnVmZmVyX2RtYWJ1Zl9mdW5jcyA9IHsKIC8qKgogICogUGlu IHRoZSBkbWFidWZmZXIgdG8gdGhlIHN0YXJ0IG9mIHZyYW0uCiAgKi8KLXN0YXRpYyBpbnQgdm13 X2ZyYW1lYnVmZmVyX2RtYWJ1Zl9waW4oc3RydWN0IHZtd19mcmFtZWJ1ZmZlciAqdmZiKQorc3Rh dGljIGludCB2bXdfZnJhbWVidWZmZXJfcGluKHN0cnVjdCB2bXdfZnJhbWVidWZmZXIgKnZmYikK IHsKIAlzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2ID0gdm13X3ByaXYodmZiLT5iYXNlLmRl dik7Ci0Jc3RydWN0IHZtd19mcmFtZWJ1ZmZlcl9kbWFidWYgKnZmYmQgPQotCQl2bXdfZnJhbWVi dWZmZXJfdG9fdmZiZCgmdmZiLT5iYXNlKTsKKwlzdHJ1Y3Qgdm13X2RtYV9idWZmZXIgKmJ1ZjsK IAlpbnQgcmV0OwogCi0JLyogVGhpcyBjb2RlIHNob3VsZCBvbmx5IGJlIHVzZWQgd2l0aCBMZWdh Y3kgRGlzcGxheSBVbml0ICovCi0JQlVHX09OKGRldl9wcml2LT5hY3RpdmVfZGlzcGxheV91bml0 ICE9IHZtd19kdV9sZWdhY3kpOwotCi0Jdm13X292ZXJsYXlfcGF1c2VfYWxsKGRldl9wcml2KTsK KwlidWYgPSB2ZmItPmRtYWJ1ZiA/ICB2bXdfZnJhbWVidWZmZXJfdG9fdmZiZCgmdmZiLT5iYXNl KS0+YnVmZmVyIDoKKwkJdm13X2ZyYW1lYnVmZmVyX3RvX3ZmYnMoJnZmYi0+YmFzZSktPnN1cmZh Y2UtPnJlcy5iYWNrdXA7CiAKLQlyZXQgPSB2bXdfZG1hYnVmX3Bpbl9pbl9zdGFydF9vZl92cmFt KGRldl9wcml2LCB2ZmJkLT5idWZmZXIsIGZhbHNlKTsKKwlpZiAoIWJ1ZikKKwkJcmV0dXJuIDA7 CiAKLQl2bXdfb3ZlcmxheV9yZXN1bWVfYWxsKGRldl9wcml2KTsKKwlzd2l0Y2ggKGRldl9wcml2 LT5hY3RpdmVfZGlzcGxheV91bml0KSB7CisJY2FzZSB2bXdfZHVfbGVnYWN5OgorCQl2bXdfb3Zl cmxheV9wYXVzZV9hbGwoZGV2X3ByaXYpOworCQlyZXQgPSB2bXdfZG1hYnVmX3Bpbl9pbl9zdGFy dF9vZl92cmFtKGRldl9wcml2LCBidWYsIGZhbHNlKTsKKwkJdm13X292ZXJsYXlfcmVzdW1lX2Fs bChkZXZfcHJpdik7CisJCWJyZWFrOworCWNhc2Ugdm13X2R1X3NjcmVlbl9vYmplY3Q6CisJY2Fz ZSB2bXdfZHVfc2NyZWVuX3RhcmdldDoKKwkJaWYgKHZmYi0+ZG1hYnVmKQorCQkJcmV0dXJuIHZt d19kbWFidWZfcGluX2luX3ZyYW1fb3JfZ21yKGRldl9wcml2LCBidWYsCisJCQkJCQkJICAgICBm YWxzZSk7CiAKLQlXQVJOX09OKHJldCAhPSAwKTsKKwkJcmV0dXJuIHZtd19kbWFidWZfcGluX2lu X3BsYWNlbWVudChkZXZfcHJpdiwgYnVmLAorCQkJCQkJICAgJnZtd19tb2JfcGxhY2VtZW50LCBm YWxzZSk7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQogCi0JcmV0dXJuIDA7CisJ cmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCB2bXdfZnJhbWVidWZmZXJfZG1hYnVmX3VucGlu KHN0cnVjdCB2bXdfZnJhbWVidWZmZXIgKnZmYikKK3N0YXRpYyBpbnQgdm13X2ZyYW1lYnVmZmVy X3VucGluKHN0cnVjdCB2bXdfZnJhbWVidWZmZXIgKnZmYikKIHsKIAlzdHJ1Y3Qgdm13X3ByaXZh dGUgKmRldl9wcml2ID0gdm13X3ByaXYodmZiLT5iYXNlLmRldik7Ci0Jc3RydWN0IHZtd19mcmFt ZWJ1ZmZlcl9kbWFidWYgKnZmYmQgPQotCQl2bXdfZnJhbWVidWZmZXJfdG9fdmZiZCgmdmZiLT5i YXNlKTsKKwlzdHJ1Y3Qgdm13X2RtYV9idWZmZXIgKmJ1ZjsKIAotCWlmICghdmZiZC0+YnVmZmVy KSB7Ci0JCVdBUk5fT04oIXZmYmQtPmJ1ZmZlcik7CisJYnVmID0gdmZiLT5kbWFidWYgPyAgdm13 X2ZyYW1lYnVmZmVyX3RvX3ZmYmQoJnZmYi0+YmFzZSktPmJ1ZmZlciA6CisJCXZtd19mcmFtZWJ1 ZmZlcl90b192ZmJzKCZ2ZmItPmJhc2UpLT5zdXJmYWNlLT5yZXMuYmFja3VwOworCisJaWYgKFdB Uk5fT04oIWJ1ZikpCiAJCXJldHVybiAwOwotCX0KIAotCXJldHVybiB2bXdfZG1hYnVmX3VucGlu KGRldl9wcml2LCB2ZmJkLT5idWZmZXIsIGZhbHNlKTsKKwlyZXR1cm4gdm13X2RtYWJ1Zl91bnBp bihkZXZfcHJpdiwgYnVmLCBmYWxzZSk7CiB9CiAKIC8qKgpAQCAtNzIxLDcgKzcxNiw3IEBAIHN0 YXRpYyBpbnQgdm13X2ZyYW1lYnVmZmVyX2RtYWJ1Zl91bnBpbihzdHJ1Y3Qgdm13X2ZyYW1lYnVm ZmVyICp2ZmIpCiAgKiAwIG9uIHN1Y2Nlc3MsIGVycm9yIGNvZGUgb3RoZXJ3aXNlCiAgKi8KIHN0 YXRpYyBpbnQgdm13X2NyZWF0ZV9kbWFidWZfcHJveHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK LQkJCQkgICBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kICptb2RlX2NtZCwKKwkJCQkgICBjb25zdCBz dHJ1Y3QgZHJtX21vZGVfZmJfY21kICptb2RlX2NtZCwKIAkJCQkgICBzdHJ1Y3Qgdm13X2RtYV9i dWZmZXIgKmRtYWJ1Zl9tb2IsCiAJCQkJICAgc3RydWN0IHZtd19zdXJmYWNlICoqc3JmX291dCkK IHsKQEAgLTg0NywxMCArODQyLDYgQEAgc3RhdGljIGludCB2bXdfa21zX25ld19mcmFtZWJ1ZmZl cl9kbWFidWYoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKIAl2ZmJkLT5iYXNlLmJhc2Uu ZGVwdGggPSBtb2RlX2NtZC0+ZGVwdGg7CiAJdmZiZC0+YmFzZS5iYXNlLndpZHRoID0gbW9kZV9j bWQtPndpZHRoOwogCXZmYmQtPmJhc2UuYmFzZS5oZWlnaHQgPSBtb2RlX2NtZC0+aGVpZ2h0Owot CWlmIChkZXZfcHJpdi0+YWN0aXZlX2Rpc3BsYXlfdW5pdCA9PSB2bXdfZHVfbGVnYWN5KSB7Ci0J CXZmYmQtPmJhc2UucGluID0gdm13X2ZyYW1lYnVmZmVyX2RtYWJ1Zl9waW47Ci0JCXZmYmQtPmJh c2UudW5waW4gPSB2bXdfZnJhbWVidWZmZXJfZG1hYnVmX3VucGluOwotCX0KIAl2ZmJkLT5iYXNl LmRtYWJ1ZiA9IHRydWU7CiAJdmZiZC0+YnVmZmVyID0gZG1hYnVmOwogCXZmYmQtPmJhc2UudXNl cl9oYW5kbGUgPSBtb2RlX2NtZC0+aGFuZGxlOwpAQCAtODcxLDYgKzg2Miw2NCBAQCBvdXRfZXJy MToKIAlyZXR1cm4gcmV0OwogfQogCisvKioKKyAqIHZtd19rbXNfbmV3X2ZyYW1lYnVmZmVyIC0g Q3JlYXRlIGEgbmV3IGZyYW1lYnVmZmVyLgorICoKKyAqIEBkZXZfcHJpdjogUG9pbnRlciB0byBk ZXZpY2UgcHJpdmF0ZSBzdHJ1Y3QuCisgKiBAZG1hYnVmOiBQb2ludGVyIHRvIGRtYSBidWZmZXIg dG8gd3JhcCB0aGUga21zIGZyYW1lYnVmZmVyIGFyb3VuZC4KKyAqIEVpdGhlciBAZG1hYnVmIG9y IEBzdXJmYWNlIG11c3QgYmUgTlVMTC4KKyAqIEBzdXJmYWNlOiBQb2ludGVyIHRvIGEgc3VyZmFj ZSB0byB3cmFwIHRoZSBrbXMgZnJhbWVidWZmZXIgYXJvdW5kLgorICogRWl0aGVyIEBkbWFidWYg b3IgQHN1cmZhY2UgbXVzdCBiZSBOVUxMLgorICogQG9ubHlfMmQ6IE5vIHByZXNlbnRzIHdpbGwg b2NjdXIgdG8gdGhpcyBkbWEgYnVmZmVyIGJhc2VkIGZyYW1lYnVmZmVyLiBUaGlzCisgKiBIZWxw cyB0aGUgY29kZSB0byBkbyBzb21lIGltcG9ydGFudCBvcHRpbWl6YXRpb25zLgorICogQG1vZGVf Y21kOiBGcmFtZS1idWZmZXIgbWV0YWRhdGEuCisgKi8KK3N0cnVjdCB2bXdfZnJhbWVidWZmZXIg Kgordm13X2ttc19uZXdfZnJhbWVidWZmZXIoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwK KwkJCXN0cnVjdCB2bXdfZG1hX2J1ZmZlciAqZG1hYnVmLAorCQkJc3RydWN0IHZtd19zdXJmYWNl ICpzdXJmYWNlLAorCQkJYm9vbCBvbmx5XzJkLAorCQkJY29uc3Qgc3RydWN0IGRybV9tb2RlX2Zi X2NtZCAqbW9kZV9jbWQpCit7CisJc3RydWN0IHZtd19mcmFtZWJ1ZmZlciAqdmZiOworCWJvb2wg aXNfZG1hYnVmX3Byb3h5ID0gZmFsc2U7CisJaW50IHJldDsKKworCS8qCisJICogV2UgY2Fubm90 IHVzZSB0aGUgU3VyZmFjZURNQSBjb21tYW5kIGluIGFuIG5vbi1hY2NlbGVyYXRlZCBWTSwKKwkg KiB0aGVyZWZvcmUsIHdyYXAgdGhlIERNQSBidWYgaW4gYSBzdXJmYWNlIHNvIHdlIGNhbiB1c2Ug dGhlCisJICogU3VyZmFjZUNvcHkgY29tbWFuZC4KKwkgKi8KKwlpZiAoZG1hYnVmICYmIG9ubHlf MmQgJiYKKwkgICAgZGV2X3ByaXYtPmFjdGl2ZV9kaXNwbGF5X3VuaXQgPT0gdm13X2R1X3NjcmVl bl90YXJnZXQpIHsKKwkJcmV0ID0gdm13X2NyZWF0ZV9kbWFidWZfcHJveHkoZGV2X3ByaXYtPmRl diwgbW9kZV9jbWQsCisJCQkJCSAgICAgIGRtYWJ1ZiwgJnN1cmZhY2UpOworCQlpZiAocmV0KQor CQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKworCQlpc19kbWFidWZfcHJveHkgPSB0cnVlOworCX0K KworCS8qIENyZWF0ZSB0aGUgbmV3IGZyYW1lYnVmZmVyIGRlcGVuZGluZyBvbmUgd2hhdCB3ZSBo YXZlICovCisJaWYgKHN1cmZhY2UpCisJCXJldCA9IHZtd19rbXNfbmV3X2ZyYW1lYnVmZmVyX3N1 cmZhY2UoZGV2X3ByaXYsIHN1cmZhY2UsICZ2ZmIsCisJCQkJCQkgICAgICBtb2RlX2NtZCwKKwkJ CQkJCSAgICAgIGlzX2RtYWJ1Zl9wcm94eSk7CisJZWxzZSBpZiAoZG1hYnVmKQorCQlyZXQgPSB2 bXdfa21zX25ld19mcmFtZWJ1ZmZlcl9kbWFidWYoZGV2X3ByaXYsIGRtYWJ1ZiwgJnZmYiwKKwkJ CQkJCSAgICAgbW9kZV9jbWQpOworCWVsc2UKKwkJQlVHKCk7CisKKwlpZiAocmV0KQorCQlyZXR1 cm4gRVJSX1BUUihyZXQpOworCisJdmZiLT5waW4gPSB2bXdfZnJhbWVidWZmZXJfcGluOworCXZm Yi0+dW5waW4gPSB2bXdfZnJhbWVidWZmZXJfdW5waW47CisKKwlyZXR1cm4gdmZiOworfQorCiAv KgogICogR2VuZXJpYyBLZXJuZWwgbW9kZXNldHRpbmcgZnVuY3Rpb25zCiAgKi8KQEAgLTg4Niw3 ICs5MzUsNiBAQCBzdGF0aWMgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqdm13X2ttc19mYl9jcmVh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlzdHJ1Y3Qgdm13X2RtYV9idWZmZXIgKmJvID0g TlVMTDsKIAlzdHJ1Y3QgdHRtX2Jhc2Vfb2JqZWN0ICp1c2VyX29iajsKIAlzdHJ1Y3QgZHJtX21v ZGVfZmJfY21kIG1vZGVfY21kOwotCWJvb2wgaXNfZG1hYnVmX3Byb3h5ID0gZmFsc2U7CiAJaW50 IHJldDsKIAogCW1vZGVfY21kLndpZHRoID0gbW9kZV9jbWQyLT53aWR0aDsKQEAgLTkzNSwzMSAr OTgzLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICp2bXdfa21zX2ZiX2NyZWF0 ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmIChyZXQpCiAJCWdvdG8gZXJyX291dDsKIAot CS8qCi0JICogV2UgY2Fubm90IHVzZSB0aGUgU3VyZmFjZURNQSBjb21tYW5kIGluIGFuIG5vbi1h Y2NlbGVyYXRlZCBWTSwKLQkgKiB0aGVyZWZvcmUsIHdyYXAgdGhlIERNQSBidWYgaW4gYSBzdXJm YWNlIHNvIHdlIGNhbiB1c2UgdGhlCi0JICogU3VyZmFjZUNvcHkgY29tbWFuZC4KLQkgKi8KLQlp ZiAoYm8gJiYgIShkZXZfcHJpdi0+Y2FwYWJpbGl0aWVzICYgU1ZHQV9DQVBfM0QpICYmCi0JICAg IGRldl9wcml2LT5hY3RpdmVfZGlzcGxheV91bml0ID09IHZtd19kdV9zY3JlZW5fdGFyZ2V0KSB7 Ci0JCXJldCA9IHZtd19jcmVhdGVfZG1hYnVmX3Byb3h5KGRldl9wcml2LT5kZXYsICZtb2RlX2Nt ZCwgYm8sCi0JCQkmc3VyZmFjZSk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGVycl9vdXQ7Ci0KLQkJ aXNfZG1hYnVmX3Byb3h5ID0gdHJ1ZTsKLQl9Ci0KLQkvKiBDcmVhdGUgdGhlIG5ldyBmcmFtZWJ1 ZmZlciBkZXBlbmRpbmcgb25lIHdoYXQgd2UgaGF2ZSAqLwotCWlmIChzdXJmYWNlKQotCQlyZXQg PSB2bXdfa21zX25ld19mcmFtZWJ1ZmZlcl9zdXJmYWNlKGRldl9wcml2LCBmaWxlX3ByaXYsCi0J CQkJCQkgICAgICBzdXJmYWNlLCAmdmZiLCAmbW9kZV9jbWQsCi0JCQkJCQkgICAgICBpc19kbWFi dWZfcHJveHkpOwotCWVsc2UgaWYgKGJvKQotCQlyZXQgPSB2bXdfa21zX25ld19mcmFtZWJ1ZmZl cl9kbWFidWYoZGV2X3ByaXYsIGJvLCAmdmZiLAotCQkJCQkJICAgICAmbW9kZV9jbWQpOwotCWVs c2UKLQkJQlVHKCk7CisJdmZiID0gdm13X2ttc19uZXdfZnJhbWVidWZmZXIoZGV2X3ByaXYsIGJv LCBzdXJmYWNlLAorCQkJCSAgICAgICEoZGV2X3ByaXYtPmNhcGFiaWxpdGllcyAmIFNWR0FfQ0FQ XzNEKSwKKwkJCQkgICAgICAmbW9kZV9jbWQpOworCWlmIChJU19FUlIodmZiKSkgeworCQlyZXQg PSBQVFJfRVJSKHZmYik7CisJCWdvdG8gZXJyX291dDsKKyAJfQogCiBlcnJfb3V0OgogCS8qIHZt d191c2VyX2xvb2t1cF9oYW5kbGUgdGFrZXMgb25lIHJlZiBzbyBkb2VzIG5ld19mYiAqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmggYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaAppbmRleCBmOTQxZjkyLi4zMTFlZmZjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaApAQCAtMTE0LDcgKzExNCw2IEBAIHN0cnVjdCB2bXdf ZnJhbWVidWZmZXJfc3VyZmFjZSB7CiAJc3RydWN0IHZtd19zdXJmYWNlICpzdXJmYWNlOwogCXN0 cnVjdCB2bXdfZG1hX2J1ZmZlciAqYnVmZmVyOwogCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKLQlz dHJ1Y3QgZHJtX21hc3RlciAqbWFzdGVyOwogCWJvb2wgaXNfZG1hYnVmX3Byb3h5OyAgLyogdHJ1 ZSBpZiB0aGlzIGlzIHByb3h5IHN1cmZhY2UgZm9yIERNQSBidWYgKi8KIH07CiAKQEAgLTIzOCw3 ICsyMzcsMTIgQEAgaW50IHZtd19rbXNfcmVhZGJhY2soc3RydWN0IHZtd19wcml2YXRlICpkZXZf cHJpdiwKIAkJICAgICBzdHJ1Y3QgZHJtX3Ztd19mZW5jZV9yZXAgX191c2VyICp1c2VyX2ZlbmNl X3JlcCwKIAkJICAgICBzdHJ1Y3QgZHJtX3Ztd19yZWN0ICp2Y2xpcHMsCiAJCSAgICAgdWludDMy X3QgbnVtX2NsaXBzKTsKLQorc3RydWN0IHZtd19mcmFtZWJ1ZmZlciAqCit2bXdfa21zX25ld19m cmFtZWJ1ZmZlcihzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAorCQkJc3RydWN0IHZtd19k bWFfYnVmZmVyICpkbWFidWYsCisJCQlzdHJ1Y3Qgdm13X3N1cmZhY2UgKnN1cmZhY2UsCisJCQli b29sIG9ubHlfMmQsCisJCQljb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kICptb2RlX2NtZCk7 CiAKIC8qCiAgKiBMZWdhY3kgZGlzcGxheSB1bml0IGZ1bmN0aW9ucyAtIHZtd2dmeF9sZHUuYwot LSAKMi4xLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=