From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH v3 12/14] drm/i915: prepare csc unit for YCBCR HDMI output Date: Wed, 14 Jun 2017 23:17:43 +0530 Message-ID: <1497462465-14066-13-git-send-email-shashank.sharma@intel.com> References: <1497462465-14066-1-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1497462465-14066-1-git-send-email-shashank.sharma@intel.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, intel-gfx@lists.freedesktop.org, ville.syrjala@linux.intel.com Cc: Daniel Vetter , ander.conselvan.de.oliveira@intel.com List-Id: dri-devel@lists.freedesktop.org VG8gc3VwcG9ydCB5Y2JjciBIRE1JIG91dHB1dCwgd2UgbmVlZCBhIHBpcGUgQ1NDIGJsb2NrIHRv CmRvIHRoZSBSR0ItPllDQkNSIGNvbnZlcnNpb24sIGFzIHRoZSBibGVuZGVyIG91dHB1dCBpcyBp biBSR0IuCgpDdXJyZW50IEludGVsIHBsYXRmb3JtcyBoYXZlIG9ubHkgb25lIHBpcGUgQ1NDIHVu aXQsIHNvCndlIGNhbiBlaXRoZXIgZG8gY29sb3IgY29ycmVjdGlvbiB1c2luZyBpdCwgb3Igd2Ug Y2FuIHBlcmZvcm0KUkdCLT5ZQ0JDUiBjb252ZXJzaW9uLgoKVGhpcyBmdW5jdGlvbiBhZGRzIGEg Y3NjIGhhbmRsZXIsIHRvIHBlcmZvcm0gUkdCLT5ZQ0JDUiBjb252ZXJzaW9uCmFzIHBlciByZWNv bW1lbmRlZCBzcGVjIHZhbHVlcy4KClYyOiBSZWJhc2UKVjM6IFJlYmFzZQoKQ2M6IFZpbGxlIFN5 cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpDYzogRGFuaWVsIFZldHRlciA8 ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+CkNjOiBBbmRlciBDb25zZWx2YW4gRGUgT2xpdmVpcmEg PGFuZGVyLmNvbnNlbHZhbi5kZS5vbGl2ZWlyYUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFNo YXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jICAgfCA0NyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDMyICsr KysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKaW5kZXggMzA2YzZi MC4uMTJkNWYyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3Iu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCkBAIC00MSw2ICs0MSwx OSBAQAogCiAjZGVmaW5lIExFR0FDWV9MVVRfTEVOR1RICQkoc2l6ZW9mKHN0cnVjdCBkcm1fY29s b3JfbHV0KSAqIDI1NikKIAorLyogUG9zdCBvZmZzZXQgdmFsdWVzIGZvciBSR0ItPllDQkNSIGNv bnZlcnNpb24gKi8KKyNkZWZpbmUgUE9TVE9GRl9SR0JfVE9fWVVWX0hJIDB4ODAwCisjZGVmaW5l IFBPU1RPRkZfUkdCX1RPX1lVVl9NRSAweDEwMAorI2RlZmluZSBQT1NUT0ZGX1JHQl9UT19ZVVZf TE8gMHg4MDAKKworLyogRGlyZWN0IHNwZWMgdmFsdWVzIGZvciBSR0ItPllVViBjb252ZXJzaW9u IG1hdHJpeCAqLworI2RlZmluZSBDU0NfUkdCX1RPX1lVVl9SVV9HVSAweDJiYTgwOWQ4CisjZGVm aW5lIENTQ19SR0JfVE9fWVVWX0JVIDB4MzdlODAwMDAKKyNkZWZpbmUgQ1NDX1JHQl9UT19ZVVZf UllfR1kgMHgxZTA4OWNjMAorI2RlZmluZSBDU0NfUkdCX1RPX1lVVl9CWSAweGI1MjgwMDAwCisj ZGVmaW5lIENTQ19SR0JfVE9fWVVWX1JWX0dWIDB4YmNlODlhZDgKKyNkZWZpbmUgQ1NDX1JHQl9U T19ZVVZfQlYgMHgxZTA4MDAwMAorCiAvKgogICogRXh0cmFjdCB0aGUgQ1NDIGNvZWZmaWNpZW50 IGZyb20gYSBDVE0gY29lZmZpY2llbnQgKGluIFUzMi4zMiBmaXhlZCBwb2ludAogICogZm9ybWF0 KS4gVGhpcyBtYWNybyB0YWtlcyB0aGUgY29lZmZpY2llbnQgd2Ugd2FudCB0cmFuc2Zvcm1lZCBh bmQgdGhlCkBAIC05MSw2ICsxMDQsMzUgQEAgc3RhdGljIHZvaWQgY3RtX211bHRfYnlfbGltaXRl ZCh1aW50NjRfdCAqcmVzdWx0LCBpbnQ2NF90ICppbnB1dCkKIAl9CiB9CiAKK3ZvaWQgaTl4eF9s b2FkX3ljYmNyX2NvbnZlcnNpb25fbWF0cml4KHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj KQoreworCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2NydGMtPmJhc2UuZGV2KTsKKworCS8qIFdl IGRvbid0IHVzZSBoaWdoIHZhbHVlcyBmb3IgY29udmVyc2lvbiAqLworCUk5MTVfV1JJVEUoUElQ RV9DU0NfUFJFT0ZGX0hJKHBpcGUpLCAwKTsKKwlJOTE1X1dSSVRFKFBJUEVfQ1NDX1BSRU9GRl9N RShwaXBlKSwgMCk7CisJSTkxNV9XUklURShQSVBFX0NTQ19QUkVPRkZfTE8ocGlwZSksIDApOwor CisJLyogUHJvZ3JhbSBkaXJlY3Qgc3BlYyB2YWx1ZXMgZm9yIFJHQiB0byBZQ0JDUiBjb252ZXJz aW9uIG1hdHJpeCAqLworCUk5MTVfV1JJVEUoUElQRV9DU0NfQ09FRkZfUlVfR1UocGlwZSksIENT Q19SR0JfVE9fWVVWX1JVX0dVKTsKKwlJOTE1X1dSSVRFKFBJUEVfQ1NDX0NPRUZGX0JVKHBpcGUp LCBDU0NfUkdCX1RPX1lVVl9CVSk7CisKKwlJOTE1X1dSSVRFKFBJUEVfQ1NDX0NPRUZGX1JZX0dZ KHBpcGUpLCBDU0NfUkdCX1RPX1lVVl9SWV9HWSk7CisJSTkxNV9XUklURShQSVBFX0NTQ19DT0VG Rl9CWShwaXBlKSwgQ1NDX1JHQl9UT19ZVVZfQlkpOworCisJSTkxNV9XUklURShQSVBFX0NTQ19D T0VGRl9SVl9HVihwaXBlKSwgQ1NDX1JHQl9UT19ZVVZfUlZfR1YpOworCUk5MTVfV1JJVEUoUElQ RV9DU0NfQ09FRkZfQlYocGlwZSksIENTQ19SR0JfVE9fWVVWX0JWKTsKKworCS8qIFNwZWMgcG9z dG9mZnNldCB2YWx1ZXMgKi8KKwlJOTE1X1dSSVRFKFBJUEVfQ1NDX1BPU1RPRkZfSEkocGlwZSks IFBPU1RPRkZfUkdCX1RPX1lVVl9ISSk7CisJSTkxNV9XUklURShQSVBFX0NTQ19QT1NUT0ZGX01F KHBpcGUpLCBQT1NUT0ZGX1JHQl9UT19ZVVZfTUUpOworCUk5MTVfV1JJVEUoUElQRV9DU0NfUE9T VE9GRl9MTyhwaXBlKSwgUE9TVE9GRl9SR0JfVE9fWVVWX0xPKTsKKworCS8qIENTQyBtb2RlIGJl Zm9yZSBnYW1tYSAqLworCUk5MTVfV1JJVEUoUElQRV9DU0NfTU9ERShwaXBlKSwgMCk7Cit9CisK IC8qIFNldCB1cCB0aGUgcGlwZSBDU0MgdW5pdC4gKi8KIHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9j c2NfbWF0cml4KHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKQEAgLTEwMSw3 ICsxNDMsMTAgQEAgc3RhdGljIHZvaWQgaTl4eF9sb2FkX2NzY19tYXRyaXgoc3RydWN0IGRybV9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCXVpbnQxNl90IGNvZWZmc1s5XSA9IHsgMCwgfTsKIAlz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNf c3RhdGUoY3J0Y19zdGF0ZSk7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+Y3RtKSB7CisJaWYgKGludGVs X2NydGNfc3RhdGUtPmhkbWlfb3V0cHV0ID4gRFJNX0hETUlfT1VUUFVUX0RFRkFVTFRfUkdCKSB7 CisJCWk5eHhfbG9hZF95Y2Jjcl9jb252ZXJzaW9uX21hdHJpeChpbnRlbF9jcnRjKTsKKwkJcmV0 dXJuOworCX0gZWxzZSBpZiAoY3J0Y19zdGF0ZS0+Y3RtKSB7CiAJCXN0cnVjdCBkcm1fY29sb3Jf Y3RtICpjdG0gPQogCQkJKHN0cnVjdCBkcm1fY29sb3JfY3RtICopY3J0Y19zdGF0ZS0+Y3RtLT5k YXRhOwogCQl1aW50NjRfdCBpbnB1dFs5XSA9IHsgMCwgfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwppbmRleCA3MWZkMTllLi45NmZmMmEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCkBAIC02MjYxLDYgKzYyNjEsMjkgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0 Y19jb21wdXRlX3BpeGVsX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiAJCQlpbGtfcGlwZV9waXhlbF9yYXRlKGNydGNfc3RhdGUpOwogfQogCitzdGF0aWMgaW50IGlu dGVsX2NydGNfeWNiY3JfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0ZSkKK3sK KwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmRybV9zdGF0ZSA9ICZzdGF0ZS0+YmFzZTsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRybV9zdGF0ZS0+Y3J0Yy0+ ZGV2KTsKKworCS8qIFlDQkNSNDIwIGlzIHN1cHBvcnRlZCBvbmx5IGluIEhETUkgMi4wIGNvbnRy b2xsZXJzICovCisJaWYgKChzdGF0ZS0+aGRtaV9vdXRwdXQgPT0gRFJNX0hETUlfT1VUUFVUX1lD QkNSNDIwKSAmJgorCQkhSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpIHsKKwkJRFJNX0VSUk9SKCJZ Q0JDUjQyMCBvdXRwdXQgaXMgbm90IHN1cHBvcnRlZFxuIik7CisJCXJldHVybiAtRUlOVkFMOwor CX0KKworCS8qIFdlIG5lZWQgQ1NDIGZvciBvdXRwdXQgY29udmVyc2lvbiBmcm9tIFJHQi0+WUNC Q1IgKi8KKwlpZiAoZHJtX3N0YXRlLT5jdG0pIHsKKwkJRFJNX0VSUk9SKCJZQ0JDUiBvdXRwdXQg YW5kIENUTSBpcyBub3QgcG9zc2libGUgdG9nZXRoZXJcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsK Kwl9CisKKwlEUk1fREVCVUdfRFJJVkVSKCJPdXRwdXQgJXMgY2FuIGJlIHN1cHBvcnRlZFxuIiwK KwkJCSBkcm1fZ2V0X2hkbWlfb3V0cHV0X25hbWUoc3RhdGUtPmhkbWlfb3V0cHV0KSk7CisJcmV0 dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywKIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZykKIHsKQEAgLTYyOTAsNiArNjMxMywxNCBAQCBzdGF0aWMgaW50IGludGVsX2NydGNf Y29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCXJldHVybiAtRUlOVkFM OwogCX0KIAorCS8qIFlDQkNSIG91dHB1dCBjaGVjayAqLworCWlmIChwaXBlX2NvbmZpZy0+aGRt aV9vdXRwdXQgPiBEUk1fSERNSV9PVVRQVVRfREVGQVVMVF9SR0IpIHsKKwkJaWYgKGludGVsX2Ny dGNfeWNiY3JfY29uZmlnKHBpcGVfY29uZmlnKSkgeworCQkJRFJNX0VSUk9SKCJDYW50IGVuYWJs ZSBIRE1JIFlDQkNSIG91dHB1dFxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCX0KKwog CS8qCiAJICogUGlwZSBob3Jpem9udGFsIHNpemUgbXVzdCBiZSBldmVuIGluOgogCSAqIC0gRFZP IGdhbmdlZCBtb2RlCkBAIC0xMTY1OCw2ICsxMTY4OSw3IEBAIGludGVsX21vZGVzZXRfcGlwZV9j b25maWcoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJRFJNX0RFQlVHX0tNUygiRW5jb2RlciBj b25maWcgZmFpbHVyZVxuIik7CiAJCQlnb3RvIGZhaWw7CiAJCX0KKwogCX0KIAogCS8qIFNldCBk ZWZhdWx0IHBvcnQgY2xvY2sgaWYgbm90IG92ZXJ3cml0dGVuIGJ5IHRoZSBlbmNvZGVyLiBOZWVk cyB0byBiZQotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=