From mboxrd@z Thu Jan 1 00:00:00 1970 From: Uma Shankar Subject: [RFC v4 7/8] drm/i915: Implement Plane Gamma for Bdw and Gen9 platforms Date: Fri, 17 Aug 2018 19:48:50 +0530 Message-ID: <1534515531-20599-8-git-send-email-uma.shankar@intel.com> References: <1534515531-20599-1-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1534515531-20599-1-git-send-email-uma.shankar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: dcastagna@chromium.org, emil.l.velikov@gmail.com, Uma Shankar , seanpaul@chromium.org, ville.syrjala@intel.com, maarten.lankhorst@intel.com List-Id: dri-devel@lists.freedesktop.org SW1wbGVtZW50IFBsYW5lIEdhbW1hIGZlYXR1cmUgZm9yIEJEVyBhbmQgR2VuOSBwbGF0Zm9ybXMu Cgp2MjogVXNlZCBuZXdseSBhZGRlZCBkcm1fY29sb3JfbHV0X2V4dCBzdHJ1Y3R1cmUgZm9yIGVu aGFuY2VkCnByZWNpc2lvbiBmb3IgR2FtbWEgTFVUIGVudHJpZXMuCgp2MzogUmViYXNlCgpTaWdu ZWQtb2ZmLWJ5OiBVbWEgU2hhbmthciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgICAgICB8ICA1ICsrKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmggICAgICB8IDI1ICsrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgICB8IDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDQgKysr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAgNCArKysKIDUgZmlsZXMg Y2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BjaS5jCmluZGV4IGU5MzFiNDguLjQwZGU3OGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwpA QCAtNTQsNyArNTQsMTAgQEAKIAkuY3Vyc29yX29mZnNldHMgPSB7IENVUlNPUl9BX09GRlNFVCwg SVZCX0NVUlNPUl9CX09GRlNFVCwgSVZCX0NVUlNPUl9DX09GRlNFVCB9CiAKICNkZWZpbmUgQkRX X0NPTE9SUyBcCi0JLmNvbG9yID0geyAuZGVnYW1tYV9sdXRfc2l6ZSA9IDUxMiwgLmdhbW1hX2x1 dF9zaXplID0gNTEyIH0KKwkuY29sb3IgPSB7IC5kZWdhbW1hX2x1dF9zaXplID0gNTEyLCAuZ2Ft bWFfbHV0X3NpemUgPSA1MTIgfSwgXAorCS5wbGFuZV9jb2xvciA9IHsgLnBsYW5lX2RlZ2FtbWFf bHV0X3NpemUgPSAwLCBcCisJCQkgLnBsYW5lX2dhbW1hX2x1dF9zaXplID0gMTYgfQorCiAjZGVm aW5lIENIVl9DT0xPUlMgXAogCS5jb2xvciA9IHsgLmRlZ2FtbWFfbHV0X3NpemUgPSA2NSwgLmdh bW1hX2x1dF9zaXplID0gMjU3IH0KICNkZWZpbmUgR0xLX0NPTE9SUyBcCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaAppbmRleCAwYzlmMDNkLi4yZGI2YTg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgK QEAgLTE3Miw2ICsxNzIsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGk5MTVfbW1pb19yZWdfdmFs aWQoaTkxNV9yZWdfdCByZWcpCiAjZGVmaW5lIF9QSFkzKHBoeSwgLi4uKSBfUElDSyhwaHksIF9f VkFfQVJHU19fKQogI2RlZmluZSBfTU1JT19QSFkzKHBoeSwgYSwgYiwgYykgX01NSU8oX1BIWTMo cGh5LCBhLCBiLCBjKSkKIAorLyogUGxhbmUgR2FtbWEgUmVnaXN0ZXJzICovCisjZGVmaW5lIF9N TUlPX1BMQU5FX0dBTUMocGxhbmUsIGksIGEsIGIpICBfTU1JTyhfUElQRShwbGFuZSwgYSwgYikg KyAoaSkgKiA0KQorI2RlZmluZSBfTU1JT19QTEFORV9HQU1DMTYocGxhbmUsIGksIGEsIGIpICBf TU1JTyhfUElQRShwbGFuZSwgYSwgYikgKyAoaSkgKiA0KQorCiAjZGVmaW5lIF9fTUFTS0VEX0ZJ RUxEKG1hc2ssIHZhbHVlKSAoKG1hc2spIDw8IDE2IHwgKHZhbHVlKSkKICNkZWZpbmUgX01BU0tF RF9GSUVMRChtYXNrLCB2YWx1ZSkgKHsJCQkJCSAgIFwKIAlpZiAoX19idWlsdGluX2NvbnN0YW50 X3AobWFzaykpCQkJCQkgICBcCkBAIC05NzEzLDYgKzk3MTcsMjcgQEAgZW51bSBza2xfcG93ZXJf Z2F0ZSB7CiAjZGVmaW5lIFBSRV9DU0NfR0FNQ19JTkRFWChwaXBlKQlfTU1JT19QSVBFKHBpcGUs IF9QUkVfQ1NDX0dBTUNfSU5ERVhfQSwgX1BSRV9DU0NfR0FNQ19JTkRFWF9CKQogI2RlZmluZSBQ UkVfQ1NDX0dBTUNfREFUQShwaXBlKQkJX01NSU9fUElQRShwaXBlLCBfUFJFX0NTQ19HQU1DX0RB VEFfQSwgX1BSRV9DU0NfR0FNQ19EQVRBX0IpCiAKKy8qIFBsYW5lIEdhbW1hIGluIEdlbjkrICov CisjZGVmaW5lIF9QTEFORV9HQU1DXzFfQQkweDcwMWQwCisjZGVmaW5lIF9QTEFORV9HQU1DXzFf QgkweDcxMWQwCisjZGVmaW5lIF9QTEFORV9HQU1DXzJfQQkweDcwMmQwCisjZGVmaW5lIF9QTEFO RV9HQU1DXzJfQgkweDcxMmQwCisjZGVmaW5lIF9QTEFORV9HQU1DXzEocGlwZSkJX1BJUEUocGlw ZSwgX1BMQU5FX0dBTUNfMV9BLCBfUExBTkVfR0FNQ18xX0IpCisjZGVmaW5lIF9QTEFORV9HQU1D XzIocGlwZSkJX1BJUEUocGlwZSwgX1BMQU5FX0dBTUNfMl9BLCBfUExBTkVfR0FNQ18yX0IpCisj ZGVmaW5lIFBMQU5FX0dBTUMocGlwZSwgcGxhbmUsIGkpCVwKKwlfTU1JT19QTEFORV9HQU1DKHBs YW5lLCBpLCBfUExBTkVfR0FNQ18xKHBpcGUpLCBfUExBTkVfR0FNQ18yKHBpcGUpKQorCisjZGVm aW5lIF9QTEFORV9HQU1DMTZfMV9BCTB4NzAyMTAKKyNkZWZpbmUgX1BMQU5FX0dBTUMxNl8xX0IJ MHg3MTIxMAorI2RlZmluZSBfUExBTkVfR0FNQzE2XzJfQQkweDcwMzEwCisjZGVmaW5lIF9QTEFO RV9HQU1DMTZfMl9CCTB4NzEzMTAKKyNkZWZpbmUgX1BMQU5FX0dBTUMxNl8xKHBpcGUpCV9QSVBF KHBpcGUsIF9QTEFORV9HQU1DMTZfMV9BLCBcCisJCQkJICAgICBfUExBTkVfR0FNQzE2XzFfQikK KyNkZWZpbmUgX1BMQU5FX0dBTUMxNl8yKHBpcGUpCV9QSVBFKHBpcGUsIF9QTEFORV9HQU1DMTZf Ml9BLCBcCisJCQkJICAgICBfUExBTkVfR0FNQzE2XzJfQikKKyNkZWZpbmUgUExBTkVfR0FNQzE2 KHBpcGUsIHBsYW5lLCBpKSBfTU1JT19QTEFORV9HQU1DMTYocGxhbmUsIGksIFwKKwkJCQlfUExB TkVfR0FNQzE2XzEocGlwZSksIF9QTEFORV9HQU1DMTZfMihwaXBlKSkKKwogLyogcGlwZSBDU0Mg JiBkZWdhbW1hL2dhbW1hIExVVHMgb24gQ0hWICovCiAjZGVmaW5lIF9DR01fUElQRV9BX0NTQ19D T0VGRjAxCShWTFZfRElTUExBWV9CQVNFICsgMHg2NzkwMCkKICNkZWZpbmUgX0NHTV9QSVBFX0Ff Q1NDX0NPRUZGMjMJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDY3OTA0KQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2NvbG9yLmMKaW5kZXggZmI4NDAyZi4uMmI1YzBjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jb2xvci5jCkBAIC00OTIsNiArNDkyLDU5IEBAIHN0YXRpYyB2b2lkIGJyb2Fkd2VsbF9sb2Fk X2x1dHMoc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKIAlJOTE1X1dSSVRFKFBSRUNfUEFM X0lOREVYKHBpcGUpLCAwKTsKIH0KIAorc3RhdGljIHZvaWQgYmR3X2xvYWRfcGxhbmVfZ2FtbWFf bHV0KGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlLAorCQkJCSAgICAgdTMyIG9m ZnNldCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0 YXRlLT5wbGFuZS0+ZGV2KTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX3BsYW5lKHN0YXRl LT5wbGFuZSktPnBpcGU7CisJZW51bSBwbGFuZV9pZCBwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHN0 YXRlLT5wbGFuZSktPmlkOworCXVpbnQzMl90IGksIGx1dF9zaXplID0KKwkJCUlOVEVMX0lORk8o ZGV2X3ByaXYpLT5wbGFuZV9jb2xvci5wbGFuZV9nYW1tYV9sdXRfc2l6ZTsKKworCWlmIChzdGF0 ZS0+Z2FtbWFfbHV0KSB7CisJCXN0cnVjdCBkcm1fY29sb3JfbHV0X2V4dCAqbHV0ID0KKwkJCShz dHJ1Y3QgZHJtX2NvbG9yX2x1dF9leHQgKikgc3RhdGUtPmdhbW1hX2x1dC0+ZGF0YTsKKworCQlm b3IgKGkgPSAwOyBpIDwgbHV0X3NpemU7IGkrKykgeworCQkJdWludDMyX3Qgd29yZCA9CisJCQko ZHJtX2NvbG9yX2x1dF9leHRyYWN0KGx1dFtpXS5yZWQsIDEwKSA8PCAyMCkgfAorCQkJKGRybV9j b2xvcl9sdXRfZXh0cmFjdChsdXRbaV0uZ3JlZW4sIDEwKSA8PCAxMCkgfAorCQkJZHJtX2NvbG9y X2x1dF9leHRyYWN0KGx1dFtpXS5ibHVlLCAxMCk7CisKKwkJCUk5MTVfV1JJVEUoUExBTkVfR0FN QyhwaXBlLCBwbGFuZSwgaSksIHdvcmQpOworCQl9CisKKwkJLyogUHJvZ3JhbSB0aGUgbWF4IHJl Z2lzdGVyIHRvIGNsYW1wIHZhbHVlcyA+IDEuMC4gKi8KKwkJaSA9IGx1dF9zaXplIC0gMTsKKwkJ STkxNV9XUklURShQTEFORV9HQU1DMTYocGlwZSwgcGxhbmUsIDApLAorCQkJICAgZHJtX2NvbG9y X2x1dF9leHRyYWN0KGx1dFtpXS5yZWQsIDE2KSk7CisJCUk5MTVfV1JJVEUoUExBTkVfR0FNQzE2 KHBpcGUsIHBsYW5lLCAxKSwKKwkJCSAgIGRybV9jb2xvcl9sdXRfZXh0cmFjdChsdXRbaV0uZ3Jl ZW4sIDE2KSk7CisJCUk5MTVfV1JJVEUoUExBTkVfR0FNQzE2KHBpcGUsIHBsYW5lLCAyKSwKKwkJ CSAgIGRybV9jb2xvcl9sdXRfZXh0cmFjdChsdXRbaV0uYmx1ZSwgMTYpKTsKKwl9IGVsc2Ugewor CQlmb3IgKGkgPSAwOyBpIDwgbHV0X3NpemU7IGkrKykgeworCQkJdWludDMyX3QgdiA9IChpICog KCgxIDw8IDEwKSAtIDEpKSAvIChsdXRfc2l6ZSAtIDEpOworCisJCQlJOTE1X1dSSVRFKFBMQU5F X0dBTUMocGlwZSwgcGxhbmUsIGkpLAorCQkJCSAgICh2IDw8IDIwKSB8ICh2IDw8IDEwKSB8IHYp OworCQl9CisKKwkJSTkxNV9XUklURShQTEFORV9HQU1DMTYocGlwZSwgcGxhbmUsIDApLCAoMSA8 PCAxNikgLSAxKTsKKwkJSTkxNV9XUklURShQTEFORV9HQU1DMTYocGlwZSwgcGxhbmUsIDEpLCAo MSA8PCAxNikgLSAxKTsKKwkJSTkxNV9XUklURShQTEFORV9HQU1DMTYocGlwZSwgcGxhbmUsIDIp LCAoMSA8PCAxNikgLSAxKTsKKwl9Cit9CisKKy8qIExvYWRzIHRoZSBwYWxldHRlL2dhbW1hIHVu aXQgZm9yIHRoZSBDUlRDIG9uIEJyb2Fkd2VsbCsuICovCitzdGF0aWMgdm9pZCBicm9hZHdlbGxf bG9hZF9wbGFuZV9sdXRzKGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQorewor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPnBsYW5l LT5kZXYpOworCisJYmR3X2xvYWRfcGxhbmVfZ2FtbWFfbHV0KHN0YXRlLAorCQlJTlRFTF9JTkZP KGRldl9wcml2KS0+cGxhbmVfY29sb3IucGxhbmVfZGVnYW1tYV9sdXRfc2l6ZSk7Cit9CisKIHN0 YXRpYyB2b2lkIGdsa19sb2FkX2RlZ2FtbWFfbHV0KHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3Rh dGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0 ZS0+Y3J0Yy0+ZGV2KTsKQEAgLTY0OCw2ICs3MDEsMTEgQEAgdm9pZCBpbnRlbF9wbGFuZV9jb2xv cl9pbml0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogCiAJZHJtX3BsYW5lX2NvbG9yX2NyZWF0 ZV9wcm9wKHBsYW5lLT5kZXYsIHBsYW5lKTsKIAorCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYp IHx8IElTX0dFTjlfQkMoZGV2X3ByaXYpIHx8CisJCUlTX0JST1hUT04oZGV2X3ByaXYpKSB7CisJ CWRldl9wcml2LT5kaXNwbGF5LmxvYWRfcGxhbmVfbHV0cyA9IGJyb2Fkd2VsbF9sb2FkX3BsYW5l X2x1dHM7CisJfQorCiAJLyogRW5hYmxlIGNvbG9yIG1hbmFnZW1lbnQgc3VwcG9ydCB3aGVuIHdl IGhhdmUgZGVnYW1tYSAmIGdhbW1hIExVVHMuICovCiAJaWYgKElOVEVMX0lORk8oZGV2X3ByaXYp LT5wbGFuZV9jb2xvci5wbGFuZV9kZWdhbW1hX2x1dF9zaXplICE9IDAgJiYKIAkgICAgSU5URUxf SU5GTyhkZXZfcHJpdiktPnBsYW5lX2NvbG9yLnBsYW5lX2dhbW1hX2x1dF9zaXplICE9IDApCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNjkwZTFlOC4uMmQxNWFjMiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTM4MDMsNiArMTM4MDMsMTAgQEAg Ym9vbCBza2xfcGxhbmVfaGFzX3BsYW5hcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJCQkJCQkgIERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSwKIAkJCQkJCSAgRFJNX0NPTE9SX1lD QkNSX0xJTUlURURfUkFOR0UpOwogCisJLyogQWRkIFBsYW5lIENvbG9yIHByb3BlcnRpZXMgKi8K KwlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSB8fCBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkp CisJCWludGVsX3BsYW5lX2NvbG9yX2luaXQoJnByaW1hcnktPmJhc2UpOworCiAJZHJtX3BsYW5l X2hlbHBlcl9hZGQoJnByaW1hcnktPmJhc2UsICZpbnRlbF9wbGFuZV9oZWxwZXJfZnVuY3MpOwog CiAJcmV0dXJuIHByaW1hcnk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCmluZGV4IGY3 MDI2ZTguLjBlZWIxZDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nw cml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCkBAIC0xNjUw LDYgKzE2NTAsMTAgQEAgc3RydWN0IGludGVsX3BsYW5lICoKIAkJCQkJICBEUk1fQ09MT1JfWUNC Q1JfQlQ3MDksCiAJCQkJCSAgRFJNX0NPTE9SX1lDQkNSX0xJTUlURURfUkFOR0UpOwogCisJLyog QWRkIFBsYW5lIENvbG9yIHByb3BlcnRpZXMgKi8KKwlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2 KSB8fCBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCisJCWludGVsX3BsYW5lX2NvbG9yX2luaXQo JmludGVsX3BsYW5lLT5iYXNlKTsKKwogCWRybV9wbGFuZV9oZWxwZXJfYWRkKCZpbnRlbF9wbGFu ZS0+YmFzZSwgJmludGVsX3BsYW5lX2hlbHBlcl9mdW5jcyk7CiAKIAlyZXR1cm4gaW50ZWxfcGxh bmU7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==