From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v2 25/42] drm/i915: Implement HDCP2.2 receiver authentication Date: Thu, 8 Mar 2018 17:28:52 +0530 Message-ID: <1520510349-8385-26-git-send-email-ramalingam.c@intel.com> References: <1520510349-8385-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: <1520510349-8385-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, seanpaul@chromium.org, chris@chris-wilson.co.uk, tomas.winkler@intel.com, jani.nikula@linux.intel.com Cc: uma.shankar@intel.com, rodrigo.vivi@intel.com List-Id: dri-devel@lists.freedesktop.org SW1wbGVtZW50cyBIRENQMi4yIGF1dGhlbnRpY2F0aW9uIGZvciBoZGNwMi4yIHJlY2VpdmVycywg d2l0aApmb2xsb3dpbmcgc3RlcHM6CglBdXRoZW50aWNhdGlvbiBhbmQgS2V5IGVuY2hhbmdlIChB S0UpLgoJTG9jYWxpdHkgQ2hlY2sgKExDKS4KCVNlc3Npb24gS2V5IEV4Y2hhbmdlKFNLRSkuCglE UCBFcnJhdGEgZm9yIHN0cmVhbSB0eXBlIGNvbmZ1Z3VyYXRpb24gZm9yIHJlY2VpdmVycy4KCkF0 IEFLRSwgdGhlIEhEQ1AgUmVjZWl2ZXLigJlzIHB1YmxpYyBrZXkgY2VydGlmaWNhdGUgaXMgdmVy aWZpZWQgYnkgdGhlCkhEQ1AgVHJhbnNtaXR0ZXIuIEEgTWFzdGVyIEtleSBrIG0gaXMgZXhjaGFu Z2VkLgoKQXQgTEMsIHRoZSBIRENQIFRyYW5zbWl0dGVyIGVuZm9yY2VzIGxvY2FsaXR5IG9uIHRo ZSBjb250ZW50IGJ5CnJlcXVpcmluZyB0aGF0IHRoZSBSb3VuZCBUcmlwIFRpbWUgKFJUVCkgYmV0 d2VlbiBhIHBhaXIgb2YgbWVzc2FnZXMKaXMgbm90IG1vcmUgdGhhbiAyMCBtcy4KCkF0IFNLRSwg VGhlIEhEQ1AgVHJhbnNtaXR0ZXIgZXhjaGFuZ2VzIFNlc3Npb24gS2V5IGtzIHdpdGgKdGhlIEhE Q1AgUmVjZWl2ZXIuCgpJbiBEUCBIRENQMi4yIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24gbG9n aWNzIHVzZSB0aGUgc3RyZWFtIHR5cGUgYXMKb25lIG9mIHRoZSBwYXJhbWV0ZXIuIFNvIEJlZm9y ZSBlbmFibGluZyB0aGUgRW5jcnlwdGlvbiBEUCBIRENQMi4yCnJlY2VpdmVyIG5lZWRzIHRvIGJl IGNvbW11bmljYXRlZCB3aXRoIHN0cmVhbSB0eXBlLiBUaGlzIGlzIGFkZGVkIHRvCnNwZWMgYXMg RVJSQVRBLgoKVGhpcyBnZW5lcmljIGltcGxlbWVudGF0aW9uIGlzIGNvbXBsZXRlIG9ubHkgd2l0 aCB0aGUgaGRjcDJfc2hpbQpkZWZpbmVkLgoKdjI6CiAgUmViYXNlZC4KClNpZ25lZC1vZmYtYnk6 IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oZGNwLmMgfCAxODQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxODQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hkY3AuYwppbmRleCA4ZTRkMjgxNjEzZjAuLjZmYjlmZDRkNmUxYyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkY3AuYwpAQCAtMTgsNiArMTgsNyBAQAogI2RlZmluZSBHRVRfTUVJX0RE SV9JTkRFWChwb3J0KQkJKCgocG9ydCkgPT0gUE9SVF9BKSA/IERESV9BIDogXAogCQkJCQkgKGVu dW0gcGh5c2ljYWxfcG9ydCkgKHBvcnQpKQogI2RlZmluZSBLRVlfTE9BRF9UUklFUwk1CisjZGVm aW5lIEhEQ1AyX0xDX1JFVFJZX0NOVAkJMwogCiBzdGF0aWMgaW50IGludGVsX2hkY3BfcG9sbF9r c3ZfZmlmbyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKIAkJCQkg ICAgY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSkKQEAgLTEwMTEsMyArMTAxMiwx ODYgQEAgc3RhdGljIGlubGluZSBpbnQgaGRjcDJfZGVhdXRoZW50aWNhdGVfcG9ydChzdHJ1Y3Qg aW50ZWxfaGRjcCAqaGRjcCkKIHsKIAlyZXR1cm4gaGRjcDJfY2xvc2VfbWVpX3Nlc3Npb24oaGRj cCk7CiB9CisKK3N0YXRpYyBpbnQgaGRjcDJfYXV0aGVudGljYXRpb25fa2V5X2V4Y2hhbmdlKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKKwlz dHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CisJdW5pb24geworCQlz dHJ1Y3QgaGRjcDJfYWtlX2luaXQgYWtlX2luaXQ7CisJCXN0cnVjdCBoZGNwMl9ha2Vfc2VuZF9j ZXJ0IHNlbmRfY2VydDsKKwkJc3RydWN0IGhkY3AyX2FrZV9ub19zdG9yZWRfa20gbm9fc3RvcmVk X2ttOworCQlzdHJ1Y3QgaGRjcDJfYWtlX3NlbmRfaHByaW1lIHNlbmRfaHByaW1lOworCQlzdHJ1 Y3QgaGRjcDJfYWtlX3NlbmRfcGFpcmluZ19pbmZvIHBhaXJpbmdfaW5mbzsKKwl9IG1zZ3M7CisJ Y29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSA9IGhkY3AtPmhkY3Bfc2hpbTsKKwlz aXplX3Qgc2l6ZTsKKwlpbnQgcmV0OworCisJLyogSW5pdCBmb3Igc2VxX251bSAqLworCWhkY3At PnNlcV9udW1fdiA9IDA7CisJaGRjcC0+c2VxX251bV9tID0gMDsKKworCXJldCA9IGhkY3AyX3By ZXBhcmVfYWtlX2luaXQoaGRjcCwgJm1zZ3MuYWtlX2luaXQpOworCWlmIChyZXQgPCAwKQorCQly ZXR1cm4gcmV0OworCisJcmV0ID0gc2hpbS0+d3JpdGVfMl8yX21zZyhpbnRlbF9kaWdfcG9ydCwg Jm1zZ3MuYWtlX2luaXQsCisJCQkJICBzaXplb2YobXNncy5ha2VfaW5pdCkpOworCWlmIChyZXQg PCAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gc2hpbS0+cmVhZF8yXzJfbXNnKGludGVsX2Rp Z19wb3J0LCBIRENQXzJfMl9BS0VfU0VORF9DRVJULAorCQkJCSAmbXNncy5zZW5kX2NlcnQsIHNp emVvZihtc2dzLnNlbmRfY2VydCkpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJ aWYgKG1zZ3Muc2VuZF9jZXJ0LnJ4X2NhcHNbMF0gIT0gSERDUF8yXzJfUlhfQ0FQU19WRVJTSU9O X1ZBTCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwloZGNwLT5pc19yZXBlYXRlciA9IEhEQ1BfMl8y X1JYX1JFUEVBVEVSKG1zZ3Muc2VuZF9jZXJ0LnJ4X2NhcHNbMl0pOworCisJLyoKKwkgKiBIZXJl IG1zZ3Mubm9fc3RvcmVkX2ttIHdpbGwgaG9sZCBtc2dzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGtt CisJICogc3RvcmVkIGFsc28uCisJICovCisJcmV0ID0gaGRjcDJfdmVyaWZ5X3J4X2NlcnRfcHJl cGFyZV9rbShoZGNwLCAmbXNncy5zZW5kX2NlcnQsCisJCQkJCSAgICAgICZoZGNwLT5pc19wYWly ZWQsCisJCQkJCSAgICAgICZtc2dzLm5vX3N0b3JlZF9rbSwgJnNpemUpOworCWlmIChyZXQgPCAw KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gc2hpbS0+d3JpdGVfMl8yX21zZyhpbnRlbF9kaWdf cG9ydCwgJm1zZ3Mubm9fc3RvcmVkX2ttLCBzaXplKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJu IHJldDsKKworCXJldCA9IHNoaW0tPnJlYWRfMl8yX21zZyhpbnRlbF9kaWdfcG9ydCwgSERDUF8y XzJfQUtFX1NFTkRfSFBSSU1FLAorCQkJCSAmbXNncy5zZW5kX2hwcmltZSwgc2l6ZW9mKG1zZ3Mu c2VuZF9ocHJpbWUpKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IGhk Y3AyX3ZlcmlmeV9ocHJpbWUoaGRjcCwgJm1zZ3Muc2VuZF9ocHJpbWUpOworCWlmIChyZXQgPCAw KQorCQlyZXR1cm4gcmV0OworCisJaWYgKCFoZGNwLT5pc19wYWlyZWQpIHsKKwkJLyogUGFpcmlu ZyBpcyByZXF1aXJlZCAqLworCQlyZXQgPSBzaGltLT5yZWFkXzJfMl9tc2coaW50ZWxfZGlnX3Bv cnQsCisJCQkJCSBIRENQXzJfMl9BS0VfU0VORF9QQVJJTkdfSU5GTywKKwkJCQkJICZtc2dzLnBh aXJpbmdfaW5mbywKKwkJCQkJIHNpemVvZihtc2dzLnBhaXJpbmdfaW5mbykpOworCQlpZiAocmV0 IDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJcmV0ID0gaGRjcDJfc3RvcmVfcGFyaW5nX2luZm8o aGRjcCwgJm1zZ3MucGFpcmluZ19pbmZvKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0 OworCQloZGNwLT5pc19wYWlyZWQgPSB0cnVlOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGludCBoZGNwMl9sb2NhbGl0eV9jaGVjayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IpCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBjb25u X3RvX2RpZ19wb3J0KGNvbm5lY3Rvcik7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29u bmVjdG9yLT5oZGNwOworCXVuaW9uIHsKKwkJc3RydWN0IGhkY3AyX2xjX2luaXQgbGNfaW5pdDsK KwkJc3RydWN0IGhkY3AyX2xjX3NlbmRfbHByaW1lIHNlbmRfbHByaW1lOworCX0gbXNnczsKKwlj b25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpzaGltID0gaGRjcC0+aGRjcF9zaGltOworCWlu dCB0cmllcyA9IEhEQ1AyX0xDX1JFVFJZX0NOVCwgcmV0LCBpOworCisJZm9yIChpID0gMDsgaSA8 IHRyaWVzOyBpKyspIHsKKwkJcmV0ID0gaGRjcDJfcHJlcGFyZV9sY19pbml0KGhkY3AsICZtc2dz LmxjX2luaXQpOworCQlpZiAocmV0IDwgMCkKKwkJCWNvbnRpbnVlOworCisJCXJldCA9IHNoaW0t PndyaXRlXzJfMl9tc2coaW50ZWxfZGlnX3BvcnQsICZtc2dzLmxjX2luaXQsCisJCQkJICAgICAg c2l6ZW9mKG1zZ3MubGNfaW5pdCkpOworCQlpZiAocmV0IDwgMCkKKwkJCWNvbnRpbnVlOworCisJ CXJldCA9IHNoaW0tPnJlYWRfMl8yX21zZyhpbnRlbF9kaWdfcG9ydCwKKwkJCQkJIEhEQ1BfMl8y X0xDX1NFTkRfTFBSSU1FLAorCQkJCQkgJm1zZ3Muc2VuZF9scHJpbWUsCisJCQkJCSBzaXplb2Yo bXNncy5zZW5kX2xwcmltZSkpOworCQlpZiAocmV0IDwgMCkKKwkJCWNvbnRpbnVlOworCisJCXJl dCA9IGhkY3AyX3ZlcmlmeV9scHJpbWUoaGRjcCwgJm1zZ3Muc2VuZF9scHJpbWUpOworCQlpZiAo IXJldCkKKwkJCWJyZWFrOworCX0KKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGhkY3Ay X3Nlc3Npb25fa2V5X2V4Y2hhbmdlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikK K3sKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGNvbm5fdG9f ZGlnX3BvcnQoY29ubmVjdG9yKTsKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0 b3ItPmhkY3A7CisJc3RydWN0IGhkY3AyX3NrZV9zZW5kX2VrcyBzZW5kX2VrczsKKwlpbnQgcmV0 OworCisJcmV0ID0gaGRjcDJfcHJlcGFyZV9za2V5KGhkY3AsICZzZW5kX2Vrcyk7CisJaWYgKHJl dCA8IDApCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBoZGNwLT5oZGNwX3NoaW0tPndyaXRlXzJf Ml9tc2coaW50ZWxfZGlnX3BvcnQsICZzZW5kX2VrcywKKwkJCQkJICAgICBzaXplb2Yoc2VuZF9l a3MpKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiAwOworfQorCitz dGF0aWMgaW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9zaW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9y dCA9IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRj cCA9ICZjb25uZWN0b3ItPmhkY3A7CisJY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hp bSA9IGhkY3AtPmhkY3Bfc2hpbTsKKwlzdHJ1Y3QgaGRjcDJfZHBfZXJyYXRhX3N0cmVhbV90eXBl IHN0cmVhbV90eXBlX21zZzsKKwlpbnQgcmV0OworCisJcmV0ID0gaGRjcDJfYXV0aGVudGljYXRp b25fa2V5X2V4Y2hhbmdlKGNvbm5lY3Rvcik7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0RFQlVH X0tNUygiQUtFIEZhaWxlZC4gRXJyIDogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQor CisJcmV0ID0gaGRjcDJfbG9jYWxpdHlfY2hlY2soY29ubmVjdG9yKTsKKwlpZiAocmV0IDwgMCkg eworCQlEUk1fREVCVUdfS01TKCJMb2NhbGl0eSBDaGVjayBmYWlsZWQuIEVyciA6ICVkXG4iLCBy ZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldCA9IGhkY3AyX3Nlc3Npb25fa2V5X2V4Y2hh bmdlKGNvbm5lY3Rvcik7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0RFQlVHX0tNUygiU0tFIEZh aWxlZC4gRXJyIDogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJaWYgKCFoZGNw LT5pc19yZXBlYXRlciAmJiBzaGltLT5jb25maWdfc3RyZWFtX3R5cGUpIHsKKworCQkvKiBFcnJh dGEgZm9yIERQOiBBcyBTdHJlYW0gdHlwZSBpcyB1c2VkIGZvciBlbmNyeXB0aW9uLAorCQkgKiBS ZWNlaXZlciBzaG91bGQgYmUgY29tbXVuaWNhdGVkIHdpdGggc3RyZWFtIHR5cGUgZm9yIHRoZQor CQkgKiBkZWNyeXB0aW9uIG9mIHRoZSBjb250ZW50LgorCQkgKiBSZXBlYXRlciB3aWxsIGJlIGNv bW11bmljYXRlZCB3aXRoIHN0cmVhbSB0eXBlIGFzIGEKKwkJICogcGFydCBvZiBpdCdzIGF1dGgg aW4gbGF0ZXIgaW4gdGltZQorCQkgKi8KKwkJc3RyZWFtX3R5cGVfbXNnLm1zZ19pZCA9IEhEQ1Bf Ml8yX0VSUkFUQV9EUF9TVFJFQU1fVFlQRTsKKwkJc3RyZWFtX3R5cGVfbXNnLnN0cmVhbV90eXBl ID0gaGRjcC0+Y29udGVudF90eXBlOworCisJCXJldCA9IHNoaW0tPmNvbmZpZ19zdHJlYW1fdHlw ZShpbnRlbF9kaWdfcG9ydCwgJnN0cmVhbV90eXBlX21zZywKKwkJCQkJICAgICAgIHNpemVvZihz dHJlYW1fdHlwZV9tc2cpKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCX0KKwor CWhkY3AtPm1laV9kYXRhLnN0cmVhbXNbMF0uc3RyZWFtX3R5cGUgPSBoZGNwLT5jb250ZW50X3R5 cGU7CisJcmV0ID0gaGRjcDJfYXV0aGVudGljYXRlX3BvcnQoaGRjcCk7CisJaWYgKHJldCA8IDAp CisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gcmV0OworfQotLSAKMi43LjQKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=