From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v12 16/38] drm/i915: Implement the HDCP2.2 support for HDMI Date: Sat, 9 Feb 2019 12:42:45 +0530 Message-ID: <1549696387-28268-17-git-send-email-ramalingam.c@intel.com> References: <1549696387-28268-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: <1549696387-28268-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, daniel.vetter@ffwll.ch, tomas.winkler@intel.com, uma.shankar@intel.com List-Id: dri-devel@lists.freedesktop.org SW1wbGVtZW50cyB0aGUgSERNSSBhZGFwdGF0aW9uIHNwZWNpZmljIEhEQ1AyLjIgb3BlcmF0aW9u cy4KCkJhc2ljYWxseSB0aGVzZSBhcmUgRERDIHJlYWQgYW5kIHdyaXRlIGZvciBhdXRoZW50aWNh dGluZyB0aHJvdWdoCkhEQ1AyLjIgbWVzc2FnZXMuCgp2MjogUmViYXNlZC4KdjM6CiAgTm8gbW9y ZSBzcGVjaWFsIGhhbmRsaW5nIG9mIEdtYnVzIGJ1cnN0IHJlYWQgZm9yIEFLRV9TRU5EX0NFUlQu CiAgU3R5bGUgZml4ZWQgd2l0aCBmZXcgbmFtaW5nLiBbVW1hXQogICVzL1BBUklORy9QQUlSSU5H CnY0OgogIG1zZ19zeiBpcyBpbml0aWFsaXplZCBhdCBkZWZpbml0aW9uLgogIExvb2t1cCB0YWJs ZSBpcyBkZWZpbmVkIGZvciBIRE1JIEhEQ1AyLjIgbXNncyBbRGFuaWVsXS4KdjU6IFJlYmFzZWQu CnY2OgogIE1ha2UgYSBmdW5jdGlvbiBhcyBpbmxpbmUgW1VtYV0KICAlcy91aW50eHhfdC91eHgK djc6CiAgRXJyb3JzIGR1ZSB0byBzaW5rcyBhcmUgcmVwb3J0ZWQgYXMgREVCVUcgbG9ncy4KICBB ZGp1c3QgdG8gdGhlIG5ldyBtZWkgaW50ZXJmYWNlLgp2ODoKICBBUlJBWV9TSVpFIGZvciB0aGUg IyBvZiBhcnJheSBtZW1iZXJzIFtKb24gJiBEYW5pZWxdLgogIGhkY3AgYWRhcHRhdGlvbiBpcyBh ZGRlZCBhcyBhIGNvbnN0IGluIHRoZSBoZGNwX3NoaW0gW0RhbmllbF0KClNpZ25lZC1vZmYtYnk6 IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFVtYSBT aGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfaGRtaS5jIHwgMTg5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiAxIGZpbGUgY2hhbmdlZCwgMTg5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMKaW5kZXggZmFlZWRmNzZkYjk5Li42YTNlNDAwZjU0ZDcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZG1pLmMKQEAgLTExMjksNiArMTEyOSwxOTAgQEAgYm9vbCBpbnRlbF9oZG1pX2hkY3Bf Y2hlY2tfbGluayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKIAly ZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIHN0cnVjdCBoZGNwMl9oZG1pX21zZ19kYXRhIHsKKwl1 OCBtc2dfaWQ7CisJdTMyIHRpbWVvdXQ7CisJdTMyIHRpbWVvdXQyOworCX0gaGRjcDJfbXNnX2Rh dGFbXSA9IHsKKwkJe0hEQ1BfMl8yX0FLRV9JTklULCAwLCAwfSwKKwkJe0hEQ1BfMl8yX0FLRV9T RU5EX0NFUlQsIEhEQ1BfMl8yX0NFUlRfVElNRU9VVF9NUywgMH0sCisJCXtIRENQXzJfMl9BS0Vf Tk9fU1RPUkVEX0tNLCAwLCAwfSwKKwkJe0hEQ1BfMl8yX0FLRV9TVE9SRURfS00sIDAsIDB9LAor CQl7SERDUF8yXzJfQUtFX1NFTkRfSFBSSU1FLCBIRENQXzJfMl9IUFJJTUVfUEFJUkVEX1RJTUVP VVRfTVMsCisJCQkJSERDUF8yXzJfSFBSSU1FX05PX1BBSVJFRF9USU1FT1VUX01TfSwKKwkJe0hE Q1BfMl8yX0FLRV9TRU5EX1BBSVJJTkdfSU5GTywgSERDUF8yXzJfUEFJUklOR19USU1FT1VUX01T LAorCQkJCTB9LAorCQl7SERDUF8yXzJfTENfSU5JVCwgMCwgMH0sCisJCXtIRENQXzJfMl9MQ19T RU5EX0xQUklNRSwgSERDUF8yXzJfSERNSV9MUFJJTUVfVElNRU9VVF9NUywgMH0sCisJCXtIRENQ XzJfMl9TS0VfU0VORF9FS1MsIDAsIDB9LAorCQl7SERDUF8yXzJfUkVQX1NFTkRfUkVDVklEX0xJ U1QsCisJCQkJSERDUF8yXzJfUkVDVklEX0xJU1RfVElNRU9VVF9NUywgMH0sCisJCXtIRENQXzJf Ml9SRVBfU0VORF9BQ0ssIDAsIDB9LAorCQl7SERDUF8yXzJfUkVQX1NUUkVBTV9NQU5BR0UsIDAs IDB9LAorCQl7SERDUF8yXzJfUkVQX1NUUkVBTV9SRUFEWSwgSERDUF8yXzJfU1RSRUFNX1JFQURZ X1RJTUVPVVRfTVMsCisJCQkJMH0sCisJfTsKKworc3RhdGljCitpbnQgaW50ZWxfaGRtaV9oZGNw Ml9yZWFkX3J4X3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9y dCwKKwkJCQkgICAgdWludDhfdCAqcnhfc3RhdHVzKQoreworCXJldHVybiBpbnRlbF9oZG1pX2hk Y3BfcmVhZChpbnRlbF9kaWdfcG9ydCwKKwkJCQkgICAgSERDUF8yXzJfSERNSV9SRUdfUlhTVEFU VVNfT0ZGU0VULAorCQkJCSAgICByeF9zdGF0dXMsCisJCQkJICAgIEhEQ1BfMl8yX0hETUlfUlhT VEFUVVNfTEVOKTsKK30KKworc3RhdGljIGludCBnZXRfaGRjcDJfbXNnX3RpbWVvdXQodTggbXNn X2lkLCBib29sIGlzX3BhaXJlZCkKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJB WV9TSVpFKGhkY3AyX21zZ19kYXRhKTsgaSsrKQorCQlpZiAoaGRjcDJfbXNnX2RhdGFbaV0ubXNn X2lkID09IG1zZ19pZCAmJgorCQkgICAgKG1zZ19pZCAhPSBIRENQXzJfMl9BS0VfU0VORF9IUFJJ TUUgfHwgaXNfcGFpcmVkKSkKKwkJCXJldHVybiBoZGNwMl9tc2dfZGF0YVtpXS50aW1lb3V0Owor CQllbHNlIGlmIChoZGNwMl9tc2dfZGF0YVtpXS5tc2dfaWQgPT0gbXNnX2lkKQorCQkJcmV0dXJu IGhkY3AyX21zZ19kYXRhW2ldLnRpbWVvdXQyOworCisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0 YXRpYyBpbmxpbmUKK2ludCBoZGNwMl9kZXRlY3RfbXNnX2F2YWlsYWJpbGl0eShzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdpdGFsX3BvcnQsCisJCQkJICB1OCBtc2dfaWQsIGJv b2wgKm1zZ19yZWFkeSwKKwkJCQkgIHNzaXplX3QgKm1zZ19zeikKK3sKKwl1OCByeF9zdGF0dXNb SERDUF8yXzJfSERNSV9SWFNUQVRVU19MRU5dOworCWludCByZXQ7CisKKwlyZXQgPSBpbnRlbF9o ZG1pX2hkY3AyX3JlYWRfcnhfc3RhdHVzKGludGVsX2RpZ2l0YWxfcG9ydCwgcnhfc3RhdHVzKTsK KwlpZiAocmV0IDwgMCkgeworCQlEUk1fREVCVUdfS01TKCJyeF9zdGF0dXMgcmVhZCBmYWlsZWQu IEVyciAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwkqbXNnX3N6ID0gKChIRENQ XzJfMl9IRE1JX1JYU1RBVFVTX01TR19TWl9ISShyeF9zdGF0dXNbMV0pIDw8IDgpIHwKKwkJICBy eF9zdGF0dXNbMF0pOworCisJaWYgKG1zZ19pZCA9PSBIRENQXzJfMl9SRVBfU0VORF9SRUNWSURf TElTVCkKKwkJKm1zZ19yZWFkeSA9IChIRENQXzJfMl9IRE1JX1JYU1RBVFVTX1JFQURZKHJ4X3N0 YXR1c1sxXSkgJiYKKwkJCSAgICAgKm1zZ19zeik7CisJZWxzZQorCQkqbXNnX3JlYWR5ID0gKm1z Z19zejsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3NpemVfdAoraW50ZWxfaGRtaV9oZGNw Ml93YWl0X2Zvcl9tc2coc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQs CisJCQkgICAgICB1OCBtc2dfaWQsIGJvb2wgcGFpcmVkKQoreworCWJvb2wgbXNnX3JlYWR5ID0g ZmFsc2U7CisJaW50IHRpbWVvdXQsIHJldDsKKwlzc2l6ZV90IG1zZ19zeiA9IDA7CisKKwl0aW1l b3V0ID0gZ2V0X2hkY3AyX21zZ190aW1lb3V0KG1zZ19pZCwgcGFpcmVkKTsKKwlpZiAodGltZW91 dCA8IDApCisJCXJldHVybiB0aW1lb3V0OworCisJcmV0ID0gX193YWl0X2ZvcihyZXQgPSBoZGNw Ml9kZXRlY3RfbXNnX2F2YWlsYWJpbGl0eShpbnRlbF9kaWdfcG9ydCwKKwkJCQkJCQkgICAgIG1z Z19pZCwgJm1zZ19yZWFkeSwKKwkJCQkJCQkgICAgICZtc2dfc3opLAorCQkJICFyZXQgJiYgbXNn X3JlYWR5ICYmIG1zZ19zeiwgdGltZW91dCAqIDEwMDAsCisJCQkgMTAwMCwgNSAqIDEwMDApOwor CWlmIChyZXQpCisJCURSTV9ERUJVR19LTVMoIm1zZ19pZDogJWQsIHJldDogJWQsIHRpbWVvdXQ6 ICVkXG4iLAorCQkJICAgICAgbXNnX2lkLCByZXQsIHRpbWVvdXQpOworCisJcmV0dXJuIHJldCA/ IHJldCA6IG1zZ19zejsKK30KKworc3RhdGljCitpbnQgaW50ZWxfaGRtaV9oZGNwMl93cml0ZV9t c2coc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkgICAgICAg dm9pZCAqYnVmLCBzaXplX3Qgc2l6ZSkKK3sKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0OworCisJb2Zm c2V0ID0gSERDUF8yXzJfSERNSV9SRUdfV1JfTVNHX09GRlNFVDsKKwlyZXR1cm4gaW50ZWxfaGRt aV9oZGNwX3dyaXRlKGludGVsX2RpZ19wb3J0LCBvZmZzZXQsIGJ1Ziwgc2l6ZSk7Cit9CisKK3N0 YXRpYworaW50IGludGVsX2hkbWlfaGRjcDJfcmVhZF9tc2coc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkgICAgICB1OCBtc2dfaWQsIHZvaWQgKmJ1Ziwgc2l6 ZV90IHNpemUpCit7CisJc3RydWN0IGludGVsX2hkbWkgKmhkbWkgPSAmaW50ZWxfZGlnX3BvcnQt PmhkbWk7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmaGRtaS0+YXR0YWNoZWRfY29ubmVj dG9yLT5oZGNwOworCXVuc2lnbmVkIGludCBvZmZzZXQ7CisJc3NpemVfdCByZXQ7CisKKwlyZXQg PSBpbnRlbF9oZG1pX2hkY3AyX3dhaXRfZm9yX21zZyhpbnRlbF9kaWdfcG9ydCwgbXNnX2lkLAor CQkJCQkgICAgaGRjcC0+aXNfcGFpcmVkKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsK KworCS8qCisJICogQXZhaWxhYmxlIG1zZyBzaXplIHNob3VsZCBiZSBlcXVhbCB0byBvciBsZXNz ZXIgdGhhbiB0aGUKKwkgKiBhdmFpbGFibGUgYnVmZmVyLgorCSAqLworCWlmIChyZXQgPiBzaXpl KSB7CisJCURSTV9ERUJVR19LTVMoIm1zZ19zeiglemQpIGlzIG1vcmUgdGhhbiBleHAgc2l6ZSgl enUpXG4iLAorCQkJICAgICAgcmV0LCBzaXplKTsKKwkJcmV0dXJuIC0xOworCX0KKworCW9mZnNl dCA9IEhEQ1BfMl8yX0hETUlfUkVHX1JEX01TR19PRkZTRVQ7CisJcmV0ID0gaW50ZWxfaGRtaV9o ZGNwX3JlYWQoaW50ZWxfZGlnX3BvcnQsIG9mZnNldCwgYnVmLCByZXQpOworCWlmIChyZXQpCisJ CURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byByZWFkIG1zZ19pZDogJWQoJXpkKVxuIiwgbXNnX2lk LCByZXQpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljCitpbnQgaW50ZWxfaGRtaV9oZGNw Ml9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQor eworCXU4IHJ4X3N0YXR1c1tIRENQXzJfMl9IRE1JX1JYU1RBVFVTX0xFTl07CisJaW50IHJldDsK KworCXJldCA9IGludGVsX2hkbWlfaGRjcDJfcmVhZF9yeF9zdGF0dXMoaW50ZWxfZGlnX3BvcnQs IHJ4X3N0YXR1cyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCS8qCisJICogUmUtYXV0 aCByZXF1ZXN0IGFuZCBMaW5rIEludGVncml0eSBGYWlsdXJlcyBhcmUgcmVwcmVzZW50ZWQgYnkK KwkgKiBzYW1lIGJpdC4gaS5lIHJlYXV0aF9yZXEuCisJICovCisJaWYgKEhEQ1BfMl8yX0hETUlf UlhTVEFUVVNfUkVBVVRIX1JFUShyeF9zdGF0dXNbMV0pKQorCQlyZXQgPSBIRENQX1JFQVVUSF9S RVFVRVNUOworCWVsc2UgaWYgKEhEQ1BfMl8yX0hETUlfUlhTVEFUVVNfUkVBRFkocnhfc3RhdHVz WzFdKSkKKwkJcmV0ID0gSERDUF9UT1BPTE9HWV9DSEFOR0U7CisKKwlyZXR1cm4gcmV0OworfQor CitzdGF0aWMKK2ludCBpbnRlbF9oZG1pX2hkY3AyX2NhcGFibGUoc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkgICAgIGJvb2wgKmNhcGFibGUpCit7CisJdTgg aGRjcDJfdmVyc2lvbjsKKwlpbnQgcmV0OworCisJKmNhcGFibGUgPSBmYWxzZTsKKwlyZXQgPSBp bnRlbF9oZG1pX2hkY3BfcmVhZChpbnRlbF9kaWdfcG9ydCwgSERDUF8yXzJfSERNSV9SRUdfVkVS X09GRlNFVCwKKwkJCQkgICAmaGRjcDJfdmVyc2lvbiwgc2l6ZW9mKGhkY3AyX3ZlcnNpb24pKTsK KwlpZiAoIXJldCAmJiBoZGNwMl92ZXJzaW9uICYgSERDUF8yXzJfSERNSV9TVVBQT1JUX01BU0sp CisJCSpjYXBhYmxlID0gdHJ1ZTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbmxpbmUK K2VudW0gaGRjcF93aXJlZF9wcm90b2NvbCBpbnRlbF9oZG1pX2hkY3AyX3Byb3RvY29sKHZvaWQp Cit7CisJcmV0dXJuIEhEQ1BfUFJPVE9DT0xfSERNSTsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVj dCBpbnRlbF9oZGNwX3NoaW0gaW50ZWxfaGRtaV9oZGNwX3NoaW0gPSB7CiAJLndyaXRlX2FuX2Fr c3YgPSBpbnRlbF9oZG1pX2hkY3Bfd3JpdGVfYW5fYWtzdiwKIAkucmVhZF9ia3N2ID0gaW50ZWxf aGRtaV9oZGNwX3JlYWRfYmtzdiwKQEAgLTExNDAsNiArMTMyNCwxMSBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGludGVsX2hkY3Bfc2hpbSBpbnRlbF9oZG1pX2hkY3Bfc2hpbSA9IHsKIAkucmVhZF92 X3ByaW1lX3BhcnQgPSBpbnRlbF9oZG1pX2hkY3BfcmVhZF92X3ByaW1lX3BhcnQsCiAJLnRvZ2ds ZV9zaWduYWxsaW5nID0gaW50ZWxfaGRtaV9oZGNwX3RvZ2dsZV9zaWduYWxsaW5nLAogCS5jaGVj a19saW5rID0gaW50ZWxfaGRtaV9oZGNwX2NoZWNrX2xpbmssCisJLndyaXRlXzJfMl9tc2cgPSBp bnRlbF9oZG1pX2hkY3AyX3dyaXRlX21zZywKKwkucmVhZF8yXzJfbXNnID0gaW50ZWxfaGRtaV9o ZGNwMl9yZWFkX21zZywKKwkuY2hlY2tfMl8yX2xpbmsJPSBpbnRlbF9oZG1pX2hkY3AyX2NoZWNr X2xpbmssCisJLmhkY3BfMl8yX2NhcGFibGUgPSBpbnRlbF9oZG1pX2hkY3AyX2NhcGFibGUsCisJ LnByb3RvY29sID0gSERDUF9QUk9UT0NPTF9IRE1JLAogfTsKIAogc3RhdGljIHZvaWQgaW50ZWxf aGRtaV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAotLSAKMi43LjQKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=