From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH 29/43] drm/i915: Implement HDCP2.2 repeater authentication Date: Wed, 14 Feb 2018 19:43:44 +0530 Message-ID: <1518617638-21684-30-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 16BB989CCE for ; Wed, 14 Feb 2018 14:20:55 +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 SW1wbGVtZW50cyB0aGUgSERDUDIuMiByZXBlYXRlcnMgYXV0aGVudGljYXRpb24gc3RlcHMgc3Vj aCBhcyB2ZXJpZnlpbmcKdGhlIGRvd25zdHJlYW0gdG9wb2xvZ3kgYW5kIHNlbmRpbmcgc3RyZWFt IG1hbmFnZW1lbnQgaW5mb3JtYXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJh bWFsaW5nYW0uY0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRj cC5jIHwgMTMzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUg Y2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9oZGNwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKaW5k ZXggNjQyNzZmMTgwZTQ1Li4wY2Q2MzdkZDNmNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkY3AuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNw LmMKQEAgLTExNTMsNiArMTE1MywxMzMgQEAgc3RhdGljIGludCBoZGNwMl9zZXNzaW9uX2tleV9l eGNoYW5nZShzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCkKIAlyZXR1cm4gMDsKIH0KIAorLyoKKyAq IExpYiBlbmRpYW5uZXNzIGZ1bmN0aW9ucyBhcmUgYWxpZ25lZCBmb3IgMTYvMzIvNjQgYml0cy4g U2luY2UgaGVyZSBzZXF1ZW5jZQorICogbnVtIGlzIDI0Yml0cyBkZXZlbG9wZWQgYSBzbWFsbCBj b252ZXJzaW9uIGZ1bmN0aW9uLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgcmV2ZXJzZV9lbmRp YW5uZXNzKHU4ICpkZXN0LCBzaXplX3QgZHN0X3N6LCB1OCAqc3JjKQoreworCXUzMiBpbmRleDsK KworCWlmIChkZXN0ICE9IE5VTEwgJiYgZHN0X3N6ICE9IDApIHsKKwkJZm9yIChpbmRleCA9IDA7 IGluZGV4IDwgZHN0X3N6ICYmIGluZGV4IDwgc2l6ZW9mKHUzMik7CisJCSAgICAgaW5kZXgrKykg eworCQkJZGVzdFtkc3Rfc3ogLSBpbmRleCAtIDFdID0gc3JjW2luZGV4XTsKKwkJfQorCX0KK30K Kworc3RhdGljIGludCBoZGNwMl9wcm9wYWdhdGVfc3RyZWFtX21hbmFnZW1lbnRfaW5mbyhzdHJ1 Y3QgaW50ZWxfaGRjcCAqaGRjcCkKK3sKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRl bF9kaWdfcG9ydCA9CisJCQkJCWNvbm5fdG9fZGlnX3BvcnQoaGRjcC0+Y29ubmVjdG9yKTsKKwl1 bmlvbiB7CisJCXN0cnVjdCBoZGNwMl9yZXBfc3RyZWFtX21hbmFnZSBzdHJlYW1fbWFuYWdlOwor CQlzdHJ1Y3QgaGRjcDJfcmVwX3N0cmVhbV9yZWFkeSBzdHJlYW1fcmVhZHk7CisJfSBtc2dzOwor CWNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwMl9zaGltICpzaGltID0gaGRjcC0+aGRjcDJfc2hpbTsK KwlpbnQgcmV0OworCisJLyogUHJlcGFyZSBSZXBlYXRlckF1dGhfU3RyZWFtX01hbmFnZSBtc2cg Ki8KKwltc2dzLnN0cmVhbV9tYW5hZ2UubXNnX2lkID0gUkVQX1NUUkVBTV9NQU5BR0U7CisJcmV2 ZXJzZV9lbmRpYW5uZXNzKG1zZ3Muc3RyZWFtX21hbmFnZS5zZXFfbnVtX20sIEhEQ1BfU0VRX05V TV9MRU4sCisJCQkgICAodTggKikmaGRjcC0+c2VxX251bV9tKTsKKworCS8qIEsgbm8gb2Ygc3Ry ZWFtcyBpcyBmaXhlZCBhcyAxLiBTdG9yZWQgYXMgYmlnLWVuZGlhbi4gKi8KKwltc2dzLnN0cmVh bV9tYW5hZ2UuayA9IF9fc3dhYjE2KDEpOworCisJLyogRm9yIEhETUkgdGhpcyBpcyBmb3JjZWQg dG8gYmUgMHgwLiBGb3IgRFAgU1NUIGFsc28gdGhpcyBpcyAweDAuICovCisJbXNncy5zdHJlYW1f bWFuYWdlLnN0cmVhbXNbMF0uc3RyZWFtX2lkID0gMDsKKwltc2dzLnN0cmVhbV9tYW5hZ2Uuc3Ry ZWFtc1swXS5zdHJlYW1fdHlwZSA9IGhkY3AtPmNvbnRlbnRfdHlwZTsKKworCS8qIFNlbmQgaXQg dG8gUmVwZWF0ZXIgKi8KKwlyZXQgPSBzaGltLT53cml0ZV9tc2coaW50ZWxfZGlnX3BvcnQsICZt c2dzLnN0cmVhbV9tYW5hZ2UsCisJCQkgICAgICBzaXplb2YobXNncy5zdHJlYW1fbWFuYWdlKSk7 CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBzaGltLT5yZWFkX21zZyhp bnRlbF9kaWdfcG9ydCwgUkVQX1NUUkVBTV9SRUFEWSwKKwkJCSAgICAgJm1zZ3Muc3RyZWFtX3Jl YWR5LCBzaXplb2YobXNncy5zdHJlYW1fcmVhZHkpKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJu IHJldDsKKworCWhkY3AtPm1laV9oZGNwX2RhdGEtPnNlcV9udW1fbSA9IGhkY3AtPnNlcV9udW1f bTsKKwloZGNwLT5tZWlfaGRjcF9kYXRhLT5zdHJlYW1zWzBdLnN0cmVhbV90eXBlID0gaGRjcC0+ Y29udGVudF90eXBlOworCisJcmV0ID0gaGRjcDJfdmVyaWZ5X21wcmltZShoZGNwLAkmbXNncy5z dHJlYW1fcmVhZHkpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJaGRjcC0+c2Vx X251bV9tKys7CisKKwlpZiAoaGRjcC0+c2VxX251bV9tID4gSERDUF8yXzJfU0VRX05VTV9NQVgp IHsKKwkJRFJNX0RFQlVHX0tNUygic2VxX251bV9tIHJvbGwgb3Zlci5cbiIpOworCQlyZXR1cm4g LTE7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9y ZXBlYXRlcl90b3BvbG9neShzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCkKK3sKKwlzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9CisJCQkJCWNvbm5fdG9fZGlnX3BvcnQo aGRjcC0+Y29ubmVjdG9yKTsKKwl1bmlvbiB7CisJCXN0cnVjdCBoZGNwMl9yZXBfc2VuZF9yZWNl aXZlcmlkX2xpc3QgcmVjdmlkX2xpc3Q7CisJCXN0cnVjdCBoZGNwMl9yZXBfc2VuZF9hY2sgcmVw X2FjazsKKwl9IG1zZ3M7CisJY29uc3Qgc3RydWN0IGludGVsX2hkY3AyX3NoaW0gKnNoaW0gPSBo ZGNwLT5oZGNwMl9zaGltOworCXVuaW9uIGhkY3AyX3J4X2luZm8gKnJ4X2luZm87CisJdWludDMy X3Qgc2VxX251bV92OworCWludCByZXQ7CisKKwlyZXQgPSBzaGltLT5yZWFkX21zZyhpbnRlbF9k aWdfcG9ydCwgUkVQX1NFTkRfUkVDVklEX0xJU1QsCisJCQkgICAgICZtc2dzLnJlY3ZpZF9saXN0 LCBzaXplb2YobXNncy5yZWN2aWRfbGlzdCkpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0 OworCisJcnhfaW5mbyA9ICZtc2dzLnJlY3ZpZF9saXN0LnJ4X2luZm87CisKKwlpZiAocnhfaW5m by0+ZmllbGRzLm1heF9jYXNjYWRlX2V4Y2VlZGVkIHx8CisJICAgIHJ4X2luZm8tPmZpZWxkcy5t YXhfZGV2c19leGNlZWRlZCkgeworCQlEUk1fREVCVUdfS01TKCJUb3BvbG9neSBNYXggU2l6ZSBF eGNlZWRlZFxuIik7CisJCXJldHVybiAtMTsKKwl9CisKKwkvKiBDb252ZXJ0aW5nIGFuZCBTdG9y aW5nIHRoZSBzZXFfbnVtX3YgdG8gbG9jYWwgdmFyaWFibGUgYXMgRFdPUkQgKi8KKwlyZXZlcnNl X2VuZGlhbm5lc3MoKHU4ICopJnNlcV9udW1fdiwgSERDUF9TRVFfTlVNX0xFTiwKKwkJCSAgIG1z Z3MucmVjdmlkX2xpc3Quc2VxX251bV92KTsKKworCWlmIChzZXFfbnVtX3YgPCBoZGNwLT5zZXFf bnVtX3YpIHsKKwkJLyogUm9sbCBvdmVyIG9mIHRoZSBzZXFfbnVtX3YgZnJvbSByZXBlYXRlci4g UmVhdXRoZW50aWNhdGUuICovCisJCURSTV9ERUJVR19LTVMoIlNlcV9udW1fdiByb2xsIG92ZXIu XG4iKTsKKwkJcmV0dXJuIC0xOworCX0KKworCXJldCA9IGhkY3AyX3ZlcmlmeV9yZXBfdG9wb2xv Z3lfcHJlcGFyZV9hY2soaGRjcCwgJm1zZ3MucmVjdmlkX2xpc3QsCisJCQkJCQkgICAgJm1zZ3Mu cmVwX2Fjayk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwloZGNwLT5zZXFfbnVt X3YgPSBzZXFfbnVtX3Y7CisJcmV0ID0gc2hpbS0+d3JpdGVfbXNnKGludGVsX2RpZ19wb3J0LCAm bXNncy5yZXBfYWNrLAorCQkJICAgICAgc2l6ZW9mKG1zZ3MucmVwX2FjaykpOworCWlmIChyZXQg PCAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaGRjcDJf YXV0aGVudGljYXRlX3JlcGVhdGVyKHN0cnVjdCBpbnRlbF9oZGNwICpoZGNwKQoreworCWludCBy ZXQ7CisKKwlyZXQgPSBoZGNwMl9hdXRoZW50aWNhdGVfcmVwZWF0ZXJfdG9wb2xvZ3koaGRjcCk7 CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gaGRjcDJfcHJvcGFnYXRl X3N0cmVhbV9tYW5hZ2VtZW50X2luZm8oaGRjcCk7Cit9CisKIHN0YXRpYyBpbnQgaGRjcDJfYXV0 aGVudGljYXRlX3Npbmsoc3RydWN0IGludGVsX2hkY3AgKmhkY3ApCiB7CiAJc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQpAQCAtMTE5NCw2ICsxMzIxLDEyIEBAIHN0 YXRpYyBpbnQgaGRjcDJfYXV0aGVudGljYXRlX3Npbmsoc3RydWN0IGludGVsX2hkY3AgKmhkY3Ap CiAJCQkJCSAgICAgICBzaXplb2Yoc3RyZWFtX3R5cGVfbXNnKSk7CiAJCWlmIChyZXQgPCAwKQog CQkJcmV0dXJuIHJldDsKKwl9IGVsc2UgaWYgKGhkY3AtPmlzX3JlcGVhdGVyKSB7CisJCXJldCA9 IGhkY3AyX2F1dGhlbnRpY2F0ZV9yZXBlYXRlcihoZGNwKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJ CURSTV9ERUJVR19LTVMoIlJlcGVhdGVyIEF1dGggRmFpbGVkLiBFcnI6ICVkXG4iLCByZXQpOwor CQkJcmV0dXJuIHJldDsKKwkJfQogCX0KIAogCWhkY3AtPm1laV9oZGNwX2RhdGEtPnN0cmVhbXNb MF0uc3RyZWFtX3R5cGUgPSBoZGNwLT5jb250ZW50X3R5cGU7Ci0tIAoyLjcuNAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==