From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ayan Halder Subject: [PATCH] [RFC] drm_hwcomposer: Add support for Arm Framebuffer Compression (AFBC) modifiers. Date: Mon, 14 Jan 2019 15:28:27 +0000 Message-ID: <1547479696-14376-1-git-send-email-ayan.halder@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140048.outbound.protection.outlook.com [40.107.14.48]) by gabe.freedesktop.org (Postfix) with ESMTPS id 212C26E93A for ; Mon, 14 Jan 2019 15:28:30 +0000 (UTC) Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ayan Halder , Liviu Dudau , Brian Starkey , "john.stultz@linaro.org" , "seanpaul@google.com" , "malidp@foss.arm.com" , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" Cc: nd List-Id: dri-devel@lists.freedesktop.org T25lIG5lZWRzIHRvIHRyYW5zbGF0ZSB0aGUgR3JhbGxvYyBidWZmZXIgZmxhZ3MgZm9yIEFGQkMg KGVnCk1BTElfR1JBTExPQ19JTlRGTVRfQUZCQ19CQVNJQykgdG8gdGhlIGNvcnJlc3BvbmRpbmcg bGludXgga2VybmVsIGRybSBtb2RpZmllcnMuClRoaXMgZ2V0cyBwYXNzZWQgdG8gbGliZHJtIHZp YSBkcm1Nb2RlQWRkRkIyV2l0aE1vZGlmaWVycy4KClNpZ25lZC1vZmYtYnk6IEF5YW4gS3VtYXIg SGFsZGVyIDxheWFuLmhhbGRlckBhcm0uY29tPgoKLy0tIE5vdGUgZm9yIHJldmlld2VyCkkgd2Fz IGFibGUgdG8gZ2V0IHRoaXMgd29ya2luZyBmb3IgQW5kcm9pZCBQIG9uIEp1bm8gd2l0aCBNYWxp IERQNjUwIGFuZCBNYWxpClQ4NjAgZ3B1KHdpdGggc29tZSBhZGRpdGlvbmFsIGhhY2tzKS4gSSBo YXZlIG5vdCB5ZXQgdmFsaWRhdGVkIHRoaXMgaGlrZXk5NjAuCgpJIGhhdmUgdXNlZCB0aGUgZm9s bG93aW5nIGNvbXBvbmVudHM6LQoxLiBHcmFsbG9jIChmcm9tIGh0dHBzOi8vYW5kcm9pZC5nb29n bGVzb3VyY2UuY29tL2RldmljZS9saW5hcm8vaGlrZXkvKy9tYXN0ZXIvZ3JhbGxvYzk2MCkKICAt IEJ1aWx0IHdpdGggTUFMSV9NTVNTPTEKMi4gTGliZHJtIChmcm9tIGdpdDovL2Fub25naXQuZnJl ZWRlc2t0b3Aub3JnL21lc2EvZHJtKQogIC0gWW91IHdvdWxkIG5lZWQgZHJtX2ZvdXJjYy5oIGFu ZCBncmFsbG9jX2hhbmRsZS5oCi0tLwotLS0KIHBsYXRmb3JtZHJtZ2VuZXJpYy5jcHAgfCA0MiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHBsYXRmb3JtZHJtZ2Vu ZXJpYy5oICAgfCAgMiArKwogcGxhdGZvcm1oaXNpLmNwcCAgICAgICB8IDE0ICsrKysrKysrKysr Ky0tCiAzIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvcGxhdGZvcm1kcm1nZW5lcmljLmNwcCBiL3BsYXRmb3JtZHJtZ2VuZXJpYy5j cHAKaW5kZXggNTAzYzA0YS4uYTUyMDIyNCAxMDA2NDQKLS0tIGEvcGxhdGZvcm1kcm1nZW5lcmlj LmNwcAorKysgYi9wbGF0Zm9ybWRybWdlbmVyaWMuY3BwCkBAIC0xOCw2ICsxOCw3IEBACiAKICNp bmNsdWRlICJwbGF0Zm9ybWRybWdlbmVyaWMuaCIKICNpbmNsdWRlICJkcm1kZXZpY2UuaCIKKyNp bmNsdWRlICJtYWxpX2dyYWxsb2NfZm9ybWF0cy5oIgogI2luY2x1ZGUgInBsYXRmb3JtLmgiCiAK ICNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgpAQCAtODMsNiArODQsMzEgQEAgdWludDMyX3Qg RHJtR2VuZXJpY0ltcG9ydGVyOjpDb252ZXJ0SGFsRm9ybWF0VG9Ecm0odWludDMyX3QgaGFsX2Zv cm1hdCkgewogICB9CiB9CiAKK3VpbnQ2NF90IERybUdlbmVyaWNJbXBvcnRlcjo6Q29udmVydEdy YWxsb2NGb3JtYXRUb0RybU1vZGlmaWVycyh1aW50NjRfdCBmbGFncywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlz X3JnYikgeworICB1aW50NjRfdCBmZWF0dXJlcyA9IDA7CisKKyAgaWYgKGZsYWdzICYgTUFMSV9H UkFMTE9DX0lOVEZNVF9BRkJDX0JBU0lDKQorICAgIGZlYXR1cmVzIHw9IEFGQkNfRk9STUFUX01P RF9CTE9DS19TSVpFXzE2eDE2OworCisgIGlmIChpc19yZ2IpCisgICAgZmVhdHVyZXMgfD0gQUZC Q19GT1JNQVRfTU9EX1lUUjsKKworICBpZiAoZmxhZ3MgJiBNQUxJX0dSQUxMT0NfSU5URk1UX0FG QkNfU1BMSVRCTEspCisgICAgZmVhdHVyZXMgfD0gKEFGQkNfRk9STUFUX01PRF9TUExJVCB8IEFG QkNfRk9STUFUX01PRF9TUEFSU0UpOworCisgIGlmIChmbGFncyAmIE1BTElfR1JBTExPQ19JTlRG TVRfQUZCQ19XSURFQkxLKQorICAgIGZlYXR1cmVzIHw9IEFGQkNfRk9STUFUX01PRF9CTE9DS19T SVpFXzMyeDg7CisKKyAgaWYgKGZsYWdzICYgTUFMSV9HUkFMTE9DX0lOVEZNVF9BRkJDX1RJTEVE X0hFQURFUlMpCisgICAgZmVhdHVyZXMgfD0gQUZCQ19GT1JNQVRfTU9EX1RJTEVEOworCisgIGlm IChmZWF0dXJlcykKKyAgICByZXR1cm4gRFJNX0ZPUk1BVF9NT0RfQVJNX0FGQkMoZmVhdHVyZXMp OworICBlbHNlCisgICAgcmV0dXJuIDA7Cit9CisKIHVpbnQzMl90IERybUdlbmVyaWNJbXBvcnRl cjo6RHJtRm9ybWF0VG9CaXRzUGVyUGl4ZWwodWludDMyX3QgZHJtX2Zvcm1hdCkgewogICBzd2l0 Y2ggKGRybV9mb3JtYXQpIHsKICAgICBjYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6CkBAIC0xMDEs NiArMTI3LDIyIEBAIHVpbnQzMl90IERybUdlbmVyaWNJbXBvcnRlcjo6RHJtRm9ybWF0VG9CaXRz UGVyUGl4ZWwodWludDMyX3QgZHJtX2Zvcm1hdCkgewogICB9CiB9CiAKK2Jvb2wgRHJtR2VuZXJp Y0ltcG9ydGVyOjpJc0RybUZvcm1hdFJnYih1aW50MzJfdCBkcm1fZm9ybWF0KSB7CisgIHN3aXRj aCAoZHJtX2Zvcm1hdCkgeworICAgIGNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4ODoKKyAgICBjYXNl IERSTV9GT1JNQVRfWEJHUjg4ODg6CisgICAgY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4OgorICAg IGNhc2UgRFJNX0ZPUk1BVF9CR1I4ODg6CisgICAgY2FzZSBEUk1fRk9STUFUX0JHUjU2NToKKyAg ICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgRFJNX0ZPUk1BVF9ZVlU0MjA6CisgICAgICByZXR1 cm4gZmFsc2U7CisgICAgZGVmYXVsdDoKKyAgICAgIEFMT0dFKCJVbnN1cHBvcnRlZCBmb3JtYXQg JXUgYXNzdW1pbmcgcmdiPyIsIGRybV9mb3JtYXQpOworICAgICAgcmV0dXJuIHRydWU7CisgIH0K K30KKwogaW50IERybUdlbmVyaWNJbXBvcnRlcjo6SW1wb3J0QnVmZmVyKGJ1ZmZlcl9oYW5kbGVf dCBoYW5kbGUsIGh3Y19kcm1fYm9fdCAqYm8pIHsKICAgZ3JhbGxvY19oYW5kbGVfdCAqZ3JfaGFu ZGxlID0gZ3JhbGxvY19oYW5kbGUoaGFuZGxlKTsKICAgaWYgKCFncl9oYW5kbGUpCmRpZmYgLS1n aXQgYS9wbGF0Zm9ybWRybWdlbmVyaWMuaCBiL3BsYXRmb3JtZHJtZ2VuZXJpYy5oCmluZGV4IDIz M2JhNTUuLjQzY2I2MTggMTAwNjQ0Ci0tLSBhL3BsYXRmb3JtZHJtZ2VuZXJpYy5oCisrKyBiL3Bs YXRmb3JtZHJtZ2VuZXJpYy5oCkBAIC0zNiw2ICszNiw4IEBAIGNsYXNzIERybUdlbmVyaWNJbXBv cnRlciA6IHB1YmxpYyBJbXBvcnRlciB7CiAgIGJvb2wgQ2FuSW1wb3J0QnVmZmVyKGJ1ZmZlcl9o YW5kbGVfdCBoYW5kbGUpIG92ZXJyaWRlOwogCiAgIHVpbnQzMl90IENvbnZlcnRIYWxGb3JtYXRU b0RybSh1aW50MzJfdCBoYWxfZm9ybWF0KTsKKyAgdWludDY0X3QgQ29udmVydEdyYWxsb2NGb3Jt YXRUb0RybU1vZGlmaWVycyh1aW50NjRfdCBmbGFncywgYm9vbCBpc19yZ2IpOworICBib29sIElz RHJtRm9ybWF0UmdiKHVpbnQzMl90IGRybV9mb3JtYXQpOwogICB1aW50MzJfdCBEcm1Gb3JtYXRU b0JpdHNQZXJQaXhlbCh1aW50MzJfdCBkcm1fZm9ybWF0KTsKIAogIHByaXZhdGU6CmRpZmYgLS1n aXQgYS9wbGF0Zm9ybWhpc2kuY3BwIGIvcGxhdGZvcm1oaXNpLmNwcAppbmRleCA3NmZlMWU3Li4x Y2I3ZTJjIDEwMDY0NAotLS0gYS9wbGF0Zm9ybWhpc2kuY3BwCisrKyBiL3BsYXRmb3JtaGlzaS5j cHAKQEAgLTcxLDYgKzcxLDkgQEAgaW50IEhpc2lJbXBvcnRlcjo6SW5pdCgpIHsKIH0KIAogaW50 IEhpc2lJbXBvcnRlcjo6SW1wb3J0QnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUsIGh3Y19k cm1fYm9fdCAqYm8pIHsKKyAgYm9vbCBpc19yZ2I7CisgIHVpbnQ2NF90IG1vZGlmaWVyc1s0XSA9 IHswfTsKKwogICBtZW1zZXQoYm8sIDAsIHNpemVvZihod2NfZHJtX2JvX3QpKTsKIAogICBwcml2 YXRlX2hhbmRsZV90IGNvbnN0ICpobmQgPSByZWludGVycHJldF9jYXN0PHByaXZhdGVfaGFuZGxl X3QgY29uc3QgKj4oCkBAIC05NCw2ICs5NywxMCBAQCBpbnQgSGlzaUltcG9ydGVyOjpJbXBvcnRC dWZmZXIoYnVmZmVyX2hhbmRsZV90IGhhbmRsZSwgaHdjX2RybV9ib190ICpibykgewogICBpZiAo Zm10IDwgMCkKICAgICByZXR1cm4gZm10OwogCisgIGlzX3JnYiA9IElzRHJtRm9ybWF0UmdiKGZt dCk7CisgIG1vZGlmaWVyc1swXSA9IENvbnZlcnRHcmFsbG9jRm9ybWF0VG9Ecm1Nb2RpZmllcnMo aG5kLT5pbnRlcm5hbF9mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaXNfcmdiKTsKKwogICBiby0+d2lkdGggPSBobmQtPndpZHRoOwog ICBiby0+aGVpZ2h0ID0gaG5kLT5oZWlnaHQ7CiAgIGJvLT5oYWxfZm9ybWF0ID0gaG5kLT5yZXFf Zm9ybWF0OwpAQCAtMTI5LDggKzEzNiwxMSBAQCBpbnQgSGlzaUltcG9ydGVyOjpJbXBvcnRCdWZm ZXIoYnVmZmVyX2hhbmRsZV90IGhhbmRsZSwgaHdjX2RybV9ib190ICpibykgewogICAgICAgYnJl YWs7CiAgIH0KIAotICByZXQgPSBkcm1Nb2RlQWRkRkIyKGRybV8tPmZkKCksIGJvLT53aWR0aCwg Ym8tPmhlaWdodCwgYm8tPmZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICBiby0+Z2VtX2hh bmRsZXMsIGJvLT5waXRjaGVzLCBiby0+b2Zmc2V0cywgJmJvLT5mYl9pZCwgMCk7CisgIHJldCA9 IGRybU1vZGVBZGRGQjJXaXRoTW9kaWZpZXJzKGRybV8tPmZkKCksIGJvLT53aWR0aCwgYm8tPmhl aWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm8tPmZvcm1hdCwgYm8t PmdlbV9oYW5kbGVzLCBiby0+cGl0Y2hlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm8tPm9mZnNldHMsIG1vZGlmaWVycywgJmJvLT5mYl9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzWzBdID8gRFJNX01PREVfRkJfTU9ESUZJRVJT IDogMCk7CisKICAgaWYgKHJldCkgewogICAgIEFMT0dFKCJjb3VsZCBub3QgY3JlYXRlIGRybSBm YiAlZCIsIHJldCk7CiAgICAgcmV0dXJuIHJldDsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK