From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v8 13/35] drm/i915: Implement the HDCP2.2 support for HDMI Date: Tue, 27 Nov 2018 16:13:11 +0530 Message-ID: <1543315413-24302-14-git-send-email-ramalingam.c@intel.com> References: <1543315413-24302-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: <1543315413-24302-1-git-send-email-ramalingam.c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, daniel.vetter@ffwll.ch, tomas.winkler@intel.com Cc: uma.shankar@intel.com List-Id: intel-gfx@lists.freedesktop.org SW1wbGVtZW50cyB0aGUgSERNSSBhZGFwdGF0aW9uIHNwZWNpZmljIEhEQ1AyLjIgb3BlcmF0aW9u cy4KCkJhc2ljYWxseSB0aGVzZSBhcmUgRERDIHJlYWQgYW5kIHdyaXRlIGZvciBhdXRoZW50aWNh dGluZyB0aHJvdWdoCkhEQ1AyLjIgbWVzc2FnZXMuCgp2MjoKICBSZWJhc2VkLgp2MzoKICBObyBD aGFuZ2VzLgp2NDoKICBObyBtb3JlIHNwZWNpYWwgaGFuZGxpbmcgb2YgR21idXMgYnVyc3QgcmVh ZCBmb3IgQUtFX1NFTkRfQ0VSVC4KICBTdHlsZSBmaXhlZCB3aXRoIGZldyBuYW1pbmcuIFtVbWFd CiAgJXMvUEFSSU5HL1BBSVJJTkcKdjU6CiAgbXNnX3N6IGlzIGluaXRpYWxpemVkIGF0IGRlZmlu aXRpb24uCiAgTG9va3VwIHRhYmxlIGlzIGRlZmluZWQgZm9yIEhETUkgSERDUDIuMiBtc2dzIFtE YW5pZWxdLgp2NjoKICBSZWJhc2VkLgp2NzoKICBNYWtlIGEgZnVuY3Rpb24gYXMgaW5saW5lIFtV bWFdCiAgJXMvdWludHh4X3QvdXh4CnY4OgogIEVycm9ycyBkdWUgdG8gc2lua3MgYXJlIHJlcG9y dGVkIGFzIERFQlVHIGxvZ3MuCiAgQWRqdXN0IHRvIHRoZSBuZXcgbWVpIGludGVyZmFjZS4KClNp Z25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KUmV2aWV3 ZWQtYnk6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIHwgMTkwICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTkwIGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggZTc1NWEzMzcwYmNhLi45MTJmNTAxMzM2NDUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxsaW51 eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9oZG1p Lmg+CisjaW5jbHVkZSA8bGludXgvbWVpX2hkY3AuaD4KICNpbmNsdWRlIDxkcm0vZHJtUC5oPgog I2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0 Yy5oPgpAQCAtMTExNyw2ICsxMTE4LDE5MCBAQCBib29sIGludGVsX2hkbWlfaGRjcF9jaGVja19s aW5rKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQogCXJldHVybiB0 cnVlOwogfQogCitzdGF0aWMgc3RydWN0IGhkY3AyX2hkbWlfbXNnX2RhdGEgeworCXU4IG1zZ19p ZDsKKwl1MzIgdGltZW91dDsKKwl1MzIgdGltZW91dDI7CisJfSBoZGNwMl9tc2dfZGF0YVtdID0g eworCQl7SERDUF8yXzJfQUtFX0lOSVQsIDAsIDB9LAorCQl7SERDUF8yXzJfQUtFX1NFTkRfQ0VS VCwgSERDUF8yXzJfQ0VSVF9USU1FT1VUX01TLCAwfSwKKwkJe0hEQ1BfMl8yX0FLRV9OT19TVE9S RURfS00sIDAsIDB9LAorCQl7SERDUF8yXzJfQUtFX1NUT1JFRF9LTSwgMCwgMH0sCisJCXtIRENQ XzJfMl9BS0VfU0VORF9IUFJJTUUsIEhEQ1BfMl8yX0hQUklNRV9QQUlSRURfVElNRU9VVF9NUywK KwkJCQlIRENQXzJfMl9IUFJJTUVfTk9fUEFJUkVEX1RJTUVPVVRfTVN9LAorCQl7SERDUF8yXzJf QUtFX1NFTkRfUEFJUklOR19JTkZPLCBIRENQXzJfMl9QQUlSSU5HX1RJTUVPVVRfTVMsCisJCQkJ MH0sCisJCXtIRENQXzJfMl9MQ19JTklULCAwLCAwfSwKKwkJe0hEQ1BfMl8yX0xDX1NFTkRfTFBS SU1FLCBIRENQXzJfMl9IRE1JX0xQUklNRV9USU1FT1VUX01TLCAwfSwKKwkJe0hEQ1BfMl8yX1NL RV9TRU5EX0VLUywgMCwgMH0sCisJCXtIRENQXzJfMl9SRVBfU0VORF9SRUNWSURfTElTVCwKKwkJ CQlIRENQXzJfMl9SRUNWSURfTElTVF9USU1FT1VUX01TLCAwfSwKKwkJe0hEQ1BfMl8yX1JFUF9T RU5EX0FDSywgMCwgMH0sCisJCXtIRENQXzJfMl9SRVBfU1RSRUFNX01BTkFHRSwgMCwgMH0sCisJ CXtIRENQXzJfMl9SRVBfU1RSRUFNX1JFQURZLCBIRENQXzJfMl9TVFJFQU1fUkVBRFlfVElNRU9V VF9NUywKKwkJCQkwfSwKKwl9OworCitzdGF0aWMKK2ludCBpbnRlbF9oZG1pX2hkY3AyX3JlYWRf cnhfc3RhdHVzKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAorCQkJ CSAgICB1aW50OF90ICpyeF9zdGF0dXMpCit7CisJcmV0dXJuIGludGVsX2hkbWlfaGRjcF9yZWFk KGludGVsX2RpZ19wb3J0LAorCQkJCSAgICBIRENQXzJfMl9IRE1JX1JFR19SWFNUQVRVU19PRkZT RVQsCisJCQkJICAgIHJ4X3N0YXR1cywKKwkJCQkgICAgSERDUF8yXzJfSERNSV9SWFNUQVRVU19M RU4pOworfQorCitzdGF0aWMgaW50IGdldF9oZGNwMl9tc2dfdGltZW91dCh1OCBtc2dfaWQsIGJv b2wgaXNfcGFpcmVkKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IHNpemVvZihoZGNw Ml9tc2dfZGF0YSk7IGkrKykKKwkJaWYgKGhkY3AyX21zZ19kYXRhW2ldLm1zZ19pZCA9PSBtc2df aWQgJiYKKwkJICAgIChtc2dfaWQgIT0gSERDUF8yXzJfQUtFX1NFTkRfSFBSSU1FIHx8IGlzX3Bh aXJlZCkpCisJCQlyZXR1cm4gaGRjcDJfbXNnX2RhdGFbaV0udGltZW91dDsKKwkJZWxzZSBpZiAo aGRjcDJfbXNnX2RhdGFbaV0ubXNnX2lkID09IG1zZ19pZCkKKwkJCXJldHVybiBoZGNwMl9tc2df ZGF0YVtpXS50aW1lb3V0MjsKKworCXJldHVybiAtRUlOVkFMOworfQorCitzdGF0aWMgaW5saW5l CitpbnQgaGRjcDJfZGV0ZWN0X21zZ19hdmFpbGFiaWxpdHkoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqaW50ZWxfZGlnaXRhbF9wb3J0LAorCQkJCSAgdTggbXNnX2lkLCBib29sICptc2dfcmVh ZHksCisJCQkJICBzc2l6ZV90ICptc2dfc3opCit7CisJdTggcnhfc3RhdHVzW0hEQ1BfMl8yX0hE TUlfUlhTVEFUVVNfTEVOXTsKKwlpbnQgcmV0OworCisJcmV0ID0gaW50ZWxfaGRtaV9oZGNwMl9y ZWFkX3J4X3N0YXR1cyhpbnRlbF9kaWdpdGFsX3BvcnQsIHJ4X3N0YXR1cyk7CisJaWYgKHJldCA8 IDApIHsKKwkJRFJNX0RFQlVHX0tNUygicnhfc3RhdHVzIHJlYWQgZmFpbGVkLiBFcnIgJWRcbiIs IHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJKm1zZ19zeiA9ICgoSERDUF8yXzJfSERNSV9S WFNUQVRVU19NU0dfU1pfSEkocnhfc3RhdHVzWzFdKSA8PCA4KSB8CisJCSAgcnhfc3RhdHVzWzBd KTsKKworCWlmIChtc2dfaWQgPT0gSERDUF8yXzJfUkVQX1NFTkRfUkVDVklEX0xJU1QpCisJCSpt c2dfcmVhZHkgPSAoSERDUF8yXzJfSERNSV9SWFNUQVRVU19SRUFEWShyeF9zdGF0dXNbMV0pICYm CisJCQkgICAgICptc2dfc3opOworCWVsc2UKKwkJKm1zZ19yZWFkeSA9ICptc2dfc3o7CisKKwly ZXR1cm4gMDsKK30KKworc3RhdGljIHNzaXplX3QKK2ludGVsX2hkbWlfaGRjcDJfd2FpdF9mb3Jf bXNnKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAorCQkJICAgICAg dTggbXNnX2lkLCBib29sIHBhaXJlZCkKK3sKKwlib29sIG1zZ19yZWFkeSA9IGZhbHNlOworCWlu dCB0aW1lb3V0LCByZXQ7CisJc3NpemVfdCBtc2dfc3ogPSAwOworCisJdGltZW91dCA9IGdldF9o ZGNwMl9tc2dfdGltZW91dChtc2dfaWQsIHBhaXJlZCk7CisJaWYgKHRpbWVvdXQgPCAwKQorCQly ZXR1cm4gdGltZW91dDsKKworCXJldCA9IF9fd2FpdF9mb3IocmV0ID0gaGRjcDJfZGV0ZWN0X21z Z19hdmFpbGFiaWxpdHkoaW50ZWxfZGlnX3BvcnQsCisJCQkJCQkJICAgICBtc2dfaWQsICZtc2df cmVhZHksCisJCQkJCQkJICAgICAmbXNnX3N6KSwKKwkJCSAhcmV0ICYmIG1zZ19yZWFkeSAmJiBt c2dfc3osIHRpbWVvdXQgKiAxMDAwLAorCQkJIDEwMDAsIDUgKiAxMDAwKTsKKwlpZiAocmV0KQor CQlEUk1fREVCVUdfS01TKCJtc2dfaWQ6ICVkLCByZXQ6ICVkLCB0aW1lb3V0OiAlZFxuIiwKKwkJ CSAgICAgIG1zZ19pZCwgcmV0LCB0aW1lb3V0KTsKKworCXJldHVybiByZXQgPyByZXQgOiBtc2df c3o7Cit9CisKK3N0YXRpYworaW50IGludGVsX2hkbWlfaGRjcDJfd3JpdGVfbXNnKHN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAorCQkJICAgICAgIHZvaWQgKmJ1Ziwg c2l6ZV90IHNpemUpCit7CisJdW5zaWduZWQgaW50IG9mZnNldDsKKworCW9mZnNldCA9IEhEQ1Bf Ml8yX0hETUlfUkVHX1dSX01TR19PRkZTRVQ7CisJcmV0dXJuIGludGVsX2hkbWlfaGRjcF93cml0 ZShpbnRlbF9kaWdfcG9ydCwgb2Zmc2V0LCBidWYsIHNpemUpOworfQorCitzdGF0aWMKK2ludCBp bnRlbF9oZG1pX2hkY3AyX3JlYWRfbXNnKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVs X2RpZ19wb3J0LAorCQkJICAgICAgdTggbXNnX2lkLCB2b2lkICpidWYsIHNpemVfdCBzaXplKQor eworCXN0cnVjdCBpbnRlbF9oZG1pICpoZG1pID0gJmludGVsX2RpZ19wb3J0LT5oZG1pOworCXN0 cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmhkbWktPmF0dGFjaGVkX2Nvbm5lY3Rvci0+aGRjcDsK Kwl1bnNpZ25lZCBpbnQgb2Zmc2V0OworCXNzaXplX3QgcmV0OworCisJcmV0ID0gaW50ZWxfaGRt aV9oZGNwMl93YWl0X2Zvcl9tc2coaW50ZWxfZGlnX3BvcnQsIG1zZ19pZCwKKwkJCQkJICAgIGhk Y3AtPmlzX3BhaXJlZCk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwkvKgorCSAq IEF2YWlsYWJsZSBtc2cgc2l6ZSBzaG91bGQgYmUgZXF1YWwgdG8gb3IgbGVzc2VyIHRoYW4gdGhl CisJICogYXZhaWxhYmxlIGJ1ZmZlci4KKwkgKi8KKwlpZiAocmV0ID4gc2l6ZSkgeworCQlEUk1f REVCVUdfS01TKCJtc2dfc3ooJXpkKSBpcyBtb3JlIHRoYW4gZXhwIHNpemUoJXp1KVxuIiwKKwkJ CSAgICAgIHJldCwgc2l6ZSk7CisJCXJldHVybiAtMTsKKwl9CisKKwlvZmZzZXQgPSBIRENQXzJf Ml9IRE1JX1JFR19SRF9NU0dfT0ZGU0VUOworCXJldCA9IGludGVsX2hkbWlfaGRjcF9yZWFkKGlu dGVsX2RpZ19wb3J0LCBvZmZzZXQsIGJ1ZiwgcmV0KTsKKwlpZiAocmV0KQorCQlEUk1fREVCVUdf S01TKCJGYWlsZWQgdG8gcmVhZCBtc2dfaWQ6ICVkKCV6ZClcbiIsIG1zZ19pZCwgcmV0KTsKKwor CXJldHVybiByZXQ7Cit9CisKK3N0YXRpYworaW50IGludGVsX2hkbWlfaGRjcDJfY2hlY2tfbGlu ayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKK3sKKwl1OCByeF9z dGF0dXNbSERDUF8yXzJfSERNSV9SWFNUQVRVU19MRU5dOworCWludCByZXQ7CisKKwlyZXQgPSBp bnRlbF9oZG1pX2hkY3AyX3JlYWRfcnhfc3RhdHVzKGludGVsX2RpZ19wb3J0LCByeF9zdGF0dXMp OworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwkvKgorCSAqIFJlLWF1dGggcmVxdWVzdCBh bmQgTGluayBJbnRlZ3JpdHkgRmFpbHVyZXMgYXJlIHJlcHJlc2VudGVkIGJ5CisJICogc2FtZSBi aXQuIGkuZSByZWF1dGhfcmVxLgorCSAqLworCWlmIChIRENQXzJfMl9IRE1JX1JYU1RBVFVTX1JF QVVUSF9SRVEocnhfc3RhdHVzWzFdKSkKKwkJcmV0ID0gRFJNX0hEQ1BfUkVBVVRIX1JFUVVFU1Q7 CisJZWxzZSBpZiAoSERDUF8yXzJfSERNSV9SWFNUQVRVU19SRUFEWShyeF9zdGF0dXNbMV0pKQor CQlyZXQgPSBEUk1fSERDUF9UT1BPTE9HWV9DSEFOR0U7CisKKwlyZXR1cm4gcmV0OworfQorCitz dGF0aWMKK2ludCBpbnRlbF9oZG1pX2hkY3AyX2NhcGFibGUoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkgICAgIGJvb2wgKmNhcGFibGUpCit7CisJdTggaGRj cDJfdmVyc2lvbjsKKwlpbnQgcmV0OworCisJKmNhcGFibGUgPSBmYWxzZTsKKwlyZXQgPSBpbnRl bF9oZG1pX2hkY3BfcmVhZChpbnRlbF9kaWdfcG9ydCwgSERDUF8yXzJfSERNSV9SRUdfVkVSX09G RlNFVCwKKwkJCQkgICAmaGRjcDJfdmVyc2lvbiwgc2l6ZW9mKGhkY3AyX3ZlcnNpb24pKTsKKwlp ZiAoIXJldCAmJiBoZGNwMl92ZXJzaW9uICYgSERDUF8yXzJfSERNSV9TVVBQT1JUX01BU0spCisJ CSpjYXBhYmxlID0gdHJ1ZTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbmxpbmUKK2Vu dW0gbWVpX2hkY3Bfd2lyZWRfcHJvdG9jb2wgaW50ZWxfaGRtaV9oZGNwMl9wcm90b2NvbCh2b2lk KQoreworCXJldHVybiBNRUlfSERDUF9QUk9UT0NPTF9IRE1JOworfQorCiBzdGF0aWMgY29uc3Qg c3RydWN0IGludGVsX2hkY3Bfc2hpbSBpbnRlbF9oZG1pX2hkY3Bfc2hpbSA9IHsKIAkud3JpdGVf YW5fYWtzdiA9IGludGVsX2hkbWlfaGRjcF93cml0ZV9hbl9ha3N2LAogCS5yZWFkX2Jrc3YgPSBp bnRlbF9oZG1pX2hkY3BfcmVhZF9ia3N2LApAQCAtMTEyOCw2ICsxMzEzLDExIEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltIGludGVsX2hkbWlfaGRjcF9zaGltID0gewogCS5y ZWFkX3ZfcHJpbWVfcGFydCA9IGludGVsX2hkbWlfaGRjcF9yZWFkX3ZfcHJpbWVfcGFydCwKIAku dG9nZ2xlX3NpZ25hbGxpbmcgPSBpbnRlbF9oZG1pX2hkY3BfdG9nZ2xlX3NpZ25hbGxpbmcsCiAJ LmNoZWNrX2xpbmsgPSBpbnRlbF9oZG1pX2hkY3BfY2hlY2tfbGluaywKKwkud3JpdGVfMl8yX21z ZyA9IGludGVsX2hkbWlfaGRjcDJfd3JpdGVfbXNnLAorCS5yZWFkXzJfMl9tc2cgPSBpbnRlbF9o ZG1pX2hkY3AyX3JlYWRfbXNnLAorCS5jaGVja18yXzJfbGluawk9IGludGVsX2hkbWlfaGRjcDJf Y2hlY2tfbGluaywKKwkuaGRjcF8yXzJfY2FwYWJsZSA9IGludGVsX2hkbWlfaGRjcDJfY2FwYWJs ZSwKKwkuaGRjcF9wcm90b2NvbCA9IGludGVsX2hkbWlfaGRjcDJfcHJvdG9jb2wsCiB9OwogCiBz dGF0aWMgdm9pZCBpbnRlbF9oZG1pX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==