From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH 17/24] drm/i915/icl: Add 10-bit support for hdmi Date: Mon, 21 May 2018 17:25:51 -0700 Message-ID: <20180522002558.29262-18-paulo.r.zanoni@intel.com> References: <20180522002558.29262-1-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id D662A6E051 for ; Tue, 22 May 2018 00:26:03 +0000 (UTC) In-Reply-To: <20180522002558.29262-1-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Paulo Zanoni , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org RnJvbTogIlNyaXBhZGEsIFJhZGhha3Jpc2huYSIgPHJhZGhha3Jpc2huYS5zcmlwYWRhQGludGVs LmNvbT4KClN0YXJ0aW5nIEljZWxha2Ugc2lsaWNvbiBzdXBwb3J0cyAxMC1icGMgaGRtaSB0byBz dXBwb3J0IGNlcnRhaW4KbWVkaWEgd29ya2xvYWRzLiBDdXJyZW50bHkgaGRtaSBzdXBwb3J0cyA4 IGFuZCAxMiBicGMuIFBsdW1iZWQKaW4gc3VwcG9ydCBmb3IgMTAgYml0IGhkbWkuCgpDYzogSmFt ZXMgQXVzbXVzIDxqYW1lcy5hdXNtdXNAaW50ZWwuY29tPgpDYzogSmFuaSBOaWt1bGEgPGphbmku bmlrdWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlA aW50ZWwuY29tPgpDYzogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4K Q2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFJhZGhh a3Jpc2huYSBTcmlwYWRhIDxyYWRoYWtyaXNobmEuc3JpcGFkYUBpbnRlbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIHwgNjQgKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgMTYg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRt aS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCmluZGV4IDBjYTRjYzg3NzUy MC4uNTNhYzhiYjg1MjE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCkBAIC0xNTYxLDE0 ICsxNTYxLDIzIEBAIGludGVsX2hkbWlfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yLAogCS8qIGNoZWNrIGlmIHdlIGNhbiBkbyA4YnBjICovCiAJc3RhdHVzID0gaGRt aV9wb3J0X2Nsb2NrX3ZhbGlkKGhkbWksIGNsb2NrLCB0cnVlLCBmb3JjZV9kdmkpOwogCi0JLyog aWYgd2UgY2FuJ3QgZG8gOGJwYyB3ZSBtYXkgc3RpbGwgYmUgYWJsZSB0byBkbyAxMmJwYyAqLwot CWlmICghSEFTX0dNQ0hfRElTUExBWShkZXZfcHJpdikgJiYgc3RhdHVzICE9IE1PREVfT0sgJiYg aGRtaS0+aGFzX2hkbWlfc2luayAmJiAhZm9yY2VfZHZpKQotCQlzdGF0dXMgPSBoZG1pX3BvcnRf Y2xvY2tfdmFsaWQoaGRtaSwgY2xvY2sgKiAzIC8gMiwgdHJ1ZSwgZm9yY2VfZHZpKTsKKwlpZiAo aGRtaS0+aGFzX2hkbWlfc2luayAmJiAhZm9yY2VfZHZpKSB7CisJCS8qIGlmIHdlIGNhbid0IGRv IDhicGMgd2UgbWF5IHN0aWxsIGJlIGFibGUgdG8gZG8gMTJicGMgKi8KKwkJaWYgKHN0YXR1cyAh PSBNT0RFX09LICYmICFIQVNfR01DSF9ESVNQTEFZKGRldl9wcml2KSkKKwkJCXN0YXR1cyA9IGhk bWlfcG9ydF9jbG9ja192YWxpZChoZG1pLCBjbG9jayAqIDMgLyAyLAorCQkJCQkJICAgICAgIHRy dWUsIGZvcmNlX2R2aSk7CisKKwkJLyogaWYgd2UgY2FuJ3QgZG8gOCwxMmJwYyB3ZSBtYXkgc3Rp bGwgYmUgYWJsZSB0byBkbyAxMGJwYyAqLworCQlpZiAoc3RhdHVzICE9IE1PREVfT0sgJiYgSU5U RUxfR0VOKGRldl9wcml2KSA+PSAxMSkKKwkJCXN0YXR1cyA9IGhkbWlfcG9ydF9jbG9ja192YWxp ZChoZG1pLCBjbG9jayAqIDUgLyA0LAorCQkJCQkJICAgICAgIHRydWUsIGZvcmNlX2R2aSk7CisJ fQogCiAJcmV0dXJuIHN0YXR1czsKIH0KIAotc3RhdGljIGJvb2wgaGRtaV8xMmJwY19wb3NzaWJs ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3N0YXRpYyBib29s IGhkbWlfZGVlcF9jb2xvcl9wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKKwkJCQkgICAgIGludCBicGMpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0KIAkJdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CkBA IC0xNTgwLDYgKzE1ODksOSBAQCBzdGF0aWMgYm9vbCBoZG1pXzEyYnBjX3Bvc3NpYmxlKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCWlmIChIQVNfR01DSF9ESVNQ TEFZKGRldl9wcml2KSkKIAkJcmV0dXJuIGZhbHNlOwogCisJaWYgKGJwYyA9PSAxMCAmJiBJTlRF TF9HRU4oZGV2X3ByaXYpIDwgMTEpCisJCXJldHVybiBmYWxzZTsKKwogCWlmIChjcnRjX3N0YXRl LT5waXBlX2JwcCA8PSA4KjMpCiAJCXJldHVybiBmYWxzZTsKIApAQCAtMTU4Nyw3ICsxNTk5LDcg QEAgc3RhdGljIGJvb2wgaGRtaV8xMmJwY19wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyoKLQkgKiBIRE1JIDEy YnBjIGFmZmVjdHMgdGhlIGNsb2Nrcywgc28gaXQncyBvbmx5IHBvc3NpYmxlCisJICogSERNSSBk ZWVwIGNvbG9yIGFmZmVjdHMgdGhlIGNsb2Nrcywgc28gaXQncyBvbmx5IHBvc3NpYmxlCiAJICog d2hlbiBub3QgY2xvbmluZyB3aXRoIG90aGVyIGVuY29kZXIgdHlwZXMuCiAJICovCiAJaWYgKGNy dGNfc3RhdGUtPm91dHB1dF90eXBlcyAhPSAxIDw8IElOVEVMX09VVFBVVF9IRE1JKQpAQCAtMTYw MiwxNiArMTYxNCwyNCBAQCBzdGF0aWMgYm9vbCBoZG1pXzEyYnBjX3Bvc3NpYmxlKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCQlpZiAoY3J0Y19zdGF0ZS0+eWNi Y3I0MjApIHsKIAkJCWNvbnN0IHN0cnVjdCBkcm1faGRtaV9pbmZvICpoZG1pID0gJmluZm8tPmhk bWk7CiAKLQkJCWlmICghKGhkbWktPnk0MjBfZGNfbW9kZXMgJiBEUk1fRURJRF9ZQ0JDUjQyMF9E Q18zNikpCisJCQlpZiAoYnBjID09IDEyICYmICEoaGRtaS0+eTQyMF9kY19tb2RlcyAmCisJCQkJ CSAgIERSTV9FRElEX1lDQkNSNDIwX0RDXzM2KSkKKwkJCQlyZXR1cm4gZmFsc2U7CisJCQllbHNl IGlmIChicGMgPT0gMTAgJiYgIShoZG1pLT55NDIwX2RjX21vZGVzICYKKwkJCQkJCURSTV9FRElE X1lDQkNSNDIwX0RDXzMwKSkKIAkJCQlyZXR1cm4gZmFsc2U7CiAJCX0gZWxzZSB7Ci0JCQlpZiAo IShpbmZvLT5lZGlkX2hkbWlfZGNfbW9kZXMgJiBEUk1fRURJRF9IRE1JX0RDXzM2KSkKKwkJCWlm IChicGMgPT0gMTIgJiYgIShpbmZvLT5lZGlkX2hkbWlfZGNfbW9kZXMgJgorCQkJCQkgICBEUk1f RURJRF9IRE1JX0RDXzM2KSkKKwkJCQlyZXR1cm4gZmFsc2U7CisJCQllbHNlIGlmIChicGMgPT0g MTAgJiYgIShpbmZvLT5lZGlkX2hkbWlfZGNfbW9kZXMgJgorCQkJCQkJRFJNX0VESURfSERNSV9E Q18zMCkpCiAJCQkJcmV0dXJuIGZhbHNlOwogCQl9CiAJfQogCiAJLyogRGlzcGxheSBXQSAjMTEz OTogZ2xrICovCi0JaWYgKElTX0dMS19SRVZJRChkZXZfcHJpdiwgMCwgR0xLX1JFVklEX0ExKSAm JgorCWlmIChicGMgPT0gMTIgJiYgSVNfR0xLX1JFVklEKGRldl9wcml2LCAwLCBHTEtfUkVWSURf QTEpICYmCiAJICAgIGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5odG90YWwgPiA1NDYw KQogCQlyZXR1cm4gZmFsc2U7CiAKQEAgLTE2MjEsNyArMTY0MSw4IEBAIHN0YXRpYyBib29sIGhk bWlfMTJicGNfcG9zc2libGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiBzdGF0aWMgYm9vbAogaW50ZWxfaGRtaV95Y2JjcjQyMF9jb25maWcoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciwKIAkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25m aWcsCi0JCQkgICBpbnQgKmNsb2NrXzEyYnBjLCBpbnQgKmNsb2NrXzhicGMpCisJCQkgICBpbnQg KmNsb2NrXzEyYnBjLCBpbnQgKmNsb2NrXzEwYnBjLAorCQkJICAgaW50ICpjbG9ja184YnBjKQog ewogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhjb25maWct PmJhc2UuY3J0Yyk7CiAKQEAgLTE2MzMsNiArMTY1NCw3IEBAIGludGVsX2hkbWlfeWNiY3I0MjBf Y29uZmlnKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJLyogWUNCQ1I0MjAgVE1E UyByYXRlIHJlcXVpcmVtZW50IGlzIGhhbGYgdGhlIHBpeGVsIGNsb2NrICovCiAJY29uZmlnLT5w b3J0X2Nsb2NrIC89IDI7CiAJKmNsb2NrXzEyYnBjIC89IDI7CisJKmNsb2NrXzEwYnBjIC89IDI7 CiAJKmNsb2NrXzhicGMgLz0gMjsKIAljb25maWctPnljYmNyNDIwID0gdHJ1ZTsKIApAQCAtMTY2 MCw2ICsxNjgyLDcgQEAgYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0 ZSAqaW50ZWxfY29ubl9zdGF0ZSA9CiAJCXRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRl KGNvbm5fc3RhdGUpOwogCWludCBjbG9ja184YnBjID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0 ZWRfbW9kZS5jcnRjX2Nsb2NrOworCWludCBjbG9ja18xMGJwYyA9IGNsb2NrXzhicGMgKiA1IC8g NDsKIAlpbnQgY2xvY2tfMTJicGMgPSBjbG9ja184YnBjICogMyAvIDI7CiAJaW50IGRlc2lyZWRf YnBwOwogCWJvb2wgZm9yY2VfZHZpID0gaW50ZWxfY29ubl9zdGF0ZS0+Zm9yY2VfYXVkaW8gPT0g SERNSV9BVURJT19PRkZfRFZJOwpAQCAtMTY4MywxMiArMTcwNiwxNCBAQCBib29sIGludGVsX2hk bWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKGFk anVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxDTEspIHsKIAkJcGlwZV9jb25m aWctPnBpeGVsX211bHRpcGxpZXIgPSAyOwogCQljbG9ja184YnBjICo9IDI7CisJCWNsb2NrXzEw YnBjICo9IDI7CiAJCWNsb2NrXzEyYnBjICo9IDI7CiAJfQogCiAJaWYgKGRybV9tb2RlX2lzXzQy MF9vbmx5KCZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbywgYWRqdXN0ZWRfbW9kZSkpIHsKIAkJaWYg KCFpbnRlbF9oZG1pX3ljYmNyNDIwX2NvbmZpZyhjb25uZWN0b3IsIHBpcGVfY29uZmlnLAotCQkJ CQkJJmNsb2NrXzEyYnBjLCAmY2xvY2tfOGJwYykpIHsKKwkJCQkJCSZjbG9ja18xMmJwYywgJmNs b2NrXzEwYnBjLAorCQkJCQkJJmNsb2NrXzhicGMpKSB7CiAJCQlEUk1fRVJST1IoIkNhbid0IHN1 cHBvcnQgWUNCQ1I0MjAgb3V0cHV0XG4iKTsKIAkJCXJldHVybiBmYWxzZTsKIAkJfQpAQCAtMTcw NiwxOCArMTczMSwyNSBAQCBib29sIGludGVsX2hkbWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJfQogCiAJLyoKLQkgKiBIRE1JIGlzIGVpdGhlciAxMiBv ciA4LCBzbyBpZiB0aGUgZGlzcGxheSBsZXRzIDEwYnBjIHNuZWFrCi0JICogdGhyb3VnaCwgY2xh bXAgaXQgZG93bi4gTm90ZSB0aGF0IGc0eC92bHYgZG9uJ3Qgc3VwcG9ydCAxMmJwYyBoZG1pCi0J ICogb3V0cHV0cy4gV2UgYWxzbyBuZWVkIHRvIGNoZWNrIHRoYXQgdGhlIGhpZ2hlciBjbG9jayBz dGlsbCBmaXRzCi0JICogd2l0aGluIGxpbWl0cy4KKwkgKiBOb3RlIHRoYXQgZzR4L3ZsdiBkb24n dCBzdXBwb3J0IDEyYnBjIGhkbWkgb3V0cHV0cy4gV2UgYWxzbyBuZWVkCisJICogdG8gY2hlY2sg dGhhdCB0aGUgaGlnaGVyIGNsb2NrIHN0aWxsIGZpdHMgd2l0aGluIGxpbWl0cy4KIAkgKi8KLQlp ZiAoaGRtaV8xMmJwY19wb3NzaWJsZShwaXBlX2NvbmZpZykgJiYKLQkgICAgaGRtaV9wb3J0X2Ns b2NrX3ZhbGlkKGludGVsX2hkbWksIGNsb2NrXzEyYnBjLCB0cnVlLCBmb3JjZV9kdmkpID09IE1P REVfT0spIHsKKwlpZiAoaGRtaV9kZWVwX2NvbG9yX3Bvc3NpYmxlKHBpcGVfY29uZmlnLCAxMikg JiYKKwkgICAgaGRtaV9wb3J0X2Nsb2NrX3ZhbGlkKGludGVsX2hkbWksIGNsb2NrXzEyYnBjLAor CQkJCSAgdHJ1ZSwgZm9yY2VfZHZpKSA9PSBNT0RFX09LKSB7CiAJCURSTV9ERUJVR19LTVMoInBp Y2tpbmcgYnBjIHRvIDEyIGZvciBIRE1JIG91dHB1dFxuIik7CiAJCWRlc2lyZWRfYnBwID0gMTIq MzsKIAogCQkvKiBOZWVkIHRvIGFkanVzdCB0aGUgcG9ydCBsaW5rIGJ5IDEuNXggZm9yIDEyYnBj LiAqLwogCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGNsb2NrXzEyYnBjOworCX0gZWxzZSBp ZiAoaGRtaV9kZWVwX2NvbG9yX3Bvc3NpYmxlKHBpcGVfY29uZmlnLCAxMCkgJiYKKwkJICAgaGRt aV9wb3J0X2Nsb2NrX3ZhbGlkKGludGVsX2hkbWksIGNsb2NrXzEwYnBjLAorCQkJCQkgdHJ1ZSwg Zm9yY2VfZHZpKSA9PSBNT0RFX09LKSB7CisJCURSTV9ERUJVR19LTVMoInBpY2tpbmcgYnBjIHRv IDEwIGZvciBIRE1JIG91dHB1dFxuIik7CisJCWRlc2lyZWRfYnBwID0gMTAgKiAzOworCisJCS8q IE5lZWQgdG8gYWRqdXN0IHRoZSBwb3J0IGxpbmsgYnkgMS4yNXggZm9yIDEwYnBjLiAqLworCQlw aXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGNsb2NrXzEwYnBjOwogCX0gZWxzZSB7CiAJCURSTV9E RUJVR19LTVMoInBpY2tpbmcgYnBjIHRvIDggZm9yIEhETUkgb3V0cHV0XG4iKTsKIAkJZGVzaXJl ZF9icHAgPSA4KjM7Ci0tIAoyLjE0LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=