From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bhawanpreet Lakha Subject: [PATCH 08/20] drm/amdgpu: psp HDCP init Date: Tue, 10 Sep 2019 15:05:42 -0400 Message-ID: <20190910190554.1539-9-Bhawanpreet.Lakha@amd.com> References: <20190829162253.10195-10-Bhawanpreet.Lakha@amd.com> <20190910190554.1539-1-Bhawanpreet.Lakha@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190910190554.1539-1-Bhawanpreet.Lakha-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Bhawanpreet Lakha VGhpcyBwYXRjaCBhZGRzCi1Mb2FkaW5nIHRoZSBmaXJtd2FyZQotVGhlIGZ1bmN0aW9ucyBhbmQg ZGVmaW5pdGlvbnMgZm9yIGNvbW11bmljYXRpb24gd2l0aCB0aGUgZmlybXdhcmUKCnYyOiBGaXgg Zm9ybWF0dGluZwoKU2lnbmVkLW9mZi1ieTogQmhhd2FucHJlZXQgTGFraGEgPEJoYXdhbnByZWV0 Lkxha2hhQGFtZC5jb20+ClJldmlld2VkLWJ5OiBIYXJyeSBXZW50bGFuZCA8aGFycnkud2VudGxh bmRAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHNwLmMg ICB8IDE4OSArKysrKysrKysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfcHNwLmggICB8ICAxNyArKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3Vjb2RlLmggfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YxMF8w LmMgICAgfCAgMzMgKysrLQogNCBmaWxlcyBjaGFuZ2VkLCAyNDAgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfcHNwLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHNwLmMKaW5kZXgg ZjkwYTBjZDEyODI3Li5lNzVkMTY0ZWE4NWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9wc3AuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfcHNwLmMKQEAgLTc2Niw2ICs3NjYsMTgxIEBAIHN0YXRpYyBpbnQgcHNwX3Jhc19pbml0 aWFsaXplKHN0cnVjdCBwc3BfY29udGV4dCAqcHNwKQogfQogLy8gcmFzIGVuZAogCisvLyBIRENQ IHN0YXJ0CitzdGF0aWMgdm9pZCBwc3BfcHJlcF9oZGNwX3RhX2xvYWRfY21kX2J1ZihzdHJ1Y3Qg cHNwX2dmeF9jbWRfcmVzcCAqY21kLAorCQkJCQkgIHVpbnQ2NF90IGhkY3BfdGFfbWMsCisJCQkJ CSAgdWludDY0X3QgaGRjcF9tY19zaGFyZWQsCisJCQkJCSAgdWludDMyX3QgaGRjcF90YV9zaXpl LAorCQkJCQkgIHVpbnQzMl90IHNoYXJlZF9zaXplKQoreworCWNtZC0+Y21kX2lkID0gR0ZYX0NN RF9JRF9MT0FEX1RBOworCWNtZC0+Y21kLmNtZF9sb2FkX3RhLmFwcF9waHlfYWRkcl9sbyA9IGxv d2VyXzMyX2JpdHMoaGRjcF90YV9tYyk7CisJY21kLT5jbWQuY21kX2xvYWRfdGEuYXBwX3BoeV9h ZGRyX2hpID0gdXBwZXJfMzJfYml0cyhoZGNwX3RhX21jKTsKKwljbWQtPmNtZC5jbWRfbG9hZF90 YS5hcHBfbGVuID0gaGRjcF90YV9zaXplOworCisJY21kLT5jbWQuY21kX2xvYWRfdGEuY21kX2J1 Zl9waHlfYWRkcl9sbyA9CisJCWxvd2VyXzMyX2JpdHMoaGRjcF9tY19zaGFyZWQpOworCWNtZC0+ Y21kLmNtZF9sb2FkX3RhLmNtZF9idWZfcGh5X2FkZHJfaGkgPQorCQl1cHBlcl8zMl9iaXRzKGhk Y3BfbWNfc2hhcmVkKTsKKwljbWQtPmNtZC5jbWRfbG9hZF90YS5jbWRfYnVmX2xlbiA9IHNoYXJl ZF9zaXplOworfQorCitzdGF0aWMgaW50IHBzcF9oZGNwX2luaXRfc2hhcmVkX2J1ZihzdHJ1Y3Qg cHNwX2NvbnRleHQgKnBzcCkKK3sKKwlpbnQgcmV0OworCisJLyoKKwkgKiBBbGxvY2F0ZSAxNmsg bWVtb3J5IGFsaWduZWQgdG8gNGsgZnJvbSBGcmFtZSBCdWZmZXIgKGxvY2FsCisJICogcGh5c2lj YWwpIGZvciBoZGNwIHRhIDwtPiBEcml2ZXIKKwkgKi8KKwlyZXQgPSBhbWRncHVfYm9fY3JlYXRl X2tlcm5lbChwc3AtPmFkZXYsIFBTUF9IRENQX1NIQVJFRF9NRU1fU0laRSwKKwkJCQkgICAgICBQ QUdFX1NJWkUsIEFNREdQVV9HRU1fRE9NQUlOX1ZSQU0sCisJCQkJICAgICAgJnBzcC0+aGRjcF9j b250ZXh0LmhkY3Bfc2hhcmVkX2JvLAorCQkJCSAgICAgICZwc3AtPmhkY3BfY29udGV4dC5oZGNw X3NoYXJlZF9tY19hZGRyLAorCQkJCSAgICAgICZwc3AtPmhkY3BfY29udGV4dC5oZGNwX3NoYXJl ZF9idWYpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBwc3BfaGRjcF9sb2FkKHN0 cnVjdCBwc3BfY29udGV4dCAqcHNwKQoreworCWludCByZXQ7CisJc3RydWN0IHBzcF9nZnhfY21k X3Jlc3AgKmNtZDsKKworCS8qCisJICogVE9ETzogYnlwYXNzIHRoZSBsb2FkaW5nIGluIHNyaW92 IGZvciBub3cKKwkgKi8KKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKHBzcC0+YWRldikpCisJCXJldHVy biAwOworCisJY21kID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHBzcF9nZnhfY21kX3Jlc3ApLCBH RlBfS0VSTkVMKTsKKwlpZiAoIWNtZCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltZW1zZXQocHNw LT5md19wcmlfYnVmLCAwLCBQU1BfMV9NRUcpOworCW1lbWNweShwc3AtPmZ3X3ByaV9idWYsIHBz cC0+dGFfaGRjcF9zdGFydF9hZGRyLAorCSAgICAgICBwc3AtPnRhX2hkY3BfdWNvZGVfc2l6ZSk7 CisKKwlwc3BfcHJlcF9oZGNwX3RhX2xvYWRfY21kX2J1ZihjbWQsIHBzcC0+ZndfcHJpX21jX2Fk ZHIsCisJCQkJICAgICAgcHNwLT5oZGNwX2NvbnRleHQuaGRjcF9zaGFyZWRfbWNfYWRkciwKKwkJ CQkgICAgICBwc3AtPnRhX2hkY3BfdWNvZGVfc2l6ZSwKKwkJCQkgICAgICBQU1BfSERDUF9TSEFS RURfTUVNX1NJWkUpOworCisJcmV0ID0gcHNwX2NtZF9zdWJtaXRfYnVmKHBzcCwgTlVMTCwgY21k LCBwc3AtPmZlbmNlX2J1Zl9tY19hZGRyKTsKKworCWlmICghcmV0KSB7CisJCXBzcC0+aGRjcF9j b250ZXh0LmhkY3BfaW5pdGlhbGl6ZWQgPSAxOworCQlwc3AtPmhkY3BfY29udGV4dC5zZXNzaW9u X2lkID0gY21kLT5yZXNwLnNlc3Npb25faWQ7CisJfQorCisJa2ZyZWUoY21kKTsKKworCXJldHVy biByZXQ7Cit9CitzdGF0aWMgaW50IHBzcF9oZGNwX2luaXRpYWxpemUoc3RydWN0IHBzcF9jb250 ZXh0ICpwc3ApCit7CisJaW50IHJldDsKKworCWlmICghcHNwLT5oZGNwX2NvbnRleHQuaGRjcF9p bml0aWFsaXplZCkgeworCQlyZXQgPSBwc3BfaGRjcF9pbml0X3NoYXJlZF9idWYocHNwKTsKKwkJ aWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gcHNwX2hkY3BfbG9hZChwc3Ap OworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKK30KK3N0YXRpYyB2b2lk IHBzcF9wcmVwX2hkY3BfdGFfdW5sb2FkX2NtZF9idWYoc3RydWN0IHBzcF9nZnhfY21kX3Jlc3Ag KmNtZCwKKwkJCQkJICAgIHVpbnQzMl90IGhkY3Bfc2Vzc2lvbl9pZCkKK3sKKwljbWQtPmNtZF9p ZCA9IEdGWF9DTURfSURfVU5MT0FEX1RBOworCWNtZC0+Y21kLmNtZF91bmxvYWRfdGEuc2Vzc2lv bl9pZCA9IGhkY3Bfc2Vzc2lvbl9pZDsKK30KKworc3RhdGljIGludCBwc3BfaGRjcF91bmxvYWQo c3RydWN0IHBzcF9jb250ZXh0ICpwc3ApCit7CisJaW50IHJldDsKKwlzdHJ1Y3QgcHNwX2dmeF9j bWRfcmVzcCAqY21kOworCisJLyoKKwkgKiBUT0RPOiBieXBhc3MgdGhlIHVubG9hZGluZyBpbiBz cmlvdiBmb3Igbm93CisJICovCisJaWYgKGFtZGdwdV9zcmlvdl92Zihwc3AtPmFkZXYpKQorCQly ZXR1cm4gMDsKKworCWNtZCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBwc3BfZ2Z4X2NtZF9yZXNw KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjbWQpCisJCXJldHVybiAtRU5PTUVNOworCisJcHNwX3By ZXBfaGRjcF90YV91bmxvYWRfY21kX2J1ZihjbWQsIHBzcC0+aGRjcF9jb250ZXh0LnNlc3Npb25f aWQpOworCisJcmV0ID0gcHNwX2NtZF9zdWJtaXRfYnVmKHBzcCwgTlVMTCwgY21kLCBwc3AtPmZl bmNlX2J1Zl9tY19hZGRyKTsKKworCWtmcmVlKGNtZCk7CisKKwlyZXR1cm4gcmV0OworfQorCitz dGF0aWMgdm9pZCBwc3BfcHJlcF9oZGNwX3RhX2ludm9rZV9jbWRfYnVmKHN0cnVjdCBwc3BfZ2Z4 X2NtZF9yZXNwICpjbWQsCisJCQkJCSAgICB1aW50MzJfdCB0YV9jbWRfaWQsCisJCQkJCSAgICB1 aW50MzJfdCBoZGNwX3Nlc3Npb25faWQpCit7CisJY21kLT5jbWRfaWQgPSBHRlhfQ01EX0lEX0lO Vk9LRV9DTUQ7CisJY21kLT5jbWQuY21kX2ludm9rZV9jbWQuc2Vzc2lvbl9pZCA9IGhkY3Bfc2Vz c2lvbl9pZDsKKwljbWQtPmNtZC5jbWRfaW52b2tlX2NtZC50YV9jbWRfaWQgPSB0YV9jbWRfaWQ7 CisJLyogTm90ZTogY21kX2ludm9rZV9jbWQuYnVmIGlzIG5vdCB1c2VkIGZvciBub3cgKi8KK30K KworaW50IHBzcF9oZGNwX2ludm9rZShzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCwgdWludDMyX3Qg dGFfY21kX2lkKQoreworCWludCByZXQ7CisJc3RydWN0IHBzcF9nZnhfY21kX3Jlc3AgKmNtZDsK KworCS8qCisJICogVE9ETzogYnlwYXNzIHRoZSBsb2FkaW5nIGluIHNyaW92IGZvciBub3cKKwkg Ki8KKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKHBzcC0+YWRldikpCisJCXJldHVybiAwOworCisJY21k ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHBzcF9nZnhfY21kX3Jlc3ApLCBHRlBfS0VSTkVMKTsK KwlpZiAoIWNtZCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlwc3BfcHJlcF9oZGNwX3RhX2ludm9r ZV9jbWRfYnVmKGNtZCwgdGFfY21kX2lkLAorCQkJCQlwc3AtPmhkY3BfY29udGV4dC5zZXNzaW9u X2lkKTsKKworCXJldCA9IHBzcF9jbWRfc3VibWl0X2J1Zihwc3AsIE5VTEwsIGNtZCwgcHNwLT5m ZW5jZV9idWZfbWNfYWRkcik7CisKKwlrZnJlZShjbWQpOworCisJcmV0dXJuIHJldDsKK30KKwor c3RhdGljIGludCBwc3BfaGRjcF90ZXJtaW5hdGUoc3RydWN0IHBzcF9jb250ZXh0ICpwc3ApCit7 CisJaW50IHJldDsKKworCWlmICghcHNwLT5oZGNwX2NvbnRleHQuaGRjcF9pbml0aWFsaXplZCkK KwkJcmV0dXJuIDA7CisKKwlyZXQgPSBwc3BfaGRjcF91bmxvYWQocHNwKTsKKwlpZiAocmV0KQor CQlyZXR1cm4gcmV0OworCisJcHNwLT5oZGNwX2NvbnRleHQuaGRjcF9pbml0aWFsaXplZCA9IDA7 CisKKwkvKiBmcmVlIGhkY3Agc2hhcmVkIG1lbW9yeSAqLworCWFtZGdwdV9ib19mcmVlX2tlcm5l bCgmcHNwLT5oZGNwX2NvbnRleHQuaGRjcF9zaGFyZWRfYm8sCisJCQkgICAgICAmcHNwLT5oZGNw X2NvbnRleHQuaGRjcF9zaGFyZWRfbWNfYWRkciwKKwkJCSAgICAgICZwc3AtPmhkY3BfY29udGV4 dC5oZGNwX3NoYXJlZF9idWYpOworCisJcmV0dXJuIDA7Cit9CisvLyBIRENQIGVuZAorCiBzdGF0 aWMgaW50IHBzcF9od19zdGFydChzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCkKIHsKIAlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IHBzcC0+YWRldjsKQEAgLTgzOSw2ICsxMDE0LDExIEBAIHN0 YXRpYyBpbnQgcHNwX2h3X3N0YXJ0KHN0cnVjdCBwc3BfY29udGV4dCAqcHNwKQogCQlpZiAocmV0 KQogCQkJZGV2X2Vycihwc3AtPmFkZXYtPmRldiwKIAkJCQkJIlJBUzogRmFpbGVkIHRvIGluaXRp YWxpemUgUkFTXG4iKTsKKworCQlyZXQgPSBwc3BfaGRjcF9pbml0aWFsaXplKHBzcCk7CisJCWlm IChyZXQpCisJCQlkZXZfZXJyKHBzcC0+YWRldi0+ZGV2LAorCQkJCSJIRENQOiBGYWlsZWQgdG8g aW5pdGlhbGl6ZSBIRENQXG4iKTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTEyMDQsOCArMTM4NCwx MCBAQCBzdGF0aWMgaW50IHBzcF9od19maW5pKHZvaWQgKmhhbmRsZSkKIAkgICAgcHNwLT54Z21p X2NvbnRleHQuaW5pdGlhbGl6ZWQgPT0gMSkKICAgICAgICAgICAgICAgICBwc3BfeGdtaV90ZXJt aW5hdGUocHNwKTsKIAotCWlmIChwc3AtPmFkZXYtPnBzcC50YV9mdykKKwlpZiAocHNwLT5hZGV2 LT5wc3AudGFfZncpIHsKIAkJcHNwX3Jhc190ZXJtaW5hdGUocHNwKTsKKwkJcHNwX2hkY3BfdGVy bWluYXRlKHBzcCk7CisJfQogCiAJcHNwX3JpbmdfZGVzdHJveShwc3AsIFBTUF9SSU5HX1RZUEVf X0tNKTsKIApAQCAtMTI0Nyw2ICsxNDI5LDExIEBAIHN0YXRpYyBpbnQgcHNwX3N1c3BlbmQodm9p ZCAqaGFuZGxlKQogCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gdGVybWluYXRlIHJhcyB0YVxuIik7 CiAJCQlyZXR1cm4gcmV0OwogCQl9CisJCXJldCA9IHBzcF9oZGNwX3Rlcm1pbmF0ZShwc3ApOwor CQlpZiAocmV0KSB7CisJCQlEUk1fRVJST1IoIkZhaWxlZCB0byB0ZXJtaW5hdGUgaGRjcCB0YVxu Iik7CisJCQlyZXR1cm4gcmV0OworCQl9CiAJfQogCiAJcmV0ID0gcHNwX3Jpbmdfc3RvcChwc3As IFBTUF9SSU5HX1RZUEVfX0tNKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9wc3AuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wc3Au aAppbmRleCBiYzA5NDdmNmJjOGEuLjY3ODhlMTYwMTk0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BzcC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9wc3AuaApAQCAtMzcsNiArMzcsOCBAQAogI2RlZmluZSBQU1BfUkFTX1NI QVJFRF9NRU1fU0laRSAweDQwMDAKICNkZWZpbmUgUFNQXzFfTUVHCQkweDEwMDAwMAogI2RlZmlu ZSBQU1BfVE1SX1NJWkUJMHg0MDAwMDAKKyNkZWZpbmUgUFNQX0hEQ1BfU0hBUkVEX01FTV9TSVpF CTB4NDAwMAorI2RlZmluZSBQU1BfU0hBUkVEX01FTV9TSVpFCQkweDQwMDAKIAogc3RydWN0IHBz cF9jb250ZXh0Owogc3RydWN0IHBzcF94Z21pX25vZGVfaW5mbzsKQEAgLTE0Miw2ICsxNDQsMTQg QEAgc3RydWN0IHBzcF9yYXNfY29udGV4dCB7CiAJc3RydWN0IGFtZGdwdV9yYXMJKnJhczsKIH07 CiAKK3N0cnVjdCBwc3BfaGRjcF9jb250ZXh0IHsKKwlib29sCQkJaGRjcF9pbml0aWFsaXplZDsK Kwl1aW50MzJfdAkJc2Vzc2lvbl9pZDsKKwlzdHJ1Y3QgYW1kZ3B1X2JvCSpoZGNwX3NoYXJlZF9i bzsKKwl1aW50NjRfdAkJaGRjcF9zaGFyZWRfbWNfYWRkcjsKKwl2b2lkCQkJKmhkY3Bfc2hhcmVk X2J1ZjsKK307CisKIHN0cnVjdCBwc3BfY29udGV4dAogewogCXN0cnVjdCBhbWRncHVfZGV2aWNl ICAgICAgICAgICAgKmFkZXY7CkBAIC0yMDYsOCArMjE2LDE0IEBAIHN0cnVjdCBwc3BfY29udGV4 dAogCXVpbnQzMl90CQkJdGFfcmFzX3Vjb2RlX3ZlcnNpb247CiAJdWludDMyX3QJCQl0YV9yYXNf dWNvZGVfc2l6ZTsKIAl1aW50OF90CQkJCSp0YV9yYXNfc3RhcnRfYWRkcjsKKworCXVpbnQzMl90 CQkJdGFfaGRjcF91Y29kZV92ZXJzaW9uOworCXVpbnQzMl90CQkJdGFfaGRjcF91Y29kZV9zaXpl OworCXVpbnQ4X3QJCQkJKnRhX2hkY3Bfc3RhcnRfYWRkcjsKKwogCXN0cnVjdCBwc3BfeGdtaV9j b250ZXh0CQl4Z21pX2NvbnRleHQ7CiAJc3RydWN0IHBzcF9yYXNfY29udGV4dAkJcmFzOworCXN0 cnVjdCBwc3BfaGRjcF9jb250ZXh0IAloZGNwX2NvbnRleHQ7CiAJc3RydWN0IG11dGV4CQkJbXV0 ZXg7CiB9OwogCkBAIC0yNzksNiArMjk1LDcgQEAgaW50IHBzcF94Z21pX2ludm9rZShzdHJ1Y3Qg cHNwX2NvbnRleHQgKnBzcCwgdWludDMyX3QgdGFfY21kX2lkKTsKIGludCBwc3BfcmFzX2ludm9r ZShzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCwgdWludDMyX3QgdGFfY21kX2lkKTsKIGludCBwc3Bf cmFzX2VuYWJsZV9mZWF0dXJlcyhzdHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCwKIAkJdW5pb24gdGFf cmFzX2NtZF9pbnB1dCAqaW5mbywgYm9vbCBlbmFibGUpOworaW50IHBzcF9oZGNwX2ludm9rZShz dHJ1Y3QgcHNwX2NvbnRleHQgKnBzcCwgdWludDMyX3QgdGFfY21kX2lkKTsKIAogaW50IHBzcF9y bGNfYXV0b2xvYWRfc3RhcnQoc3RydWN0IHBzcF9jb250ZXh0ICpwc3ApOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdWNvZGUuaCBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91Y29kZS5oCmluZGV4IGIzNGYwMGQ0MjA0OS4uYzJiNTkz YWI3NDk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdWNv ZGUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdWNvZGUuaApAQCAt MTA4LDYgKzEwOCw5IEBAIHN0cnVjdCB0YV9maXJtd2FyZV9oZWFkZXJfdjFfMCB7CiAJdWludDMy X3QgdGFfcmFzX3Vjb2RlX3ZlcnNpb247CiAJdWludDMyX3QgdGFfcmFzX29mZnNldF9ieXRlczsK IAl1aW50MzJfdCB0YV9yYXNfc2l6ZV9ieXRlczsKKwl1aW50MzJfdCB0YV9oZGNwX3Vjb2RlX3Zl cnNpb247CisJdWludDMyX3QgdGFfaGRjcF9vZmZzZXRfYnl0ZXM7CisJdWludDMyX3QgdGFfaGRj cF9zaXplX2J5dGVzOwogfTsKIAogLyogdmVyc2lvbl9tYWpvcj0xLCB2ZXJzaW9uX21pbm9yPTAg Ki8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3BzcF92MTBfMC5jIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvcHNwX3YxMF8wLmMKaW5kZXggZTVmZmY2YjMwMTM3 Li5hNDNkN2JhZmU5NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Bz cF92MTBfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3BzcF92MTBfMC5jCkBA IC00NSw3ICs0NSw3IEBAIHN0YXRpYyBpbnQgcHNwX3YxMF8wX2luaXRfbWljcm9jb2RlKHN0cnVj dCBwc3BfY29udGV4dCAqcHNwKQogCWNoYXIgZndfbmFtZVszMF07CiAJaW50IGVyciA9IDA7CiAJ Y29uc3Qgc3RydWN0IHBzcF9maXJtd2FyZV9oZWFkZXJfdjFfMCAqaGRyOwotCisJY29uc3Qgc3Ry dWN0IHRhX2Zpcm13YXJlX2hlYWRlcl92MV8wICp0YV9oZHI7CiAJRFJNX0RFQlVHKCJcbiIpOwog CiAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsKQEAgLTc2LDcgKzc2LDM4IEBAIHN0YXRpYyBp bnQgcHNwX3YxMF8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBwc3BfY29udGV4dCAqcHNwKQogCWFk ZXYtPnBzcC5hc2Rfc3RhcnRfYWRkciA9ICh1aW50OF90ICopaGRyICsKIAkJCQlsZTMyX3RvX2Nw dShoZHItPmhlYWRlci51Y29kZV9hcnJheV9vZmZzZXRfYnl0ZXMpOwogCisJc25wcmludGYoZndf bmFtZSwgc2l6ZW9mKGZ3X25hbWUpLCAiYW1kZ3B1LyVzX3RhLmJpbiIsIGNoaXBfbmFtZSk7CisJ ZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmYWRldi0+cHNwLnRhX2Z3LCBmd19uYW1lLCBhZGV2LT5k ZXYpOworCWlmIChlcnIpIHsKKwkJcmVsZWFzZV9maXJtd2FyZShhZGV2LT5wc3AudGFfZncpOwor CQlhZGV2LT5wc3AudGFfZncgPSBOVUxMOworCQlkZXZfaW5mbyhhZGV2LT5kZXYsCisJCQkgInBz cCB2MTAuMDogRmFpbGVkIHRvIGxvYWQgZmlybXdhcmUgXCIlc1wiXG4iLAorCQkJIGZ3X25hbWUp OworCX0gZWxzZSB7CisJCWVyciA9IGFtZGdwdV91Y29kZV92YWxpZGF0ZShhZGV2LT5wc3AudGFf ZncpOworCQlpZiAoZXJyKQorCQkJZ290byBvdXQyOworCisJCXRhX2hkciA9IChjb25zdCBzdHJ1 Y3QgdGFfZmlybXdhcmVfaGVhZGVyX3YxXzAgKikKKwkJCQkgYWRldi0+cHNwLnRhX2Z3LT5kYXRh OworCQlhZGV2LT5wc3AudGFfaGRjcF91Y29kZV92ZXJzaW9uID0KKwkJCWxlMzJfdG9fY3B1KHRh X2hkci0+dGFfaGRjcF91Y29kZV92ZXJzaW9uKTsKKwkJYWRldi0+cHNwLnRhX2hkY3BfdWNvZGVf c2l6ZSA9CisJCQlsZTMyX3RvX2NwdSh0YV9oZHItPnRhX2hkY3Bfc2l6ZV9ieXRlcyk7CisJCWFk ZXYtPnBzcC50YV9oZGNwX3N0YXJ0X2FkZHIgPQorCQkJKHVpbnQ4X3QgKil0YV9oZHIgKworCQkJ bGUzMl90b19jcHUodGFfaGRyLT5oZWFkZXIudWNvZGVfYXJyYXlfb2Zmc2V0X2J5dGVzKTsKKwor CQlhZGV2LT5wc3AudGFfZndfdmVyc2lvbiA9CisJCQlsZTMyX3RvX2NwdSh0YV9oZHItPmhlYWRl ci51Y29kZV92ZXJzaW9uKTsKKwl9CisKIAlyZXR1cm4gMDsKKworb3V0MjoKKwlyZWxlYXNlX2Zp cm13YXJlKGFkZXYtPnBzcC50YV9mdyk7CisJYWRldi0+cHNwLnRhX2Z3ID0gTlVMTDsKIG91dDoK IAlpZiAoZXJyKSB7CiAJCWRldl9lcnIoYWRldi0+ZGV2LAotLSAKMi4xNy4xCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlz dAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZng=