From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH 40/43] drm/i915: Implement the HDCP2.2 support for HDMI Date: Wed, 14 Feb 2018 19:43:55 +0530 Message-ID: <1518617638-21684-41-git-send-email-ramalingam.c@intel.com> References: <1518617638-21684-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: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id A762C6E409 for ; Wed, 14 Feb 2018 14:21:21 +0000 (UTC) In-Reply-To: <1518617638-21684-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: seanpaul@chromium.org, intel-gfx@lists.freedesktop.org, rodrigo.vivi@intel.com, daniel.vetter@ffwll.ch Cc: tomas.winkler@intel.com List-Id: intel-gfx@lists.freedesktop.org SW1wbGVtZW50cyB0aGUgSERNSSBhZGFwYXRhdGlvbiBzcGVjaWZpYyBIRENQMi4yIG9wZXJhdGlv bnMKaW50ZWxfaGRjcDJfc2hpbS4KCkJhc2ljYWxseSB0aGVzZSBhcmUgRERDIHJlYWQgYW5kIHdy aXRlIGZvciBhdXRoZW50aWNhdGluZyB0aHJvdWdoCkhEQ1AyLjIgbWVzc2FnZXMuCgpTaWduZWQt b2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIHwgMjA2ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjA2IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggMjM5ODZjMDJkZDQxLi5hYzVhNjlmNWFlYWEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKQEAgLTExMTksNiArMTExOSwyMTIgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gaW50ZWxfaGRtaV9oZGNwX3NoaW0gPSB7CiAJ LmNoZWNrX2xpbmsgPSBpbnRlbF9oZG1pX2hkY3BfY2hlY2tfbGluaywKIH07CiAKK3N0YXRpYwor aW50IGludGVsX2hkbWlfaGRjcDJfcmVhZF9yeF9zdGF0dXMoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkJICB1bmlvbiBoZGNwMl9oZG1pX3J4X3N0YXR1cyAq cnhfc3RhdHVzKQoreworCXJldHVybiBpbnRlbF9oZG1pX2hkY3BfcmVhZChpbnRlbF9kaWdfcG9y dCwKKwkJCQkgICAgSERNSV9IRENQXzJfMl9SRUdfUlhTVEFUVVNfT0ZGU0VULAorCQkJCSAgICBy eF9zdGF0dXMsCisJCQkJICAgIHNpemVvZih1bmlvbiBoZGNwMl9oZG1pX3J4X3N0YXR1cykpOwor fQorCitzdGF0aWMgaW5saW5lCitpbnQgaW50ZWxfaGRtaV9oZGNwMl90aW1lb3V0X2Zvcl9tc2co dWludDhfdCBtc2dfaWQsIGJvb2wgaXNfcGFpcmVkKQoreworCWludCB0aW1lb3V0ID0gLUVJTlZB TDsKKworCXN3aXRjaCAobXNnX2lkKSB7CisJY2FzZSBBS0VfU0VORF9DRVJUOgorCQl0aW1lb3V0 ID0gSERDUF8yXzJfQ0VSVF9USU1FT1VUOworCQlicmVhazsKKwljYXNlIEFLRV9TRU5EX0hQUklN RToKKwkJaWYgKGlzX3BhaXJlZCkKKwkJCXRpbWVvdXQgPSBIRENQXzJfMl9IUFJJTUVfUEFJUkVE X1RJTUVPVVQ7CisJCWVsc2UKKwkJCXRpbWVvdXQgPSBIRENQXzJfMl9IUFJJTUVfTk9fUEFJUkVE X1RJTUVPVVQ7CisJCWJyZWFrOworCWNhc2UgQUtFX1NFTkRfUEFSSU5HX0lORk86CisJCXRpbWVv dXQgPSBIRENQXzJfMl9QQUlSSU5HX1RJTUVPVVQ7CisJCWJyZWFrOworCWNhc2UgTENfU0VORF9M UFJJTUU6CisJCXRpbWVvdXQgPSBIRENQXzJfMl9IRE1JX0xQUklNRV9USU1FT1VUOworCQlicmVh azsKKwljYXNlIFJFUF9TRU5EX1JFQ1ZJRF9MSVNUOgorCQl0aW1lb3V0ID0gSERDUF8yXzJfUkVD VklEX0xJU1RfVElNRU9VVDsKKwkJYnJlYWs7CisJY2FzZSBSRVBfU1RSRUFNX1JFQURZOgorCQl0 aW1lb3V0ID0gSERDUF8yXzJfU1RSRUFNX1JFQURZX1RJTUVPVVQ7CisJCWJyZWFrOworCWRlZmF1 bHQ6CisJCURSTV9FUlJPUigiVW5zdXBwb3J0ZWQgbXNnX2lkOiAlZFxuIiwgKGludCltc2dfaWQp OworCX0KKwlyZXR1cm4gdGltZW91dDsKK30KKworc3RhdGljIGlubGluZQoraW50IGhkY3AyX2Rl dGVjdF9tc2dfYXZhaWxhYmlsaXR5KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rp Z2l0YWxfcG9ydCwKKwkJCQkgIHVpbnQ4X3QgbXNnX2lkLCBib29sICptc2dfcmVhZHksCisJCQkJ ICBzc2l6ZV90ICptc2dfc3opCit7CisJdW5pb24gaGRjcDJfaGRtaV9yeF9zdGF0dXMgcnhfc3Rh dHVzOworCWludCByZXQ7CisKKwlyZXQgPSBpbnRlbF9oZG1pX2hkY3AyX3JlYWRfcnhfc3RhdHVz KGludGVsX2RpZ2l0YWxfcG9ydCwgJnJ4X3N0YXR1cyk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJN X0RFQlVHX0tNUygicnhfc3RhdHVzIHJlYWQgZmFpbGVkLiBFcnIgJWRcbiIsIHJldCk7CisJCXJl dHVybiByZXQ7CisJfQorCisJLyogQmlnIGVuZGlhbiB0byBMaXR0bGUgZW5kaWFuICovCisJcnhf c3RhdHVzLnZhbCA9IF9fc3dhYjE2KHJ4X3N0YXR1cy52YWwpOworCSptc2dfc3ogPSAgcnhfc3Rh dHVzLmZpZWxkcy5tc2dfc3pfaGkgPDwgOCB8IHJ4X3N0YXR1cy5maWVsZHMubXNnX3N6X2xvOwor CisJaWYgKG1zZ19pZCA9PSBSRVBfU0VORF9SRUNWSURfTElTVCkKKwkJKm1zZ19yZWFkeSA9IChy eF9zdGF0dXMuZmllbGRzLnJlYWR5ICYmIG1zZ19zeik7CisJZWxzZQorCQkqbXNnX3JlYWR5ID0g Km1zZ19zejsKKworCXJldHVybiAwOworfQorCisvKioKKyAqIGludGVsX2hkbWlfaGRjcDJfd2Fp dF9mb3JfbXNnOiBEZXRlY3RzIHRoZSBoZG1pIGhkY3AyLjIgbXNnIGF2YWlsYWJpbGl0eQorICog QGhkY3A6CWhkY3Agc3RydWN0dXJlCisgKiBAbXNnX2lkOglNZXNzYWdlIElEIGZvciB3aGljaCB3 ZSBhcmUgd2FpdGluZworICoKKyAqIERldGVjdHMgdGhlIEhETUkgSERDUDIuMiBNZXNzYWdlIGF2 YWlsYWJpbGl0eQorICoKKyAqIFJldHVybnMgLUVUSU1FT1VUIGluIGNhc2Ugb2YgdGltZW91dCwg TWVzc2FnZSBTaXplIG9uIHN1Y2Nlc3MKKyAqLworc3RhdGljIHNzaXplX3QKK2ludGVsX2hkbWlf aGRjcDJfd2FpdF9mb3JfbXNnKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0LAorCQkJICAgICAgdWludDhfdCBtc2dfaWQsIGJvb2wgcGFpcmVkKQoreworCWJvb2wgbXNn X3JlYWR5ID0gZmFsc2U7CisJaW50IHRpbWVvdXQsIHJldDsKKwlzc2l6ZV90IG1zZ19zejsKKwor CXRpbWVvdXQgPSBpbnRlbF9oZG1pX2hkY3AyX3RpbWVvdXRfZm9yX21zZyhtc2dfaWQsIHBhaXJl ZCk7CisJaWYgKHRpbWVvdXQgPCAwKQorCQlyZXR1cm4gdGltZW91dDsKKworCXJldCA9IF9fd2Fp dF9mb3IocmV0ID0gaGRjcDJfZGV0ZWN0X21zZ19hdmFpbGFiaWxpdHkoaW50ZWxfZGlnX3BvcnQs CisJCQkgbXNnX2lkLCAmbXNnX3JlYWR5LCAmbXNnX3N6KSwKKwkJCSAhcmV0ICYmIG1zZ19yZWFk eSAmJiBtc2dfc3osIHRpbWVvdXQgKiAxMDAwLAorCQkJIDEwMDAsIDUgKiAxMDAwKTsKKwlpZiAo cmV0KQorCQlEUk1fRVJST1IoIm1zZ19pZDogJWQsIHJldDogJWQsIHRpbWVvdXQ6ICVkXG4iLAor CQkJICBtc2dfaWQsIHJldCwgdGltZW91dCk7CisJcmV0dXJuIHJldCA/IHJldCA6IG1zZ19zejsK K30KKworc3RhdGljCitpbnQgaW50ZWxfaGRtaV9oZGNwMl93cml0ZV9tc2coc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJCQkgICAgICAgdm9pZCAqYnVmLCBzaXpl X3Qgc2l6ZSkKK3sKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0OworCisJb2Zmc2V0ID0gSERNSV9IRENQ XzJfMl9SRUdfV1JfTVNHX09GRlNFVDsKKwlyZXR1cm4gaW50ZWxfaGRtaV9oZGNwX3dyaXRlKGlu dGVsX2RpZ19wb3J0LCBvZmZzZXQsIGJ1Ziwgc2l6ZSk7Cit9CisKK3N0YXRpYworaW50IGludGVs X2hkbWlfaGRjcDJfcmVhZF9tc2coc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQsCisJCQkgICAgICB1aW50OF90IG1zZ19pZCwgdm9pZCAqYnVmLCBzaXplX3Qgc2l6ZSkK K3sKKwlzdHJ1Y3QgaW50ZWxfaGRtaSAqaGRtaSA9ICZpbnRlbF9kaWdfcG9ydC0+aGRtaTsKKwlz dHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9IGhkbWktPmF0dGFjaGVkX2Nvbm5lY3Rvci0+aGRjcDsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXY7CisJc3RydWN0IGkyY19hZGFwdGVy ICphZGFwdGVyOworCXVuc2lnbmVkIGludCBvZmZzZXQ7CisJc3NpemVfdCByZXQ7CisKKwlyZXQg PSBpbnRlbF9oZG1pX2hkY3AyX3dhaXRfZm9yX21zZyhpbnRlbF9kaWdfcG9ydCwgbXNnX2lkLAor CQkJCQkgICAgaGRjcC0+aXNfcGFpcmVkKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsK KworCS8qCisJICogQXZhaWxhYmxlIG1zZyBzaXplIHNob3VsZCBiZSBlcXVhbCB0byBvciBsZXNz ZXIgdGhhbiB0aGUKKwkgKiBhdmFpbGFibGUgYnVmZmVyLgorCSAqLworCWlmIChyZXQgPiBzaXpl KSB7CisJCURSTV9ERUJVR19LTVMoIm1zZ19zeiglZCkgaXMgbW9yZSB0aGFuIGV4cCBzaXplKCVk KVxuIiwKKwkJCSAgICAgIChpbnQpcmV0LCAoaW50KXNpemUpOworCQlyZXR1cm4gLTE7CisJfQor CisJb2Zmc2V0ID0gSERNSV9IRENQXzJfMl9SRUdfUkRfTVNHX09GRlNFVDsKKworCWlmIChtc2df aWQgPT0gQUtFX1NFTkRfQ0VSVCkgeworCQlkZXZfcHJpdiA9IGludGVsX2RpZ19wb3J0LT5iYXNl LmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKKwkJYWRhcHRlciA9IGludGVsX2dtYnVzX2dldF9hZGFw dGVyKGRldl9wcml2LCBoZG1pLT5kZGNfYnVzKTsKKworCQlyZXQgPSBpbnRlbF9nbWJ1c19idXJz dF9yZWFkKGFkYXB0ZXIsIG9mZnNldCwgYnVmLCByZXQpOworCX0gZWxzZSB7CisJCXJldCA9IGlu dGVsX2hkbWlfaGRjcF9yZWFkKGludGVsX2RpZ19wb3J0LCBvZmZzZXQsIGJ1ZiwgcmV0KTsKKwl9 CisKKwlpZiAocmV0KQorCQlEUk1fREVCVUdfS01TKCJtc2dfaWQ6ICVkLCByZXQ6ICVkXG4iLCBt c2dfaWQsIChpbnQpcmV0KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMKK2ludCBpbnRlbF9o ZG1pX2hkY3AyX2NoZWNrX2xpbmsoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQpCit7CisJdW5pb24gaGRjcDJfaGRtaV9yeF9zdGF0dXMgcnhfc3RhdHVzOworCWludCBy ZXQ7CisKKwlyZXQgPSBpbnRlbF9oZG1pX2hkY3AyX3JlYWRfcnhfc3RhdHVzKGludGVsX2RpZ19w b3J0LCAmcnhfc3RhdHVzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyoKKwkgKiBS ZS1hdXRoIHJlcXVlc3QgYW5kIExpbmsgSW50ZWdyaXR5IEZhaWx1cmVzIGFyZSByZXByZXNlbnRl ZCBieQorCSAqIHNhbWUgYml0LiBpLmUgcmVhdXRoX3JlcS4KKwkgKi8KKwlpZiAocnhfc3RhdHVz LmZpZWxkcy5yZWF1dGhfcmVxKQorCQlyZXQgPSBEUk1fSERDUF9SRUFVVEhfUkVRVUVTVDsKKwll bHNlIGlmIChyeF9zdGF0dXMuZmllbGRzLnJlYWR5KQorCQlyZXQgPSBEUk1fSERDUF9UT1BPTE9H WV9DSEFOR0U7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMKK2ludCBpbnRlbF9oZG1pX2hk Y3AyX2NhcGFibGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCisJ CQkgICAgIGJvb2wgKmNhcGFibGUpCit7CisJdWludDhfdCBoZGNwMnZlcnNpb247CisJaW50IHJl dDsKKworCSpjYXBhYmxlID0gZmFsc2U7CisJcmV0ID0gaW50ZWxfaGRtaV9oZGNwX3JlYWQoaW50 ZWxfZGlnX3BvcnQsIEhETUlfSERDUF8yXzJfUkVHX1ZFUl9PRkZTRVQsCisJCQkJICAgJmhkY3Ay dmVyc2lvbiwgc2l6ZW9mKGhkY3AydmVyc2lvbikpOworCWlmICghcmV0KQorCQlpZiAoaGRjcDJ2 ZXJzaW9uICYgSERNSV9IRENQXzJfMl9TVVBQT1JUX01BU0spCisJCQkqY2FwYWJsZSA9IHRydWU7 CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMKK2VudW0gaGRjcF9wcm90b2NvbCBpbnRlbF9o ZG1pX2hkY3AyX3Byb3RvY29sKHZvaWQpCit7CisJcmV0dXJuIEhEQ1BfUFJPVE9DT0xfSERNSTsK K30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwMl9zaGltIGludGVsX2hkbWlfaGRj cDJfc2hpbSA9IHsKKwkud3JpdGVfbXNnCQk9IGludGVsX2hkbWlfaGRjcDJfd3JpdGVfbXNnLAor CS5yZWFkX21zZwkJPSBpbnRlbF9oZG1pX2hkY3AyX3JlYWRfbXNnLAorCS50b2dnbGVfc2lnbmFs bGluZwk9IGludGVsX2hkbWlfaGRjcF90b2dnbGVfc2lnbmFsbGluZywKKwkuY2hlY2tfbGluawkJ PSBpbnRlbF9oZG1pX2hkY3AyX2NoZWNrX2xpbmssCisJLmhkY3BfY2FwYWJsZQkJPSBpbnRlbF9o ZG1pX2hkY3AyX2NhcGFibGUsCisJLmhkY3BfcHJvdG9jb2wJCT0gaW50ZWxfaGRtaV9oZGNwMl9w cm90b2NvbCwKK307CisKIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfcHJlcGFyZShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK