From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH 10/14] drm/vmwgfx: implement SOU plane update for surface backed fb Date: Wed, 5 Sep 2018 16:38:57 -0700 Message-ID: <20180905233901.2321-11-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-002.vmware.com (ex13-edg-ou-002.vmware.com [208.91.0.190]) by gabe.freedesktop.org (Postfix) with ESMTPS id 946D56E574 for ; Wed, 5 Sep 2018 23:39:35 +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 VXNpbmcgdGhlIG5ldyBpbnRlcmZhY2UgaW1wbGVtZW50IFNPVSBwbGFuZSB1cGRhdGUgZm9yIHN1 cmZhY2UgYmFja2VkCmZiLgoKU2lnbmVkLW9mZi1ieTogRGVlcGFrIFJhd2F0IDxkcmF3YXRAdm13 YXJlLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaCAgfCAgIDMg KwogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2Nybi5jIHwgMTg3ICsrKysrKysrKysr KysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxOTAgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmgKaW5kZXggMWMzZGQwZTE0NDE0Li40NWIxMjQ0OGUx MzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oCkBAIC0xNjUsMTAgKzE2NSwxMyBA QCBzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZSB7CiAgKgogICogQGJhc2U6IGJhc2UgY2xvc3Vy ZSBzdHJ1Y3R1cmUuCiAgKiBAY3R4OiB2YWxpZGF0aW9uIGNvbnRleHQuCisgKiBAY21kX3N0YXJ0 OiAob3B0aW9uYWwpIEZJRk8gY29tbWFuZCBzdGFydCBhZGRyZXNzICh1c2VkIGJ5IFNPVSBvbmx5 KS4KICAqLwogc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmVfc3VyZmFjZSB7CiAJc3RydWN0IHZt d19kdV91cGRhdGVfcGxhbmUgYmFzZTsKIAlzdHJ1Y3Qgdm13X3ZhbGlkYXRpb25fY3R4ICpjdHg7 CisJLyogVGhpcyBtZW1iZXIgaXMgdG8gaGFuZGxlIHNwZWNpYWwgY2FzZSBTT1Ugc3VyZmFjZSB1 cGRhdGUgKi8KKwl2b2lkICpjbWRfc3RhcnQ7CiB9OwogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Njcm4uYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X3Njcm4uYwppbmRleCBhZDBkZTdmMGNkNjAuLjg0MjdhNTFjZGUzZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2Nybi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X3Njcm4uYwpAQCAtNDk5LDYgKzQ5OSwxOTMgQEAgdm13X3NvdV9w cmltYXJ5X3BsYW5lX3ByZXBhcmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJcmV0dXJu IHZtd19ib19waW5faW5fdnJhbShkZXZfcHJpdiwgdnBzLT5ibywgdHJ1ZSk7CiB9CiAKK3N0YXRp YyBpbnQgdm13X3NvdV9zdXJmYWNlX3ByZXBhcmUoc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUg KnVwZGF0ZSkKK3sKKwlzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZV9zdXJmYWNlICpzcmZfdXBk YXRlOworCXN0cnVjdCB2bXdfZnJhbWVidWZmZXJfc3VyZmFjZSAqdmZiczsKKworCXNyZl91cGRh dGUgPSBjb250YWluZXJfb2YodXBkYXRlLCB0eXBlb2YoKnNyZl91cGRhdGUpLCBiYXNlKTsKKwl2 ZmJzID0gY29udGFpbmVyX29mKHVwZGF0ZS0+dmZiLCB0eXBlb2YoKnZmYnMpLCBiYXNlKTsKKwor CXJldHVybiB2bXdfa21zX2hlbHBlcl9yZXNvdXJjZV9wcmVwYXJlKCZ2ZmJzLT5zdXJmYWNlLT5y ZXMsIHRydWUsCisJCQkJCSAgICAgICBzcmZfdXBkYXRlLT5jdHgpOworfQorCitzdGF0aWMgdWlu dDMyX3Qgdm13X3NvdV9zdXJmYWNlX2ZpZm9fc2l6ZShzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFu ZSAqdXBkYXRlLAorCQkJCQkgIHVpbnQzMl90IG51bV9oaXRzKQoreworCXJldHVybiBzaXplb2Yo c3RydWN0IHZtd19rbXNfc291X2RpcnR5X2NtZCkgKyBzaXplb2YoU1ZHQVNpZ25lZFJlY3QpICoK KwkJbnVtX2hpdHM7Cit9CisKK3N0YXRpYyB1aW50MzJfdCB2bXdfc291X3N1cmZhY2VfcG9zdF9w cmVwYXJlKHN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lICp1cGRhdGUsCisJCQkJCSAgICAgdm9p ZCAqY21kKQoreworCXN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lX3N1cmZhY2UgKnNyZl91cGRh dGU7CisKKwlzcmZfdXBkYXRlID0gY29udGFpbmVyX29mKHVwZGF0ZSwgdHlwZW9mKCpzcmZfdXBk YXRlKSwgYmFzZSk7CisKKwkvKgorCSAqIFNPVSBTVkdBXzNEX0NNRF9CTElUX1NVUkZBQ0VfVE9f U0NSRUVOIGlzIHNwZWNpYWwgaW4gdGhlIHNlbnNlIHRoYXQKKwkgKiBpdCBib3VuZGluZyBib3gg aXMgZmlsbGVkIGJlZm9yZSBpdGVyYXRpbmcgb3ZlciBhbGwgdGhlIGNsaXBzLiBTbworCSAqIHN0 b3JlIHRoZSBGSUZPIHN0YXJ0IGFkZHJlc3MgYW5kIHJldmlzaXQgdG8gZmlsbCB0aGUgZGV0YWls cy4KKwkgKi8KKwlzcmZfdXBkYXRlLT5jbWRfc3RhcnQgPSBjbWQ7CisKKwlyZXR1cm4gMDsKK30K Kworc3RhdGljIHVpbnQzMl90IHZtd19zb3Vfc3VyZmFjZV9wcmVfY2xpcChzdHJ1Y3Qgdm13X2R1 X3VwZGF0ZV9wbGFuZSAqdXBkYXRlLAorCQkJCQkgdm9pZCAqY21kLCB1aW50MzJfdCBudW1faGl0 cykKK3sKKwlzdHJ1Y3Qgdm13X2ttc19zb3VfZGlydHlfY21kICpibGl0ID0gY21kOworCXN0cnVj dCB2bXdfZnJhbWVidWZmZXJfc3VyZmFjZSAqdmZiczsKKworCXZmYnMgPSBjb250YWluZXJfb2Yo dXBkYXRlLT52ZmIsIHR5cGVvZigqdmZicyksIGJhc2UpOworCisJYmxpdC0+aGVhZGVyLmlkID0g U1ZHQV8zRF9DTURfQkxJVF9TVVJGQUNFX1RPX1NDUkVFTjsKKwlibGl0LT5oZWFkZXIuc2l6ZSA9 IHNpemVvZihibGl0LT5ib2R5KSArIHNpemVvZihTVkdBU2lnbmVkUmVjdCkgKgorCQludW1faGl0 czsKKworCWJsaXQtPmJvZHkuc3JjSW1hZ2Uuc2lkID0gdmZicy0+c3VyZmFjZS0+cmVzLmlkOwor CWJsaXQtPmJvZHkuZGVzdFNjcmVlbklkID0gdXBkYXRlLT5kdS0+dW5pdDsKKworCS8qIFVwZGF0 ZSB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBib3VuZGluZyBib3ggbGF0ZXIgaW4gcG9zdF9j bGlwICovCisJYmxpdC0+Ym9keS5zcmNSZWN0LmxlZnQgPSAwOworCWJsaXQtPmJvZHkuc3JjUmVj dC50b3AgPSAwOworCWJsaXQtPmJvZHkuc3JjUmVjdC5yaWdodCA9IDA7CisJYmxpdC0+Ym9keS5z cmNSZWN0LmJvdHRvbSA9IDA7CisKKwlibGl0LT5ib2R5LmRlc3RSZWN0LmxlZnQgPSAwOworCWJs aXQtPmJvZHkuZGVzdFJlY3QudG9wID0gMDsKKwlibGl0LT5ib2R5LmRlc3RSZWN0LnJpZ2h0ID0g MDsKKwlibGl0LT5ib2R5LmRlc3RSZWN0LmJvdHRvbSA9IDA7CisKKwlyZXR1cm4gc2l6ZW9mKCpi bGl0KTsKK30KKworc3RhdGljIHVpbnQzMl90IHZtd19zb3Vfc3VyZmFjZV9jbGlwX3JlY3Qoc3Ry dWN0IHZtd19kdV91cGRhdGVfcGxhbmUgKnVwZGF0ZSwKKwkJCQkJICB2b2lkICpjbWQsIHN0cnVj dCBkcm1fcmVjdCAqY2xpcCwKKwkJCQkJICB1aW50MzJfdCBzcmNfeCwgdWludDMyX3Qgc3JjX3kp Cit7CisJU1ZHQVNpZ25lZFJlY3QgKnJlY3QgPSBjbWQ7CisKKwkvKgorCSAqIHJlY3RzIGFyZSBy ZWxhdGl2ZSB0byBkZXN0IGJvdW5kaW5nIGJveCByZWN0IG9uIHNjcmVlbiBvYmplY3QsIHNvCisJ ICogdHJhbnNsYXRlIHRvIGl0IGxhdGVyIGluIHBvc3RfY2xpcAorCSAqLworCXJlY3QtPmxlZnQg PSBjbGlwLT54MTsKKwlyZWN0LT50b3AgPSBjbGlwLT55MTsKKwlyZWN0LT5yaWdodCA9IGNsaXAt PngyOworCXJlY3QtPmJvdHRvbSA9IGNsaXAtPnkyOworCisJcmV0dXJuIHNpemVvZigqcmVjdCk7 Cit9CisKK3N0YXRpYyB1aW50MzJfdCB2bXdfc291X3N1cmZhY2VfcG9zdF9jbGlwKHN0cnVjdCB2 bXdfZHVfdXBkYXRlX3BsYW5lICp1cGRhdGUsCisJCQkJCSAgdm9pZCAqY21kLCBzdHJ1Y3QgZHJt X3JlY3QgKmJiKQoreworCXN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lX3N1cmZhY2UgKnNyZl91 cGRhdGU7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSB1cGRhdGUtPnBsYW5lLT5z dGF0ZTsKKwlzdHJ1Y3QgZHJtX3JlY3Qgc3JjX2JiOworCXN0cnVjdCB2bXdfa21zX3NvdV9kaXJ0 eV9jbWQgKmJsaXQ7CisJU1ZHQVNpZ25lZFJlY3QgKnJlY3Q7CisJdWludDMyX3QgbnVtX2hpdHM7 CisJaW50IHRyYW5zbGF0ZV9zcmNfeDsKKwlpbnQgdHJhbnNsYXRlX3NyY195OworCWludCBpOwor CisJc3JmX3VwZGF0ZSA9IGNvbnRhaW5lcl9vZih1cGRhdGUsIHR5cGVvZigqc3JmX3VwZGF0ZSks IGJhc2UpOworCisJYmxpdCA9IHNyZl91cGRhdGUtPmNtZF9zdGFydDsKKwlyZWN0ID0gKFNWR0FT aWduZWRSZWN0ICopJmJsaXRbMV07CisKKwludW1faGl0cyA9IChibGl0LT5oZWFkZXIuc2l6ZSAt IHNpemVvZihibGl0LT5ib2R5KSkvCisJCXNpemVvZihTVkdBU2lnbmVkUmVjdCk7CisKKwlzcmNf YmIgPSAqYmI7CisKKwkvKiBUbyB0cmFuc2xhdGUgYmIgYmFjayB0byBmYiBzcmMgY29vcmQgKi8K Kwl0cmFuc2xhdGVfc3JjX3ggPSAoc3RhdGUtPnNyY194ID4+IDE2KSAtIHN0YXRlLT5jcnRjX3g7 CisJdHJhbnNsYXRlX3NyY195ID0gKHN0YXRlLT5zcmNfeSA+PiAxNikgLSBzdGF0ZS0+Y3J0Y195 OworCisJZHJtX3JlY3RfdHJhbnNsYXRlKCZzcmNfYmIsIHRyYW5zbGF0ZV9zcmNfeCwgdHJhbnNs YXRlX3NyY195KTsKKworCWJsaXQtPmJvZHkuc3JjUmVjdC5sZWZ0ID0gc3JjX2JiLngxOworCWJs aXQtPmJvZHkuc3JjUmVjdC50b3AgPSBzcmNfYmIueTE7CisJYmxpdC0+Ym9keS5zcmNSZWN0LnJp Z2h0ID0gc3JjX2JiLngyOworCWJsaXQtPmJvZHkuc3JjUmVjdC5ib3R0b20gPSBzcmNfYmIueTI7 CisKKwlibGl0LT5ib2R5LmRlc3RSZWN0LmxlZnQgPSBiYi0+eDE7CisJYmxpdC0+Ym9keS5kZXN0 UmVjdC50b3AgPSBiYi0+eTE7CisJYmxpdC0+Ym9keS5kZXN0UmVjdC5yaWdodCA9IGJiLT54MjsK KwlibGl0LT5ib2R5LmRlc3RSZWN0LmJvdHRvbSA9IGJiLT55MjsKKworCS8qIHJlY3RzIGFyZSBy ZWxhdGl2ZSB0byBkZXN0IGJiIHJlY3QgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2hpdHM7IGkr KykgeworCQlyZWN0LT5sZWZ0IC09IGJiLT54MTsKKwkJcmVjdC0+dG9wIC09IGJiLT55MTsKKwkJ cmVjdC0+cmlnaHQgLT0gYmItPngxOworCQlyZWN0LT5ib3R0b20gLT0gYmItPnkxOworCQlyZWN0 Kys7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHZtd19zb3Vfc3VyZmFjZV9m aW5pc2goc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUgKnVwZGF0ZSkKK3sKKwlzdHJ1Y3Qgdm13 X2R1X3VwZGF0ZV9wbGFuZV9zdXJmYWNlICpzcmZfdXBkYXRlID0KKwkJY29udGFpbmVyX29mKHVw ZGF0ZSwgdHlwZW9mKCpzcmZfdXBkYXRlKSwgYmFzZSk7CisKKwl2bXdfa21zX2hlbHBlcl9yZXNv dXJjZV9maW5pc2goc3JmX3VwZGF0ZS0+Y3R4LCB1cGRhdGUtPm91dF9mZW5jZSk7Cit9CisKKy8q KgorICogdm13X3NvdV9wbGFuZV91cGRhdGVfc3VyZmFjZSAtIHVwZGF0ZSBkaXNwbGF5IHVuaXQg Zm9yIHN1cmZhY2UgYmFja2VkIGZiCisgKiBAZGV2X3ByaXY6IGRldmljZSBwcml2YXRlCisgKiBA cGxhbmU6IHBsYW5lIHN0YXRlCisgKiBAb2xkX3N0YXRlOiBvbGQgcGxhbmUgc3RhdGUKKyAqIEB2 ZmI6IGZyYW1lYnVmZmVyIHdoaWNoIGlzIGJsaXR0ZWQgdG8gZGlzcGxheSB1bml0CisgKiBAb3V0 X2ZlbmNlOiAob3B0aW9uYWwpIElmIG5vbi1OVUxMLCB3aWxsIHJldHVybiBhIHJlZi1jb3VudGVk IHBvaW50ZXIgdG8gYQorICogc3RydWN0IHZtd19mZW5jZV9vYmouIFRoZSByZXR1cm5lZCBmZW5j ZSBwb2ludGVyIG1heSBiZSBOVUxMIGluIHdoaWNoIGNhc2UKKyAqIHRoZSBkZXZpY2UgaGFzIGFs cmVhZHkgc3luY2hyb25pemVkLgorICoKKyAqIFJFVFVSTlM6CisgKgorICogMCBvbiBzdWNjZXNz IG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitzdGF0aWMgaW50IHZt d19zb3VfcGxhbmVfdXBkYXRlX3N1cmZhY2Uoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwK KwkJCQkJc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkJCXN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKm9sZF9zdGF0ZSwKKwkJCQkJc3RydWN0IHZtd19mcmFtZWJ1ZmZlciAqdmZiLAorCQkJCQlz dHJ1Y3Qgdm13X2ZlbmNlX29iaiAqKm91dF9mZW5jZSkKK3sKKwlzdHJ1Y3Qgdm13X2R1X3VwZGF0 ZV9wbGFuZV9zdXJmYWNlIHNyZl91cGRhdGU7CisJc3RydWN0IHZtd192YWxpZGF0aW9uX2N0eCBj dHg7CisKKwltZW1zZXQoJnNyZl91cGRhdGUsIDAsIHNpemVvZihzdHJ1Y3Qgdm13X2R1X3VwZGF0 ZV9wbGFuZV9zdXJmYWNlKSk7CisJc3JmX3VwZGF0ZS5iYXNlLnBsYW5lID0gcGxhbmU7CisJc3Jm X3VwZGF0ZS5iYXNlLm9sZF9zdGF0ZSA9IG9sZF9zdGF0ZTsKKwlzcmZfdXBkYXRlLmJhc2UuZGV2 X3ByaXYgPSBkZXZfcHJpdjsKKwlzcmZfdXBkYXRlLmJhc2UuZHUgPSB2bXdfY3J0Y190b19kdShw bGFuZS0+c3RhdGUtPmNydGMpOworCXNyZl91cGRhdGUuYmFzZS52ZmIgPSB2ZmI7CisJc3JmX3Vw ZGF0ZS5iYXNlLm91dF9mZW5jZSA9IG91dF9mZW5jZTsKKworCXNyZl91cGRhdGUuY3R4ID0gJmN0 eDsKKworCXNyZl91cGRhdGUuYmFzZS5wcmVwYXJlID0gdm13X3NvdV9zdXJmYWNlX3ByZXBhcmU7 CisJc3JmX3VwZGF0ZS5iYXNlLmNhbGNfZmlmb19zaXplID0gdm13X3NvdV9zdXJmYWNlX2ZpZm9f c2l6ZTsKKwlzcmZfdXBkYXRlLmJhc2UucG9zdF9wcmVwYXJlID0gdm13X3NvdV9zdXJmYWNlX3Bv c3RfcHJlcGFyZTsKKwlzcmZfdXBkYXRlLmJhc2UucHJlX2NsaXAgPSB2bXdfc291X3N1cmZhY2Vf cHJlX2NsaXA7CisJc3JmX3VwZGF0ZS5iYXNlLmNsaXAgPSB2bXdfc291X3N1cmZhY2VfY2xpcF9y ZWN0OworCXNyZl91cGRhdGUuYmFzZS5wb3N0X2NsaXAgPSB2bXdfc291X3N1cmZhY2VfcG9zdF9j bGlwOworCXNyZl91cGRhdGUuYmFzZS5maW5pc2ggPSB2bXdfc291X3N1cmZhY2VfZmluaXNoOwor CS8qIE5vdGhpbmcgc3BlY2lhbCB0byBkbyBmb3IgcmV2ZXJ0ICovCisJc3JmX3VwZGF0ZS5iYXNl LnJldmVydCA9IHZtd19zb3Vfc3VyZmFjZV9maW5pc2g7CisKKwlyZXR1cm4gdm13X2R1X2hlbHBl cl9wbGFuZV91cGRhdGUoJnNyZl91cGRhdGUuYmFzZSk7Cit9CiAKIHN0YXRpYyB2b2lkCiB2bXdf c291X3ByaW1hcnlfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK LS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==