From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v3 24/40] drm/i915: Implement HDCP2.2 repeater authentication Date: Tue, 3 Apr 2018 19:27:37 +0530 Message-ID: <1522763873-23041-25-git-send-email-ramalingam.c@intel.com> References: <1522763873-23041-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: <1522763873-23041-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: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, seanpaul@chromium.org, daniel@ffwll.ch, chris@chris-wilson.co.uk, jani.nikula@linux.intel.com, tomas.winkler@intel.com, alexander.usyskin@intel.com Cc: rodrigo.vivi@intel.com List-Id: dri-devel@lists.freedesktop.org SW1wbGVtZW50cyB0aGUgSERDUDIuMiByZXBlYXRlcnMgYXV0aGVudGljYXRpb24gc3RlcHMgc3Vj aCBhcyB2ZXJpZnlpbmcKdGhlIGRvd25zdHJlYW0gdG9wb2xvZ3kgYW5kIHNlbmRpbmcgc3RyZWFt IG1hbmFnZW1lbnQgaW5mb3JtYXRpb24uCgp2MjoKICBSZWJhc2VkLgp2MzoKICBObyBDaGFuZ2Vz LgoKU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYyB8IDEzNSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEzNSBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCmluZGV4IGVlOWI3NTE5ZmU3My4uZDcwMzIw ZGE4NWU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCkBAIC0xMTQ1LDYgKzExNDUsMTM1 IEBAIHN0YXRpYyBpbnQgaGRjcDJfc2Vzc2lvbl9rZXlfZXhjaGFuZ2Uoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yKQogCXJldHVybiAwOwogfQogCisvKgorICogTGliIGVuZGlhbm5l c3MgZnVuY3Rpb25zIGFyZSBhbGlnbmVkIGZvciAxNi8zMi82NCBiaXRzLiBTaW5jZSBoZXJlIHNl cXVlbmNlCisgKiBudW0gaXMgMjRiaXRzIGRldmVsb3BlZCBhIHNtYWxsIGNvbnZlcnNpb24gZnVu Y3Rpb24uCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCByZXZlcnNlX2VuZGlhbm5lc3ModTggKmRl c3QsIHNpemVfdCBkc3Rfc3osIHU4ICpzcmMpCit7CisJdTMyIGluZGV4OworCisJaWYgKGRlc3Qg IT0gTlVMTCAmJiBkc3Rfc3ogIT0gMCkgeworCQlmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBkc3Rf c3ogJiYgaW5kZXggPCBzaXplb2YodTMyKTsKKwkJICAgICBpbmRleCsrKSB7CisJCQlkZXN0W2Rz dF9zeiAtIGluZGV4IC0gMV0gPSBzcmNbaW5kZXhdOworCQl9CisJfQorfQorCitzdGF0aWMKK2lu dCBoZGNwMl9wcm9wYWdhdGVfc3RyZWFtX21hbmFnZW1lbnRfaW5mbyhzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQgPSBjb25uX3RvX2RpZ19wb3J0KGNvbm5lY3Rvcik7CisJc3RydWN0IGludGVsX2hk Y3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOworCXVuaW9uIHsKKwkJc3RydWN0IGhkY3AyX3Jl cF9zdHJlYW1fbWFuYWdlIHN0cmVhbV9tYW5hZ2U7CisJCXN0cnVjdCBoZGNwMl9yZXBfc3RyZWFt X3JlYWR5IHN0cmVhbV9yZWFkeTsKKwl9IG1zZ3M7CisJY29uc3Qgc3RydWN0IGludGVsX2hkY3Bf c2hpbSAqc2hpbSA9IGhkY3AtPmhkY3Bfc2hpbTsKKwlpbnQgcmV0OworCisJLyogUHJlcGFyZSBS ZXBlYXRlckF1dGhfU3RyZWFtX01hbmFnZSBtc2cgKi8KKwltc2dzLnN0cmVhbV9tYW5hZ2UubXNn X2lkID0gSERDUF8yXzJfUkVQX1NUUkVBTV9NQU5BR0U7CisJcmV2ZXJzZV9lbmRpYW5uZXNzKG1z Z3Muc3RyZWFtX21hbmFnZS5zZXFfbnVtX20sIEhEQ1BfMl8yX1NFUV9OVU1fTEVOLAorCQkJICAg KHU4ICopJmhkY3AtPnNlcV9udW1fbSk7CisKKwkvKiBLIG5vIG9mIHN0cmVhbXMgaXMgZml4ZWQg YXMgMS4gU3RvcmVkIGFzIGJpZy1lbmRpYW4uICovCisJbXNncy5zdHJlYW1fbWFuYWdlLmsgPSBf X3N3YWIxNigxKTsKKworCS8qIEZvciBIRE1JIHRoaXMgaXMgZm9yY2VkIHRvIGJlIDB4MC4gRm9y IERQIFNTVCBhbHNvIHRoaXMgaXMgMHgwLiAqLworCW1zZ3Muc3RyZWFtX21hbmFnZS5zdHJlYW1z WzBdLnN0cmVhbV9pZCA9IDA7CisJbXNncy5zdHJlYW1fbWFuYWdlLnN0cmVhbXNbMF0uc3RyZWFt X3R5cGUgPSBoZGNwLT5jb250ZW50X3R5cGU7CisKKwkvKiBTZW5kIGl0IHRvIFJlcGVhdGVyICov CisJcmV0ID0gc2hpbS0+d3JpdGVfMl8yX21zZyhpbnRlbF9kaWdfcG9ydCwgJm1zZ3Muc3RyZWFt X21hbmFnZSwKKwkJCQkgIHNpemVvZihtc2dzLnN0cmVhbV9tYW5hZ2UpKTsKKwlpZiAocmV0IDwg MCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IHNoaW0tPnJlYWRfMl8yX21zZyhpbnRlbF9kaWdf cG9ydCwgSERDUF8yXzJfUkVQX1NUUkVBTV9SRUFEWSwKKwkJCQkgJm1zZ3Muc3RyZWFtX3JlYWR5 LCBzaXplb2YobXNncy5zdHJlYW1fcmVhZHkpKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJl dDsKKworCWhkY3AtPm1laV9kYXRhLnNlcV9udW1fbSA9IGhkY3AtPnNlcV9udW1fbTsKKwloZGNw LT5tZWlfZGF0YS5zdHJlYW1zWzBdLnN0cmVhbV90eXBlID0gaGRjcC0+Y29udGVudF90eXBlOwor CisJcmV0ID0gaGRjcDJfdmVyaWZ5X21wcmltZShoZGNwLAkmbXNncy5zdHJlYW1fcmVhZHkpOwor CWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJaGRjcC0+c2VxX251bV9tKys7CisKKwlp ZiAoaGRjcC0+c2VxX251bV9tID4gSERDUF8yXzJfU0VRX05VTV9NQVgpIHsKKwkJRFJNX0RFQlVH X0tNUygic2VxX251bV9tIHJvbGwgb3Zlci5cbiIpOworCQlyZXR1cm4gLTE7CisJfQorCXJldHVy biAwOworfQorCitzdGF0aWMKK2ludCBoZGNwMl9hdXRoZW50aWNhdGVfcmVwZWF0ZXJfdG9wb2xv Z3koc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gY29ubl90b19kaWdfcG9ydChjb25uZWN0b3Ip OworCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKKwl1bmlvbiB7 CisJCXN0cnVjdCBoZGNwMl9yZXBfc2VuZF9yZWNlaXZlcmlkX2xpc3QgcmVjdmlkX2xpc3Q7CisJ CXN0cnVjdCBoZGNwMl9yZXBfc2VuZF9hY2sgcmVwX2FjazsKKwl9IG1zZ3M7CisJY29uc3Qgc3Ry dWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSA9IGhkY3AtPmhkY3Bfc2hpbTsKKwl1aW50OF90ICpy eF9pbmZvOworCXVpbnQzMl90IHNlcV9udW1fdjsKKwlpbnQgcmV0OworCisJcmV0ID0gc2hpbS0+ cmVhZF8yXzJfbXNnKGludGVsX2RpZ19wb3J0LCBIRENQXzJfMl9SRVBfU0VORF9SRUNWSURfTElT VCwKKwkJCQkgJm1zZ3MucmVjdmlkX2xpc3QsIHNpemVvZihtc2dzLnJlY3ZpZF9saXN0KSk7CisJ aWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlyeF9pbmZvID0gbXNncy5yZWN2aWRfbGlz dC5yeF9pbmZvOworCisJaWYgKEhEQ1BfMl8yX01BWF9DQVNDQURFX0VYQ0VFREVEKHJ4X2luZm9b MV0pIHx8CisJICAgIEhEQ1BfMl8yX01BWF9ERVZTX0VYQ0VFREVEKHJ4X2luZm9bMV0pKSB7CisJ CURSTV9ERUJVR19LTVMoIlRvcG9sb2d5IE1heCBTaXplIEV4Y2VlZGVkXG4iKTsKKwkJcmV0dXJu IC0xOworCX0KKworCS8qIENvbnZlcnRpbmcgYW5kIFN0b3JpbmcgdGhlIHNlcV9udW1fdiB0byBs b2NhbCB2YXJpYWJsZSBhcyBEV09SRCAqLworCXJldmVyc2VfZW5kaWFubmVzcygodTggKikmc2Vx X251bV92LCBIRENQXzJfMl9TRVFfTlVNX0xFTiwKKwkJCSAgIG1zZ3MucmVjdmlkX2xpc3Quc2Vx X251bV92KTsKKworCWlmIChzZXFfbnVtX3YgPCBoZGNwLT5zZXFfbnVtX3YpIHsKKwkJLyogUm9s bCBvdmVyIG9mIHRoZSBzZXFfbnVtX3YgZnJvbSByZXBlYXRlci4gUmVhdXRoZW50aWNhdGUuICov CisJCURSTV9ERUJVR19LTVMoIlNlcV9udW1fdiByb2xsIG92ZXIuXG4iKTsKKwkJcmV0dXJuIC0x OworCX0KKworCXJldCA9IGhkY3AyX3ZlcmlmeV9yZXBfdG9wb2xvZ3lfcHJlcGFyZV9hY2soaGRj cCwgJm1zZ3MucmVjdmlkX2xpc3QsCisJCQkJCQkgICAgJm1zZ3MucmVwX2Fjayk7CisJaWYgKHJl dCA8IDApCisJCXJldHVybiByZXQ7CisKKwloZGNwLT5zZXFfbnVtX3YgPSBzZXFfbnVtX3Y7CisJ cmV0ID0gc2hpbS0+d3JpdGVfMl8yX21zZyhpbnRlbF9kaWdfcG9ydCwgJm1zZ3MucmVwX2FjaywK KwkJCQkgIHNpemVvZihtc2dzLnJlcF9hY2spKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJl dDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9yZXBl YXRlcihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJaW50IHJldDsKKwor CXJldCA9IGhkY3AyX2F1dGhlbnRpY2F0ZV9yZXBlYXRlcl90b3BvbG9neShjb25uZWN0b3IpOwor CWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIGhkY3AyX3Byb3BhZ2F0ZV9z dHJlYW1fbWFuYWdlbWVudF9pbmZvKGNvbm5lY3Rvcik7Cit9CisKIHN0YXRpYyBpbnQgaGRjcDJf YXV0aGVudGljYXRlX3Npbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewog CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gY29ubl90b19kaWdf cG9ydChjb25uZWN0b3IpOwpAQCAtMTE4Niw2ICsxMzE1LDEyIEBAIHN0YXRpYyBpbnQgaGRjcDJf YXV0aGVudGljYXRlX3Npbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQkJ CQkgICAgICAgc2l6ZW9mKHN0cmVhbV90eXBlX21zZykpOwogCQlpZiAocmV0IDwgMCkKIAkJCXJl dHVybiByZXQ7CisJfSBlbHNlIGlmIChoZGNwLT5pc19yZXBlYXRlcikgeworCQlyZXQgPSBoZGNw Ml9hdXRoZW50aWNhdGVfcmVwZWF0ZXIoY29ubmVjdG9yKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJ CURSTV9ERUJVR19LTVMoIlJlcGVhdGVyIEF1dGggRmFpbGVkLiBFcnI6ICVkXG4iLCByZXQpOwor CQkJcmV0dXJuIHJldDsKKwkJfQogCX0KIAogCWhkY3AtPm1laV9kYXRhLnN0cmVhbXNbMF0uc3Ry ZWFtX3R5cGUgPSBoZGNwLT5jb250ZW50X3R5cGU7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==