From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v6 13/35] drm/i915: Implement HDCP2.2 repeater authentication Date: Sat, 14 Jul 2018 08:44:55 +0530 Message-ID: <1531538117-1606-14-git-send-email-ramalingam.c@intel.com> References: <1531538117-1606-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: <1531538117-1606-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, daniel@ffwll.ch, seanpaul@chromium.org, 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 Zy4KICBEZWZpbmVkIHRoZSBtZWkgc2VydmljZSBmdW5jdGlvbnMgW0RhbmllbF0KdjY6CiAgUmVk ZWZpbmVkIHRoZSBtZWkgc2VydmljZSBmdW5jdGlvbnMgYXMgcGVyIGNvbXAgcmVkZXNpZ24uCgpT aWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIHwgMTcxICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9kcm1faGRjcC5oICAgICAgICAgICAg fCAgMTUgKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxODYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkY3AuYwppbmRleCBlZTFlMDZiYWMxNzUuLmEwOGQ4MGM3MTBkNyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2hkY3AuYwpAQCAtMTE0NCw2ICsxMTQ0LDU2IEBAIHN0YXRpYyBpbnQg aGRjcDJfcHJlcGFyZV9za2V5KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAly ZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50CitoZGNwMl92ZXJpZnlfcmVwX3RvcG9sb2d5X3By ZXBhcmVfYWNrKAorCQkJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJc3Ry dWN0IGhkY3AyX3JlcF9zZW5kX3JlY2VpdmVyaWRfbGlzdCAqcmVwX3RvcG9sb2d5LAorCQkJc3Ry dWN0IGhkY3AyX3JlcF9zZW5kX2FjayAqcmVwX3NlbmRfYWNrKQoreworCXN0cnVjdCBtZWlfaGRj cF9kYXRhICpkYXRhID0gJmNvbm5lY3Rvci0+aGRjcC5tZWlfZGF0YTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOworCXN0 cnVjdCBpOTE1X2NvbXBvbmVudF9tYXN0ZXIgKmNvbXAgPSBkZXZfcHJpdi0+Y29tcF9tYXN0ZXI7 CisJaW50IHJldDsKKworCWlmICghY29tcCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoIWNv bXAtPmhkY3Bfb3BzIHx8ICFjb21wLT5tZWlfY2xkZXYgfHwgZGF0YS0+cG9ydCA9PSBJTlZBTElE X1BPUlQpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0ID0gY29tcC0+aGRjcF9vcHMtPnJlcGVh dGVyX2NoZWNrX2Zsb3dfcHJlcGFyZV9hY2soY29tcC0+bWVpX2NsZGV2LAorCQkJCQkJCSAgICAg IGRhdGEsCisJCQkJCQkJICAgICAgcmVwX3RvcG9sb2d5LAorCQkJCQkJCSAgICAgIHJlcF9zZW5k X2Fjayk7CisJaWYgKHJldCA8IDApCisJCWNvbXAtPmhkY3Bfb3BzLT5jbG9zZV9oZGNwX3Nlc3Np b24oY29tcC0+bWVpX2NsZGV2LCBkYXRhKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBp bnQKK2hkY3AyX3ZlcmlmeV9tcHJpbWUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y LAorCQkgICAgc3RydWN0IGhkY3AyX3JlcF9zdHJlYW1fcmVhZHkgKnN0cmVhbV9yZWFkeSkKK3sK KwlzdHJ1Y3QgbWVpX2hkY3BfZGF0YSAqZGF0YSA9ICZjb25uZWN0b3ItPmhkY3AubWVpX2RhdGE7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3It PmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaTkxNV9jb21wb25lbnRfbWFzdGVyICpjb21wID0gZGV2X3By aXYtPmNvbXBfbWFzdGVyOworCWludCByZXQ7CisKKwlpZiAoIWNvbXApCisJCXJldHVybiAtRUlO VkFMOworCisJaWYgKCFjb21wLT5oZGNwX29wcyB8fCAhY29tcC0+bWVpX2NsZGV2IHx8IGRhdGEt PnBvcnQgPT0gSU5WQUxJRF9QT1JUKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldCA9IGNvbXAt PmhkY3Bfb3BzLT52ZXJpZnlfbXByaW1lKGNvbXAtPm1laV9jbGRldiwgZGF0YSwKKwkJCQkJICAg IHN0cmVhbV9yZWFkeSk7CisJaWYgKHJldCA8IDApCisJCWNvbXAtPmhkY3Bfb3BzLT5jbG9zZV9o ZGNwX3Nlc3Npb24oY29tcC0+bWVpX2NsZGV2LCBkYXRhKTsKKworCXJldHVybiByZXQ7Cit9CisK IHN0YXRpYyBpbnQgaGRjcDJfYXV0aGVudGljYXRlX3BvcnQoc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBtZWlfaGRjcF9kYXRhICpkYXRhID0gJmNvbm5lY3Rv ci0+aGRjcC5tZWlfZGF0YTsKQEAgLTEzMTksNiArMTM2OSwxMjEgQEAgc3RhdGljIGludCBoZGNw Ml9zZXNzaW9uX2tleV9leGNoYW5nZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip CiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYworaW50IGhkY3AyX3Byb3BhZ2F0ZV9zdHJlYW1fbWFu YWdlbWVudF9pbmZvKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGNvbm5fdG9fZGlnX3BvcnQo Y29ubmVjdG9yKTsKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7 CisJdW5pb24geworCQlzdHJ1Y3QgaGRjcDJfcmVwX3N0cmVhbV9tYW5hZ2Ugc3RyZWFtX21hbmFn ZTsKKwkJc3RydWN0IGhkY3AyX3JlcF9zdHJlYW1fcmVhZHkgc3RyZWFtX3JlYWR5OworCX0gbXNn czsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpzaGltID0gaGRjcC0+c2hpbTsKKwlp bnQgcmV0OworCisJLyogUHJlcGFyZSBSZXBlYXRlckF1dGhfU3RyZWFtX01hbmFnZSBtc2cgKi8K Kwltc2dzLnN0cmVhbV9tYW5hZ2UubXNnX2lkID0gSERDUF8yXzJfUkVQX1NUUkVBTV9NQU5BR0U7 CisJcmV2ZXJzZV9lbmRpYW5uZXNzKG1zZ3Muc3RyZWFtX21hbmFnZS5zZXFfbnVtX20sIEhEQ1Bf Ml8yX1NFUV9OVU1fTEVOLAorCQkJICAgKHU4ICopJmhkY3AtPnNlcV9udW1fbSk7CisKKwkvKiBL IG5vIG9mIHN0cmVhbXMgaXMgZml4ZWQgYXMgMS4gU3RvcmVkIGFzIGJpZy1lbmRpYW4uICovCisJ bXNncy5zdHJlYW1fbWFuYWdlLmsgPSBfX3N3YWIxNigxKTsKKworCS8qIEZvciBIRE1JIHRoaXMg aXMgZm9yY2VkIHRvIGJlIDB4MC4gRm9yIERQIFNTVCBhbHNvIHRoaXMgaXMgMHgwLiAqLworCW1z Z3Muc3RyZWFtX21hbmFnZS5zdHJlYW1zWzBdLnN0cmVhbV9pZCA9IDA7CisJbXNncy5zdHJlYW1f bWFuYWdlLnN0cmVhbXNbMF0uc3RyZWFtX3R5cGUgPSBoZGNwLT5jb250ZW50X3R5cGU7CisKKwkv KiBTZW5kIGl0IHRvIFJlcGVhdGVyICovCisJcmV0ID0gc2hpbS0+d3JpdGVfMl8yX21zZyhpbnRl bF9kaWdfcG9ydCwgJm1zZ3Muc3RyZWFtX21hbmFnZSwKKwkJCQkgIHNpemVvZihtc2dzLnN0cmVh bV9tYW5hZ2UpKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IHNoaW0t PnJlYWRfMl8yX21zZyhpbnRlbF9kaWdfcG9ydCwgSERDUF8yXzJfUkVQX1NUUkVBTV9SRUFEWSwK KwkJCQkgJm1zZ3Muc3RyZWFtX3JlYWR5LCBzaXplb2YobXNncy5zdHJlYW1fcmVhZHkpKTsKKwlp ZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCWhkY3AtPm1laV9kYXRhLnNlcV9udW1fbSA9 IGhkY3AtPnNlcV9udW1fbTsKKwloZGNwLT5tZWlfZGF0YS5zdHJlYW1zWzBdLnN0cmVhbV90eXBl ID0gaGRjcC0+Y29udGVudF90eXBlOworCisJcmV0ID0gaGRjcDJfdmVyaWZ5X21wcmltZShjb25u ZWN0b3IsICZtc2dzLnN0cmVhbV9yZWFkeSk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7 CisKKwloZGNwLT5zZXFfbnVtX20rKzsKKworCWlmIChoZGNwLT5zZXFfbnVtX20gPiBIRENQXzJf Ml9TRVFfTlVNX01BWCkgeworCQlEUk1fREVCVUdfS01TKCJzZXFfbnVtX20gcm9sbCBvdmVyLlxu Iik7CisJCXJldHVybiAtMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljCitpbnQgaGRj cDJfYXV0aGVudGljYXRlX3JlcGVhdGVyX3RvcG9sb2d5KHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9y dCA9IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRj cCA9ICZjb25uZWN0b3ItPmhkY3A7CisJdW5pb24geworCQlzdHJ1Y3QgaGRjcDJfcmVwX3NlbmRf cmVjZWl2ZXJpZF9saXN0IHJlY3ZpZF9saXN0OworCQlzdHJ1Y3QgaGRjcDJfcmVwX3NlbmRfYWNr IHJlcF9hY2s7CisJfSBtc2dzOworCWNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gKnNoaW0g PSBoZGNwLT5zaGltOworCXVpbnQ4X3QgKnJ4X2luZm87CisJdWludDMyX3Qgc2VxX251bV92Owor CWludCByZXQ7CisKKwlyZXQgPSBzaGltLT5yZWFkXzJfMl9tc2coaW50ZWxfZGlnX3BvcnQsIEhE Q1BfMl8yX1JFUF9TRU5EX1JFQ1ZJRF9MSVNULAorCQkJCSAmbXNncy5yZWN2aWRfbGlzdCwgc2l6 ZW9mKG1zZ3MucmVjdmlkX2xpc3QpKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKwor CXJ4X2luZm8gPSBtc2dzLnJlY3ZpZF9saXN0LnJ4X2luZm87CisKKwlpZiAoSERDUF8yXzJfTUFY X0NBU0NBREVfRVhDRUVERUQocnhfaW5mb1sxXSkgfHwKKwkgICAgSERDUF8yXzJfTUFYX0RFVlNf RVhDRUVERUQocnhfaW5mb1sxXSkpIHsKKwkJRFJNX0RFQlVHX0tNUygiVG9wb2xvZ3kgTWF4IFNp emUgRXhjZWVkZWRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBDb252ZXJ0aW5n IGFuZCBTdG9yaW5nIHRoZSBzZXFfbnVtX3YgdG8gbG9jYWwgdmFyaWFibGUgYXMgRFdPUkQgKi8K KwlyZXZlcnNlX2VuZGlhbm5lc3MoKHU4ICopJnNlcV9udW1fdiwgSERDUF8yXzJfU0VRX05VTV9M RU4sCisJCQkgICBtc2dzLnJlY3ZpZF9saXN0LnNlcV9udW1fdik7CisKKwlpZiAoc2VxX251bV92 IDwgaGRjcC0+c2VxX251bV92KSB7CisJCS8qIFJvbGwgb3ZlciBvZiB0aGUgc2VxX251bV92IGZy b20gcmVwZWF0ZXIuIFJlYXV0aGVudGljYXRlLiAqLworCQlEUk1fREVCVUdfS01TKCJTZXFfbnVt X3Ygcm9sbCBvdmVyLlxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldCA9IGhkY3Ay X3ZlcmlmeV9yZXBfdG9wb2xvZ3lfcHJlcGFyZV9hY2soY29ubmVjdG9yLAorCQkJCQkJICAgICZt c2dzLnJlY3ZpZF9saXN0LAorCQkJCQkJICAgICZtc2dzLnJlcF9hY2spOworCWlmIChyZXQgPCAw KQorCQlyZXR1cm4gcmV0OworCisJaGRjcC0+c2VxX251bV92ID0gc2VxX251bV92OworCXJldCA9 IHNoaW0tPndyaXRlXzJfMl9tc2coaW50ZWxfZGlnX3BvcnQsICZtc2dzLnJlcF9hY2ssCisJCQkJ ICBzaXplb2YobXNncy5yZXBfYWNrKSk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisK KwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoZGNwMl9hdXRoZW50aWNhdGVfcmVwZWF0ZXIo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCWludCByZXQ7CisKKwlyZXQg PSBoZGNwMl9hdXRoZW50aWNhdGVfcmVwZWF0ZXJfdG9wb2xvZ3koY29ubmVjdG9yKTsKKwlpZiAo cmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiBoZGNwMl9wcm9wYWdhdGVfc3RyZWFt X21hbmFnZW1lbnRfaW5mbyhjb25uZWN0b3IpOworfQorCiBzdGF0aWMgaW50IGhkY3AyX2F1dGhl bnRpY2F0ZV9zaW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGNvbm5fdG9fZGlnX3BvcnQo Y29ubmVjdG9yKTsKQEAgLTEzNjAsNiArMTUyNSwxMiBAQCBzdGF0aWMgaW50IGhkY3AyX2F1dGhl bnRpY2F0ZV9zaW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkJCQkJICAg ICAgIHNpemVvZihzdHJlYW1fdHlwZV9tc2cpKTsKIAkJaWYgKHJldCA8IDApCiAJCQlyZXR1cm4g cmV0OworCX0gZWxzZSBpZiAoaGRjcC0+aXNfcmVwZWF0ZXIpIHsKKwkJcmV0ID0gaGRjcDJfYXV0 aGVudGljYXRlX3JlcGVhdGVyKGNvbm5lY3Rvcik7CisJCWlmIChyZXQgPCAwKSB7CisJCQlEUk1f REVCVUdfS01TKCJSZXBlYXRlciBBdXRoIEZhaWxlZC4gRXJyOiAlZFxuIiwgcmV0KTsKKwkJCXJl dHVybiByZXQ7CisJCX0KIAl9CiAKIAloZGNwLT5tZWlfZGF0YS5zdHJlYW1zWzBdLnN0cmVhbV90 eXBlID0gaGRjcC0+Y29udGVudF90eXBlOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2hk Y3AuaCBiL2luY2x1ZGUvZHJtL2RybV9oZGNwLmgKaW5kZXggMmI0Y2ZiMGI3MzI0Li5jMDFjZGIx ZDg0OGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9oZGNwLmgKKysrIGIvaW5jbHVkZS9k cm0vZHJtX2hkY3AuaApAQCAtMjUyLDQgKzI1MiwxOSBAQCBzdHJ1Y3QgaGRjcDJfZHBfZXJyYXRh X3N0cmVhbV90eXBlIHsKICNkZWZpbmUgSERDUF8yXzJfSERNSV9SWFNUQVRVU19SRUFEWSh4KQkJ KCh4KSAmIEJJVCgyKSkKICNkZWZpbmUgSERDUF8yXzJfSERNSV9SWFNUQVRVU19SRUFVVEhfUkVR KHgpCSgoeCkgJiBCSVQoMykpCiAKKy8qCisgKiBMaWJyYXJ5IGZ1bmN0aW9ucyBmb3IgZW5kaWFu bmVzcyBhcmUgYWxpZ25lZCBmb3IgMTYvMzIvNjQgYml0cy4KKyAqIEJ1dCBoZGNwIHNlcXVlbmNl IG51bWJlcnMgYXJlIDI0Yml0cy4gU28gZm9yIHRoZWlyIEJ5dGUgc3dhcHBpbmcsCisgKiBhIGNv bnZlcnNpb24gZnVuY3Rpb24gaXMgZGV2ZWxvcGVkLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQg cmV2ZXJzZV9lbmRpYW5uZXNzKHU4ICpkZXN0LCBzaXplX3Qgc3osIHU4ICpzcmMpCit7CisJdTMy IGluZGV4OworCisJaWYgKCFzeiB8fCBzeiA+IHNpemVvZih1MzIpKQorCQlyZXR1cm47CisJZm9y IChpbmRleCA9IDA7IGluZGV4IDwgc3o7IGluZGV4KyspCisJCWRlc3Rbc3ogLSBpbmRleCAtIDFd ID0gc3JjW2luZGV4XTsKK30KKwogI2VuZGlmCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==