From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v5 24/40] drm/i915: Implement the HDCP2.2 support for HDMI Date: Wed, 27 Jun 2018 14:10:13 +0530 Message-ID: <1530088829-11730-25-git-send-email-ramalingam.c@intel.com> References: <1530088829-11730-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: <1530088829-11730-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@ffwll.ch, tomas.winkler@intel.com, alexander.usyskin@intel.com, uma.shankar@intel.com List-Id: intel-gfx@lists.freedesktop.org SW1wbGVtZW50cyB0aGUgSERNSSBhZGFwdGF0aW9uIHNwZWNpZmljIEhEQ1AyLjIgb3BlcmF0aW9u cy4KCkJhc2ljYWxseSB0aGVzZSBhcmUgRERDIHJlYWQgYW5kIHdyaXRlIGZvciBhdXRoZW50aWNh dGluZyB0aHJvdWdoCkhEQ1AyLjIgbWVzc2FnZXMuCgp2MjoKICBSZWJhc2VkLgp2MzoKICBObyBD aGFuZ2VzLgp2NDoKICBObyBtb3JlIHNwZWNpYWwgaGFuZGxpbmcgb2YgR21idXMgYnVyc3QgcmVh ZCBmb3IgQUtFX1NFTkRfQ0VSVC4KICBTdHlsZSBmaXhlZCB3aXRoIGZldyBuYW1pbmcuIFtVbWFd CiAgJXMvUEFSSU5HL1BBSVJJTkcKdjU6CiAgbXNnX3N6IGlzIGluaXRpYWxpemVkIGF0IGRlZmlu aXRpb24uCiAgTG9va3VwIHRhYmxlIGlzIGRlZmluZWQgZm9yIEhETUkgSERDUDIuMiBtc2dzIFtE YW5pZWxdLgoKU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyB8IDE4NyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE4NyBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCmluZGV4IDc5ODhmOTU4ZDgzNS4u ZjM2NzJlMTkyYmU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1p LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCkBAIC0zMCw2ICszMCw3 IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAj aW5jbHVkZSA8bGludXgvaGRtaS5oPgorI2luY2x1ZGUgPGxpbnV4L21laV9oZGNwLmg+CiAjaW5j bHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNp bmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KQEAgLTExMTYsNiArMTExNywxODcgQEAgYm9vbCBpbnRl bF9oZG1pX2hkY3BfY2hlY2tfbGluayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydCkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIHN0cnVjdCBoZGNwMl9oZG1pX21z Z19kYXRhIHsKKwl1aW50OF90IG1zZ19pZDsKKwl1aW50MzJfdCB0aW1lb3V0OworCXVpbnQzMl90 IHRpbWVvdXQyOworCX0gaGRjcDJfbXNnX2RhdGFbXSA9IHsKKwkJe0hEQ1BfMl8yX0FLRV9JTklU LCAwLCAwfSwKKwkJe0hEQ1BfMl8yX0FLRV9TRU5EX0NFUlQsIEhEQ1BfMl8yX0NFUlRfVElNRU9V VCwgMH0sCisJCXtIRENQXzJfMl9BS0VfTk9fU1RPUkVEX0tNLCAwLCAwfSwKKwkJe0hEQ1BfMl8y X0FLRV9TVE9SRURfS00sIDAsIDB9LAorCQl7SERDUF8yXzJfQUtFX1NFTkRfSFBSSU1FLCBIRENQ XzJfMl9IUFJJTUVfUEFJUkVEX1RJTUVPVVQsCisJCQkJSERDUF8yXzJfSFBSSU1FX05PX1BBSVJF RF9USU1FT1VUfSwKKwkJe0hEQ1BfMl8yX0FLRV9TRU5EX1BBSVJJTkdfSU5GTywgSERDUF8yXzJf UEFJUklOR19USU1FT1VULCAwfSwKKwkJe0hEQ1BfMl8yX0xDX0lOSVQsIDAsIDB9LAorCQl7SERD UF8yXzJfTENfU0VORF9MUFJJTUUsIEhEQ1BfMl8yX0hETUlfTFBSSU1FX1RJTUVPVVQsIDB9LAor CQl7SERDUF8yXzJfU0tFX1NFTkRfRUtTLCAwLCAwfSwKKwkJe0hEQ1BfMl8yX1JFUF9TRU5EX1JF Q1ZJRF9MSVNULAorCQkJCUhEQ1BfMl8yX1JFQ1ZJRF9MSVNUX1RJTUVPVVQsIDB9LAorCQl7SERD UF8yXzJfUkVQX1NFTkRfQUNLLCAwLCAwfSwKKwkJe0hEQ1BfMl8yX1JFUF9TVFJFQU1fTUFOQUdF LCAwLCAwfSwKKwkJe0hEQ1BfMl8yX1JFUF9TVFJFQU1fUkVBRFksIEhEQ1BfMl8yX1NUUkVBTV9S RUFEWV9USU1FT1VULCAwfSwKKwl9OworCitzdGF0aWMKK2ludCBpbnRlbF9oZG1pX2hkY3AyX3Jl YWRfcnhfc3RhdHVzKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAor CQkJCSAgICB1aW50OF90ICpyeF9zdGF0dXMpCit7CisJcmV0dXJuIGludGVsX2hkbWlfaGRjcF9y ZWFkKGludGVsX2RpZ19wb3J0LAorCQkJCSAgICBIRENQXzJfMl9IRE1JX1JFR19SWFNUQVRVU19P RkZTRVQsCisJCQkJICAgIHJ4X3N0YXR1cywKKwkJCQkgICAgSERDUF8yXzJfSERNSV9SWFNUQVRV U19MRU4pOworfQorCitzdGF0aWMgaW50IGdldF9oZGNwMl9tc2dfdGltZW91dCh1aW50OF90IG1z Z19pZCwgYm9vbCBpc19wYWlyZWQpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgc2l6 ZW9mKGhkY3AyX21zZ19kYXRhKTsgaSsrKQorCQlpZiAoaGRjcDJfbXNnX2RhdGFbaV0ubXNnX2lk ID09IG1zZ19pZCAmJgorCQkgICAgKG1zZ19pZCAhPSBIRENQXzJfMl9BS0VfU0VORF9IUFJJTUUg fHwgaXNfcGFpcmVkKSkKKwkJCXJldHVybiBoZGNwMl9tc2dfZGF0YVtpXS50aW1lb3V0OworCQll bHNlIGlmIChoZGNwMl9tc2dfZGF0YVtpXS5tc2dfaWQgPT0gbXNnX2lkKQorCQkJcmV0dXJuIGhk Y3AyX21zZ19kYXRhW2ldLnRpbWVvdXQyOworCisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRp YyBpbmxpbmUKK2ludCBoZGNwMl9kZXRlY3RfbXNnX2F2YWlsYWJpbGl0eShzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdpdGFsX3BvcnQsCisJCQkJICB1aW50OF90IG1zZ19pZCwg Ym9vbCAqbXNnX3JlYWR5LAorCQkJCSAgc3NpemVfdCAqbXNnX3N6KQoreworCXVpbnQ4X3Qgcnhf c3RhdHVzW0hEQ1BfMl8yX0hETUlfUlhTVEFUVVNfTEVOXTsKKwlpbnQgcmV0OworCisJcmV0ID0g aW50ZWxfaGRtaV9oZGNwMl9yZWFkX3J4X3N0YXR1cyhpbnRlbF9kaWdpdGFsX3BvcnQsIHJ4X3N0 YXR1cyk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0RFQlVHX0tNUygicnhfc3RhdHVzIHJlYWQg ZmFpbGVkLiBFcnIgJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJKm1zZ19zeiA9 ICgoSERDUF8yXzJfSERNSV9SWFNUQVRVU19NU0dfU1pfSEkocnhfc3RhdHVzWzFdKSA8PCA4KSB8 CisJCSAgcnhfc3RhdHVzWzBdKTsKKworCWlmIChtc2dfaWQgPT0gSERDUF8yXzJfUkVQX1NFTkRf UkVDVklEX0xJU1QpCisJCSptc2dfcmVhZHkgPSAoSERDUF8yXzJfSERNSV9SWFNUQVRVU19SRUFE WShyeF9zdGF0dXNbMV0pICYmCisJCQkgICAgICptc2dfc3opOworCWVsc2UKKwkJKm1zZ19yZWFk eSA9ICptc2dfc3o7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHNzaXplX3QKK2ludGVsX2hk bWlfaGRjcDJfd2FpdF9mb3JfbXNnKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rp Z19wb3J0LAorCQkJICAgICAgdWludDhfdCBtc2dfaWQsIGJvb2wgcGFpcmVkKQoreworCWJvb2wg bXNnX3JlYWR5ID0gZmFsc2U7CisJaW50IHRpbWVvdXQsIHJldDsKKwlzc2l6ZV90IG1zZ19zeiA9 IDA7CisKKwl0aW1lb3V0ID0gZ2V0X2hkY3AyX21zZ190aW1lb3V0KG1zZ19pZCwgcGFpcmVkKTsK KwlpZiAodGltZW91dCA8IDApCisJCXJldHVybiB0aW1lb3V0OworCisJcmV0ID0gX193YWl0X2Zv cihyZXQgPSBoZGNwMl9kZXRlY3RfbXNnX2F2YWlsYWJpbGl0eShpbnRlbF9kaWdfcG9ydCwKKwkJ CSBtc2dfaWQsICZtc2dfcmVhZHksICZtc2dfc3opLAorCQkJICFyZXQgJiYgbXNnX3JlYWR5ICYm IG1zZ19zeiwgdGltZW91dCAqIDEwMDAsCisJCQkgMTAwMCwgNSAqIDEwMDApOworCWlmIChyZXQp CisJCURSTV9FUlJPUigibXNnX2lkOiAlZCwgcmV0OiAlZCwgdGltZW91dDogJWRcbiIsCisJCQkg IG1zZ19pZCwgcmV0LCB0aW1lb3V0KTsKKworCXJldHVybiByZXQgPyByZXQgOiBtc2dfc3o7Cit9 CisKK3N0YXRpYworaW50IGludGVsX2hkbWlfaGRjcDJfd3JpdGVfbXNnKHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAorCQkJICAgICAgIHZvaWQgKmJ1Ziwgc2l6ZV90 IHNpemUpCit7CisJdW5zaWduZWQgaW50IG9mZnNldDsKKworCW9mZnNldCA9IEhEQ1BfMl8yX0hE TUlfUkVHX1dSX01TR19PRkZTRVQ7CisJcmV0dXJuIGludGVsX2hkbWlfaGRjcF93cml0ZShpbnRl bF9kaWdfcG9ydCwgb2Zmc2V0LCBidWYsIHNpemUpOworfQorCitzdGF0aWMKK2ludCBpbnRlbF9o ZG1pX2hkY3AyX3JlYWRfbXNnKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0LAorCQkJICAgICAgdWludDhfdCBtc2dfaWQsIHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUpCit7 CisJc3RydWN0IGludGVsX2hkbWkgKmhkbWkgPSAmaW50ZWxfZGlnX3BvcnQtPmhkbWk7CisJc3Ry dWN0IGludGVsX2hkY3AgKmhkY3AgPSAmaGRtaS0+YXR0YWNoZWRfY29ubmVjdG9yLT5oZGNwOwor CXVuc2lnbmVkIGludCBvZmZzZXQ7CisJc3NpemVfdCByZXQ7CisKKwlyZXQgPSBpbnRlbF9oZG1p X2hkY3AyX3dhaXRfZm9yX21zZyhpbnRlbF9kaWdfcG9ydCwgbXNnX2lkLAorCQkJCQkgICAgaGRj cC0+aXNfcGFpcmVkKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCS8qCisJICog QXZhaWxhYmxlIG1zZyBzaXplIHNob3VsZCBiZSBlcXVhbCB0byBvciBsZXNzZXIgdGhhbiB0aGUK KwkgKiBhdmFpbGFibGUgYnVmZmVyLgorCSAqLworCWlmIChyZXQgPiBzaXplKSB7CisJCURSTV9E RUJVR19LTVMoIm1zZ19zeiglemQpIGlzIG1vcmUgdGhhbiBleHAgc2l6ZSglenUpXG4iLAorCQkJ ICAgICAgcmV0LCBzaXplKTsKKwkJcmV0dXJuIC0xOworCX0KKworCW9mZnNldCA9IEhEQ1BfMl8y X0hETUlfUkVHX1JEX01TR19PRkZTRVQ7CisJcmV0ID0gaW50ZWxfaGRtaV9oZGNwX3JlYWQoaW50 ZWxfZGlnX3BvcnQsIG9mZnNldCwgYnVmLCByZXQpOworCWlmIChyZXQpCisJCURSTV9ERUJVR19L TVMoIkZhaWxlZCB0byByZWFkIG1zZ19pZDogJWQoJXpkKVxuIiwgbXNnX2lkLCByZXQpOworCisJ cmV0dXJuIHJldDsKK30KKworc3RhdGljCitpbnQgaW50ZWxfaGRtaV9oZGNwMl9jaGVja19saW5r KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQoreworCXVpbnQ4X3Qg cnhfc3RhdHVzW0hEQ1BfMl8yX0hETUlfUlhTVEFUVVNfTEVOXTsKKwlpbnQgcmV0OworCisJcmV0 ID0gaW50ZWxfaGRtaV9oZGNwMl9yZWFkX3J4X3N0YXR1cyhpbnRlbF9kaWdfcG9ydCwgcnhfc3Rh dHVzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyoKKwkgKiBSZS1hdXRoIHJlcXVl c3QgYW5kIExpbmsgSW50ZWdyaXR5IEZhaWx1cmVzIGFyZSByZXByZXNlbnRlZCBieQorCSAqIHNh bWUgYml0LiBpLmUgcmVhdXRoX3JlcS4KKwkgKi8KKwlpZiAoSERDUF8yXzJfSERNSV9SWFNUQVRV U19SRUFVVEhfUkVRKHJ4X3N0YXR1c1sxXSkpCisJCXJldCA9IERSTV9IRENQX1JFQVVUSF9SRVFV RVNUOworCWVsc2UgaWYgKEhEQ1BfMl8yX0hETUlfUlhTVEFUVVNfUkVBRFkocnhfc3RhdHVzWzFd KSkKKwkJcmV0ID0gRFJNX0hEQ1BfVE9QT0xPR1lfQ0hBTkdFOworCisJcmV0dXJuIHJldDsKK30K Kworc3RhdGljCitpbnQgaW50ZWxfaGRtaV9oZGNwMl9jYXBhYmxlKHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAorCQkJICAgICBib29sICpjYXBhYmxlKQoreworCXVp bnQ4X3QgaGRjcDJfdmVyc2lvbjsKKwlpbnQgcmV0OworCisJKmNhcGFibGUgPSBmYWxzZTsKKwly ZXQgPSBpbnRlbF9oZG1pX2hkY3BfcmVhZChpbnRlbF9kaWdfcG9ydCwgSERDUF8yXzJfSERNSV9S RUdfVkVSX09GRlNFVCwKKwkJCQkgICAmaGRjcDJfdmVyc2lvbiwgc2l6ZW9mKGhkY3AyX3ZlcnNp b24pKTsKKwlpZiAoIXJldCAmJiBoZGNwMl92ZXJzaW9uICYgSERDUF8yXzJfSERNSV9TVVBQT1JU X01BU0spCisJCSpjYXBhYmxlID0gdHJ1ZTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYwor ZW51bSBoZGNwX3Byb3RvY29sIGludGVsX2hkbWlfaGRjcDJfcHJvdG9jb2wodm9pZCkKK3sKKwly ZXR1cm4gSERDUF9QUk9UT0NPTF9IRE1JOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVs X2hkY3Bfc2hpbSBpbnRlbF9oZG1pX2hkY3Bfc2hpbSA9IHsKIAkud3JpdGVfYW5fYWtzdiA9IGlu dGVsX2hkbWlfaGRjcF93cml0ZV9hbl9ha3N2LAogCS5yZWFkX2Jrc3YgPSBpbnRlbF9oZG1pX2hk Y3BfcmVhZF9ia3N2LApAQCAtMTEyNyw2ICsxMzA5LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg aW50ZWxfaGRjcF9zaGltIGludGVsX2hkbWlfaGRjcF9zaGltID0gewogCS5yZWFkX3ZfcHJpbWVf cGFydCA9IGludGVsX2hkbWlfaGRjcF9yZWFkX3ZfcHJpbWVfcGFydCwKIAkudG9nZ2xlX3NpZ25h bGxpbmcgPSBpbnRlbF9oZG1pX2hkY3BfdG9nZ2xlX3NpZ25hbGxpbmcsCiAJLmNoZWNrX2xpbmsg PSBpbnRlbF9oZG1pX2hkY3BfY2hlY2tfbGluaywKKwkud3JpdGVfMl8yX21zZyA9IGludGVsX2hk bWlfaGRjcDJfd3JpdGVfbXNnLAorCS5yZWFkXzJfMl9tc2cgPSBpbnRlbF9oZG1pX2hkY3AyX3Jl YWRfbXNnLAorCS5jaGVja18yXzJfbGluawk9IGludGVsX2hkbWlfaGRjcDJfY2hlY2tfbGluaywK KwkuaGRjcF8yXzJfY2FwYWJsZSA9IGludGVsX2hkbWlfaGRjcDJfY2FwYWJsZSwKKwkuaGRjcF9w cm90b2NvbCA9IGludGVsX2hkbWlfaGRjcDJfcHJvdG9jb2wsCiB9OwogCiBzdGF0aWMgdm9pZCBp bnRlbF9oZG1pX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0tIAoyLjcu NAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==