From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH 4/6] drm: scrambling support in drm layer Date: Wed, 1 Feb 2017 18:14:39 +0530 Message-ID: <1485953081-7630-5-git-send-email-shashank.sharma@intel.com> References: <1485953081-7630-1-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1485953081-7630-1-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, ville.syrjala@linux.intel.com Cc: jose.abreu@synopsys.com, =daniel.vetter@intel.com List-Id: dri-devel@lists.freedesktop.org SERNSSAyLjAgc3BlYyBtYW5kYXRlcyBzY3JhbWJsaW5nIGZvciBtb2RlcyB3aXRoIHBpeGVsIGNs b2NrIGhpZ2hlcgp0aGFuIDM0ME1oei4gVGhpcyBwYXRjaCBhZGRzIGZldyBuZXcgZnVuY3Rpb25z IGluIGRybSBsYXllciBmb3IKY29yZSBkcml2ZXJzIHRvIGVuYWJsZS9kaXNhYmxlIHNjcmFtYmxp bmcuCgpUaGlzIHBhdGNoIGFkZHM6Ci0gQSBmdW5jdGlvbiB0byBkZXRlY3Qgc2NyYW1ibGluZyBz dXBwb3J0IHBhcnNpbmcgSEYtVlNEQgotIEEgZnVuY3Rpb24gdG8gY2hlY2sgc2NyYW1ibGluZyBz dGF0dXMgcnVudGltZSB1c2luZyBTQ0RDIHJlYWQuCi0gVHdvIGZ1bmN0aW9ucyB0byBlbmFibGUv ZGlzYWJsZSBzY3JhbWJsaW5nIHVzaW5nIFNDREMgcmVhZC93cml0ZS4KLSBGZXcgbmV3IGJvb2xz IHRvIHJlZmxlY3Qgc2NyYW1ibGluZyBzdXBwb3J0IGFuZCBzdGF0dXMuCgpTaWduZWQtb2ZmLWJ5 OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2RybV9lZGlkLmMgIHwgMTMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystCiBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggfCAgMjQgKysrKysr KysKIGluY2x1ZGUvZHJtL2RybV9lZGlkLmggICAgICB8ICAgNiArLQogMyBmaWxlcyBjaGFuZ2Vk LCAxNTkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2VkaWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCmluZGV4IDM3 OTAyZTUuLmYwZDk0MGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk ZSA8ZHJtL2RybV9lZGlkLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+CiAjaW5jbHVk ZSA8ZHJtL2RybV9kaXNwbGF5aWQuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3NjZGNfaGVscGVyLmg+ CiAKICNkZWZpbmUgdmVyc2lvbl9ncmVhdGVyKGVkaWQsIG1haiwgbWluKSBcCiAJKCgoZWRpZCkt PnZlcnNpb24gPiAobWFqKSkgfHwgXApAQCAtMzgxNCw2ICszODE1LDEzMiBAQCBzdGF0aWMgdm9p ZCBkcm1fZGV0ZWN0X2hkbWlfc2NkYyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAog CX0KIH0KIAorc3RhdGljIHZvaWQgZHJtX2RldGVjdF9oZG1pX3NjcmFtYmxpbmcoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkgY29uc3QgdTggKmhmX3ZzZGIpCit7CisJc3Ry dWN0IGRybV9kaXNwbGF5X2luZm8gKmRpc3BsYXkgPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87 CisJc3RydWN0IGRybV9oZG1pX2luZm8gKmhkbWkgPSAmZGlzcGxheS0+aGRtaV9pbmZvOworCisJ LyoKKwkgKiBBbGwgSERNSSAyLjAgbW9uaXRvcnMgbXVzdCBzdXBwb3J0IHNjcmFtYmxpbmcgYXQg cmF0ZXMgPiAzNDBNLgorCSAqIEFuZCBhcyBwZXIgdGhlIHNwZWMsIHRocmVlIGZhY3RvcnMgY29u ZmlybSB0aGlzOgorCSAqICogQXZhaWxhYmlsaXR5IG9mIGEgSEYtVlNEQiBibG9jayBpbiBFRElE IChjaGVjaykKKwkgKiAqIE5vbiB6ZXJvIE1heF9UTURTX0NoYXJfUmF0ZSBmaWxlZCBpbiBIRi1W U0RCCisJICogKiBTQ0RDIHN1cHBvcnQgYXZhaWxhYmxlCisJICogTGV0cyBjaGVjayBpdCBvdXQu CisJICovCisKKwlpZiAoaGZfdnNkYls1XSkgeworCQlkaXNwbGF5LT5tYXhfdG1kc19jbG9jayA9 IGhmX3ZzZGJbNV0gKiA1MDAwOworCQlEUk1fREVCVUdfS01TKCJIRi1WU0RCOiBtYXggVE1EUyBj bG9jayAlZCBrSHpcbiIsCisJCQlkaXNwbGF5LT5tYXhfdG1kc19jbG9jayk7CisKKwkJaWYgKGhk bWktPnNjZGNfc3VwcG9ydGVkKSB7CisJCQloZG1pLT5zY3JfaW5mby5zdXBwb3J0ZWQgPSB0cnVl OworCisJCQkvKiBGZXcgc2lua3Mgc3VwcG9ydCBzY3JhbWJsaW5nIGZvciBjbG9rcyA8IDM0ME0g Ki8KKwkJCWlmICgoaGZfdnNkYls2XSAmIDB4OCkpCisJCQkJaGRtaS0+c2NyX2luZm8ubG93X2Ns b2NrcyA9IHRydWU7CisJCX0KKwl9Cit9CisKKy8qKgorICogZHJtX2NoZWNrX3NjcmFtYmxpbmdf c3RhdHVzIC0gd2hhdCBpcyBzdGF0dXMgb2Ygc2NyYW1ibGluZz8KKyAqIEBhZGFwdGVyOiBpMmMg YWRhcHRlciBmb3IgU0NEQyBjaGFubmVsCisgKgorICogUmVhZCB0aGUgc2NyYW1ibGVyIHN0YXR1 cyBvdmVyIFNDREMgY2hhbm5lbCwgYW5kIGNoZWNrIHRoZQorICogc2NyYW1ibGluZyBzdGF0dXMu CisgKgorICogUmV0dXJuOiBUcnVlIGlmIHRoZSBzY3JhbWJsaW5nIGlzIGVuYWJsZWQsIGZhbHNl IG90aGVyd2lzZS4KKyAqLworCitib29sIGRybV9jaGVja19zY3JhbWJsaW5nX3N0YXR1cyhzdHJ1 Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIpCit7CisJdTggc3RhdHVzOworCisJaWYgKGRybV9zY2Rj X3JlYWRiKGFkYXB0ZXIsIFNDRENfU0NSQU1CTEVSX1NUQVRVUywgJnN0YXR1cykgPCAwKSB7CisJ CURSTV9FUlJPUigiRmFpbGVkIHRvIHJlYWQgc2NyYW1ibGluZyBzdGF0dXNcbiIpOworCQlyZXR1 cm4gZmFsc2U7CisJfQorCisJc3RhdHVzICY9IFNDRENfU0NSQU1CTElOR19TVEFUVVM7CisJcmV0 dXJuIHN0YXR1cyAhPSAwOworfQorCisvKioKKyAqIGRybV9lbmFibGVfc2NyYW1ibGluZyAtIGVu YWJsZSBzY3JhbWJsaW5nCisgKiBAY29ubmVjdG9yOiB0YXJnZXQgZHJtX2Nvbm5lY3RvcgorICog QGFkYXB0ZXI6IGkyYyBhZGFwdGVyIGZvciBTQ0RDIGNoYW5uZWwKKyAqIEBmb3JjZTogZW5hYmxl IHNjcmFtYmxpbmcsIGV2ZW4gaWYgaXRzIGFscmVhZHkgZW5hYmxlZAorICoKKyAqIFdyaXRlIHRo ZSBUTURTIGNvbmZpZyBvdmVyIFNDREMgY2hhbm5lbCwgYW5kIGVuYWJsZSBzY3JhbWJsaW5nCisg KiBSZXR1cm46IFRydWUgaWYgc2NyYW1ibGluZyBpcyBzdWNjZXNzZnVsbHkgZW5hYmxlZCwgZmFs c2Ugb3RoZXJ3aXNlLgorICovCisKK2Jvb2wgZHJtX2VuYWJsZV9zY3JhbWJsaW5nKHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRl ciwgYm9vbCBmb3JjZSkKK3sKKwl1OCBjb25maWc7CisJc3RydWN0IGRybV9oZG1pX2luZm8gKmhk bWlfaW5mbyA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZG1pX2luZm87CisKKwlpZiAoaGRt aV9pbmZvLT5zY3JfaW5mby5zdGF0dXMgJiYgIWZvcmNlKSB7CisJCURSTV9ERUJVR19LTVMoIlNj cmFtYmxpbmcgYWxyZWFkeSBlbmFibGVkXG4iKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJaWYg KGRybV9zY2RjX3JlYWRiKGFkYXB0ZXIsIFNDRENfVE1EU19DT05GSUcsICZjb25maWcpIDwgMCkg eworCQlEUk1fRVJST1IoIkZhaWxlZCB0byByZWFkIHRtZHMgY29uZmlnXG4iKTsKKwkJcmV0dXJu IGZhbHNlOworCX0KKworCWNvbmZpZyB8PSBTQ0RDX1NDUkFNQkxJTkdfRU5BQkxFOworCisJaWYg KGRybV9zY2RjX3dyaXRlYihhZGFwdGVyLCBTQ0RDX1RNRFNfQ09ORklHLCBjb25maWcpIDwgMCkg eworCQlEUk1fRVJST1IoIkZhaWxlZCB0byBlbmFibGUgc2NyYW1ibGluZywgd3JpdGUgZXJyb3Jc biIpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJaGRtaV9pbmZvLT5zY3JfaW5mby5zdGF0dXMg PSBkcm1fY2hlY2tfc2NyYW1ibGluZ19zdGF0dXMoYWRhcHRlcik7CisJcmV0dXJuIGhkbWlfaW5m by0+c2NyX2luZm8uc3RhdHVzOworfQorCisvKioKKyAqIGRybV9kaXNhYmxlX3NjcmFtYmxpbmcg LSBkaXNhYmxlIHNjcmFtYmxpbmcKKyAqIEBjb25uZWN0b3I6IHRhcmdldCBkcm1fY29ubmVjdG9y CisgKiBAYWRhcHRlcjogaTJjIGFkYXB0ZXIgZm9yIFNDREMgY2hhbm5lbAorICogQGZvcmNlOiBk aXNhYmxlIHNjcmFtYmxpbmcsIGV2ZW4gaWYgaXRzIGFscmVhZHkgZGlzYWJsZWQKKyAqCisgKiBX cml0ZSB0aGUgVE1EUyBjb25maWcgb3ZlciBTQ0RDIGNoYW5uZWwsIGFuZCBkaXNhYmxlIHNjcmFt YmxpbmcKKyAqIFJldHVybjogVHJ1ZSBpZiBzY3JhbWJsaW5nIGlzIHN1Y2Nlc3NmdWxseSBkaXNh YmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitib29sIGRybV9kaXNhYmxlX3NjcmFtYmxpbmco c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkJc3RydWN0IGkyY19hZGFwdGVy ICphZGFwdGVyLCBib29sIGZvcmNlKQoreworCXU4IGNvbmZpZzsKKwlzdHJ1Y3QgZHJtX2hkbWlf aW5mbyAqaGRtaV9pbmZvID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhkbWlfaW5mbzsKKwor CWlmICghaGRtaV9pbmZvLT5zY3JfaW5mby5zdGF0dXMgJiYgIWZvcmNlKSB7CisJCURSTV9ERUJV R19LTVMoIlNjcmFtYmxpbmcgYWxyZWFkeSBkaXNhYmxlZFxuIik7CisJCXJldHVybiB0cnVlOwor CX0KKworCWlmIChkcm1fc2NkY19yZWFkYihhZGFwdGVyLCBTQ0RDX1RNRFNfQ09ORklHLCAmY29u ZmlnKSA8IDApIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVhZCB0bWRzIGNvbmZpZ1xuIik7 CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwljb25maWcgJj0gflNDRENfU0NSQU1CTElOR19FTkFC TEU7CisKKwlpZiAoZHJtX3NjZGNfd3JpdGViKGFkYXB0ZXIsIFNDRENfVE1EU19DT05GSUcsIGNv bmZpZykgPCAwKSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIGVuYWJsZSBzY3JhbWJsaW5nLCB3 cml0ZSBlcnJvclxuIik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwloZG1pX2luZm8tPnNjcl9p bmZvLnN0YXR1cyA9IGRybV9jaGVja19zY3JhbWJsaW5nX3N0YXR1cyhhZGFwdGVyKTsKKwlyZXR1 cm4gIWhkbWlfaW5mby0+c2NyX2luZm8uc3RhdHVzOworfQorCiBzdGF0aWMgdm9pZCBkcm1fcGFy c2VfaGRtaV9kZWVwX2NvbG9yX2luZm8oc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK IAkJCQkJICAgY29uc3QgdTggKmhkbWkpCiB7CkBAIC0zOTI4LDggKzQwNTUsMTAgQEAgc3RhdGlj IHZvaWQgZHJtX3BhcnNlX2NlYV9leHQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK IAogCQlpZiAoY2VhX2RiX2lzX2hkbWlfdnNkYihkYikpCiAJCQlkcm1fcGFyc2VfaGRtaV92c2Ri X3ZpZGVvKGNvbm5lY3RvciwgZGIpOwotCQlpZiAoY2VhX2RiX2lzX2hkbWlfZm9ydW1fdnNkYihk YikpCisJCWlmIChjZWFfZGJfaXNfaGRtaV9mb3J1bV92c2RiKGRiKSkgewogCQkJZHJtX2RldGVj dF9oZG1pX3NjZGMoY29ubmVjdG9yLCBkYik7CisJCQlkcm1fZGV0ZWN0X2hkbWlfc2NyYW1ibGlu Zyhjb25uZWN0b3IsIGRiKTsKKwkJfQogCX0KIH0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCmluZGV4IDI0MzU1 OTguLmI5NzM1YmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAorKysg Yi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKQEAgLTkwLDYgKzkwLDI2IEBAIGVudW0gc3Vi cGl4ZWxfb3JkZXIgewogCiB9OwogCisKKy8qKgorICogc3RydWN0IHNjcmFtYmxpbmc6IHNpbmsn cyBzY3JhbWJsaW5nIHN1cHBvcnQuCisgKi8KK3N0cnVjdCBzY3JhbWJsaW5nIHsKKwkvKioKKwkg KiBAc3VwcG9ydGVkOiBzY3JhbWJsaW5nIHN1cHBvcnRlZCBmb3IgcmF0ZXMgPiAzNDBNaHouCisJ ICovCisJYm9vbCBzdXBwb3J0ZWQ7CisJLyoqCisJICogQGxvd19jbG9ja3M6IHNjcmFtYmxpbmcg c3VwcG9ydGVkIGZvciByYXRlcyA8PSAzNDBNaHouCisJICovCisJYm9vbCBsb3dfY2xvY2tzOwor CS8qKgorCSAqIEBzdGF0dXM6IHNjcmFtYmxpbmcgZW5hYmxlZC9kaXNhYmxlZCA/CisJICovCisJ Ym9vbCBzdGF0dXM7Cit9OworCisKIC8qKgogICogc3RydWN0IGRybV9oZG1pX2luZm8gLSBydW50 aW1lIGRhdGEgYWJvdXQgdGhlIGNvbm5lY3RlZCBzaW5rCiAgKgpAQCAtMTA4LDYgKzEyOCwxMCBA QCBzdHJ1Y3QgZHJtX2hkbWlfaW5mbyB7CiAJICogQHNjZGNfcnI6IHNpbmsgaXMgY2FwYWJsZSBv ZiBnZW5lcmF0aW5nIHNjZGMgcmVhZCByZXF1ZXN0LgogCSAqLwogCWJvb2wgc2NkY19ycjsKKwkv KioKKwkgKiBzY3JfaW5mbzogc2luaydzIHNjcmFtYmxpbmcgc3VwcG9ydCBhbmQgY2FwYWJpbGl0 aWVzLgorCSAqLworCXN0cnVjdCBzY3JhbWJsaW5nIHNjcl9pbmZvOwogfTsKIAogLyoqCmRpZmYg LS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5oIGIvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaApp bmRleCA0M2ZiMGFjLi5kMjRjOTc0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5o CisrKyBiL2luY2x1ZGUvZHJtL2RybV9lZGlkLmgKQEAgLTQ2Miw1ICs0NjIsOSBAQCB2b2lkIGRy bV9lZGlkX2dldF9tb25pdG9yX25hbWUoc3RydWN0IGVkaWQgKmVkaWQsIGNoYXIgKm5hbWUsCiBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZHJtX21vZGVfZmluZF9kbXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkJCQkJICAgaW50IGhzaXplLCBpbnQgdnNpemUsIGludCBmcmVzaCwKIAkJCQkJ ICAgYm9vbCByYik7Ci0KK2Jvb2wgZHJtX2VuYWJsZV9zY3JhbWJsaW5nKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCisJCQkJc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLCBib29s IGZvcmNlKTsKK2Jvb2wgZHJtX2Rpc2FibGVfc2NyYW1ibGluZyhzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAorCQkJCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwgYm9vbCBmb3Jj ZSk7Citib29sIGRybV9jaGVja19zY3JhbWJsaW5nX3N0YXR1cyhzdHJ1Y3QgaTJjX2FkYXB0ZXIg KmFkYXB0ZXIpOwogI2VuZGlmIC8qIF9fRFJNX0VESURfSF9fICovCi0tIAoxLjkuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==