From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v6 19/35] drm/i915: Implement the HDCP2.2 support for HDMI Date: Sat, 14 Jul 2018 08:45:01 +0530 Message-ID: <1531538117-1606-20-git-send-email-ramalingam.c@intel.com> References: <1531538117-1606-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: <1531538117-1606-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@ffwll.ch, seanpaul@chromium.org, tomas.winkler@intel.com, alexander.usyskin@intel.com, uma.shankar@intel.com List-Id: dri-devel@lists.freedesktop.org SW1wbGVtZW50cyB0aGUgSERNSSBhZGFwdGF0aW9uIHNwZWNpZmljIEhEQ1AyLjIgb3BlcmF0aW9u cy4KCkJhc2ljYWxseSB0aGVzZSBhcmUgRERDIHJlYWQgYW5kIHdyaXRlIGZvciBhdXRoZW50aWNh dGluZyB0aHJvdWdoCkhEQ1AyLjIgbWVzc2FnZXMuCgp2MjoKICBSZWJhc2VkLgp2MzoKICBObyBD aGFuZ2VzLgp2NDoKICBObyBtb3JlIHNwZWNpYWwgaGFuZGxpbmcgb2YgR21idXMgYnVyc3QgcmVh ZCBmb3IgQUtFX1NFTkRfQ0VSVC4KICBTdHlsZSBmaXhlZCB3aXRoIGZldyBuYW1pbmcuIFtVbWFd CiAgJXMvUEFSSU5HL1BBSVJJTkcKdjU6CiAgbXNnX3N6IGlzIGluaXRpYWxpemVkIGF0IGRlZmlu aXRpb24uCiAgTG9va3VwIHRhYmxlIGlzIGRlZmluZWQgZm9yIEhETUkgSERDUDIuMiBtc2dzIFtE YW5pZWxdLgp2NjoKICBSZWJhc2VkLgoKU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1h bGluZ2FtLmNAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWku YyB8IDE4OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNo YW5nZWQsIDE4OSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCmluZGV4 IDc5ODhmOTU4ZDgzNS4uNGJlZjJhYzg4M2JkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5j CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxp bnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvaGRtaS5oPgorI2luY2x1ZGUgPGxpbnV4L21l aV9oZGNwLmg+CiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21p Y19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KQEAgLTExMTYsNiArMTExNywx ODkgQEAgYm9vbCBpbnRlbF9oZG1pX2hkY3BfY2hlY2tfbGluayhzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIHN0cnVj dCBoZGNwMl9oZG1pX21zZ19kYXRhIHsKKwl1aW50OF90IG1zZ19pZDsKKwl1aW50MzJfdCB0aW1l b3V0OworCXVpbnQzMl90IHRpbWVvdXQyOworCX0gaGRjcDJfbXNnX2RhdGFbXSA9IHsKKwkJe0hE Q1BfMl8yX0FLRV9JTklULCAwLCAwfSwKKwkJe0hEQ1BfMl8yX0FLRV9TRU5EX0NFUlQsIEhEQ1Bf Ml8yX0NFUlRfVElNRU9VVF9NUywgMH0sCisJCXtIRENQXzJfMl9BS0VfTk9fU1RPUkVEX0tNLCAw LCAwfSwKKwkJe0hEQ1BfMl8yX0FLRV9TVE9SRURfS00sIDAsIDB9LAorCQl7SERDUF8yXzJfQUtF X1NFTkRfSFBSSU1FLCBIRENQXzJfMl9IUFJJTUVfUEFJUkVEX1RJTUVPVVRfTVMsCisJCQkJSERD UF8yXzJfSFBSSU1FX05PX1BBSVJFRF9USU1FT1VUX01TfSwKKwkJe0hEQ1BfMl8yX0FLRV9TRU5E X1BBSVJJTkdfSU5GTywgSERDUF8yXzJfUEFJUklOR19USU1FT1VUX01TLAorCQkJCTB9LAorCQl7 SERDUF8yXzJfTENfSU5JVCwgMCwgMH0sCisJCXtIRENQXzJfMl9MQ19TRU5EX0xQUklNRSwgSERD UF8yXzJfSERNSV9MUFJJTUVfVElNRU9VVF9NUywgMH0sCisJCXtIRENQXzJfMl9TS0VfU0VORF9F S1MsIDAsIDB9LAorCQl7SERDUF8yXzJfUkVQX1NFTkRfUkVDVklEX0xJU1QsCisJCQkJSERDUF8y XzJfUkVDVklEX0xJU1RfVElNRU9VVF9NUywgMH0sCisJCXtIRENQXzJfMl9SRVBfU0VORF9BQ0ss IDAsIDB9LAorCQl7SERDUF8yXzJfUkVQX1NUUkVBTV9NQU5BR0UsIDAsIDB9LAorCQl7SERDUF8y XzJfUkVQX1NUUkVBTV9SRUFEWSwgSERDUF8yXzJfU1RSRUFNX1JFQURZX1RJTUVPVVRfTVMsCisJ CQkJMH0sCisJfTsKKworc3RhdGljCitpbnQgaW50ZWxfaGRtaV9oZGNwMl9yZWFkX3J4X3N0YXR1 cyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKKwkJCQkgICAgdWlu dDhfdCAqcnhfc3RhdHVzKQoreworCXJldHVybiBpbnRlbF9oZG1pX2hkY3BfcmVhZChpbnRlbF9k aWdfcG9ydCwKKwkJCQkgICAgSERDUF8yXzJfSERNSV9SRUdfUlhTVEFUVVNfT0ZGU0VULAorCQkJ CSAgICByeF9zdGF0dXMsCisJCQkJICAgIEhEQ1BfMl8yX0hETUlfUlhTVEFUVVNfTEVOKTsKK30K Kworc3RhdGljIGludCBnZXRfaGRjcDJfbXNnX3RpbWVvdXQodWludDhfdCBtc2dfaWQsIGJvb2wg aXNfcGFpcmVkKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IHNpemVvZihoZGNwMl9t c2dfZGF0YSk7IGkrKykKKwkJaWYgKGhkY3AyX21zZ19kYXRhW2ldLm1zZ19pZCA9PSBtc2dfaWQg JiYKKwkJICAgIChtc2dfaWQgIT0gSERDUF8yXzJfQUtFX1NFTkRfSFBSSU1FIHx8IGlzX3BhaXJl ZCkpCisJCQlyZXR1cm4gaGRjcDJfbXNnX2RhdGFbaV0udGltZW91dDsKKwkJZWxzZSBpZiAoaGRj cDJfbXNnX2RhdGFbaV0ubXNnX2lkID09IG1zZ19pZCkKKwkJCXJldHVybiBoZGNwMl9tc2dfZGF0 YVtpXS50aW1lb3V0MjsKKworCXJldHVybiAtRUlOVkFMOworfQorCitzdGF0aWMgaW5saW5lCitp bnQgaGRjcDJfZGV0ZWN0X21zZ19hdmFpbGFiaWxpdHkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnaXRhbF9wb3J0LAorCQkJCSAgdWludDhfdCBtc2dfaWQsIGJvb2wgKm1zZ19y ZWFkeSwKKwkJCQkgIHNzaXplX3QgKm1zZ19zeikKK3sKKwl1aW50OF90IHJ4X3N0YXR1c1tIRENQ XzJfMl9IRE1JX1JYU1RBVFVTX0xFTl07CisJaW50IHJldDsKKworCXJldCA9IGludGVsX2hkbWlf aGRjcDJfcmVhZF9yeF9zdGF0dXMoaW50ZWxfZGlnaXRhbF9wb3J0LCByeF9zdGF0dXMpOworCWlm IChyZXQgPCAwKSB7CisJCURSTV9ERUJVR19LTVMoInJ4X3N0YXR1cyByZWFkIGZhaWxlZC4gRXJy ICVkXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCSptc2dfc3ogPSAoKEhEQ1BfMl8y X0hETUlfUlhTVEFUVVNfTVNHX1NaX0hJKHJ4X3N0YXR1c1sxXSkgPDwgOCkgfAorCQkgIHJ4X3N0 YXR1c1swXSk7CisKKwlpZiAobXNnX2lkID09IEhEQ1BfMl8yX1JFUF9TRU5EX1JFQ1ZJRF9MSVNU KQorCQkqbXNnX3JlYWR5ID0gKEhEQ1BfMl8yX0hETUlfUlhTVEFUVVNfUkVBRFkocnhfc3RhdHVz WzFdKSAmJgorCQkJICAgICAqbXNnX3N6KTsKKwllbHNlCisJCSptc2dfcmVhZHkgPSAqbXNnX3N6 OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitpbnRlbF9oZG1pX2hkY3AyX3dh aXRfZm9yX21zZyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKKwkJ CSAgICAgIHVpbnQ4X3QgbXNnX2lkLCBib29sIHBhaXJlZCkKK3sKKwlib29sIG1zZ19yZWFkeSA9 IGZhbHNlOworCWludCB0aW1lb3V0LCByZXQ7CisJc3NpemVfdCBtc2dfc3ogPSAwOworCisJdGlt ZW91dCA9IGdldF9oZGNwMl9tc2dfdGltZW91dChtc2dfaWQsIHBhaXJlZCk7CisJaWYgKHRpbWVv dXQgPCAwKQorCQlyZXR1cm4gdGltZW91dDsKKworCXJldCA9IF9fd2FpdF9mb3IocmV0ID0gaGRj cDJfZGV0ZWN0X21zZ19hdmFpbGFiaWxpdHkoaW50ZWxfZGlnX3BvcnQsCisJCQkgbXNnX2lkLCAm bXNnX3JlYWR5LCAmbXNnX3N6KSwKKwkJCSAhcmV0ICYmIG1zZ19yZWFkeSAmJiBtc2dfc3osIHRp bWVvdXQgKiAxMDAwLAorCQkJIDEwMDAsIDUgKiAxMDAwKTsKKwlpZiAocmV0KQorCQlEUk1fRVJS T1IoIm1zZ19pZDogJWQsIHJldDogJWQsIHRpbWVvdXQ6ICVkXG4iLAorCQkJICBtc2dfaWQsIHJl dCwgdGltZW91dCk7CisKKwlyZXR1cm4gcmV0ID8gcmV0IDogbXNnX3N6OworfQorCitzdGF0aWMK K2ludCBpbnRlbF9oZG1pX2hkY3AyX3dyaXRlX21zZyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 ICppbnRlbF9kaWdfcG9ydCwKKwkJCSAgICAgICB2b2lkICpidWYsIHNpemVfdCBzaXplKQorewor CXVuc2lnbmVkIGludCBvZmZzZXQ7CisKKwlvZmZzZXQgPSBIRENQXzJfMl9IRE1JX1JFR19XUl9N U0dfT0ZGU0VUOworCXJldHVybiBpbnRlbF9oZG1pX2hkY3Bfd3JpdGUoaW50ZWxfZGlnX3BvcnQs IG9mZnNldCwgYnVmLCBzaXplKTsKK30KKworc3RhdGljCitpbnQgaW50ZWxfaGRtaV9oZGNwMl9y ZWFkX21zZyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKKwkJCSAg ICAgIHVpbnQ4X3QgbXNnX2lkLCB2b2lkICpidWYsIHNpemVfdCBzaXplKQoreworCXN0cnVjdCBp bnRlbF9oZG1pICpoZG1pID0gJmludGVsX2RpZ19wb3J0LT5oZG1pOworCXN0cnVjdCBpbnRlbF9o ZGNwICpoZGNwID0gJmhkbWktPmF0dGFjaGVkX2Nvbm5lY3Rvci0+aGRjcDsKKwl1bnNpZ25lZCBp bnQgb2Zmc2V0OworCXNzaXplX3QgcmV0OworCisJcmV0ID0gaW50ZWxfaGRtaV9oZGNwMl93YWl0 X2Zvcl9tc2coaW50ZWxfZGlnX3BvcnQsIG1zZ19pZCwKKwkJCQkJICAgIGhkY3AtPmlzX3BhaXJl ZCk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwkvKgorCSAqIEF2YWlsYWJsZSBt c2cgc2l6ZSBzaG91bGQgYmUgZXF1YWwgdG8gb3IgbGVzc2VyIHRoYW4gdGhlCisJICogYXZhaWxh YmxlIGJ1ZmZlci4KKwkgKi8KKwlpZiAocmV0ID4gc2l6ZSkgeworCQlEUk1fREVCVUdfS01TKCJt c2dfc3ooJXpkKSBpcyBtb3JlIHRoYW4gZXhwIHNpemUoJXp1KVxuIiwKKwkJCSAgICAgIHJldCwg c2l6ZSk7CisJCXJldHVybiAtMTsKKwl9CisKKwlvZmZzZXQgPSBIRENQXzJfMl9IRE1JX1JFR19S RF9NU0dfT0ZGU0VUOworCXJldCA9IGludGVsX2hkbWlfaGRjcF9yZWFkKGludGVsX2RpZ19wb3J0 LCBvZmZzZXQsIGJ1ZiwgcmV0KTsKKwlpZiAocmV0KQorCQlEUk1fREVCVUdfS01TKCJGYWlsZWQg dG8gcmVhZCBtc2dfaWQ6ICVkKCV6ZClcbiIsIG1zZ19pZCwgcmV0KTsKKworCXJldHVybiByZXQ7 Cit9CisKK3N0YXRpYworaW50IGludGVsX2hkbWlfaGRjcDJfY2hlY2tfbGluayhzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKK3sKKwl1aW50OF90IHJ4X3N0YXR1c1tI RENQXzJfMl9IRE1JX1JYU1RBVFVTX0xFTl07CisJaW50IHJldDsKKworCXJldCA9IGludGVsX2hk bWlfaGRjcDJfcmVhZF9yeF9zdGF0dXMoaW50ZWxfZGlnX3BvcnQsIHJ4X3N0YXR1cyk7CisJaWYg KHJldCkKKwkJcmV0dXJuIHJldDsKKworCS8qCisJICogUmUtYXV0aCByZXF1ZXN0IGFuZCBMaW5r IEludGVncml0eSBGYWlsdXJlcyBhcmUgcmVwcmVzZW50ZWQgYnkKKwkgKiBzYW1lIGJpdC4gaS5l IHJlYXV0aF9yZXEuCisJICovCisJaWYgKEhEQ1BfMl8yX0hETUlfUlhTVEFUVVNfUkVBVVRIX1JF UShyeF9zdGF0dXNbMV0pKQorCQlyZXQgPSBEUk1fSERDUF9SRUFVVEhfUkVRVUVTVDsKKwllbHNl IGlmIChIRENQXzJfMl9IRE1JX1JYU1RBVFVTX1JFQURZKHJ4X3N0YXR1c1sxXSkpCisJCXJldCA9 IERSTV9IRENQX1RPUE9MT0dZX0NIQU5HRTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYwor aW50IGludGVsX2hkbWlfaGRjcDJfY2FwYWJsZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpp bnRlbF9kaWdfcG9ydCwKKwkJCSAgICAgYm9vbCAqY2FwYWJsZSkKK3sKKwl1aW50OF90IGhkY3Ay X3ZlcnNpb247CisJaW50IHJldDsKKworCSpjYXBhYmxlID0gZmFsc2U7CisJcmV0ID0gaW50ZWxf aGRtaV9oZGNwX3JlYWQoaW50ZWxfZGlnX3BvcnQsIEhEQ1BfMl8yX0hETUlfUkVHX1ZFUl9PRkZT RVQsCisJCQkJICAgJmhkY3AyX3ZlcnNpb24sIHNpemVvZihoZGNwMl92ZXJzaW9uKSk7CisJaWYg KCFyZXQgJiYgaGRjcDJfdmVyc2lvbiAmIEhEQ1BfMl8yX0hETUlfU1VQUE9SVF9NQVNLKQorCQkq Y2FwYWJsZSA9IHRydWU7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMKK2VudW0gaGRjcF9w cm90b2NvbCBpbnRlbF9oZG1pX2hkY3AyX3Byb3RvY29sKHZvaWQpCit7CisJcmV0dXJuIEhEQ1Bf UFJPVE9DT0xfSERNSTsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0g aW50ZWxfaGRtaV9oZGNwX3NoaW0gPSB7CiAJLndyaXRlX2FuX2Frc3YgPSBpbnRlbF9oZG1pX2hk Y3Bfd3JpdGVfYW5fYWtzdiwKIAkucmVhZF9ia3N2ID0gaW50ZWxfaGRtaV9oZGNwX3JlYWRfYmtz diwKQEAgLTExMjcsNiArMTMxMSwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2hkY3Bf c2hpbSBpbnRlbF9oZG1pX2hkY3Bfc2hpbSA9IHsKIAkucmVhZF92X3ByaW1lX3BhcnQgPSBpbnRl bF9oZG1pX2hkY3BfcmVhZF92X3ByaW1lX3BhcnQsCiAJLnRvZ2dsZV9zaWduYWxsaW5nID0gaW50 ZWxfaGRtaV9oZGNwX3RvZ2dsZV9zaWduYWxsaW5nLAogCS5jaGVja19saW5rID0gaW50ZWxfaGRt aV9oZGNwX2NoZWNrX2xpbmssCisJLndyaXRlXzJfMl9tc2cgPSBpbnRlbF9oZG1pX2hkY3AyX3dy aXRlX21zZywKKwkucmVhZF8yXzJfbXNnID0gaW50ZWxfaGRtaV9oZGNwMl9yZWFkX21zZywKKwku Y2hlY2tfMl8yX2xpbmsJPSBpbnRlbF9oZG1pX2hkY3AyX2NoZWNrX2xpbmssCisJLmhkY3BfMl8y X2NhcGFibGUgPSBpbnRlbF9oZG1pX2hkY3AyX2NhcGFibGUsCisJLmhkY3BfcHJvdG9jb2wgPSBp bnRlbF9oZG1pX2hkY3AyX3Byb3RvY29sLAogfTsKIAogc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9w cmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAotLSAKMi43LjQKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=