From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH 07/14] drm/vmwgfx: implement STDU plane update for BO backed fb Date: Wed, 5 Sep 2018 16:38:54 -0700 Message-ID: <20180905233901.2321-8-drawat@vmware.com> References: <20180905233901.2321-1-drawat@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EX13-EDG-OU-001.vmware.com (ex13-edg-ou-001.vmware.com [208.91.0.189]) by gabe.freedesktop.org (Postfix) with ESMTPS id 48D8C6E57A for ; Wed, 5 Sep 2018 23:43:33 +0000 (UTC) In-Reply-To: <20180905233901.2321-1-drawat@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, linux-graphics-maintainer@vmware.com, thellstrom@vmware.com, syeh@vmware.com Cc: Deepak Rawat , lukasz.spintzyk@displaylink.com List-Id: dri-devel@lists.freedesktop.org VXNpbmcgdGhlIG5ldyBpbnRlcmZhY2UgaW1wbGVtZW50IFNURFUgcGxhbmUgdXBkYXRlIGZvciBC TyBiYWNrZWQgZmIuCgpTaWduZWQtb2ZmLWJ5OiBEZWVwYWsgUmF3YXQgPGRyYXdhdEB2bXdhcmUu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oICB8ICAxNCArKwog ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jIHwgMjM1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyNDkgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfa21zLmgKaW5kZXggMGVjYzUyMzFiNjE3Li4xYzNkZDBlMTQ0MTQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oCkBAIC0xNzEsNiArMTcxLDIwIEBAIHN0 cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lX3N1cmZhY2UgewogCXN0cnVjdCB2bXdfdmFsaWRhdGlv bl9jdHggKmN0eDsKIH07CiAKKy8qKgorICogc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmVfYnVm ZmVyIC0gY2xvc3VyZSBzdHJ1Y3R1cmUgZm9yIGJ1ZmZlciBvYmplY3QKKyAqCisgKiBAYmFzZTog YmFzZSBjbG9zdXJlIHN0cnVjdHVyZS4KKyAqIEBmYl9sZWZ0OiB4MSBmb3IgZmIgZGFtYWdlIGJv dW5kaW5nIGJveC4KKyAqIEBmYl90b3A6IHkxIGZvciBmYiBkYW1hZ2UgYm91bmRpbmcgYm94Lgor ICogQGNwdV9ibGl0OiB0cnVlIGlmIG5lZWQgY3B1IGJsaXQuCisgKi8KK3N0cnVjdCB2bXdfZHVf dXBkYXRlX3BsYW5lX2J1ZmZlciB7CisJc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUgYmFzZTsK KwlpbnQgZmJfbGVmdCwgZmJfdG9wOworCWJvb2wgY3B1X2JsaXQ7Cit9OworCiAvKioKICAqIHN0 cnVjdCB2bXdfa21zX2RpcnR5IC0gY2xvc3VyZSBzdHJ1Y3R1cmUgZm9yIHRoZSB2bXdfa21zX2hl bHBlcl9kaXJ0eQogICogZnVuY3Rpb24uCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9zdGR1LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMK aW5kZXggYjUxMTViNGExNzg3Li44YzFiYTg3NDUxMmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9zdGR1LmMKQEAgLTEyNDQsNiArMTI0NCwyNDEgQEAgdm13X3N0ZHVfcHJpbWFyeV9wbGFu ZV9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXJldHVybiByZXQ7CiB9CiAK K3N0YXRpYyBpbnQgdm13X3N0ZHVfYm9fcHJlcGFyZShzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFu ZSAqdXBkYXRlKQoreworCXN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lX2J1ZmZlciAqYm9fdXBk YXRlOworCXN0cnVjdCB2bXdfZnJhbWVidWZmZXJfYm8gKnZmYmJvOworCisJYm9fdXBkYXRlID0g Y29udGFpbmVyX29mKHVwZGF0ZSwgdHlwZW9mKCpib191cGRhdGUpLCBiYXNlKTsKKwl2ZmJibyA9 IGNvbnRhaW5lcl9vZih1cGRhdGUtPnZmYiwgdHlwZW9mKCp2ZmJibyksIGJhc2UpOworCisJcmV0 dXJuIHZtd19rbXNfaGVscGVyX2J1ZmZlcl9wcmVwYXJlKHVwZGF0ZS0+ZGV2X3ByaXYsIHZmYmJv LT5idWZmZXIsCisJCQkJCSAgICAgZmFsc2UsIGZhbHNlLCBib191cGRhdGUtPmNwdV9ibGl0KTsK K30KKworc3RhdGljIHVpbnQzMl90IHZtd19zdGR1X2JvX2ZpZm9fc2l6ZShzdHJ1Y3Qgdm13X2R1 X3VwZGF0ZV9wbGFuZSAqdXBkYXRlLAorCQkJCSAgICAgIHVpbnQzMl90IG51bV9oaXRzKQorewor CXJldHVybiBzaXplb2Yoc3RydWN0IHZtd19zdGR1X2RtYSkgKyBzaXplb2YoU1ZHQTNkQ29weUJv eCkgKiBudW1faGl0cyArCisJCXNpemVvZihTVkdBM2RDbWRTdXJmYWNlRE1BU3VmZml4KSArCisJ CXNpemVvZihzdHJ1Y3Qgdm13X3N0ZHVfdXBkYXRlKTsKK30KKworc3RhdGljIHVpbnQzMl90IHZt d19zdGR1X2JvX2ZpZm9fc2l6ZV9jcHUoc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUgKnVwZGF0 ZSwKKwkJCQkJICB1aW50MzJfdCBudW1faGl0cykKK3sKKwlyZXR1cm4gc2l6ZW9mKHN0cnVjdCB2 bXdfc3RkdV91cGRhdGVfZ2JfaW1hZ2UpICsKKwkJc2l6ZW9mKHN0cnVjdCB2bXdfc3RkdV91cGRh dGUpOworfQorCitzdGF0aWMgdWludDMyX3Qgdm13X3N0ZHVfYm9fcG9wdWxhdGVfZG1hKHN0cnVj dCB2bXdfZHVfdXBkYXRlX3BsYW5lICAqdXBkYXRlLAorCQkJCQkgdm9pZCAqY21kLCB1aW50MzJf dCBudW1faGl0cykKK3sKKwlzdHJ1Y3Qgdm13X3NjcmVlbl90YXJnZXRfZGlzcGxheV91bml0ICpz dGR1OworCXN0cnVjdCB2bXdfZnJhbWVidWZmZXJfYm8gKnZmYmJvOworCXN0cnVjdCB2bXdfc3Rk dV9kbWEgKmNtZF9kbWEgPSBjbWQ7CisKKwlzdGR1ID0gY29udGFpbmVyX29mKHVwZGF0ZS0+ZHUs IHR5cGVvZigqc3RkdSksIGJhc2UpOworCXZmYmJvID0gY29udGFpbmVyX29mKHVwZGF0ZS0+dmZi LCB0eXBlb2YoKnZmYmJvKSwgYmFzZSk7CisKKwljbWRfZG1hLT5oZWFkZXIuaWQgPSBTVkdBXzNE X0NNRF9TVVJGQUNFX0RNQTsKKwljbWRfZG1hLT5oZWFkZXIuc2l6ZSA9IHNpemVvZihjbWRfZG1h LT5ib2R5KSArCisJCXNpemVvZihzdHJ1Y3QgU1ZHQTNkQ29weUJveCkgKiBudW1faGl0cyArCisJ CXNpemVvZihTVkdBM2RDbWRTdXJmYWNlRE1BU3VmZml4KTsKKwl2bXdfYm9fZ2V0X2d1ZXN0X3B0 cigmdmZiYm8tPmJ1ZmZlci0+YmFzZSwgJmNtZF9kbWEtPmJvZHkuZ3Vlc3QucHRyKTsKKwljbWRf ZG1hLT5ib2R5Lmd1ZXN0LnBpdGNoID0gdXBkYXRlLT52ZmItPmJhc2UucGl0Y2hlc1swXTsKKwlj bWRfZG1hLT5ib2R5Lmhvc3Quc2lkID0gc3RkdS0+ZGlzcGxheV9zcmYtPnJlcy5pZDsKKwljbWRf ZG1hLT5ib2R5Lmhvc3QuZmFjZSA9IDA7CisJY21kX2RtYS0+Ym9keS5ob3N0Lm1pcG1hcCA9IDA7 CisJY21kX2RtYS0+Ym9keS50cmFuc2ZlciA9IFNWR0EzRF9XUklURV9IT1NUX1ZSQU07CisKKwly ZXR1cm4gc2l6ZW9mKCpjbWRfZG1hKTsKK30KKworc3RhdGljIHVpbnQzMl90IHZtd19zdGR1X2Jv X3BvcHVsYXRlX2NsaXAoc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUgICp1cGRhdGUsCisJCQkJ CSAgdm9pZCAqY21kLCBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAsCisJCQkJCSAgdWludDMyX3QgZmJf eCwgdWludDMyX3QgZmJfeSkKK3sKKwlzdHJ1Y3QgU1ZHQTNkQ29weUJveCAqYm94ID0gY21kOwor CisJYm94LT5zcmN4ID0gZmJfeDsKKwlib3gtPnNyY3kgPSBmYl95OworCWJveC0+c3JjeiA9IDA7 CisJYm94LT54ID0gY2xpcC0+eDE7CisJYm94LT55ID0gY2xpcC0+eTE7CisJYm94LT56ID0gMDsK Kwlib3gtPncgPSBkcm1fcmVjdF93aWR0aChjbGlwKTsKKwlib3gtPmggPSBkcm1fcmVjdF9oZWln aHQoY2xpcCk7CisJYm94LT5kID0gMTsKKworCXJldHVybiBzaXplb2YoKmJveCk7Cit9CisKK3N0 YXRpYyB1aW50MzJfdCB2bXdfc3R1ZF9ib19wb3B1bGF0ZV91cGRhdGUoc3RydWN0IHZtd19kdV91 cGRhdGVfcGxhbmUgICp1cGRhdGUsCisJCQkJCSAgICB2b2lkICpjbWQsIHN0cnVjdCBkcm1fcmVj dCAqYmIpCit7CisJc3RydWN0IHZtd19zY3JlZW5fdGFyZ2V0X2Rpc3BsYXlfdW5pdCAqc3RkdTsK KwlzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVyX2JvICp2ZmJibzsKKwlTVkdBM2RDbWRTdXJmYWNlRE1B U3VmZml4ICpzdWZmaXggPSBjbWQ7CisKKwlzdGR1ID0gY29udGFpbmVyX29mKHVwZGF0ZS0+ZHUs IHR5cGVvZigqc3RkdSksIGJhc2UpOworCXZmYmJvID0gY29udGFpbmVyX29mKHVwZGF0ZS0+dmZi LCB0eXBlb2YoKnZmYmJvKSwgYmFzZSk7CisKKwlzdWZmaXgtPnN1ZmZpeFNpemUgPSBzaXplb2Yo KnN1ZmZpeCk7CisJc3VmZml4LT5tYXhpbXVtT2Zmc2V0ID0gdmZiYm8tPmJ1ZmZlci0+YmFzZS5u dW1fcGFnZXMgKiBQQUdFX1NJWkU7CisKKwl2bXdfc3RkdV9wb3B1bGF0ZV91cGRhdGUoJnN1ZmZp eFsxXSwgc3RkdS0+YmFzZS51bml0LCBiYi0+eDEsIGJiLT54MiwKKwkJCQkgYmItPnkxLCBiYi0+ eTIpOworCisJcmV0dXJuIHNpemVvZigqc3VmZml4KSArIHNpemVvZihzdHJ1Y3Qgdm13X3N0ZHVf dXBkYXRlKTsKK30KKworc3RhdGljIHVpbnQzMl90IHZtd19zdGR1X2JvX3ByZV9jbGlwX2NwdShz dHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZSAgKnVwZGF0ZSwKKwkJCQkJIHZvaWQgKmNtZCwgdWlu dDMyX3QgbnVtX2hpdHMpCit7CisJc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmVfYnVmZmVyICpi b191cGRhdGUgPQorCQljb250YWluZXJfb2YodXBkYXRlLCB0eXBlb2YoKmJvX3VwZGF0ZSksIGJh c2UpOworCisJYm9fdXBkYXRlLT5mYl9sZWZ0ID0gSU5UX01BWDsKKwlib191cGRhdGUtPmZiX3Rv cCA9IElOVF9NQVg7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHVpbnQzMl90IHZtd19zdGR1 X2JvX2NsaXBfY3B1KHN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lICAqdXBkYXRlLAorCQkJCSAg ICAgdm9pZCAqY21kLCBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAsCisJCQkJICAgICB1aW50MzJfdCBm Yl94LCB1aW50MzJfdCBmYl95KQoreworCXN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lX2J1ZmZl ciAqYm9fdXBkYXRlID0KKwkJY29udGFpbmVyX29mKHVwZGF0ZSwgdHlwZW9mKCpib191cGRhdGUp LCBiYXNlKTsKKworCWJvX3VwZGF0ZS0+ZmJfbGVmdCA9IG1pbl90KGludCwgYm9fdXBkYXRlLT5m Yl9sZWZ0LCBmYl94KTsKKwlib191cGRhdGUtPmZiX3RvcCA9IG1pbl90KGludCwgYm9fdXBkYXRl LT5mYl90b3AsIGZiX3kpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1aW50MzJfdAordm13 X3N0dWRfYm9fcG9wdWxhdGVfdXBkYXRlX2NwdShzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZSAg KnVwZGF0ZSwgdm9pZCAqY21kLAorCQkJCXN0cnVjdCBkcm1fcmVjdCAqYmIpCit7CisJc3RydWN0 IHZtd19kdV91cGRhdGVfcGxhbmVfYnVmZmVyICpib191cGRhdGU7CisJc3RydWN0IHZtd19zY3Jl ZW5fdGFyZ2V0X2Rpc3BsYXlfdW5pdCAqc3RkdTsKKwlzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVyX2Jv ICp2ZmJibzsKKwlzdHJ1Y3Qgdm13X2RpZmZfY3B5IGRpZmYgPSBWTVdfQ1BVX0JMSVRfRElGRl9J TklUSUFMSVpFUigwKTsKKwlzdHJ1Y3Qgdm13X3N0ZHVfdXBkYXRlX2diX2ltYWdlICpjbWRfaW1n ID0gY21kOworCXN0cnVjdCB2bXdfc3RkdV91cGRhdGUgKmNtZF91cGRhdGU7CisJc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpzcmNfYm8sICpkc3RfYm87CisJdTMyIHNyY19vZmZzZXQsIGRzdF9v ZmZzZXQ7CisJczMyIHNyY19waXRjaCwgZHN0X3BpdGNoOworCXMzMiB3aWR0aCwgaGVpZ2h0Owor CisJYm9fdXBkYXRlID0gY29udGFpbmVyX29mKHVwZGF0ZSwgdHlwZW9mKCpib191cGRhdGUpLCBi YXNlKTsKKwlzdGR1ID0gY29udGFpbmVyX29mKHVwZGF0ZS0+ZHUsIHR5cGVvZigqc3RkdSksIGJh c2UpOworCXZmYmJvID0gY29udGFpbmVyX29mKHVwZGF0ZS0+dmZiLCB0eXBlb2YoKnZmYmJvKSwg YmFzZSk7CisKKwl3aWR0aCA9IGJiLT54MiAtIGJiLT54MTsKKwloZWlnaHQgPSBiYi0+eTIgLSBi Yi0+eTE7CisKKwlkaWZmLmNwcCA9IHN0ZHUtPmNwcDsKKworCWRzdF9ibyA9ICZzdGR1LT5kaXNw bGF5X3NyZi0+cmVzLmJhY2t1cC0+YmFzZTsKKwlkc3RfcGl0Y2ggPSBzdGR1LT5kaXNwbGF5X3Ny Zi0+YmFzZV9zaXplLndpZHRoICogc3RkdS0+Y3BwOworCWRzdF9vZmZzZXQgPSBiYi0+eTEgKiBk c3RfcGl0Y2ggKyBiYi0+eDEgKiBzdGR1LT5jcHA7CisKKwlzcmNfYm8gPSAmdmZiYm8tPmJ1ZmZl ci0+YmFzZTsKKwlzcmNfcGl0Y2ggPSB1cGRhdGUtPnZmYi0+YmFzZS5waXRjaGVzWzBdOworCXNy Y19vZmZzZXQgPSBib191cGRhdGUtPmZiX3RvcCAqIHNyY19waXRjaCArIGJvX3VwZGF0ZS0+ZmJf bGVmdCAqCisJCXN0ZHUtPmNwcDsKKworCSh2b2lkKSB2bXdfYm9fY3B1X2JsaXQoZHN0X2JvLCBk c3Rfb2Zmc2V0LCBkc3RfcGl0Y2gsIHNyY19ibywKKwkJCSAgICAgICBzcmNfb2Zmc2V0LCBzcmNf cGl0Y2gsIHdpZHRoICogc3RkdS0+Y3BwLCBoZWlnaHQsCisJCQkgICAgICAgJmRpZmYpOworCisJ aWYgKGRybV9yZWN0X3Zpc2libGUoJmRpZmYucmVjdCkpIHsKKwkJU1ZHQTNkQm94ICpib3ggPSAm Y21kX2ltZy0+Ym9keS5ib3g7CisKKwkJY21kX2ltZy0+aGVhZGVyLmlkID0gU1ZHQV8zRF9DTURf VVBEQVRFX0dCX0lNQUdFOworCQljbWRfaW1nLT5oZWFkZXIuc2l6ZSA9IHNpemVvZihjbWRfaW1n LT5ib2R5KTsKKwkJY21kX2ltZy0+Ym9keS5pbWFnZS5zaWQgPSBzdGR1LT5kaXNwbGF5X3NyZi0+ cmVzLmlkOworCQljbWRfaW1nLT5ib2R5LmltYWdlLmZhY2UgPSAwOworCQljbWRfaW1nLT5ib2R5 LmltYWdlLm1pcG1hcCA9IDA7CisKKwkJYm94LT54ID0gZGlmZi5yZWN0LngxOworCQlib3gtPnkg PSBkaWZmLnJlY3QueTE7CisJCWJveC0+eiA9IDA7CisJCWJveC0+dyA9IGRybV9yZWN0X3dpZHRo KCZkaWZmLnJlY3QpOworCQlib3gtPmggPSBkcm1fcmVjdF9oZWlnaHQoJmRpZmYucmVjdCk7CisJ CWJveC0+ZCA9IDE7CisKKwkJY21kX3VwZGF0ZSA9IChzdHJ1Y3Qgdm13X3N0ZHVfdXBkYXRlICop JmNtZF9pbWdbMV07CisJCXZtd19zdGR1X3BvcHVsYXRlX3VwZGF0ZShjbWRfdXBkYXRlLCBzdGR1 LT5iYXNlLnVuaXQsCisJCQkJCSBkaWZmLnJlY3QueDEsIGRpZmYucmVjdC54MiwKKwkJCQkJIGRp ZmYucmVjdC55MSwgZGlmZi5yZWN0LnkyKTsKKworCQlyZXR1cm4gc2l6ZW9mKCpjbWRfaW1nKSAr IHNpemVvZigqY21kX3VwZGF0ZSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lk IHZtd19zdGR1X2JvX2ZpbmlzaChzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZSAqdXBkYXRlKQor eworCXN0cnVjdCB2bXdfZnJhbWVidWZmZXJfYm8gKnZmYmJvID0gY29udGFpbmVyX29mKHVwZGF0 ZS0+dmZiLAorCQkJCQkJCXR5cGVvZigqdmZiYm8pLCBiYXNlKTsKKworCXZtd19rbXNfaGVscGVy X2J1ZmZlcl9maW5pc2godXBkYXRlLT5kZXZfcHJpdiwgTlVMTCwgdmZiYm8tPmJ1ZmZlciwKKwkJ CQkgICAgIE5VTEwsIE5VTEwpOworfQorCisvKioKKyAqIHZtd19zdGR1X3BsYW5lX3VwZGF0ZV9i byAtIHVwZGF0ZSBkaXNwbGF5IHVuaXQgZm9yIGJvIGJhY2tlZCBmYgorICogQGRldl9wcml2OiBk ZXZpY2UgcHJpdmF0ZQorICogQHBsYW5lOiBwbGFuZSBzdGF0ZQorICogQG9sZF9zdGF0ZTogb2xk IHBsYW5lIHN0YXRlCisgKiBAdmZiOiBmcmFtZWJ1ZmZlciB3aGljaCBpcyBibGl0dGVkIHRvIGRp c3BsYXkgdW5pdAorICoKKyAqIFJFVFVSTlM6CisgKgorICogMCBvbiBzdWNjZXNzIG9yIGEgbmVn YXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitzdGF0aWMgaW50IHZtd19zdGR1X3Bs YW5lX3VwZGF0ZV9ibyhzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSAgICBzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xk X3N0YXRlLAorCQkJCSAgICBzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVyICp2ZmIpCit7CisJc3RydWN0 IHZtd19kdV91cGRhdGVfcGxhbmVfYnVmZmVyIGJvX3VwZGF0ZTsKKworCW1lbXNldCgmYm9fdXBk YXRlLCAwLCBzaXplb2Yoc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmVfYnVmZmVyKSk7CisJYm9f dXBkYXRlLmJhc2UucGxhbmUgPSBwbGFuZTsKKwlib191cGRhdGUuYmFzZS5vbGRfc3RhdGUgPSBv bGRfc3RhdGU7CisJYm9fdXBkYXRlLmJhc2UuZGV2X3ByaXYgPSBkZXZfcHJpdjsKKwlib191cGRh dGUuYmFzZS5kdSA9IHZtd19jcnRjX3RvX2R1KHBsYW5lLT5zdGF0ZS0+Y3J0Yyk7CisJYm9fdXBk YXRlLmJhc2UudmZiID0gdmZiOworCisJYm9fdXBkYXRlLmNwdV9ibGl0ID0gIShkZXZfcHJpdi0+ Y2FwYWJpbGl0aWVzICYgU1ZHQV9DQVBfM0QpOworCisJYm9fdXBkYXRlLmJhc2UucHJlcGFyZSA9 IHZtd19zdGR1X2JvX3ByZXBhcmU7CisKKwlpZiAoYm9fdXBkYXRlLmNwdV9ibGl0KSB7CisJCWJv X3VwZGF0ZS5iYXNlLmNhbGNfZmlmb19zaXplID0gdm13X3N0ZHVfYm9fZmlmb19zaXplX2NwdTsK KwkJYm9fdXBkYXRlLmJhc2UucHJlX2NsaXAgPSB2bXdfc3RkdV9ib19wcmVfY2xpcF9jcHU7CisJ CWJvX3VwZGF0ZS5iYXNlLmNsaXAgPSB2bXdfc3RkdV9ib19jbGlwX2NwdTsKKwkJYm9fdXBkYXRl LmJhc2UucG9zdF9jbGlwID0gdm13X3N0dWRfYm9fcG9wdWxhdGVfdXBkYXRlX2NwdTsKKwl9IGVs c2UgeworCQlib191cGRhdGUuYmFzZS5jYWxjX2ZpZm9fc2l6ZSA9IHZtd19zdGR1X2JvX2ZpZm9f c2l6ZTsKKwkJYm9fdXBkYXRlLmJhc2UucHJlX2NsaXAgPSB2bXdfc3RkdV9ib19wb3B1bGF0ZV9k bWE7CisJCWJvX3VwZGF0ZS5iYXNlLmNsaXAgPSB2bXdfc3RkdV9ib19wb3B1bGF0ZV9jbGlwOwor CQlib191cGRhdGUuYmFzZS5wb3N0X2NsaXAgPSB2bXdfc3R1ZF9ib19wb3B1bGF0ZV91cGRhdGU7 CisJfQorCisJYm9fdXBkYXRlLmJhc2UuZmluaXNoID0gdm13X3N0ZHVfYm9fZmluaXNoOworCS8q IE5vdGhpbmcgc3BlY2lhbCB0byBkbyBmb3IgcmV2ZXJ0ICovCisJYm9fdXBkYXRlLmJhc2UucmV2 ZXJ0ID0gdm13X3N0ZHVfYm9fZmluaXNoOworCisJcmV0dXJuIHZtd19kdV9oZWxwZXJfcGxhbmVf dXBkYXRlKCZib191cGRhdGUuYmFzZSk7Cit9CisKIHN0YXRpYyBpbnQgdm13X3N0ZHVfc3VyZmFj ZV9wcmVwYXJlKHN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lICp1cGRhdGUpCiB7CiAJc3RydWN0 IHZtd19kdV91cGRhdGVfcGxhbmVfc3VyZmFjZSAqc3JmX3VwZGF0ZTsKLS0gCjIuMTcuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==