From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v2 26/42] drm/i915: Implement HDCP2.2 repeater authentication Date: Thu, 8 Mar 2018 17:28:53 +0530 Message-ID: <1520510349-8385-27-git-send-email-ramalingam.c@intel.com> References: <1520510349-8385-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: <1520510349-8385-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, seanpaul@chromium.org, chris@chris-wilson.co.uk, tomas.winkler@intel.com, jani.nikula@linux.intel.com Cc: uma.shankar@intel.com, rodrigo.vivi@intel.com List-Id: dri-devel@lists.freedesktop.org SW1wbGVtZW50cyB0aGUgSERDUDIuMiByZXBlYXRlcnMgYXV0aGVudGljYXRpb24gc3RlcHMgc3Vj aCBhcyB2ZXJpZnlpbmcKdGhlIGRvd25zdHJlYW0gdG9wb2xvZ3kgYW5kIHNlbmRpbmcgc3RyZWFt IG1hbmFnZW1lbnQgaW5mb3JtYXRpb24uCgp2MjoKICBSZWJhc2VkLgoKU2lnbmVkLW9mZi1ieTog UmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkY3AuYyB8IDEzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEzNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfaGRjcC5jCmluZGV4IDZmYjlmZDRkNmUxYy4uNTMzMTRmOGU0OTFhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaGRjcC5jCkBAIC0xMTQ1LDYgKzExNDUsMTM1IEBAIHN0YXRpYyBpbnQgaGRj cDJfc2Vzc2lvbl9rZXlfZXhjaGFuZ2Uoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQogCXJldHVybiAwOwogfQogCisvKgorICogTGliIGVuZGlhbm5lc3MgZnVuY3Rpb25zIGFyZSBh bGlnbmVkIGZvciAxNi8zMi82NCBiaXRzLiBTaW5jZSBoZXJlIHNlcXVlbmNlCisgKiBudW0gaXMg MjRiaXRzIGRldmVsb3BlZCBhIHNtYWxsIGNvbnZlcnNpb24gZnVuY3Rpb24uCisgKi8KK3N0YXRp YyBpbmxpbmUgdm9pZCByZXZlcnNlX2VuZGlhbm5lc3ModTggKmRlc3QsIHNpemVfdCBkc3Rfc3os IHU4ICpzcmMpCit7CisJdTMyIGluZGV4OworCisJaWYgKGRlc3QgIT0gTlVMTCAmJiBkc3Rfc3og IT0gMCkgeworCQlmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBkc3Rfc3ogJiYgaW5kZXggPCBzaXpl b2YodTMyKTsKKwkJICAgICBpbmRleCsrKSB7CisJCQlkZXN0W2RzdF9zeiAtIGluZGV4IC0gMV0g PSBzcmNbaW5kZXhdOworCQl9CisJfQorfQorCitzdGF0aWMKK2ludCBoZGNwMl9wcm9wYWdhdGVf c3RyZWFtX21hbmFnZW1lbnRfaW5mbyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip Cit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBjb25uX3Rv X2RpZ19wb3J0KGNvbm5lY3Rvcik7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVj dG9yLT5oZGNwOworCXVuaW9uIHsKKwkJc3RydWN0IGhkY3AyX3JlcF9zdHJlYW1fbWFuYWdlIHN0 cmVhbV9tYW5hZ2U7CisJCXN0cnVjdCBoZGNwMl9yZXBfc3RyZWFtX3JlYWR5IHN0cmVhbV9yZWFk eTsKKwl9IG1zZ3M7CisJY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSA9IGhkY3At PmhkY3Bfc2hpbTsKKwlpbnQgcmV0OworCisJLyogUHJlcGFyZSBSZXBlYXRlckF1dGhfU3RyZWFt X01hbmFnZSBtc2cgKi8KKwltc2dzLnN0cmVhbV9tYW5hZ2UubXNnX2lkID0gSERDUF8yXzJfUkVQ X1NUUkVBTV9NQU5BR0U7CisJcmV2ZXJzZV9lbmRpYW5uZXNzKG1zZ3Muc3RyZWFtX21hbmFnZS5z ZXFfbnVtX20sIEhEQ1BfMl8yX1NFUV9OVU1fTEVOLAorCQkJICAgKHU4ICopJmhkY3AtPnNlcV9u dW1fbSk7CisKKwkvKiBLIG5vIG9mIHN0cmVhbXMgaXMgZml4ZWQgYXMgMS4gU3RvcmVkIGFzIGJp Zy1lbmRpYW4uICovCisJbXNncy5zdHJlYW1fbWFuYWdlLmsgPSBfX3N3YWIxNigxKTsKKworCS8q IEZvciBIRE1JIHRoaXMgaXMgZm9yY2VkIHRvIGJlIDB4MC4gRm9yIERQIFNTVCBhbHNvIHRoaXMg aXMgMHgwLiAqLworCW1zZ3Muc3RyZWFtX21hbmFnZS5zdHJlYW1zWzBdLnN0cmVhbV9pZCA9IDA7 CisJbXNncy5zdHJlYW1fbWFuYWdlLnN0cmVhbXNbMF0uc3RyZWFtX3R5cGUgPSBoZGNwLT5jb250 ZW50X3R5cGU7CisKKwkvKiBTZW5kIGl0IHRvIFJlcGVhdGVyICovCisJcmV0ID0gc2hpbS0+d3Jp dGVfMl8yX21zZyhpbnRlbF9kaWdfcG9ydCwgJm1zZ3Muc3RyZWFtX21hbmFnZSwKKwkJCQkgIHNp emVvZihtc2dzLnN0cmVhbV9tYW5hZ2UpKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsK KworCXJldCA9IHNoaW0tPnJlYWRfMl8yX21zZyhpbnRlbF9kaWdfcG9ydCwgSERDUF8yXzJfUkVQ X1NUUkVBTV9SRUFEWSwKKwkJCQkgJm1zZ3Muc3RyZWFtX3JlYWR5LCBzaXplb2YobXNncy5zdHJl YW1fcmVhZHkpKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCWhkY3AtPm1laV9k YXRhLnNlcV9udW1fbSA9IGhkY3AtPnNlcV9udW1fbTsKKwloZGNwLT5tZWlfZGF0YS5zdHJlYW1z WzBdLnN0cmVhbV90eXBlID0gaGRjcC0+Y29udGVudF90eXBlOworCisJcmV0ID0gaGRjcDJfdmVy aWZ5X21wcmltZShoZGNwLAkmbXNncy5zdHJlYW1fcmVhZHkpOworCWlmIChyZXQgPCAwKQorCQly ZXR1cm4gcmV0OworCisJaGRjcC0+c2VxX251bV9tKys7CisKKwlpZiAoaGRjcC0+c2VxX251bV9t ID4gSERDUF8yXzJfU0VRX05VTV9NQVgpIHsKKwkJRFJNX0RFQlVHX0tNUygic2VxX251bV9tIHJv bGwgb3Zlci5cbiIpOworCQlyZXR1cm4gLTE7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMK K2ludCBoZGNwMl9hdXRoZW50aWNhdGVfcmVwZWF0ZXJfdG9wb2xvZ3koc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVs X2RpZ19wb3J0ID0gY29ubl90b19kaWdfcG9ydChjb25uZWN0b3IpOworCXN0cnVjdCBpbnRlbF9o ZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKKwl1bmlvbiB7CisJCXN0cnVjdCBoZGNwMl9y ZXBfc2VuZF9yZWNlaXZlcmlkX2xpc3QgcmVjdmlkX2xpc3Q7CisJCXN0cnVjdCBoZGNwMl9yZXBf c2VuZF9hY2sgcmVwX2FjazsKKwl9IG1zZ3M7CisJY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hp bSAqc2hpbSA9IGhkY3AtPmhkY3Bfc2hpbTsKKwl1aW50OF90ICpyeF9pbmZvOworCXVpbnQzMl90 IHNlcV9udW1fdjsKKwlpbnQgcmV0OworCisJcmV0ID0gc2hpbS0+cmVhZF8yXzJfbXNnKGludGVs X2RpZ19wb3J0LCBIRENQXzJfMl9SRVBfU0VORF9SRUNWSURfTElTVCwKKwkJCQkgJm1zZ3MucmVj dmlkX2xpc3QsIHNpemVvZihtc2dzLnJlY3ZpZF9saXN0KSk7CisJaWYgKHJldCA8IDApCisJCXJl dHVybiByZXQ7CisKKwlyeF9pbmZvID0gbXNncy5yZWN2aWRfbGlzdC5yeF9pbmZvOworCisJaWYg KEhEQ1BfMl8yX01BWF9DQVNDQURFX0VYQ0VFREVEKHJ4X2luZm9bMV0pIHx8CisJICAgIEhEQ1Bf Ml8yX01BWF9ERVZTX0VYQ0VFREVEKHJ4X2luZm9bMV0pKSB7CisJCURSTV9ERUJVR19LTVMoIlRv cG9sb2d5IE1heCBTaXplIEV4Y2VlZGVkXG4iKTsKKwkJcmV0dXJuIC0xOworCX0KKworCS8qIENv bnZlcnRpbmcgYW5kIFN0b3JpbmcgdGhlIHNlcV9udW1fdiB0byBsb2NhbCB2YXJpYWJsZSBhcyBE V09SRCAqLworCXJldmVyc2VfZW5kaWFubmVzcygodTggKikmc2VxX251bV92LCBIRENQXzJfMl9T RVFfTlVNX0xFTiwKKwkJCSAgIG1zZ3MucmVjdmlkX2xpc3Quc2VxX251bV92KTsKKworCWlmIChz ZXFfbnVtX3YgPCBoZGNwLT5zZXFfbnVtX3YpIHsKKwkJLyogUm9sbCBvdmVyIG9mIHRoZSBzZXFf bnVtX3YgZnJvbSByZXBlYXRlci4gUmVhdXRoZW50aWNhdGUuICovCisJCURSTV9ERUJVR19LTVMo IlNlcV9udW1fdiByb2xsIG92ZXIuXG4iKTsKKwkJcmV0dXJuIC0xOworCX0KKworCXJldCA9IGhk Y3AyX3ZlcmlmeV9yZXBfdG9wb2xvZ3lfcHJlcGFyZV9hY2soaGRjcCwgJm1zZ3MucmVjdmlkX2xp c3QsCisJCQkJCQkgICAgJm1zZ3MucmVwX2Fjayk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiBy ZXQ7CisKKwloZGNwLT5zZXFfbnVtX3YgPSBzZXFfbnVtX3Y7CisJcmV0ID0gc2hpbS0+d3JpdGVf Ml8yX21zZyhpbnRlbF9kaWdfcG9ydCwgJm1zZ3MucmVwX2FjaywKKwkJCQkgIHNpemVvZihtc2dz LnJlcF9hY2spKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiAwOwor fQorCitzdGF0aWMgaW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9yZXBlYXRlcihzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJaW50IHJldDsKKworCXJldCA9IGhkY3AyX2F1dGhl bnRpY2F0ZV9yZXBlYXRlcl90b3BvbG9neShjb25uZWN0b3IpOworCWlmIChyZXQgPCAwKQorCQly ZXR1cm4gcmV0OworCisJcmV0dXJuIGhkY3AyX3Byb3BhZ2F0ZV9zdHJlYW1fbWFuYWdlbWVudF9p bmZvKGNvbm5lY3Rvcik7Cit9CisKIHN0YXRpYyBpbnQgaGRjcDJfYXV0aGVudGljYXRlX3Npbmso c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gY29ubl90b19kaWdfcG9ydChjb25uZWN0b3IpOwpA QCAtMTE4Niw2ICsxMzE1LDEyIEBAIHN0YXRpYyBpbnQgaGRjcDJfYXV0aGVudGljYXRlX3Npbmso c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQkJCQkgICAgICAgc2l6ZW9mKHN0 cmVhbV90eXBlX21zZykpOwogCQlpZiAocmV0IDwgMCkKIAkJCXJldHVybiByZXQ7CisJfSBlbHNl IGlmIChoZGNwLT5pc19yZXBlYXRlcikgeworCQlyZXQgPSBoZGNwMl9hdXRoZW50aWNhdGVfcmVw ZWF0ZXIoY29ubmVjdG9yKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCURSTV9ERUJVR19LTVMoIlJl cGVhdGVyIEF1dGggRmFpbGVkLiBFcnI6ICVkXG4iLCByZXQpOworCQkJcmV0dXJuIHJldDsKKwkJ fQogCX0KIAogCWhkY3AtPm1laV9kYXRhLnN0cmVhbXNbMF0uc3RyZWFtX3R5cGUgPSBoZGNwLT5j b250ZW50X3R5cGU7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==