From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v5 16/40] drm/i915: Implement HDCP2.2 repeater authentication Date: Wed, 27 Jun 2018 14:10:05 +0530 Message-ID: <1530088829-11730-17-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: dri-devel@lists.freedesktop.org SW1wbGVtZW50cyB0aGUgSERDUDIuMiByZXBlYXRlcnMgYXV0aGVudGljYXRpb24gc3RlcHMgc3Vj aCBhcyB2ZXJpZnlpbmcKdGhlIGRvd25zdHJlYW0gdG9wb2xvZ3kgYW5kIHNlbmRpbmcgc3RyZWFt IG1hbmFnZW1lbnQgaW5mb3JtYXRpb24uCgp2MjoKICBSZWJhc2VkLgp2MzoKICBObyBDaGFuZ2Vz Lgp2NDoKICAtRUlOVkFMIGlzIHJldHVybmVkIGZvciB0b3BvbG9neSBlcnJvciBhbmQgcm9sbG92 ZXIgc2NlbmFyaW8uCiAgRW5kaWFubmVzcyBjb252ZXJzaW9uIGZ1bmMgZnJvbSBkcm1faGRjcC5o IGlzIHVzZWQgW1VtYV0KdjU6CiAgUmViYXNlZCBhcyBwYXJ0IG9mIHBhdGNoZXMgcmVvcmRlcmlu Zy4KICBEZWZpbmVkIHRoZSBtZWkgc2VydmljZSBmdW5jdGlvbnMgW0RhbmllbF0KClNpZ25lZC1v ZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMgfCAxNzggKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIGluY2x1ZGUvZHJtL2RybV9oZGNwLmggICAgICAgICAgICB8ICAxNSAr KysrCiAyIGZpbGVzIGNoYW5nZWQsIDE5MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaGRjcC5jCmluZGV4IGJiNmU3MjgwNzA2MC4uY2YxYzVmMjBiNjJlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaGRjcC5jCkBAIC0xMTg4LDYgKzExODgsNjMgQEAgc3RhdGljIGludCBoZGNwMl9w cmVwYXJlX3NrZXkoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCXJldHVybiBy ZXQ7CiB9CiAKK3N0YXRpYyBpbnQKK2hkY3AyX3ZlcmlmeV9yZXBfdG9wb2xvZ3lfcHJlcGFyZV9h Y2soCisJCQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQlzdHJ1Y3QgaGRj cDJfcmVwX3NlbmRfcmVjZWl2ZXJpZF9saXN0ICpyZXBfdG9wb2xvZ3ksCisJCQlzdHJ1Y3QgaGRj cDJfcmVwX3NlbmRfYWNrICpyZXBfc2VuZF9hY2spCit7CisJc3RydWN0IG1laV9oZGNwX2RhdGEg KmRhdGEgPSAmY29ubmVjdG9yLT5oZGNwLm1laV9kYXRhOworCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CisJc3RydWN0IGk5 MTVfaGRjcF9jb21wb25lbnQgKmNvbXAgPSBkZXZfcHJpdi0+aGRjcF9jb21wOworCWludCByZXQ7 CisKKwlpZiAoIWNvbXApCisJCXJldHVybiAtRUlOVkFMOworCisJbXV0ZXhfbG9jaygmY29tcC0+ bXV0ZXgpOworCWlmICghY29tcC0+b3BzIHx8ICFjb21wLT5tZWlfY2xkZXYgfHwgZGF0YS0+cG9y dCA9PSBJTlZBTElEX1BPUlQpIHsKKwkJbXV0ZXhfdW5sb2NrKCZjb21wLT5tdXRleCk7CisJCXJl dHVybiAtRUlOVkFMOworCX0KKworCXJldCA9IGNvbXAtPm9wcy0+cmVwZWF0ZXJfY2hlY2tfZmxv d19wcmVwYXJlX2Fjayhjb21wLT5tZWlfY2xkZXYsIGRhdGEsCisJCQkJCQkgIHJlcF90b3BvbG9n eSwgcmVwX3NlbmRfYWNrKTsKKwlpZiAocmV0IDwgMCkKKwkJY29tcC0+b3BzLT5jbG9zZV9oZGNw X3Nlc3Npb24oY29tcC0+bWVpX2NsZGV2LCBkYXRhKTsKKworCW11dGV4X3VubG9jaygmY29tcC0+ bXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludAoraGRjcDJfdmVyaWZ5X21w cmltZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCisJCSAgICBzdHJ1Y3QgaGRj cDJfcmVwX3N0cmVhbV9yZWFkeSAqc3RyZWFtX3JlYWR5KQoreworCXN0cnVjdCBtZWlfaGRjcF9k YXRhICpkYXRhID0gJmNvbm5lY3Rvci0+aGRjcC5tZWlfZGF0YTsKKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOworCXN0cnVj dCBpOTE1X2hkY3BfY29tcG9uZW50ICpjb21wID0gZGV2X3ByaXYtPmhkY3BfY29tcDsKKwlpbnQg cmV0OworCisJaWYgKCFjb21wKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW11dGV4X2xvY2soJmNv bXAtPm11dGV4KTsKKwlpZiAoIWNvbXAtPm9wcyB8fCAhY29tcC0+bWVpX2NsZGV2IHx8IGRhdGEt PnBvcnQgPT0gSU5WQUxJRF9QT1JUKSB7CisJCW11dGV4X3VubG9jaygmY29tcC0+bXV0ZXgpOwor CQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXQgPSBjb21wLT5vcHMtPnZlcmlmeV9tcHJpbWUo Y29tcC0+bWVpX2NsZGV2LCBkYXRhLCBzdHJlYW1fcmVhZHkpOworCWlmIChyZXQgPCAwKQorCQlj b21wLT5vcHMtPmNsb3NlX2hkY3Bfc2Vzc2lvbihjb21wLT5tZWlfY2xkZXYsIGRhdGEpOworCisJ bXV0ZXhfdW5sb2NrKCZjb21wLT5tdXRleCk7CisKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMg aW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9wb3J0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3RvcikKIHsKIAlzdHJ1Y3QgbWVpX2hkY3BfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3ItPmhkY3Au bWVpX2RhdGE7CkBAIC0xMzczLDYgKzE0MzAsMTIxIEBAIHN0YXRpYyBpbnQgaGRjcDJfc2Vzc2lv bl9rZXlfZXhjaGFuZ2Uoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCXJldHVy biAwOwogfQogCitzdGF0aWMKK2ludCBoZGNwMl9wcm9wYWdhdGVfc3RyZWFtX21hbmFnZW1lbnRf aW5mbyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBjb25uX3RvX2RpZ19wb3J0KGNvbm5lY3Rv cik7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOworCXVuaW9u IHsKKwkJc3RydWN0IGhkY3AyX3JlcF9zdHJlYW1fbWFuYWdlIHN0cmVhbV9tYW5hZ2U7CisJCXN0 cnVjdCBoZGNwMl9yZXBfc3RyZWFtX3JlYWR5IHN0cmVhbV9yZWFkeTsKKwl9IG1zZ3M7CisJY29u c3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSA9IGhkY3AtPmhkY3Bfc2hpbTsKKwlpbnQg cmV0OworCisJLyogUHJlcGFyZSBSZXBlYXRlckF1dGhfU3RyZWFtX01hbmFnZSBtc2cgKi8KKwlt c2dzLnN0cmVhbV9tYW5hZ2UubXNnX2lkID0gSERDUF8yXzJfUkVQX1NUUkVBTV9NQU5BR0U7CisJ cmV2ZXJzZV9lbmRpYW5uZXNzKG1zZ3Muc3RyZWFtX21hbmFnZS5zZXFfbnVtX20sIEhEQ1BfMl8y X1NFUV9OVU1fTEVOLAorCQkJICAgKHU4ICopJmhkY3AtPnNlcV9udW1fbSk7CisKKwkvKiBLIG5v IG9mIHN0cmVhbXMgaXMgZml4ZWQgYXMgMS4gU3RvcmVkIGFzIGJpZy1lbmRpYW4uICovCisJbXNn cy5zdHJlYW1fbWFuYWdlLmsgPSBfX3N3YWIxNigxKTsKKworCS8qIEZvciBIRE1JIHRoaXMgaXMg Zm9yY2VkIHRvIGJlIDB4MC4gRm9yIERQIFNTVCBhbHNvIHRoaXMgaXMgMHgwLiAqLworCW1zZ3Mu c3RyZWFtX21hbmFnZS5zdHJlYW1zWzBdLnN0cmVhbV9pZCA9IDA7CisJbXNncy5zdHJlYW1fbWFu YWdlLnN0cmVhbXNbMF0uc3RyZWFtX3R5cGUgPSBoZGNwLT5jb250ZW50X3R5cGU7CisKKwkvKiBT ZW5kIGl0IHRvIFJlcGVhdGVyICovCisJcmV0ID0gc2hpbS0+d3JpdGVfMl8yX21zZyhpbnRlbF9k aWdfcG9ydCwgJm1zZ3Muc3RyZWFtX21hbmFnZSwKKwkJCQkgIHNpemVvZihtc2dzLnN0cmVhbV9t YW5hZ2UpKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IHNoaW0tPnJl YWRfMl8yX21zZyhpbnRlbF9kaWdfcG9ydCwgSERDUF8yXzJfUkVQX1NUUkVBTV9SRUFEWSwKKwkJ CQkgJm1zZ3Muc3RyZWFtX3JlYWR5LCBzaXplb2YobXNncy5zdHJlYW1fcmVhZHkpKTsKKwlpZiAo cmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCWhkY3AtPm1laV9kYXRhLnNlcV9udW1fbSA9IGhk Y3AtPnNlcV9udW1fbTsKKwloZGNwLT5tZWlfZGF0YS5zdHJlYW1zWzBdLnN0cmVhbV90eXBlID0g aGRjcC0+Y29udGVudF90eXBlOworCisJcmV0ID0gaGRjcDJfdmVyaWZ5X21wcmltZShjb25uZWN0 b3IsICZtc2dzLnN0cmVhbV9yZWFkeSk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisK KwloZGNwLT5zZXFfbnVtX20rKzsKKworCWlmIChoZGNwLT5zZXFfbnVtX20gPiBIRENQXzJfMl9T RVFfTlVNX01BWCkgeworCQlEUk1fREVCVUdfS01TKCJzZXFfbnVtX20gcm9sbCBvdmVyLlxuIik7 CisJCXJldHVybiAtMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljCitpbnQgaGRjcDJf YXV0aGVudGljYXRlX3JlcGVhdGVyX3RvcG9sb2d5KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9 IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9 ICZjb25uZWN0b3ItPmhkY3A7CisJdW5pb24geworCQlzdHJ1Y3QgaGRjcDJfcmVwX3NlbmRfcmVj ZWl2ZXJpZF9saXN0IHJlY3ZpZF9saXN0OworCQlzdHJ1Y3QgaGRjcDJfcmVwX3NlbmRfYWNrIHJl cF9hY2s7CisJfSBtc2dzOworCWNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gKnNoaW0gPSBo ZGNwLT5oZGNwX3NoaW07CisJdWludDhfdCAqcnhfaW5mbzsKKwl1aW50MzJfdCBzZXFfbnVtX3Y7 CisJaW50IHJldDsKKworCXJldCA9IHNoaW0tPnJlYWRfMl8yX21zZyhpbnRlbF9kaWdfcG9ydCwg SERDUF8yXzJfUkVQX1NFTkRfUkVDVklEX0xJU1QsCisJCQkJICZtc2dzLnJlY3ZpZF9saXN0LCBz aXplb2YobXNncy5yZWN2aWRfbGlzdCkpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0Owor CisJcnhfaW5mbyA9IG1zZ3MucmVjdmlkX2xpc3QucnhfaW5mbzsKKworCWlmIChIRENQXzJfMl9N QVhfQ0FTQ0FERV9FWENFRURFRChyeF9pbmZvWzFdKSB8fAorCSAgICBIRENQXzJfMl9NQVhfREVW U19FWENFRURFRChyeF9pbmZvWzFdKSkgeworCQlEUk1fREVCVUdfS01TKCJUb3BvbG9neSBNYXgg U2l6ZSBFeGNlZWRlZFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIENvbnZlcnRp bmcgYW5kIFN0b3JpbmcgdGhlIHNlcV9udW1fdiB0byBsb2NhbCB2YXJpYWJsZSBhcyBEV09SRCAq LworCXJldmVyc2VfZW5kaWFubmVzcygodTggKikmc2VxX251bV92LCBIRENQXzJfMl9TRVFfTlVN X0xFTiwKKwkJCSAgIG1zZ3MucmVjdmlkX2xpc3Quc2VxX251bV92KTsKKworCWlmIChzZXFfbnVt X3YgPCBoZGNwLT5zZXFfbnVtX3YpIHsKKwkJLyogUm9sbCBvdmVyIG9mIHRoZSBzZXFfbnVtX3Yg ZnJvbSByZXBlYXRlci4gUmVhdXRoZW50aWNhdGUuICovCisJCURSTV9ERUJVR19LTVMoIlNlcV9u dW1fdiByb2xsIG92ZXIuXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0ID0gaGRj cDJfdmVyaWZ5X3JlcF90b3BvbG9neV9wcmVwYXJlX2Fjayhjb25uZWN0b3IsCisJCQkJCQkgICAg Jm1zZ3MucmVjdmlkX2xpc3QsCisJCQkJCQkgICAgJm1zZ3MucmVwX2Fjayk7CisJaWYgKHJldCA8 IDApCisJCXJldHVybiByZXQ7CisKKwloZGNwLT5zZXFfbnVtX3YgPSBzZXFfbnVtX3Y7CisJcmV0 ID0gc2hpbS0+d3JpdGVfMl8yX21zZyhpbnRlbF9kaWdfcG9ydCwgJm1zZ3MucmVwX2FjaywKKwkJ CQkgIHNpemVvZihtc2dzLnJlcF9hY2spKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsK KworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9yZXBlYXRl cihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJaW50IHJldDsKKworCXJl dCA9IGhkY3AyX2F1dGhlbnRpY2F0ZV9yZXBlYXRlcl90b3BvbG9neShjb25uZWN0b3IpOworCWlm IChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIGhkY3AyX3Byb3BhZ2F0ZV9zdHJl YW1fbWFuYWdlbWVudF9pbmZvKGNvbm5lY3Rvcik7Cit9CisKIHN0YXRpYyBpbnQgaGRjcDJfYXV0 aGVudGljYXRlX3Npbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gY29ubl90b19kaWdfcG9y dChjb25uZWN0b3IpOwpAQCAtMTQxNCw2ICsxNTg2LDEyIEBAIHN0YXRpYyBpbnQgaGRjcDJfYXV0 aGVudGljYXRlX3Npbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQkJCQkg ICAgICAgc2l6ZW9mKHN0cmVhbV90eXBlX21zZykpOwogCQlpZiAocmV0IDwgMCkKIAkJCXJldHVy biByZXQ7CisJfSBlbHNlIGlmIChoZGNwLT5pc19yZXBlYXRlcikgeworCQlyZXQgPSBoZGNwMl9h dXRoZW50aWNhdGVfcmVwZWF0ZXIoY29ubmVjdG9yKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCURS TV9ERUJVR19LTVMoIlJlcGVhdGVyIEF1dGggRmFpbGVkLiBFcnI6ICVkXG4iLCByZXQpOworCQkJ cmV0dXJuIHJldDsKKwkJfQogCX0KIAogCWhkY3AtPm1laV9kYXRhLnN0cmVhbXNbMF0uc3RyZWFt X3R5cGUgPSBoZGNwLT5jb250ZW50X3R5cGU7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1f aGRjcC5oIGIvaW5jbHVkZS9kcm0vZHJtX2hkY3AuaAppbmRleCAyZmM2MzExZGMwNjAuLjBjMjIy YjViNjg1YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2hkY3AuaAorKysgYi9pbmNsdWRl L2RybS9kcm1faGRjcC5oCkBAIC0yNDcsNCArMjQ3LDE5IEBAIHN0cnVjdCBoZGNwMl9kcF9lcnJh dGFfc3RyZWFtX3R5cGUgewogI2RlZmluZSBIRENQXzJfMl9IRE1JX1JYU1RBVFVTX1JFQURZKHgp CQkoKHgpICYgQklUKDIpKQogI2RlZmluZSBIRENQXzJfMl9IRE1JX1JYU1RBVFVTX1JFQVVUSF9S RVEoeCkJKCh4KSAmIEJJVCgzKSkKIAorLyoKKyAqIExpYnJhcnkgZnVuY3Rpb25zIGZvciBlbmRp YW5uZXNzIGFyZSBhbGlnbmVkIGZvciAxNi8zMi82NCBiaXRzLgorICogQnV0IGhkY3Agc2VxdWVu Y2UgbnVtYmVycyBhcmUgMjRiaXRzLiBTbyBmb3IgdGhlaXIgQnl0ZSBzd2FwcGluZywKKyAqIGEg Y29udmVyc2lvbiBmdW5jdGlvbiBpcyBkZXZlbG9wZWQuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9p ZCByZXZlcnNlX2VuZGlhbm5lc3ModTggKmRlc3QsIHNpemVfdCBzeiwgdTggKnNyYykKK3sKKwl1 MzIgaW5kZXg7CisKKwlpZiAoIXN6IHx8IHN6ID4gc2l6ZW9mKHUzMikpCisJCXJldHVybjsKKwlm b3IgKGluZGV4ID0gMDsgaW5kZXggPCBzejsgaW5kZXgrKykKKwkJZGVzdFtzeiAtIGluZGV4IC0g MV0gPSBzcmNbaW5kZXhdOworfQorCiAjZW5kaWYKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK