From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v4 23/41] drm/i915: Implement HDCP2.2 receiver authentication Date: Mon, 21 May 2018 18:23:42 +0530 Message-ID: <1526907240-17639-24-git-send-email-ramalingam.c@intel.com> References: <1526907240-17639-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: <1526907240-17639-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 Cc: alexander.usyskin@intel.com, uma.shankar@intel.com, tomas.winkler@intel.com List-Id: dri-devel@lists.freedesktop.org SW1wbGVtZW50cyBIRENQMi4yIGF1dGhlbnRpY2F0aW9uIGZvciBoZGNwMi4yIHJlY2VpdmVycywg d2l0aApmb2xsb3dpbmcgc3RlcHM6CglBdXRoZW50aWNhdGlvbiBhbmQgS2V5IGV4Y2hhbmdlIChB S0UpLgoJTG9jYWxpdHkgQ2hlY2sgKExDKS4KCVNlc3Npb24gS2V5IEV4Y2hhbmdlKFNLRSkuCglE UCBFcnJhdGEgZm9yIHN0cmVhbSB0eXBlIGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmVycy4KCkF0 IEFLRSwgdGhlIEhEQ1AgUmVjZWl2ZXLigJlzIHB1YmxpYyBrZXkgY2VydGlmaWNhdGUgaXMgdmVy aWZpZWQgYnkgdGhlCkhEQ1AgVHJhbnNtaXR0ZXIuIEEgTWFzdGVyIEtleSBrIG0gaXMgZXhjaGFu Z2VkLgoKQXQgTEMsIHRoZSBIRENQIFRyYW5zbWl0dGVyIGVuZm9yY2VzIGxvY2FsaXR5IG9uIHRo ZSBjb250ZW50IGJ5CnJlcXVpcmluZyB0aGF0IHRoZSBSb3VuZCBUcmlwIFRpbWUgKFJUVCkgYmV0 d2VlbiBhIHBhaXIgb2YgbWVzc2FnZXMKaXMgbm90IG1vcmUgdGhhbiAyMCBtcy4KCkF0IFNLRSwg VGhlIEhEQ1AgVHJhbnNtaXR0ZXIgZXhjaGFuZ2VzIFNlc3Npb24gS2V5IGtzIHdpdGgKdGhlIEhE Q1AgUmVjZWl2ZXIuCgpJbiBEUCBIRENQMi4yIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24gbG9n aWNzIHVzZSB0aGUgc3RyZWFtIHR5cGUgYXMKb25lIG9mIHRoZSBwYXJhbWV0ZXIuIFNvIEJlZm9y ZSBlbmFibGluZyB0aGUgRW5jcnlwdGlvbiBEUCBIRENQMi4yCnJlY2VpdmVyIG5lZWRzIHRvIGJl IGNvbW11bmljYXRlZCB3aXRoIHN0cmVhbSB0eXBlLiBUaGlzIGlzIGFkZGVkIHRvCnNwZWMgYXMg RVJSQVRBLgoKVGhpcyBnZW5lcmljIGltcGxlbWVudGF0aW9uIGlzIGNvbXBsZXRlIG9ubHkgd2l0 aCB0aGUgaGRjcDJfc2hpbQpkZWZpbmVkLgoKdjI6CiAgUmViYXNlZC4KdjM6CiAgTm8gQ2hhbmdl cy4KdjQ6CiAgJXMvUEFSSU5HL1BBSVJJTkcKICBDb2Rpbmcgc3R5bGUgZml4aW5nIFtVbWFdCgpT aWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIHwgMTg3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTg3IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKaW5kZXggNTdjMzgwYzkxY2QwLi5mYTVjYmFkOGFm YzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNkZWZp bmUgR0VUX01FSV9ERElfSU5ERVgocG9ydCkJCSgoKHBvcnQpID09IFBPUlRfQSkgPyBERElfQSA6 IFwKIAkJCQkJIChlbnVtIGhkY3BfcGh5c2ljYWxfcG9ydCkgKHBvcnQpKQogI2RlZmluZSBLRVlf TE9BRF9UUklFUwk1CisjZGVmaW5lIEhEQ1AyX0xDX1JFVFJZX0NOVAkJMwogCiBzdGF0aWMgaW50 IGludGVsX2hkY3BfcG9sbF9rc3ZfZmlmbyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRl bF9kaWdfcG9ydCwKIAkJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSkK QEAgLTEwOTAsMyArMTA5MSwxODkgQEAgc3RhdGljIGlubGluZSBpbnQgaGRjcDJfZGVhdXRoZW50 aWNhdGVfcG9ydChzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCkKIHsKIAlyZXR1cm4gaGRjcDJfY2xv c2VfbWVpX3Nlc3Npb24oaGRjcCk7CiB9CisKK3N0YXRpYyBpbnQgaGRjcDJfYXV0aGVudGljYXRp b25fa2V5X2V4Y2hhbmdlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGNvbm5fdG9fZGlnX3Bv cnQoY29ubmVjdG9yKTsKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhk Y3A7CisJdW5pb24geworCQlzdHJ1Y3QgaGRjcDJfYWtlX2luaXQgYWtlX2luaXQ7CisJCXN0cnVj dCBoZGNwMl9ha2Vfc2VuZF9jZXJ0IHNlbmRfY2VydDsKKwkJc3RydWN0IGhkY3AyX2FrZV9ub19z dG9yZWRfa20gbm9fc3RvcmVkX2ttOworCQlzdHJ1Y3QgaGRjcDJfYWtlX3NlbmRfaHByaW1lIHNl bmRfaHByaW1lOworCQlzdHJ1Y3QgaGRjcDJfYWtlX3NlbmRfcGFpcmluZ19pbmZvIHBhaXJpbmdf aW5mbzsKKwl9IG1zZ3M7CisJY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSA9IGhk Y3AtPmhkY3Bfc2hpbTsKKwlzaXplX3Qgc2l6ZTsKKwlpbnQgcmV0OworCisJLyogSW5pdCBmb3Ig c2VxX251bSAqLworCWhkY3AtPnNlcV9udW1fdiA9IDA7CisJaGRjcC0+c2VxX251bV9tID0gMDsK KworCXJldCA9IGhkY3AyX3ByZXBhcmVfYWtlX2luaXQoaGRjcCwgJm1zZ3MuYWtlX2luaXQpOwor CWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gc2hpbS0+d3JpdGVfMl8yX21z ZyhpbnRlbF9kaWdfcG9ydCwgJm1zZ3MuYWtlX2luaXQsCisJCQkJICBzaXplb2YobXNncy5ha2Vf aW5pdCkpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gc2hpbS0+cmVh ZF8yXzJfbXNnKGludGVsX2RpZ19wb3J0LCBIRENQXzJfMl9BS0VfU0VORF9DRVJULAorCQkJCSAm bXNncy5zZW5kX2NlcnQsIHNpemVvZihtc2dzLnNlbmRfY2VydCkpOworCWlmIChyZXQgPCAwKQor CQlyZXR1cm4gcmV0OworCisJaWYgKG1zZ3Muc2VuZF9jZXJ0LnJ4X2NhcHNbMF0gIT0gSERDUF8y XzJfUlhfQ0FQU19WRVJTSU9OX1ZBTCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwloZGNwLT5pc19y ZXBlYXRlciA9IEhEQ1BfMl8yX1JYX1JFUEVBVEVSKG1zZ3Muc2VuZF9jZXJ0LnJ4X2NhcHNbMl0p OworCisJLyoKKwkgKiBIZXJlIG1zZ3Mubm9fc3RvcmVkX2ttIHdpbGwgaG9sZCBtc2dzIGNvcnJl c3BvbmRpbmcgdG8gdGhlIGttCisJICogc3RvcmVkIGFsc28uCisJICovCisJcmV0ID0gaGRjcDJf dmVyaWZ5X3J4X2NlcnRfcHJlcGFyZV9rbShoZGNwLCAmbXNncy5zZW5kX2NlcnQsCisJCQkJCSAg ICAgICZoZGNwLT5pc19wYWlyZWQsCisJCQkJCSAgICAgICZtc2dzLm5vX3N0b3JlZF9rbSwgJnNp emUpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gc2hpbS0+d3JpdGVf Ml8yX21zZyhpbnRlbF9kaWdfcG9ydCwgJm1zZ3Mubm9fc3RvcmVkX2ttLCBzaXplKTsKKwlpZiAo cmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IHNoaW0tPnJlYWRfMl8yX21zZyhpbnRl bF9kaWdfcG9ydCwgSERDUF8yXzJfQUtFX1NFTkRfSFBSSU1FLAorCQkJCSAmbXNncy5zZW5kX2hw cmltZSwgc2l6ZW9mKG1zZ3Muc2VuZF9ocHJpbWUpKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJu IHJldDsKKworCXJldCA9IGhkY3AyX3ZlcmlmeV9ocHJpbWUoaGRjcCwgJm1zZ3Muc2VuZF9ocHJp bWUpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJaWYgKCFoZGNwLT5pc19wYWly ZWQpIHsKKwkJLyogUGFpcmluZyBpcyByZXF1aXJlZCAqLworCQlyZXQgPSBzaGltLT5yZWFkXzJf Ml9tc2coaW50ZWxfZGlnX3BvcnQsCisJCQkJCSBIRENQXzJfMl9BS0VfU0VORF9QQUlSSU5HX0lO Rk8sCisJCQkJCSAmbXNncy5wYWlyaW5nX2luZm8sCisJCQkJCSBzaXplb2YobXNncy5wYWlyaW5n X2luZm8pKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCXJldCA9IGhkY3Ay X3N0b3JlX3BhaXJpbmdfaW5mbyhoZGNwLCAmbXNncy5wYWlyaW5nX2luZm8pOworCQlpZiAocmV0 IDwgMCkKKwkJCXJldHVybiByZXQ7CisJCWhkY3AtPmlzX3BhaXJlZCA9IHRydWU7CisJfQorCisJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaGRjcDJfbG9jYWxpdHlfY2hlY2soc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0ID0gY29ubl90b19kaWdfcG9ydChjb25uZWN0b3IpOworCXN0cnVjdCBp bnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKKwl1bmlvbiB7CisJCXN0cnVjdCBo ZGNwMl9sY19pbml0IGxjX2luaXQ7CisJCXN0cnVjdCBoZGNwMl9sY19zZW5kX2xwcmltZSBzZW5k X2xwcmltZTsKKwl9IG1zZ3M7CisJY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSA9 IGhkY3AtPmhkY3Bfc2hpbTsKKwlpbnQgdHJpZXMgPSBIRENQMl9MQ19SRVRSWV9DTlQsIHJldCwg aTsKKworCWZvciAoaSA9IDA7IGkgPCB0cmllczsgaSsrKSB7CisJCXJldCA9IGhkY3AyX3ByZXBh cmVfbGNfaW5pdChoZGNwLCAmbXNncy5sY19pbml0KTsKKwkJaWYgKHJldCA8IDApCisJCQljb250 aW51ZTsKKworCQlyZXQgPSBzaGltLT53cml0ZV8yXzJfbXNnKGludGVsX2RpZ19wb3J0LCAmbXNn cy5sY19pbml0LAorCQkJCSAgICAgIHNpemVvZihtc2dzLmxjX2luaXQpKTsKKwkJaWYgKHJldCA8 IDApCisJCQljb250aW51ZTsKKworCQlyZXQgPSBzaGltLT5yZWFkXzJfMl9tc2coaW50ZWxfZGln X3BvcnQsCisJCQkJCSBIRENQXzJfMl9MQ19TRU5EX0xQUklNRSwKKwkJCQkJICZtc2dzLnNlbmRf bHByaW1lLAorCQkJCQkgc2l6ZW9mKG1zZ3Muc2VuZF9scHJpbWUpKTsKKwkJaWYgKHJldCA8IDAp CisJCQljb250aW51ZTsKKworCQlyZXQgPSBoZGNwMl92ZXJpZnlfbHByaW1lKGhkY3AsICZtc2dz LnNlbmRfbHByaW1lKTsKKwkJaWYgKCFyZXQpCisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmV0 OworfQorCitzdGF0aWMgaW50IGhkY3AyX3Nlc3Npb25fa2V5X2V4Y2hhbmdlKHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpp bnRlbF9kaWdfcG9ydCA9IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKKwlzdHJ1Y3QgaW50 ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CisJc3RydWN0IGhkY3AyX3NrZV9zZW5k X2VrcyBzZW5kX2VrczsKKwlpbnQgcmV0OworCisJcmV0ID0gaGRjcDJfcHJlcGFyZV9za2V5KGhk Y3AsICZzZW5kX2Vrcyk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBo ZGNwLT5oZGNwX3NoaW0tPndyaXRlXzJfMl9tc2coaW50ZWxfZGlnX3BvcnQsICZzZW5kX2VrcywK KwkJCQkJICAgICBzaXplb2Yoc2VuZF9la3MpKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJl dDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9zaW5r KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsK KwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CisJY29uc3Qgc3Ry dWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSA9IGhkY3AtPmhkY3Bfc2hpbTsKKwlzdHJ1Y3QgaGRj cDJfZHBfZXJyYXRhX3N0cmVhbV90eXBlIHN0cmVhbV90eXBlX21zZzsKKwlpbnQgcmV0OworCisJ cmV0ID0gaGRjcDJfYXV0aGVudGljYXRpb25fa2V5X2V4Y2hhbmdlKGNvbm5lY3Rvcik7CisJaWYg KHJldCA8IDApIHsKKwkJRFJNX0RFQlVHX0tNUygiQUtFIEZhaWxlZC4gRXJyIDogJWRcbiIsIHJl dCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gaGRjcDJfbG9jYWxpdHlfY2hlY2soY29u bmVjdG9yKTsKKwlpZiAocmV0IDwgMCkgeworCQlEUk1fREVCVUdfS01TKCJMb2NhbGl0eSBDaGVj ayBmYWlsZWQuIEVyciA6ICVkXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldCA9 IGhkY3AyX3Nlc3Npb25fa2V5X2V4Y2hhbmdlKGNvbm5lY3Rvcik7CisJaWYgKHJldCA8IDApIHsK KwkJRFJNX0RFQlVHX0tNUygiU0tFIEZhaWxlZC4gRXJyIDogJWRcbiIsIHJldCk7CisJCXJldHVy biByZXQ7CisJfQorCisJaWYgKCFoZGNwLT5pc19yZXBlYXRlciAmJiBzaGltLT5jb25maWdfc3Ry ZWFtX3R5cGUpIHsKKworCQkvKgorCQkgKiBFcnJhdGEgZm9yIERQOiBBcyBTdHJlYW0gdHlwZSBp cyB1c2VkIGZvciBlbmNyeXB0aW9uLAorCQkgKiBSZWNlaXZlciBzaG91bGQgYmUgY29tbXVuaWNh dGVkIHdpdGggc3RyZWFtIHR5cGUgZm9yIHRoZQorCQkgKiBkZWNyeXB0aW9uIG9mIHRoZSBjb250 ZW50LgorCQkgKiBSZXBlYXRlciB3aWxsIGJlIGNvbW11bmljYXRlZCB3aXRoIHN0cmVhbSB0eXBl IGFzIGEKKwkJICogcGFydCBvZiBpdCdzIGF1dGggbGF0ZXIgaW4gdGltZS4KKwkJICovCisJCXN0 cmVhbV90eXBlX21zZy5tc2dfaWQgPSBIRENQXzJfMl9FUlJBVEFfRFBfU1RSRUFNX1RZUEU7CisJ CXN0cmVhbV90eXBlX21zZy5zdHJlYW1fdHlwZSA9IGhkY3AtPmNvbnRlbnRfdHlwZTsKKworCQly ZXQgPSBzaGltLT5jb25maWdfc3RyZWFtX3R5cGUoaW50ZWxfZGlnX3BvcnQsICZzdHJlYW1fdHlw ZV9tc2csCisJCQkJCSAgICAgICBzaXplb2Yoc3RyZWFtX3R5cGVfbXNnKSk7CisJCWlmIChyZXQg PCAwKQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwloZGNwLT5tZWlfZGF0YS5zdHJlYW1zWzBdLnN0 cmVhbV90eXBlID0gaGRjcC0+Y29udGVudF90eXBlOworCXJldCA9IGhkY3AyX2F1dGhlbnRpY2F0 ZV9wb3J0KGhkY3ApOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIHJl dDsKK30KLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK