From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH 28/43] drm/i915: Implement HDCP2.2 receiver authentication Date: Wed, 14 Feb 2018 19:43:43 +0530 Message-ID: <1518617638-21684-29-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 CC30089CCE for ; Wed, 14 Feb 2018 14:20:52 +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 SW1wbGVtZW50cyBIRENQMi4yIGF1dGhlbnRpY2F0aW9uIGZvciBoZGNwMi4yIHJlY2VpdmVycywg d2l0aApmb2xsb3dpbmcgc3RlcHM6CglBdXRoZW50aWNhdGlvbiBhbmQgS2V5IGVuY2hhbmdlIChB S0UpLgoJTG9jYWxpdHkgQ2hlY2sgKExDKS4KCVNlc3Npb24gS2V5IEV4Y2hhbmdlKFNLRSkuCglE UCBFcnJhdGEgZm9yIHN0cmVhbSB0eXBlIGNvbmZ1Z3VyYXRpb24gZm9yIHJlY2VpdmVycy4KCkF0 IEFLRSwgdGhlIEhEQ1AgUmVjZWl2ZXLigJlzIHB1YmxpYyBrZXkgY2VydGlmaWNhdGUgaXMgdmVy aWZpZWQgYnkgdGhlCkhEQ1AgVHJhbnNtaXR0ZXIuIEEgTWFzdGVyIEtleSBrIG0gaXMgZXhjaGFu Z2VkLgoKQXQgTEMsIHRoZSBIRENQIFRyYW5zbWl0dGVyIGVuZm9yY2VzIGxvY2FsaXR5IG9uIHRo ZSBjb250ZW50IGJ5CnJlcXVpcmluZyB0aGF0IHRoZSBSb3VuZCBUcmlwIFRpbWUgKFJUVCkgYmV0 d2VlbiBhIHBhaXIgb2YgbWVzc2FnZXMKaXMgbm90IG1vcmUgdGhhbiAyMCBtcy4KCkF0IFNLRSwg VGhlIEhEQ1AgVHJhbnNtaXR0ZXIgZXhjaGFuZ2VzIFNlc3Npb24gS2V5IGtzIHdpdGgKdGhlIEhE Q1AgUmVjZWl2ZXIuCgpJbiBEUCBIRENQMi4yIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24gbG9n aWNzIHVzZSB0aGUgc3RyZWFtIHR5cGUgYXMKb25lIG9mIHRoZSBwYXJhbWV0ZXIuIFNvIEJlZm9y ZSBlbmFibGluZyB0aGUgRW5jcnlwdGlvbiBEUCBIRENQMi4yCnJlY2VpdmVyIG5lZWRzIHRvIGJl IGNvbW11bmljYXRlZCB3aXRoIHN0cmVhbSB0eXBlLiBUaGlzIGlzIGFkZGVkIHRvCnNwZWMgYXMg RVJSQVRBLgoKVGhpcyBnZW5lcmljIGltcGxlbWVudGF0aW9uIGlzIGNvbXBsZXRlIG9ubHkgd2l0 aCB0aGUgaGRjcDJfc2hpbQpkZWZpbmVkLgoKU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxy YW1hbGluZ2FtLmNAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk Y3AuYyB8IDE4MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxl IGNoYW5nZWQsIDE4MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCmlu ZGV4IDhhYzgyNGYwZWQzNS4uNjQyNzZmMTgwZTQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oZGNwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRj cC5jCkBAIC0xOSw2ICsxOSw3IEBACiAjZGVmaW5lIEdFVF9NRUlfRERJX0lOREVYKHBvcnQpCQko KChwb3J0KSA9PSBQT1JUX0EpID8gRERJX0EgOiBcCiAJCQkJCSAoZW51bSBwaHlzaWNhbF9wb3J0 KSAocG9ydCkpCiAjZGVmaW5lIEtFWV9MT0FEX1RSSUVTCTUKKyNkZWZpbmUgSERDUDJfTENfUkVU UllfQ05UCQkzCiAKIHN0YXRpYyBpbnQgaW50ZWxfaGRjcF9wb2xsX2tzdl9maWZvKHN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCQkJCSAgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfaGRjcF9zaGltICpzaGltKQpAQCAtMTAyMCwzICsxMDIxLDE4NSBAQCBzdGF0aWMgaW5s aW5lIGludCBoZGNwMl9kZWF1dGhlbnRpY2F0ZV9wb3J0KHN0cnVjdCBpbnRlbF9oZGNwICpoZGNw KQogewogCXJldHVybiBoZGNwMl9jbG9zZV9tZWlfc2Vzc2lvbihoZGNwKTsKIH0KKworc3RhdGlj IGludCBoZGNwMl9hdXRoZW50aWNhdGlvbl9rZXlfZXhjaGFuZ2Uoc3RydWN0IGludGVsX2hkY3Ag KmhkY3ApCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQor CQkJCQljb25uX3RvX2RpZ19wb3J0KGhkY3AtPmNvbm5lY3Rvcik7CisJdW5pb24geworCQlzdHJ1 Y3QgaGRjcDJfYWtlX2luaXQgYWtlX2luaXQ7CisJCXN0cnVjdCBoZGNwMl9ha2Vfc2VuZF9jZXJ0 IHNlbmRfY2VydDsKKwkJc3RydWN0IGhkY3AyX2FrZV9ub19zdG9yZWRfa20gbm9fc3RvcmVkX2tt OworCQlzdHJ1Y3QgaGRjcDJfYWtlX3NlbmRfaHByaW1lIHNlbmRfaHByaW1lOworCQlzdHJ1Y3Qg aGRjcDJfYWtlX3NlbmRfcGFpcmluZ19pbmZvIHBhaXJpbmdfaW5mbzsKKwl9IG1zZ3M7CisJY29u c3Qgc3RydWN0IGludGVsX2hkY3AyX3NoaW0gKnNoaW0gPSBoZGNwLT5oZGNwMl9zaGltOworCXNp emVfdCBzaXplOworCWludCByZXQ7CisKKwkvKiBJbml0IGZvciBzZXFfbnVtICovCisJaGRjcC0+ c2VxX251bV92ID0gMDsKKwloZGNwLT5zZXFfbnVtX20gPSAwOworCisJcmV0ID0gaGRjcDJfcHJl cGFyZV9ha2VfaW5pdChoZGNwLCAmbXNncy5ha2VfaW5pdCk7CisJaWYgKHJldCA8IDApCisJCXJl dHVybiByZXQ7CisKKwlyZXQgPSBzaGltLT53cml0ZV9tc2coaW50ZWxfZGlnX3BvcnQsICZtc2dz LmFrZV9pbml0LAorCQkJICAgICAgc2l6ZW9mKG1zZ3MuYWtlX2luaXQpKTsKKwlpZiAocmV0IDwg MCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IHNoaW0tPnJlYWRfbXNnKGludGVsX2RpZ19wb3J0 LCBBS0VfU0VORF9DRVJULCAmbXNncy5zZW5kX2NlcnQsCisJCQkgICAgIHNpemVvZihtc2dzLnNl bmRfY2VydCkpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJaWYgKG1zZ3Muc2Vu ZF9jZXJ0LnJ4X2NhcHMuZmllbGRzLnZlcnNpb24gIT0KKwkgICAgSERDUF8yXzJfUlhfQ0FQU19W RVJTSU9OX1ZBTCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwloZGNwLT5pc19yZXBlYXRlciA9IG1z Z3Muc2VuZF9jZXJ0LnJ4X2NhcHMuZmllbGRzLnJlcGVhdGVyOworCisJLyoKKwkgKiBIZXJlIG1z Z3Mubm9fc3RvcmVkX2ttIHdpbGwgaG9sZCBtc2dzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGttCisJ ICogc3RvcmVkIGFsc28uCisJICovCisJcmV0ID0gaGRjcDJfdmVyaWZ5X3J4X2NlcnRfcHJlcGFy ZV9rbShoZGNwLCAmbXNncy5zZW5kX2NlcnQsCisJCQkJCSAgICAgICZoZGNwLT5pc19wYWlyZWQs CisJCQkJCSAgICAgICZtc2dzLm5vX3N0b3JlZF9rbSwgJnNpemUpOworCWlmIChyZXQgPCAwKQor CQlyZXR1cm4gcmV0OworCisJcmV0ID0gc2hpbS0+d3JpdGVfbXNnKGludGVsX2RpZ19wb3J0LCAm bXNncy5ub19zdG9yZWRfa20sIHNpemUpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0Owor CisJcmV0ID0gc2hpbS0+cmVhZF9tc2coaW50ZWxfZGlnX3BvcnQsIEFLRV9TRU5EX0hQUklNRSwg Jm1zZ3Muc2VuZF9ocHJpbWUsCisJCQkgICAgIHNpemVvZihtc2dzLnNlbmRfaHByaW1lKSk7CisJ aWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBoZGNwMl92ZXJpZnlfaHByaW1l KGhkY3AsICZtc2dzLnNlbmRfaHByaW1lKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsK KworCWlmICghaGRjcC0+aXNfcGFpcmVkKSB7CisJCS8qIFBhaXJpbmcgaXMgcmVxdWlyZWQgKi8K KwkJcmV0ID0gc2hpbS0+cmVhZF9tc2coaW50ZWxfZGlnX3BvcnQsIEFLRV9TRU5EX1BBUklOR19J TkZPLAorCQkJCSAgICAgJm1zZ3MucGFpcmluZ19pbmZvLAorCQkJCSAgICAgc2l6ZW9mKG1zZ3Mu cGFpcmluZ19pbmZvKSk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlyZXQg PSBoZGNwMl9zdG9yZV9wYXJpbmdfaW5mbyhoZGNwLCAmbXNncy5wYWlyaW5nX2luZm8pOworCQlp ZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisJCWhkY3AtPmlzX3BhaXJlZCA9IHRydWU7CisJ fQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhkY3AyX2xvY2FsaXR5X2NoZWNrKHN0cnVj dCBpbnRlbF9oZGNwICpoZGNwKQoreworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVs X2RpZ19wb3J0ID0KKwkJCQkJY29ubl90b19kaWdfcG9ydChoZGNwLT5jb25uZWN0b3IpOworCXVu aW9uIHsKKwkJc3RydWN0IGhkY3AyX2xjX2luaXQgbGNfaW5pdDsKKwkJc3RydWN0IGhkY3AyX2xj X3NlbmRfbHByaW1lIHNlbmRfbHByaW1lOworCX0gbXNnczsKKwljb25zdCBzdHJ1Y3QgaW50ZWxf aGRjcDJfc2hpbSAqc2hpbSA9IGhkY3AtPmhkY3AyX3NoaW07CisJaW50IHRyaWVzID0gSERDUDJf TENfUkVUUllfQ05ULCByZXQsIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgdHJpZXM7IGkrKykgewor CQlyZXQgPSBoZGNwMl9wcmVwYXJlX2xjX2luaXQoaGRjcCwgJm1zZ3MubGNfaW5pdCk7CisJCWlm IChyZXQgPCAwKQorCQkJY29udGludWU7CisKKwkJcmV0ID0gc2hpbS0+d3JpdGVfbXNnKGludGVs X2RpZ19wb3J0LCAmbXNncy5sY19pbml0LAorCQkJCSAgICAgIHNpemVvZihtc2dzLmxjX2luaXQp KTsKKwkJaWYgKHJldCA8IDApCisJCQljb250aW51ZTsKKworCQlyZXQgPSBzaGltLT5yZWFkX21z ZyhpbnRlbF9kaWdfcG9ydCwgTENfU0VORF9MUFJJTUUsCisJCQkJICAgICAmbXNncy5zZW5kX2xw cmltZSwKKwkJCQkgICAgIHNpemVvZihtc2dzLnNlbmRfbHByaW1lKSk7CisJCWlmIChyZXQgPCAw KQorCQkJY29udGludWU7CisKKwkJcmV0ID0gaGRjcDJfdmVyaWZ5X2xwcmltZShoZGNwLCAmbXNn cy5zZW5kX2xwcmltZSk7CisJCWlmICghcmV0KQorCQkJYnJlYWs7CisJfQorCXJldHVybiByZXQ7 Cit9CisKK3N0YXRpYyBpbnQgaGRjcDJfc2Vzc2lvbl9rZXlfZXhjaGFuZ2Uoc3RydWN0IGludGVs X2hkY3AgKmhkY3ApCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQgPQorCQkJCQljb25uX3RvX2RpZ19wb3J0KGhkY3AtPmNvbm5lY3Rvcik7CisJc3RydWN0IGhk Y3AyX3NrZV9zZW5kX2VrcyBzZW5kX2VrczsKKwlpbnQgcmV0OworCisJcmV0ID0gaGRjcDJfcHJl cGFyZV9za2V5KGhkY3AsICZzZW5kX2Vrcyk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7 CisKKwlyZXQgPSBoZGNwLT5oZGNwMl9zaGltLT53cml0ZV9tc2coaW50ZWxfZGlnX3BvcnQsICZz ZW5kX2VrcywKKwkJCQkJICBzaXplb2Yoc2VuZF9la3MpKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0 dXJuIHJldDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhkY3AyX2F1dGhlbnRpY2F0 ZV9zaW5rKHN0cnVjdCBpbnRlbF9oZGNwICpoZGNwKQoreworCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0ID0KKwkJCQkJY29ubl90b19kaWdfcG9ydChoZGNwLT5jb25u ZWN0b3IpOworCXN0cnVjdCBoZGNwMl9kcF9lcnJhdGFfc3RyZWFtX3R5cGUgc3RyZWFtX3R5cGVf bXNnOworCWNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwMl9zaGltICpzaGltID0gaGRjcC0+aGRjcDJf c2hpbTsKKwlpbnQgcmV0OworCisJcmV0ID0gaGRjcDJfYXV0aGVudGljYXRpb25fa2V5X2V4Y2hh bmdlKGhkY3ApOworCWlmIChyZXQgPCAwKSB7CisJCURSTV9ERUJVR19LTVMoIkFLRSBGYWlsZWQu IEVyciA6ICVkXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldCA9IGhkY3AyX2xv Y2FsaXR5X2NoZWNrKGhkY3ApOworCWlmIChyZXQgPCAwKSB7CisJCURSTV9ERUJVR19LTVMoIkxv Y2FsaXR5IENoZWNrIGZhaWxlZC4gRXJyIDogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJ fQorCisJcmV0ID0gaGRjcDJfc2Vzc2lvbl9rZXlfZXhjaGFuZ2UoaGRjcCk7CisJaWYgKHJldCA8 IDApIHsKKwkJRFJNX0RFQlVHX0tNUygiU0tFIEZhaWxlZC4gRXJyIDogJWRcbiIsIHJldCk7CisJ CXJldHVybiByZXQ7CisJfQorCisJaWYgKCFoZGNwLT5pc19yZXBlYXRlciAmJiBzaGltLT5jb25m aWdfc3RyZWFtX3R5cGUpIHsKKworCQkvKiBFcnJhdGEgZm9yIERQOiBBcyBTdHJlYW0gdHlwZSBp cyB1c2VkIGZvciBlbmNyeXB0aW9uLAorCQkgKiBSZWNlaXZlciBzaG91bGQgYmUgY29tbXVuaWNh dGVkIHdpdGggc3RyZWFtIHR5cGUgZm9yIHRoZQorCQkgKiBkZWNyeXB0aW9uIG9mIHRoZSBjb250 ZW50LgorCQkgKiBSZXBlYXRlciB3aWxsIGJlIGNvbW11bmljYXRlZCB3aXRoIHN0cmVhbSB0eXBl IGFzIGEKKwkJICogcGFydCBvZiBpdCdzIGF1dGggaW4gbGF0ZXIgaW4gdGltZQorCQkgKi8KKwkJ c3RyZWFtX3R5cGVfbXNnLm1zZ19pZCA9IEVSUkFUQV9EUF9TVFJFQU1fVFlQRTsKKwkJc3RyZWFt X3R5cGVfbXNnLnN0cmVhbV90eXBlID0gaGRjcC0+Y29udGVudF90eXBlOworCisJCXJldCA9IHNo aW0tPmNvbmZpZ19zdHJlYW1fdHlwZShpbnRlbF9kaWdfcG9ydCwgJnN0cmVhbV90eXBlX21zZywK KwkJCQkJICAgICAgIHNpemVvZihzdHJlYW1fdHlwZV9tc2cpKTsKKwkJaWYgKHJldCA8IDApCisJ CQlyZXR1cm4gcmV0OworCX0KKworCWhkY3AtPm1laV9oZGNwX2RhdGEtPnN0cmVhbXNbMF0uc3Ry ZWFtX3R5cGUgPSBoZGNwLT5jb250ZW50X3R5cGU7CisJcmV0ID0gaGRjcDJfYXV0aGVudGljYXRl X3BvcnQoaGRjcCk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gcmV0 OworfQotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=