From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH 12/18] drm/vmwgfx: Implement SOU plane update for surface backed fb Date: Thu, 27 Sep 2018 17:30:14 -0700 Message-ID: <20180928003020.1737-12-drawat@vmware.com> References: <20180928003020.1737-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-002.vmware.com (ex13-edg-ou-002.vmware.com [208.91.0.190]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8014D6E632 for ; Fri, 28 Sep 2018 00:30:57 +0000 (UTC) In-Reply-To: <20180928003020.1737-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 List-Id: dri-devel@lists.freedesktop.org VXNpbmcgdGhlIG5ldyBpbnRlcmZhY2UgaW1wbGVtZW50IFNPVSBwbGFuZSB1cGRhdGUgZm9yIHN1 cmZhY2UgYmFja2VkCmZiLgoKU2lnbmVkLW9mZi1ieTogRGVlcGFrIFJhd2F0IDxkcmF3YXRAdm13 YXJlLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaCAgfCAgIDMg KwogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2Nybi5jIHwgMTg1ICsrKysrKysrKysr KysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxODggaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmgKaW5kZXggZWQ1YThmNjJiYjJiLi40YzI1MTc2N2Qw MTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oCkBAIC0xNDcsMTAgKzE0NywxMyBA QCBzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZSB7CiAgKiBzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9w bGFuZV9zdXJmYWNlIC0gY2xvc3VyZSBzdHJ1Y3R1cmUgZm9yIHN1cmZhY2UKICAqIEBiYXNlOiBi YXNlIGNsb3N1cmUgc3RydWN0dXJlLgogICogQGN0eDogdmFsaWRhdGlvbiBjb250ZXh0LgorICog QGNtZF9zdGFydDogRklGTyBjb21tYW5kIHN0YXJ0IGFkZHJlc3MgKHVzZWQgYnkgU09VIG9ubHkp LgogICovCiBzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZV9zdXJmYWNlIHsKIAlzdHJ1Y3Qgdm13 X2R1X3VwZGF0ZV9wbGFuZSBiYXNlOwogCXN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jdHggKmN0eDsK KwkvKiBUaGlzIG1lbWJlciBpcyB0byBoYW5kbGUgc3BlY2lhbCBjYXNlIFNPVSBzdXJmYWNlIHVw ZGF0ZSAqLworCXZvaWQgKmNtZF9zdGFydDsKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2Nybi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfc2Nybi5jCmluZGV4IGFkMGRlN2YwY2Q2MC4uOWU1ZDQ4ZDAzZGQ0IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zY3JuLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfc2Nybi5jCkBAIC00OTksNiArNDk5LDE5MSBAQCB2bXdfc291X3By aW1hcnlfcGxhbmVfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlyZXR1cm4g dm13X2JvX3Bpbl9pbl92cmFtKGRldl9wcml2LCB2cHMtPmJvLCB0cnVlKTsKIH0KIAorc3RhdGlj IGludCB2bXdfc291X3N1cmZhY2VfcHJlcGFyZShzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZSAq dXBkYXRlKQoreworCXN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lX3N1cmZhY2UgKnNyZl91cGRh dGU7CisJc3RydWN0IHZtd19mcmFtZWJ1ZmZlcl9zdXJmYWNlICp2ZmJzOworCisJc3JmX3VwZGF0 ZSA9IGNvbnRhaW5lcl9vZih1cGRhdGUsIHR5cGVvZigqc3JmX3VwZGF0ZSksIGJhc2UpOworCXZm YnMgPSBjb250YWluZXJfb2YodXBkYXRlLT52ZmIsIHR5cGVvZigqdmZicyksIGJhc2UpOworCisJ cmV0dXJuIHZtd19rbXNfaGVscGVyX3Jlc291cmNlX3ByZXBhcmUoJnZmYnMtPnN1cmZhY2UtPnJl cywgdHJ1ZSwKKwkJCQkJICAgICAgIHNyZl91cGRhdGUtPmN0eCk7Cit9CisKK3N0YXRpYyB1aW50 MzJfdCB2bXdfc291X3N1cmZhY2VfZmlmb19zaXplKHN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5l ICp1cGRhdGUsCisJCQkJCSAgdWludDMyX3QgbnVtX2hpdHMpCit7CisJcmV0dXJuIHNpemVvZihz dHJ1Y3Qgdm13X2ttc19zb3VfZGlydHlfY21kKSArIHNpemVvZihTVkdBU2lnbmVkUmVjdCkgKgor CQludW1faGl0czsKK30KKworc3RhdGljIHVpbnQzMl90IHZtd19zb3Vfc3VyZmFjZV9wb3N0X3By ZXBhcmUoc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUgKnVwZGF0ZSwKKwkJCQkJICAgICB2b2lk ICpjbWQpCit7CisJc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmVfc3VyZmFjZSAqc3JmX3VwZGF0 ZTsKKworCXNyZl91cGRhdGUgPSBjb250YWluZXJfb2YodXBkYXRlLCB0eXBlb2YoKnNyZl91cGRh dGUpLCBiYXNlKTsKKworCS8qCisJICogU09VIFNWR0FfM0RfQ01EX0JMSVRfU1VSRkFDRV9UT19T Q1JFRU4gaXMgc3BlY2lhbCBpbiB0aGUgc2Vuc2UgdGhhdAorCSAqIGl0IGJvdW5kaW5nIGJveCBp cyBmaWxsZWQgYmVmb3JlIGl0ZXJhdGluZyBvdmVyIGFsbCB0aGUgY2xpcHMuIFNvCisJICogc3Rv cmUgdGhlIEZJRk8gc3RhcnQgYWRkcmVzcyBhbmQgcmV2aXNpdCB0byBmaWxsIHRoZSBkZXRhaWxz LgorCSAqLworCXNyZl91cGRhdGUtPmNtZF9zdGFydCA9IGNtZDsKKworCXJldHVybiAwOworfQor CitzdGF0aWMgdWludDMyX3Qgdm13X3NvdV9zdXJmYWNlX3ByZV9jbGlwKHN0cnVjdCB2bXdfZHVf dXBkYXRlX3BsYW5lICp1cGRhdGUsCisJCQkJCSB2b2lkICpjbWQsIHVpbnQzMl90IG51bV9oaXRz KQoreworCXN0cnVjdCB2bXdfa21zX3NvdV9kaXJ0eV9jbWQgKmJsaXQgPSBjbWQ7CisJc3RydWN0 IHZtd19mcmFtZWJ1ZmZlcl9zdXJmYWNlICp2ZmJzOworCisJdmZicyA9IGNvbnRhaW5lcl9vZih1 cGRhdGUtPnZmYiwgdHlwZW9mKCp2ZmJzKSwgYmFzZSk7CisKKwlibGl0LT5oZWFkZXIuaWQgPSBT VkdBXzNEX0NNRF9CTElUX1NVUkZBQ0VfVE9fU0NSRUVOOworCWJsaXQtPmhlYWRlci5zaXplID0g c2l6ZW9mKGJsaXQtPmJvZHkpICsgc2l6ZW9mKFNWR0FTaWduZWRSZWN0KSAqCisJCW51bV9oaXRz OworCisJYmxpdC0+Ym9keS5zcmNJbWFnZS5zaWQgPSB2ZmJzLT5zdXJmYWNlLT5yZXMuaWQ7CisJ YmxpdC0+Ym9keS5kZXN0U2NyZWVuSWQgPSB1cGRhdGUtPmR1LT51bml0OworCisJLyogVXBkYXRl IHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGJvdW5kaW5nIGJveCBsYXRlciBpbiBwb3N0X2Ns aXAgKi8KKwlibGl0LT5ib2R5LnNyY1JlY3QubGVmdCA9IDA7CisJYmxpdC0+Ym9keS5zcmNSZWN0 LnRvcCA9IDA7CisJYmxpdC0+Ym9keS5zcmNSZWN0LnJpZ2h0ID0gMDsKKwlibGl0LT5ib2R5LnNy Y1JlY3QuYm90dG9tID0gMDsKKworCWJsaXQtPmJvZHkuZGVzdFJlY3QubGVmdCA9IDA7CisJYmxp dC0+Ym9keS5kZXN0UmVjdC50b3AgPSAwOworCWJsaXQtPmJvZHkuZGVzdFJlY3QucmlnaHQgPSAw OworCWJsaXQtPmJvZHkuZGVzdFJlY3QuYm90dG9tID0gMDsKKworCXJldHVybiBzaXplb2YoKmJs aXQpOworfQorCitzdGF0aWMgdWludDMyX3Qgdm13X3NvdV9zdXJmYWNlX2NsaXBfcmVjdChzdHJ1 Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZSAqdXBkYXRlLAorCQkJCQkgIHZvaWQgKmNtZCwgc3RydWN0 IGRybV9yZWN0ICpjbGlwLAorCQkJCQkgIHVpbnQzMl90IHNyY194LCB1aW50MzJfdCBzcmNfeSkK K3sKKwlTVkdBU2lnbmVkUmVjdCAqcmVjdCA9IGNtZDsKKworCS8qCisJICogcmVjdHMgYXJlIHJl bGF0aXZlIHRvIGRlc3QgYm91bmRpbmcgYm94IHJlY3Qgb24gc2NyZWVuIG9iamVjdCwgc28KKwkg KiB0cmFuc2xhdGUgdG8gaXQgbGF0ZXIgaW4gcG9zdF9jbGlwCisJICovCisJcmVjdC0+bGVmdCA9 IGNsaXAtPngxOworCXJlY3QtPnRvcCA9IGNsaXAtPnkxOworCXJlY3QtPnJpZ2h0ID0gY2xpcC0+ eDI7CisJcmVjdC0+Ym90dG9tID0gY2xpcC0+eTI7CisKKwlyZXR1cm4gc2l6ZW9mKCpyZWN0KTsK K30KKworc3RhdGljIHVpbnQzMl90IHZtd19zb3Vfc3VyZmFjZV9wb3N0X2NsaXAoc3RydWN0IHZt d19kdV91cGRhdGVfcGxhbmUgKnVwZGF0ZSwKKwkJCQkJICB2b2lkICpjbWQsIHN0cnVjdCBkcm1f cmVjdCAqYmIpCit7CisJc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmVfc3VyZmFjZSAqc3JmX3Vw ZGF0ZTsKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSA9IHVwZGF0ZS0+cGxhbmUtPnN0 YXRlOworCXN0cnVjdCBkcm1fcmVjdCBzcmNfYmI7CisJc3RydWN0IHZtd19rbXNfc291X2RpcnR5 X2NtZCAqYmxpdDsKKwlTVkdBU2lnbmVkUmVjdCAqcmVjdDsKKwl1aW50MzJfdCBudW1faGl0czsK KwlpbnQgdHJhbnNsYXRlX3NyY194OworCWludCB0cmFuc2xhdGVfc3JjX3k7CisJaW50IGk7CisK KwlzcmZfdXBkYXRlID0gY29udGFpbmVyX29mKHVwZGF0ZSwgdHlwZW9mKCpzcmZfdXBkYXRlKSwg YmFzZSk7CisKKwlibGl0ID0gc3JmX3VwZGF0ZS0+Y21kX3N0YXJ0OworCXJlY3QgPSAoU1ZHQVNp Z25lZFJlY3QgKikmYmxpdFsxXTsKKworCW51bV9oaXRzID0gKGJsaXQtPmhlYWRlci5zaXplIC0g c2l6ZW9mKGJsaXQtPmJvZHkpKS8KKwkJc2l6ZW9mKFNWR0FTaWduZWRSZWN0KTsKKworCXNyY19i YiA9ICpiYjsKKworCS8qIFRvIHRyYW5zbGF0ZSBiYiBiYWNrIHRvIGZiIHNyYyBjb29yZCAqLwor CXRyYW5zbGF0ZV9zcmNfeCA9IChzdGF0ZS0+c3JjX3ggPj4gMTYpIC0gc3RhdGUtPmNydGNfeDsK Kwl0cmFuc2xhdGVfc3JjX3kgPSAoc3RhdGUtPnNyY195ID4+IDE2KSAtIHN0YXRlLT5jcnRjX3k7 CisKKwlkcm1fcmVjdF90cmFuc2xhdGUoJnNyY19iYiwgdHJhbnNsYXRlX3NyY194LCB0cmFuc2xh dGVfc3JjX3kpOworCisJYmxpdC0+Ym9keS5zcmNSZWN0LmxlZnQgPSBzcmNfYmIueDE7CisJYmxp dC0+Ym9keS5zcmNSZWN0LnRvcCA9IHNyY19iYi55MTsKKwlibGl0LT5ib2R5LnNyY1JlY3Qucmln aHQgPSBzcmNfYmIueDI7CisJYmxpdC0+Ym9keS5zcmNSZWN0LmJvdHRvbSA9IHNyY19iYi55MjsK KworCWJsaXQtPmJvZHkuZGVzdFJlY3QubGVmdCA9IGJiLT54MTsKKwlibGl0LT5ib2R5LmRlc3RS ZWN0LnRvcCA9IGJiLT55MTsKKwlibGl0LT5ib2R5LmRlc3RSZWN0LnJpZ2h0ID0gYmItPngyOwor CWJsaXQtPmJvZHkuZGVzdFJlY3QuYm90dG9tID0gYmItPnkyOworCisJLyogcmVjdHMgYXJlIHJl bGF0aXZlIHRvIGRlc3QgYmIgcmVjdCAqLworCWZvciAoaSA9IDA7IGkgPCBudW1faGl0czsgaSsr KSB7CisJCXJlY3QtPmxlZnQgLT0gYmItPngxOworCQlyZWN0LT50b3AgLT0gYmItPnkxOworCQly ZWN0LT5yaWdodCAtPSBiYi0+eDE7CisJCXJlY3QtPmJvdHRvbSAtPSBiYi0+eTE7CisJCXJlY3Qr KzsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgdm13X3NvdV9zdXJmYWNlX2Zp bmlzaChzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZSAqdXBkYXRlKQoreworCXN0cnVjdCB2bXdf ZHVfdXBkYXRlX3BsYW5lX3N1cmZhY2UgKnNyZl91cGRhdGUgPQorCQljb250YWluZXJfb2YodXBk YXRlLCB0eXBlb2YoKnNyZl91cGRhdGUpLCBiYXNlKTsKKworCXZtd19rbXNfaGVscGVyX3Jlc291 cmNlX2ZpbmlzaChzcmZfdXBkYXRlLT5jdHgsIHVwZGF0ZS0+b3V0X2ZlbmNlKTsKK30KKworLyoq CisgKiB2bXdfc291X3BsYW5lX3VwZGF0ZV9zdXJmYWNlIC0gVXBkYXRlIGRpc3BsYXkgdW5pdCBm b3Igc3VyZmFjZSBiYWNrZWQgZmIuCisgKiBAZGV2X3ByaXY6IERldmljZSBwcml2YXRlLgorICog QHBsYW5lOiBQbGFuZSBzdGF0ZS4KKyAqIEBvbGRfc3RhdGU6IE9sZCBwbGFuZSBzdGF0ZS4KKyAq IEB2ZmI6IEZyYW1lYnVmZmVyIHdoaWNoIGlzIGJsaXR0ZWQgdG8gZGlzcGxheSB1bml0CisgKiBA b3V0X2ZlbmNlOiBJZiBub24tTlVMTCwgd2lsbCByZXR1cm4gYSByZWYtY291bnRlZCBwb2ludGVy IHRvIHZtd19mZW5jZV9vYmouCisgKiAgICAgICAgICAgICBUaGUgcmV0dXJuZWQgZmVuY2UgcG9p bnRlciBtYXkgYmUgTlVMTCBpbiB3aGljaCBjYXNlIHRoZSBkZXZpY2UKKyAqICAgICAgICAgICAg IGhhcyBhbHJlYWR5IHN5bmNocm9uaXplZC4KKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBv ciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworc3RhdGljIGludCB2bXdf c291X3BsYW5lX3VwZGF0ZV9zdXJmYWNlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCisJ CQkJCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpvbGRfc3RhdGUsCisJCQkJCXN0cnVjdCB2bXdfZnJhbWVidWZmZXIgKnZmYiwKKwkJCQkJc3Ry dWN0IHZtd19mZW5jZV9vYmogKipvdXRfZmVuY2UpCit7CisJc3RydWN0IHZtd19kdV91cGRhdGVf cGxhbmVfc3VyZmFjZSBzcmZfdXBkYXRlOworCXN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jdHggY3R4 OworCisJbWVtc2V0KCZzcmZfdXBkYXRlLCAwLCBzaXplb2Yoc3RydWN0IHZtd19kdV91cGRhdGVf cGxhbmVfc3VyZmFjZSkpOworCXNyZl91cGRhdGUuYmFzZS5wbGFuZSA9IHBsYW5lOworCXNyZl91 cGRhdGUuYmFzZS5vbGRfc3RhdGUgPSBvbGRfc3RhdGU7CisJc3JmX3VwZGF0ZS5iYXNlLmRldl9w cml2ID0gZGV2X3ByaXY7CisJc3JmX3VwZGF0ZS5iYXNlLmR1ID0gdm13X2NydGNfdG9fZHUocGxh bmUtPnN0YXRlLT5jcnRjKTsKKwlzcmZfdXBkYXRlLmJhc2UudmZiID0gdmZiOworCXNyZl91cGRh dGUuYmFzZS5vdXRfZmVuY2UgPSBvdXRfZmVuY2U7CisKKwlzcmZfdXBkYXRlLmN0eCA9ICZjdHg7 CisKKwlzcmZfdXBkYXRlLmJhc2UucHJlcGFyZSA9IHZtd19zb3Vfc3VyZmFjZV9wcmVwYXJlOwor CXNyZl91cGRhdGUuYmFzZS5jYWxjX2ZpZm9fc2l6ZSA9IHZtd19zb3Vfc3VyZmFjZV9maWZvX3Np emU7CisJc3JmX3VwZGF0ZS5iYXNlLnBvc3RfcHJlcGFyZSA9IHZtd19zb3Vfc3VyZmFjZV9wb3N0 X3ByZXBhcmU7CisJc3JmX3VwZGF0ZS5iYXNlLnByZV9jbGlwID0gdm13X3NvdV9zdXJmYWNlX3By ZV9jbGlwOworCXNyZl91cGRhdGUuYmFzZS5jbGlwID0gdm13X3NvdV9zdXJmYWNlX2NsaXBfcmVj dDsKKwlzcmZfdXBkYXRlLmJhc2UucG9zdF9jbGlwID0gdm13X3NvdV9zdXJmYWNlX3Bvc3RfY2xp cDsKKwlzcmZfdXBkYXRlLmJhc2UuZmluaXNoID0gdm13X3NvdV9zdXJmYWNlX2ZpbmlzaDsKKwkv KiBOb3RoaW5nIHNwZWNpYWwgdG8gZG8gZm9yIHJldmVydCAqLworCXNyZl91cGRhdGUuYmFzZS5y ZXZlcnQgPSB2bXdfc291X3N1cmZhY2VfZmluaXNoOworCisJcmV0dXJuIHZtd19kdV9oZWxwZXJf cGxhbmVfdXBkYXRlKCZzcmZfdXBkYXRlLmJhc2UpOworfQogCiBzdGF0aWMgdm9pZAogdm13X3Nv dV9wcmltYXJ5X3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCi0t IAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=