From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v2 40/42] drm/i915: Implement the HDCP2.2 support for HDMI Date: Thu, 8 Mar 2018 17:29:07 +0530 Message-ID: <1520510349-8385-41-git-send-email-ramalingam.c@intel.com> References: <1520510349-8385-1-git-send-email-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1520510349-8385-1-git-send-email-ramalingam.c@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, dri-devel@lists.freedesktop.org, seanpaul@chromium.org, chris@chris-wilson.co.uk, tomas.winkler@intel.com, jani.nikula@linux.intel.com Cc: rodrigo.vivi@intel.com List-Id: dri-devel@lists.freedesktop.org SW1wbGVtZW50cyB0aGUgSERNSSBhZGFwYXRhdGlvbiBzcGVjaWZpYyBIRENQMi4yIG9wZXJhdGlv bnMuCgpCYXNpY2FsbHkgdGhlc2UgYXJlIEREQyByZWFkIGFuZCB3cml0ZSBmb3IgYXV0aGVudGlj YXRpbmcgdGhyb3VnaApIRENQMi4yIG1lc3NhZ2VzLgoKdjI6CiAgUmViYXNlZC4KClNpZ25lZC1v ZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgfCAyMDMgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyMDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkbWkuYwppbmRleCA0MWQyNTA1YTk2NGIuLjEyZjZhY2E5NDdiNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGxp bnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2hk bWkuaD4KKyNpbmNsdWRlIDxsaW51eC9tZWlfaGRjcC5oPgogI2luY2x1ZGUgPGRybS9kcm1QLmg+ CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9j cnRjLmg+CkBAIC0xMTA2LDYgKzExMDcsMjAzIEBAIGJvb2wgaW50ZWxfaGRtaV9oZGNwX2NoZWNr X2xpbmsoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCiAJcmV0dXJu IHRydWU7CiB9CiAKK3N0YXRpYworaW50IGludGVsX2hkbWlfaGRjcDJfcmVhZF9yeF9zdGF0dXMo c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkJICAgIHVpbnQ4 X3QgKnJ4X3N0YXR1cykKK3sKKwlyZXR1cm4gaW50ZWxfaGRtaV9oZGNwX3JlYWQoaW50ZWxfZGln X3BvcnQsCisJCQkJICAgIEhEQ1BfMl8yX0hETUlfUkVHX1JYU1RBVFVTX09GRlNFVCwKKwkJCQkg ICAgcnhfc3RhdHVzLAorCQkJCSAgICBIRENQXzJfMl9IRE1JX1JYU1RBVFVTX0xFTik7Cit9CisK K3N0YXRpYyBpbmxpbmUKK2ludCBpbnRlbF9oZG1pX2hkY3AyX3RpbWVvdXRfZm9yX21zZyh1aW50 OF90IG1zZ19pZCwgYm9vbCBpc19wYWlyZWQpCit7CisJaW50IHRpbWVvdXQgPSAtRUlOVkFMOwor CisJc3dpdGNoIChtc2dfaWQpIHsKKwljYXNlIEhEQ1BfMl8yX0FLRV9TRU5EX0NFUlQ6CisJCXRp bWVvdXQgPSBIRENQXzJfMl9DRVJUX1RJTUVPVVQ7CisJCWJyZWFrOworCWNhc2UgSERDUF8yXzJf QUtFX1NFTkRfSFBSSU1FOgorCQlpZiAoaXNfcGFpcmVkKQorCQkJdGltZW91dCA9IEhEQ1BfMl8y X0hQUklNRV9QQUlSRURfVElNRU9VVDsKKwkJZWxzZQorCQkJdGltZW91dCA9IEhEQ1BfMl8yX0hQ UklNRV9OT19QQUlSRURfVElNRU9VVDsKKwkJYnJlYWs7CisJY2FzZSBIRENQXzJfMl9BS0VfU0VO RF9QQVJJTkdfSU5GTzoKKwkJdGltZW91dCA9IEhEQ1BfMl8yX1BBSVJJTkdfVElNRU9VVDsKKwkJ YnJlYWs7CisJY2FzZSBIRENQXzJfMl9MQ19TRU5EX0xQUklNRToKKwkJdGltZW91dCA9IEhEQ1Bf Ml8yX0hETUlfTFBSSU1FX1RJTUVPVVQ7CisJCWJyZWFrOworCWNhc2UgSERDUF8yXzJfUkVQX1NF TkRfUkVDVklEX0xJU1Q6CisJCXRpbWVvdXQgPSBIRENQXzJfMl9SRUNWSURfTElTVF9USU1FT1VU OworCQlicmVhazsKKwljYXNlIEhEQ1BfMl8yX1JFUF9TVFJFQU1fUkVBRFk6CisJCXRpbWVvdXQg PSBIRENQXzJfMl9TVFJFQU1fUkVBRFlfVElNRU9VVDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJ RFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBtc2dfaWQ6ICVkXG4iLCAoaW50KW1zZ19pZCk7CisJfQor CXJldHVybiB0aW1lb3V0OworfQorCitzdGF0aWMgaW5saW5lCitpbnQgaGRjcDJfZGV0ZWN0X21z Z19hdmFpbGFiaWxpdHkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnaXRhbF9w b3J0LAorCQkJCSAgdWludDhfdCBtc2dfaWQsIGJvb2wgKm1zZ19yZWFkeSwKKwkJCQkgIHNzaXpl X3QgKm1zZ19zeikKK3sKKwl1aW50OF90IHJ4X3N0YXR1c1tIRENQXzJfMl9IRE1JX1JYU1RBVFVT X0xFTl07CisJaW50IHJldDsKKworCXJldCA9IGludGVsX2hkbWlfaGRjcDJfcmVhZF9yeF9zdGF0 dXMoaW50ZWxfZGlnaXRhbF9wb3J0LCByeF9zdGF0dXMpOworCWlmIChyZXQgPCAwKSB7CisJCURS TV9ERUJVR19LTVMoInJ4X3N0YXR1cyByZWFkIGZhaWxlZC4gRXJyICVkXG4iLCByZXQpOworCQly ZXR1cm4gcmV0OworCX0KKworCSptc2dfc3ogPSAoKEhEQ1BfMl8yX0hETUlfUlhTVEFUVVNfTVNH X1NaX0hJKHJ4X3N0YXR1c1sxXSkgPDwgOCkgfAorCQkgIHJ4X3N0YXR1c1swXSk7CisKKwlpZiAo bXNnX2lkID09IEhEQ1BfMl8yX1JFUF9TRU5EX1JFQ1ZJRF9MSVNUKQorCQkqbXNnX3JlYWR5ID0g KEhEQ1BfMl8yX0hETUlfUlhTVEFUVVNfUkVBRFkocnhfc3RhdHVzWzFdKSAmJgorCQkJICAgICAq bXNnX3N6KTsKKwllbHNlCisJCSptc2dfcmVhZHkgPSAqbXNnX3N6OworCisJcmV0dXJuIDA7Cit9 CisKKy8qKgorICogaW50ZWxfaGRtaV9oZGNwMl93YWl0X2Zvcl9tc2c6IERldGVjdHMgdGhlIGhk bWkgaGRjcDIuMiBtc2cgYXZhaWxhYmlsaXR5CisgKiBAaGRjcDoJaGRjcCBzdHJ1Y3R1cmUKKyAq IEBtc2dfaWQ6CU1lc3NhZ2UgSUQgZm9yIHdoaWNoIHdlIGFyZSB3YWl0aW5nCisgKgorICogRGV0 ZWN0cyB0aGUgSERNSSBIRENQMi4yIE1lc3NhZ2UgYXZhaWxhYmlsaXR5CisgKgorICogUmV0dXJu cyAtRVRJTUVPVVQgaW4gY2FzZSBvZiB0aW1lb3V0LCBNZXNzYWdlIFNpemUgb24gc3VjY2Vzcwor ICovCitzdGF0aWMgc3NpemVfdAoraW50ZWxfaGRtaV9oZGNwMl93YWl0X2Zvcl9tc2coc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkgICAgICB1aW50OF90IG1z Z19pZCwgYm9vbCBwYWlyZWQpCit7CisJYm9vbCBtc2dfcmVhZHkgPSBmYWxzZTsKKwlpbnQgdGlt ZW91dCwgcmV0OworCXNzaXplX3QgbXNnX3N6OworCisJdGltZW91dCA9IGludGVsX2hkbWlfaGRj cDJfdGltZW91dF9mb3JfbXNnKG1zZ19pZCwgcGFpcmVkKTsKKwlpZiAodGltZW91dCA8IDApCisJ CXJldHVybiB0aW1lb3V0OworCisJcmV0ID0gX193YWl0X2ZvcihyZXQgPSBoZGNwMl9kZXRlY3Rf bXNnX2F2YWlsYWJpbGl0eShpbnRlbF9kaWdfcG9ydCwKKwkJCSBtc2dfaWQsICZtc2dfcmVhZHks ICZtc2dfc3opLAorCQkJICFyZXQgJiYgbXNnX3JlYWR5ICYmIG1zZ19zeiwgdGltZW91dCAqIDEw MDAsCisJCQkgMTAwMCwgNSAqIDEwMDApOworCWlmIChyZXQpCisJCURSTV9FUlJPUigibXNnX2lk OiAlZCwgcmV0OiAlZCwgdGltZW91dDogJWRcbiIsCisJCQkgIG1zZ19pZCwgcmV0LCB0aW1lb3V0 KTsKKwlyZXR1cm4gcmV0ID8gcmV0IDogbXNnX3N6OworfQorCitzdGF0aWMKK2ludCBpbnRlbF9o ZG1pX2hkY3AyX3dyaXRlX21zZyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCwKKwkJCSAgICAgICB2b2lkICpidWYsIHNpemVfdCBzaXplKQoreworCXVuc2lnbmVkIGlu dCBvZmZzZXQ7CisKKwlvZmZzZXQgPSBIRENQXzJfMl9IRE1JX1JFR19XUl9NU0dfT0ZGU0VUOwor CXJldHVybiBpbnRlbF9oZG1pX2hkY3Bfd3JpdGUoaW50ZWxfZGlnX3BvcnQsIG9mZnNldCwgYnVm LCBzaXplKTsKK30KKworc3RhdGljCitpbnQgaW50ZWxfaGRtaV9oZGNwMl9yZWFkX21zZyhzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKKwkJCSAgICAgIHVpbnQ4X3Qg bXNnX2lkLCB2b2lkICpidWYsIHNpemVfdCBzaXplKQoreworCXN0cnVjdCBpbnRlbF9oZG1pICpo ZG1pID0gJmludGVsX2RpZ19wb3J0LT5oZG1pOworCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0g JmhkbWktPmF0dGFjaGVkX2Nvbm5lY3Rvci0+aGRjcDsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXY7CisJc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyOworCXVuc2lnbmVkIGlu dCBvZmZzZXQ7CisJc3NpemVfdCByZXQ7CisKKwlyZXQgPSBpbnRlbF9oZG1pX2hkY3AyX3dhaXRf Zm9yX21zZyhpbnRlbF9kaWdfcG9ydCwgbXNnX2lkLAorCQkJCQkgICAgaGRjcC0+aXNfcGFpcmVk KTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCS8qCisJICogQXZhaWxhYmxlIG1z ZyBzaXplIHNob3VsZCBiZSBlcXVhbCB0byBvciBsZXNzZXIgdGhhbiB0aGUKKwkgKiBhdmFpbGFi bGUgYnVmZmVyLgorCSAqLworCWlmIChyZXQgPiBzaXplKSB7CisJCURSTV9ERUJVR19LTVMoIm1z Z19zeiglZCkgaXMgbW9yZSB0aGFuIGV4cCBzaXplKCVkKVxuIiwKKwkJCSAgICAgIChpbnQpcmV0 LCAoaW50KXNpemUpOworCQlyZXR1cm4gLTE7CisJfQorCisJb2Zmc2V0ID0gSERDUF8yXzJfSERN SV9SRUdfUkRfTVNHX09GRlNFVDsKKworCWlmIChtc2dfaWQgPT0gSERDUF8yXzJfQUtFX1NFTkRf Q0VSVCkgeworCQlkZXZfcHJpdiA9IGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2LT5kZXZf cHJpdmF0ZTsKKwkJYWRhcHRlciA9IGludGVsX2dtYnVzX2dldF9hZGFwdGVyKGRldl9wcml2LCBo ZG1pLT5kZGNfYnVzKTsKKworCQlyZXQgPSBpbnRlbF9nbWJ1c19idXJzdF9yZWFkKGFkYXB0ZXIs IG9mZnNldCwgYnVmLCByZXQpOworCX0gZWxzZSB7CisJCXJldCA9IGludGVsX2hkbWlfaGRjcF9y ZWFkKGludGVsX2RpZ19wb3J0LCBvZmZzZXQsIGJ1ZiwgcmV0KTsKKwl9CisKKwlpZiAocmV0KQor CQlEUk1fREVCVUdfS01TKCJtc2dfaWQ6ICVkLCByZXQ6ICVkXG4iLCBtc2dfaWQsIChpbnQpcmV0 KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMKK2ludCBpbnRlbF9oZG1pX2hkY3AyX2NoZWNr X2xpbmsoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCit7CisJdWlu dDhfdCByeF9zdGF0dXNbSERDUF8yXzJfSERNSV9SWFNUQVRVU19MRU5dOworCWludCByZXQ7CisK KwlyZXQgPSBpbnRlbF9oZG1pX2hkY3AyX3JlYWRfcnhfc3RhdHVzKGludGVsX2RpZ19wb3J0LCBy eF9zdGF0dXMpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwkvKgorCSAqIFJlLWF1dGgg cmVxdWVzdCBhbmQgTGluayBJbnRlZ3JpdHkgRmFpbHVyZXMgYXJlIHJlcHJlc2VudGVkIGJ5CisJ ICogc2FtZSBiaXQuIGkuZSByZWF1dGhfcmVxLgorCSAqLworCWlmIChIRENQXzJfMl9IRE1JX1JY U1RBVFVTX1JFQVVUSF9SRVEocnhfc3RhdHVzWzFdKSkKKwkJcmV0ID0gRFJNX0hEQ1BfUkVBVVRI X1JFUVVFU1Q7CisJZWxzZSBpZiAoSERDUF8yXzJfSERNSV9SWFNUQVRVU19SRUFEWShyeF9zdGF0 dXNbMV0pKQorCQlyZXQgPSBEUk1fSERDUF9UT1BPTE9HWV9DSEFOR0U7CisKKwlyZXR1cm4gcmV0 OworfQorCitzdGF0aWMKK2ludCBpbnRlbF9oZG1pX2hkY3AyX2NhcGFibGUoc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkgICAgIGJvb2wgKmNhcGFibGUpCit7 CisJdWludDhfdCBoZGNwMnZlcnNpb247CisJaW50IHJldDsKKworCSpjYXBhYmxlID0gZmFsc2U7 CisJcmV0ID0gaW50ZWxfaGRtaV9oZGNwX3JlYWQoaW50ZWxfZGlnX3BvcnQsIEhEQ1BfMl8yX0hE TUlfUkVHX1ZFUl9PRkZTRVQsCisJCQkJICAgJmhkY3AydmVyc2lvbiwgc2l6ZW9mKGhkY3AydmVy c2lvbikpOworCWlmICghcmV0KQorCQlpZiAoaGRjcDJ2ZXJzaW9uICYgSERDUF8yXzJfSERNSV9T VVBQT1JUX01BU0spCisJCQkqY2FwYWJsZSA9IHRydWU7CisKKwlyZXR1cm4gcmV0OworfQorCitz dGF0aWMKK2VudW0gaGRjcF9wcm90b2NvbCBpbnRlbF9oZG1pX2hkY3AyX3Byb3RvY29sKHZvaWQp Cit7CisJcmV0dXJuIEhEQ1BfUFJPVE9DT0xfSERNSTsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVj dCBpbnRlbF9oZGNwX3NoaW0gaW50ZWxfaGRtaV9oZGNwX3NoaW0gPSB7CiAJLndyaXRlX2FuX2Fr c3YgPSBpbnRlbF9oZG1pX2hkY3Bfd3JpdGVfYW5fYWtzdiwKIAkucmVhZF9ia3N2ID0gaW50ZWxf aGRtaV9oZGNwX3JlYWRfYmtzdiwKQEAgLTExMTcsNiArMTMxNSwxMSBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGludGVsX2hkY3Bfc2hpbSBpbnRlbF9oZG1pX2hkY3Bfc2hpbSA9IHsKIAkucmVhZF92 X3ByaW1lX3BhcnQgPSBpbnRlbF9oZG1pX2hkY3BfcmVhZF92X3ByaW1lX3BhcnQsCiAJLnRvZ2ds ZV9zaWduYWxsaW5nID0gaW50ZWxfaGRtaV9oZGNwX3RvZ2dsZV9zaWduYWxsaW5nLAogCS5jaGVj a19saW5rID0gaW50ZWxfaGRtaV9oZGNwX2NoZWNrX2xpbmssCisJLndyaXRlXzJfMl9tc2cgPSBp bnRlbF9oZG1pX2hkY3AyX3dyaXRlX21zZywKKwkucmVhZF8yXzJfbXNnID0gaW50ZWxfaGRtaV9o ZGNwMl9yZWFkX21zZywKKwkuY2hlY2tfMl8yX2xpbmsJPSBpbnRlbF9oZG1pX2hkY3AyX2NoZWNr X2xpbmssCisJLmhkY3BfMl8yX2NhcGFibGUgPSBpbnRlbF9oZG1pX2hkY3AyX2NhcGFibGUsCisJ LmhkY3BfcHJvdG9jb2wgPSBpbnRlbF9oZG1pX2hkY3AyX3Byb3RvY29sLAogfTsKIAogc3RhdGlj IHZvaWQgaW50ZWxfaGRtaV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAot LSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=