From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom St Denis Subject: [PATCH 07/10] drm/amd/amdgpu: Port UVD 7.0 over to new SOC15 macros Date: Mon, 10 Apr 2017 12:19:18 -0400 Message-ID: <20170410161921.4281-8-tom.stdenis@amd.com> References: <20170410161921.4281-1-tom.stdenis@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170410161921.4281-1-tom.stdenis-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: Tom St Denis VGhpcyBwYXRjaCBhbHNvIGZpeGVzIHNvbWUgYnVncyBpbiBjb21tZW50ZWQgb3V0IGNvZGUgd2hl cmUKcGFyZW50aGVzaXMgd2VyZSBtaXNzaW5nIG9uIHZhcmlvdXMgU09DMTUgbWFjcm9zLgoKU2ln bmVkLW9mZi1ieTogVG9tIFN0IERlbmlzIDx0b20uc3RkZW5pc0BhbWQuY29tPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18wLmMgfCAyMDYgKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwMyBpbnNlcnRpb25zKCspLCAxMDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZk X3Y3XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18wLmMKaW5kZXggODE5 MTQ4YTA5OTg1Li43ZTU0MjgyOGY1NzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3V2ZF92N18wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y3 XzAuYwpAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgdWludDY0X3QgdXZkX3Y3XzBfcmluZ19nZXRf cnB0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYgPSByaW5nLT5hZGV2OwogCi0JcmV0dXJuIFJSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVW RCwgMCwgbW1VVkRfUkJDX1JCX1JQVFIpKTsKKwlyZXR1cm4gUlJFRzMyX1NPQzE1KFVWRCwgMCwg bW1VVkRfUkJDX1JCX1JQVFIpOwogfQogCiAvKioKQEAgLTY4LDkgKzY4LDkgQEAgc3RhdGljIHVp bnQ2NF90IHV2ZF92N18wX2VuY19yaW5nX2dldF9ycHRyKHN0cnVjdCBhbWRncHVfcmluZyAqcmlu ZykKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAKIAlpZiAocmlu ZyA9PSAmYWRldi0+dXZkLnJpbmdfZW5jWzBdKQotCQlyZXR1cm4gUlJFRzMyKFNPQzE1X1JFR19P RkZTRVQoVVZELCAwLCBtbVVWRF9SQl9SUFRSKSk7CisJCXJldHVybiBSUkVHMzJfU09DMTUoVVZE LCAwLCBtbVVWRF9SQl9SUFRSKTsKIAllbHNlCi0JCXJldHVybiBSUkVHMzIoU09DMTVfUkVHX09G RlNFVChVVkQsIDAsIG1tVVZEX1JCX1JQVFIyKSk7CisJCXJldHVybiBSUkVHMzJfU09DMTUoVVZE LCAwLCBtbVVWRF9SQl9SUFRSMik7CiB9CiAKIC8qKgpAQCAtODQsNyArODQsNyBAQCBzdGF0aWMg dWludDY0X3QgdXZkX3Y3XzBfcmluZ19nZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcp CiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2OwogCi0JcmV0dXJu IFJSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfUkJDX1JCX1dQVFIpKTsKKwly ZXR1cm4gUlJFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJDX1JCX1dQVFIpOwogfQogCiAvKioK QEAgLTk5LDkgKzk5LDkgQEAgc3RhdGljIHVpbnQ2NF90IHV2ZF92N18wX2VuY19yaW5nX2dldF93 cHRyKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diA9IHJpbmctPmFkZXY7CiAKIAlpZiAocmluZyA9PSAmYWRldi0+dXZkLnJpbmdfZW5jWzBdKQot CQlyZXR1cm4gUlJFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9SQl9XUFRSKSk7 CisJCXJldHVybiBSUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9XUFRSKTsKIAllbHNlCi0J CXJldHVybiBSUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX1JCX1dQVFIyKSk7 CisJCXJldHVybiBSUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9XUFRSMik7CiB9CiAKIC8q KgpAQCAtMTE1LDcgKzExNSw3IEBAIHN0YXRpYyB2b2lkIHV2ZF92N18wX3Jpbmdfc2V0X3dwdHIo c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ID0gcmluZy0+YWRldjsKIAotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRf UkJDX1JCX1dQVFIpLCBsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIpKTsKKwlXUkVHMzJfU09DMTUo VVZELCAwLCBtbVVWRF9SQkNfUkJfV1BUUiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CiB9 CiAKIC8qKgpAQCAtMTMwLDExICsxMzAsMTEgQEAgc3RhdGljIHZvaWQgdXZkX3Y3XzBfZW5jX3Jp bmdfc2V0X3dwdHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogCXN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2ID0gcmluZy0+YWRldjsKIAogCWlmIChyaW5nID09ICZhZGV2LT51dmQucmluZ19l bmNbMF0pCi0JCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfUkJfV1BUUiks Ci0JCQlsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIpKTsKKwkJV1JFRzMyX1NPQzE1KFVWRCwgMCwg bW1VVkRfUkJfV1BUUiwKKwkJCSAgICAgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CiAJZWxz ZQotCQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX1JCX1dQVFIyKSwKLQkJ CWxvd2VyXzMyX2JpdHMocmluZy0+d3B0cikpOworCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVW RF9SQl9XUFRSMiwKKwkJCSAgICAgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CiB9CiAKIC8q KgpAQCAtNTc2LDQ2ICs1NzYsNDYgQEAgc3RhdGljIHZvaWQgdXZkX3Y3XzBfbWNfcmVzdW1lKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXVpbnQzMl90IG9mZnNldDsKIAogCWlmIChhZGV2 LT5maXJtd2FyZS5sb2FkX3R5cGUgPT0gQU1ER1BVX0ZXX0xPQURfUFNQKSB7Ci0JCVdSRUczMihT T0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfTE1JX1ZDUFVfQ0FDSEVfNjRCSVRfQkFSX0xP VyksCi0JCQlsb3dlcl8zMl9iaXRzKGFkZXYtPmZpcm13YXJlLnVjb2RlW0FNREdQVV9VQ09ERV9J RF9VVkRdLm1jX2FkZHIpKTsKLQkJV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVW RF9MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfSElHSCksCi0JCQl1cHBlcl8zMl9iaXRzKGFkZXYt PmZpcm13YXJlLnVjb2RlW0FNREdQVV9VQ09ERV9JRF9VVkRdLm1jX2FkZHIpKTsKKwkJV1JFRzMy X1NPQzE1KFVWRCwgMCwgbW1VVkRfTE1JX1ZDUFVfQ0FDSEVfNjRCSVRfQkFSX0xPVywKKwkJCSAg ICAgbG93ZXJfMzJfYml0cyhhZGV2LT5maXJtd2FyZS51Y29kZVtBTURHUFVfVUNPREVfSURfVVZE XS5tY19hZGRyKSk7CisJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hF XzY0QklUX0JBUl9ISUdILAorCQkJICAgICB1cHBlcl8zMl9iaXRzKGFkZXYtPmZpcm13YXJlLnVj b2RlW0FNREdQVV9VQ09ERV9JRF9VVkRdLm1jX2FkZHIpKTsKIAkJb2Zmc2V0ID0gMDsKIAl9IGVs c2UgewotCQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NB Q0hFXzY0QklUX0JBUl9MT1cpLAotCQkJbG93ZXJfMzJfYml0cyhhZGV2LT51dmQuZ3B1X2FkZHIp KTsKLQkJV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9MTUlfVkNQVV9DQUNI RV82NEJJVF9CQVJfSElHSCksCi0JCQl1cHBlcl8zMl9iaXRzKGFkZXYtPnV2ZC5ncHVfYWRkcikp OworCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJf TE9XLAorCQkJICAgICBsb3dlcl8zMl9iaXRzKGFkZXYtPnV2ZC5ncHVfYWRkcikpOworCQlXUkVH MzJfU09DMTUoVVZELCAwLCBtbVVWRF9MTUlfVkNQVV9DQUNIRV82NEJJVF9CQVJfSElHSCwKKwkJ CSAgICAgdXBwZXJfMzJfYml0cyhhZGV2LT51dmQuZ3B1X2FkZHIpKTsKIAkJb2Zmc2V0ID0gc2l6 ZTsKIAl9CiAKLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX1ZDUFVfQ0FD SEVfT0ZGU0VUMCksCi0JCQkJQU1ER1BVX1VWRF9GSVJNV0FSRV9PRkZTRVQgPj4gMyk7Ci0JV1JF RzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkUwKSwgc2l6 ZSk7Ci0KLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NB Q0hFMV82NEJJVF9CQVJfTE9XKSwKLQkJCWxvd2VyXzMyX2JpdHMoYWRldi0+dXZkLmdwdV9hZGRy ICsgb2Zmc2V0KSk7Ci0JV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9MTUlf VkNQVV9DQUNIRTFfNjRCSVRfQkFSX0hJR0gpLAotCQkJdXBwZXJfMzJfYml0cyhhZGV2LT51dmQu Z3B1X2FkZHIgKyBvZmZzZXQpKTsKLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1t VVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUMSksICgxIDw8IDIxKSk7Ci0JV1JFRzMyKFNPQzE1X1JFR19P RkZTRVQoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkUxKSwgQU1ER1BVX1VWRF9IRUFQX1NJ WkUpOwotCi0JV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9MTUlfVkNQVV9D QUNIRTJfNjRCSVRfQkFSX0xPVyksCi0JCQlsb3dlcl8zMl9iaXRzKGFkZXYtPnV2ZC5ncHVfYWRk ciArIG9mZnNldCArIEFNREdQVV9VVkRfSEVBUF9TSVpFKSk7Ci0JV1JFRzMyKFNPQzE1X1JFR19P RkZTRVQoVVZELCAwLCBtbVVWRF9MTUlfVkNQVV9DQUNIRTJfNjRCSVRfQkFSX0hJR0gpLAotCQkJ dXBwZXJfMzJfYml0cyhhZGV2LT51dmQuZ3B1X2FkZHIgKyBvZmZzZXQgKyBBTURHUFVfVVZEX0hF QVBfU0laRSkpOwotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfVkNQVV9D QUNIRV9PRkZTRVQyKSwgKDIgPDwgMjEpKTsKLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQs IDAsIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTIpLAotCQkJQU1ER1BVX1VWRF9TVEFDS19TSVpFICsg KEFNREdQVV9VVkRfU0VTU0lPTl9TSVpFICogNDApKTsKLQotCVdSRUczMihTT0MxNV9SRUdfT0ZG U0VUKFVWRCwgMCwgbW1VVkRfVURFQ19BRERSX0NPTkZJRyksCi0JCQlhZGV2LT5nZnguY29uZmln LmdiX2FkZHJfY29uZmlnKTsKLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZE X1VERUNfREJfQUREUl9DT05GSUcpLAotCQkJYWRldi0+Z2Z4LmNvbmZpZy5nYl9hZGRyX2NvbmZp Zyk7Ci0JV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9VREVDX0RCV19BRERS X0NPTkZJRyksCi0JCQlhZGV2LT5nZnguY29uZmlnLmdiX2FkZHJfY29uZmlnKTsKLQotCVdSRUcz MihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfR1BfU0NSQVRDSDQpLCBhZGV2LT51dmQu bWF4X2hhbmRsZXMpOworCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1ZDUFVfQ0FDSEVfT0ZG U0VUMCwKKwkJICAgICBBTURHUFVfVVZEX0ZJUk1XQVJFX09GRlNFVCA+PiAzKTsKKwlXUkVHMzJf U09DMTUoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkUwLCBzaXplKTsKKworCVdSRUczMl9T T0MxNShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMV82NEJJVF9CQVJfTE9XLAorCQkgICAg IGxvd2VyXzMyX2JpdHMoYWRldi0+dXZkLmdwdV9hZGRyICsgb2Zmc2V0KSk7CisJV1JFRzMyX1NP QzE1KFVWRCwgMCwgbW1VVkRfTE1JX1ZDUFVfQ0FDSEUxXzY0QklUX0JBUl9ISUdILAorCQkgICAg IHVwcGVyXzMyX2JpdHMoYWRldi0+dXZkLmdwdV9hZGRyICsgb2Zmc2V0KSk7CisJV1JFRzMyX1NP QzE1KFVWRCwgMCwgbW1VVkRfVkNQVV9DQUNIRV9PRkZTRVQxLCAoMSA8PCAyMSkpOworCVdSRUcz Ml9TT0MxNShVVkQsIDAsIG1tVVZEX1ZDUFVfQ0FDSEVfU0laRTEsIEFNREdQVV9VVkRfSEVBUF9T SVpFKTsKKworCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMl82NEJJ VF9CQVJfTE9XLAorCQkgICAgIGxvd2VyXzMyX2JpdHMoYWRldi0+dXZkLmdwdV9hZGRyICsgb2Zm c2V0ICsgQU1ER1BVX1VWRF9IRUFQX1NJWkUpKTsKKwlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVW RF9MTUlfVkNQVV9DQUNIRTJfNjRCSVRfQkFSX0hJR0gsCisJCSAgICAgdXBwZXJfMzJfYml0cyhh ZGV2LT51dmQuZ3B1X2FkZHIgKyBvZmZzZXQgKyBBTURHUFVfVVZEX0hFQVBfU0laRSkpOworCVdS RUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1ZDUFVfQ0FDSEVfT0ZGU0VUMiwgKDIgPDwgMjEpKTsK KwlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkUyLAorCQkgICAgIEFN REdQVV9VVkRfU1RBQ0tfU0laRSArIChBTURHUFVfVVZEX1NFU1NJT05fU0laRSAqIDQwKSk7CisK KwlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9VREVDX0FERFJfQ09ORklHLAorCQkgICAgIGFk ZXYtPmdmeC5jb25maWcuZ2JfYWRkcl9jb25maWcpOworCVdSRUczMl9TT0MxNShVVkQsIDAsIG1t VVZEX1VERUNfREJfQUREUl9DT05GSUcsCisJCSAgICAgYWRldi0+Z2Z4LmNvbmZpZy5nYl9hZGRy X2NvbmZpZyk7CisJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfVURFQ19EQldfQUREUl9DT05G SUcsCisJCSAgICAgYWRldi0+Z2Z4LmNvbmZpZy5nYl9hZGRyX2NvbmZpZyk7CisKKwlXUkVHMzJf U09DMTUoVVZELCAwLCBtbVVWRF9HUF9TQ1JBVENINCwgYWRldi0+dXZkLm1heF9oYW5kbGVzKTsK IH0KIAogLyoqCkBAIC02NTgsNyArNjU4LDcgQEAgc3RhdGljIGludCB1dmRfdjdfMF9zdGFydChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAltZGVsYXkoMSk7CiAKIAkvKiBwdXQgTE1JLCBW Q1BVLCBSQkMgZXRjLi4uIGludG8gcmVzZXQgKi8KLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChV VkQsIDAsIG1tVVZEX1NPRlRfUkVTRVQpLAorCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1NP RlRfUkVTRVQsCiAJCVVWRF9TT0ZUX1JFU0VUX19MTUlfU09GVF9SRVNFVF9NQVNLIHwKIAkJVVZE X1NPRlRfUkVTRVRfX1ZDUFVfU09GVF9SRVNFVF9NQVNLIHwKIAkJVVZEX1NPRlRfUkVTRVRfX0xC U0lfU09GVF9SRVNFVF9NQVNLIHwKQEAgLTY3MCw3ICs2NzAsNyBAQCBzdGF0aWMgaW50IHV2ZF92 N18wX3N0YXJ0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCW1kZWxheSg1KTsKIAogCS8q IGluaXRpYWxpemUgVVZEIG1lbW9yeSBjb250cm9sbGVyICovCi0JV1JFRzMyKFNPQzE1X1JFR19P RkZTRVQoVVZELCAwLCBtbVVWRF9MTUlfQ1RSTCksCisJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1V VkRfTE1JX0NUUkwsCiAJCSgweDQwIDw8IFVWRF9MTUlfQ1RSTF9fV1JJVEVfQ0xFQU5fVElNRVJf X1NISUZUKSB8CiAJCVVWRF9MTUlfQ1RSTF9fV1JJVEVfQ0xFQU5fVElNRVJfRU5fTUFTSyB8CiAJ CVVWRF9MTUlfQ1RSTF9fREFUQV9DT0hFUkVOQ1lfRU5fTUFTSyB8CkBAIC02ODMsMzggKzY4Mywz OCBAQCBzdGF0aWMgaW50IHV2ZF92N18wX3N0YXJ0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQogCWxtaV9zd2FwX2NudGwgPSAweGE7CiAJbXBfc3dhcF9jbnRsID0gMDsKICNlbmRpZgotCVdS RUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfTE1JX1NXQVBfQ05UTCksIGxtaV9z d2FwX2NudGwpOwotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfTVBfU1dB UF9DTlRMKSwgbXBfc3dhcF9jbnRsKTsKKwlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9MTUlf U1dBUF9DTlRMLCBsbWlfc3dhcF9jbnRsKTsKKwlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9N UF9TV0FQX0NOVEwsIG1wX3N3YXBfY250bCk7CiAKLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChV VkQsIDAsIG1tVVZEX01QQ19TRVRfTVVYQTApLCAweDQwYzIwNDApOwotCVdSRUczMihTT0MxNV9S RUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfTVBDX1NFVF9NVVhBMSksIDB4MCk7Ci0JV1JFRzMyKFNP QzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9NUENfU0VUX01VWEIwKSwgMHg0MGMyMDQwKTsK LQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX01QQ19TRVRfTVVYQjEpLCAw eDApOwotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfTVBDX1NFVF9BTFUp LCAwKTsKLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX01QQ19TRVRfTVVY KSwgMHg4OCk7CisJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfTVBDX1NFVF9NVVhBMCwgMHg0 MGMyMDQwKTsKKwlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9NUENfU0VUX01VWEExLCAweDAp OworCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX01QQ19TRVRfTVVYQjAsIDB4NDBjMjA0MCk7 CisJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfTVBDX1NFVF9NVVhCMSwgMHgwKTsKKwlXUkVH MzJfU09DMTUoVVZELCAwLCBtbVVWRF9NUENfU0VUX0FMVSwgMCk7CisJV1JFRzMyX1NPQzE1KFVW RCwgMCwgbW1VVkRfTVBDX1NFVF9NVVgsIDB4ODgpOwogCiAJLyogdGFrZSBhbGwgc3ViYmxvY2tz IG91dCBvZiByZXNldCwgZXhjZXB0IFZDUFUgKi8KLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChV VkQsIDAsIG1tVVZEX1NPRlRfUkVTRVQpLAotCQkJVVZEX1NPRlRfUkVTRVRfX1ZDUFVfU09GVF9S RVNFVF9NQVNLKTsKKwlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9TT0ZUX1JFU0VULAorCQkg ICAgIFVWRF9TT0ZUX1JFU0VUX19WQ1BVX1NPRlRfUkVTRVRfTUFTSyk7CiAJbWRlbGF5KDUpOwog CiAJLyogZW5hYmxlIFZDUFUgY2xvY2sgKi8KLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQs IDAsIG1tVVZEX1ZDUFVfQ05UTCksCi0JCQlVVkRfVkNQVV9DTlRMX19DTEtfRU5fTUFTSyk7CisJ V1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfVkNQVV9DTlRMLAorCQkgICAgIFVWRF9WQ1BVX0NO VExfX0NMS19FTl9NQVNLKTsKIAogCS8qIGVuYWJsZSBVTUMgKi8KIAlXUkVHMzJfUChTT0MxNV9S RUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfTE1JX0NUUkwyKSwgMCwKIAkJCX5VVkRfTE1JX0NUUkwy X19TVEFMTF9BUkJfVU1DX01BU0spOwogCiAJLyogYm9vdCB1cCB0aGUgVkNQVSAqLwotCVdSRUcz MihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfU09GVF9SRVNFVCksIDApOworCVdSRUcz Ml9TT0MxNShVVkQsIDAsIG1tVVZEX1NPRlRfUkVTRVQsIDApOwogCW1kZWxheSgxMCk7CiAKIAlm b3IgKGkgPSAwOyBpIDwgMTA7ICsraSkgewogCQl1aW50MzJfdCBzdGF0dXM7CiAKIAkJZm9yIChq ID0gMDsgaiA8IDEwMDsgKytqKSB7Ci0JCQlzdGF0dXMgPSBSUkVHMzIoU09DMTVfUkVHX09GRlNF VChVVkQsIDAsIG1tVVZEX1NUQVRVUykpOworCQkJc3RhdHVzID0gUlJFRzMyX1NPQzE1KFVWRCwg MCwgbW1VVkRfU1RBVFVTKTsKIAkJCWlmIChzdGF0dXMgJiAyKQogCQkJCWJyZWFrOwogCQkJbWRl bGF5KDEwKTsKQEAgLTc1NSw0NCArNzU1LDQ0IEBAIHN0YXRpYyBpbnQgdXZkX3Y3XzBfc3RhcnQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFVW RF9SQkNfUkJfQ05UTCwgUkJfV1BUUl9QT0xMX0VOLCAwKTsKIAl0bXAgPSBSRUdfU0VUX0ZJRUxE KHRtcCwgVVZEX1JCQ19SQl9DTlRMLCBSQl9OT19VUERBVEUsIDEpOwogCXRtcCA9IFJFR19TRVRf RklFTEQodG1wLCBVVkRfUkJDX1JCX0NOVEwsIFJCX1JQVFJfV1JfRU4sIDEpOwotCVdSRUczMihT T0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfUkJDX1JCX0NOVEwpLCB0bXApOworCVdSRUcz Ml9TT0MxNShVVkQsIDAsIG1tVVZEX1JCQ19SQl9DTlRMLCB0bXApOwogCiAJLyogc2V0IHRoZSB3 cml0ZSBwb2ludGVyIGRlbGF5ICovCi0JV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBt bVVWRF9SQkNfUkJfV1BUUl9DTlRMKSwgMCk7CisJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRf UkJDX1JCX1dQVFJfQ05UTCwgMCk7CiAKIAkvKiBzZXQgdGhlIHdiIGFkZHJlc3MgKi8KLQlXUkVH MzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX1JCQ19SQl9SUFRSX0FERFIpLAotCQkJ KHVwcGVyXzMyX2JpdHMocmluZy0+Z3B1X2FkZHIpID4+IDIpKTsKKwlXUkVHMzJfU09DMTUoVVZE LCAwLCBtbVVWRF9SQkNfUkJfUlBUUl9BRERSLAorCQkgICAgICh1cHBlcl8zMl9iaXRzKHJpbmct PmdwdV9hZGRyKSA+PiAyKSk7CiAKIAkvKiBwcm9ncmFtbSB0aGUgUkJfQkFTRSBmb3IgcmluZyBi dWZmZXIgKi8KLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX0xNSV9SQkNf UkJfNjRCSVRfQkFSX0xPVyksCi0JCQlsb3dlcl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7Ci0J V1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9MTUlfUkJDX1JCXzY0QklUX0JB Ul9ISUdIKSwKLQkJCXVwcGVyXzMyX2JpdHMocmluZy0+Z3B1X2FkZHIpKTsKKwlXUkVHMzJfU09D MTUoVVZELCAwLCBtbVVWRF9MTUlfUkJDX1JCXzY0QklUX0JBUl9MT1csCisJCSAgICAgbG93ZXJf MzJfYml0cyhyaW5nLT5ncHVfYWRkcikpOworCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0xN SV9SQkNfUkJfNjRCSVRfQkFSX0hJR0gsCisJCSAgICAgdXBwZXJfMzJfYml0cyhyaW5nLT5ncHVf YWRkcikpOwogCiAJLyogSW5pdGlhbGl6ZSB0aGUgcmluZyBidWZmZXIncyByZWFkIGFuZCB3cml0 ZSBwb2ludGVycyAqLwotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfUkJD X1JCX1JQVFIpLCAwKTsKKwlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQkNfUkJfUlBUUiwg MCk7CiAKLQlyaW5nLT53cHRyID0gUlJFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVW RF9SQkNfUkJfUlBUUikpOwotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRf UkJDX1JCX1dQVFIpLAotCQkJbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CisJcmluZy0+d3B0 ciA9IFJSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCQ19SQl9SUFRSKTsKKwlXUkVHMzJfU09D MTUoVVZELCAwLCBtbVVWRF9SQkNfUkJfV1BUUiwKKwkJICAgICBsb3dlcl8zMl9iaXRzKHJpbmct PndwdHIpKTsKIAogCVdSRUczMl9QKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9SQkNf UkJfQ05UTCksIDAsCiAJCQl+VVZEX1JCQ19SQl9DTlRMX19SQl9OT19GRVRDSF9NQVNLKTsKIAog CXJpbmcgPSAmYWRldi0+dXZkLnJpbmdfZW5jWzBdOwotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VU KFVWRCwgMCwgbW1VVkRfUkJfUlBUUiksIGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cikpOwotCVdS RUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfUkJfV1BUUiksIGxvd2VyXzMyX2Jp dHMocmluZy0+d3B0cikpOwotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRf UkJfQkFTRV9MTyksIHJpbmctPmdwdV9hZGRyKTsKLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChV VkQsIDAsIG1tVVZEX1JCX0JBU0VfSEkpLCB1cHBlcl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7 Ci0JV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9SQl9TSVpFKSwgcmluZy0+ cmluZ19zaXplIC8gNCk7CisJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfUlBUUiwgbG93 ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CisJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJf V1BUUiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CisJV1JFRzMyX1NPQzE1KFVWRCwgMCwg bW1VVkRfUkJfQkFTRV9MTywgcmluZy0+Z3B1X2FkZHIpOworCVdSRUczMl9TT0MxNShVVkQsIDAs IG1tVVZEX1JCX0JBU0VfSEksIHVwcGVyXzMyX2JpdHMocmluZy0+Z3B1X2FkZHIpKTsKKwlXUkVH MzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9TSVpFLCByaW5nLT5yaW5nX3NpemUgLyA0KTsKIAog CXJpbmcgPSAmYWRldi0+dXZkLnJpbmdfZW5jWzFdOwotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VU KFVWRCwgMCwgbW1VVkRfUkJfUlBUUjIpLCBsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIpKTsKLQlX UkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX1JCX1dQVFIyKSwgbG93ZXJfMzJf Yml0cyhyaW5nLT53cHRyKSk7Ci0JV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVW RF9SQl9CQVNFX0xPMiksIHJpbmctPmdwdV9hZGRyKTsKLQlXUkVHMzIoU09DMTVfUkVHX09GRlNF VChVVkQsIDAsIG1tVVZEX1JCX0JBU0VfSEkyKSwgdXBwZXJfMzJfYml0cyhyaW5nLT5ncHVfYWRk cikpOwotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfUkJfU0laRTIpLCBy aW5nLT5yaW5nX3NpemUgLyA0KTsKKwlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9SUFRS MiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7CisJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1V VkRfUkJfV1BUUjIsIGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cikpOworCVdSRUczMl9TT0MxNShV VkQsIDAsIG1tVVZEX1JCX0JBU0VfTE8yLCByaW5nLT5ncHVfYWRkcik7CisJV1JFRzMyX1NPQzE1 KFVWRCwgMCwgbW1VVkRfUkJfQkFTRV9ISTIsIHVwcGVyXzMyX2JpdHMocmluZy0+Z3B1X2FkZHIp KTsKKwlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9TSVpFMiwgcmluZy0+cmluZ19zaXpl IC8gNCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTgwNyw3ICs4MDcsNyBAQCBzdGF0aWMgaW50IHV2 ZF92N18wX3N0YXJ0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogc3RhdGljIHZvaWQgdXZk X3Y3XzBfc3RvcChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAkvKiBmb3JjZSBSQkMg aW50byBpZGxlIHN0YXRlICovCi0JV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVW RF9SQkNfUkJfQ05UTCksIDB4MTEwMTAxMDEpOworCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZE X1JCQ19SQl9DTlRMLCAweDExMDEwMTAxKTsKIAogCS8qIFN0YWxsIFVNQyBhbmQgcmVnaXN0ZXIg YnVzIGJlZm9yZSByZXNldHRpbmcgVkNQVSAqLwogCVdSRUczMl9QKFNPQzE1X1JFR19PRkZTRVQo VVZELCAwLCBtbVVWRF9MTUlfQ1RSTDIpLApAQCAtODE2LDEyICs4MTYsMTIgQEAgc3RhdGljIHZv aWQgdXZkX3Y3XzBfc3RvcChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAltZGVsYXkoMSk7 CiAKIAkvKiBwdXQgVkNQVSBpbnRvIHJlc2V0ICovCi0JV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQo VVZELCAwLCBtbVVWRF9TT0ZUX1JFU0VUKSwKLQkJCVVWRF9TT0ZUX1JFU0VUX19WQ1BVX1NPRlRf UkVTRVRfTUFTSyk7CisJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfU09GVF9SRVNFVCwKKwkJ ICAgICBVVkRfU09GVF9SRVNFVF9fVkNQVV9TT0ZUX1JFU0VUX01BU0spOwogCW1kZWxheSg1KTsK IAogCS8qIGRpc2FibGUgVkNQVSBjbG9jayAqLwotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVW RCwgMCwgbW1VVkRfVkNQVV9DTlRMKSwgMHgwKTsKKwlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVW RF9WQ1BVX0NOVEwsIDB4MCk7CiAKIAkvKiBVbnN0YWxsIFVNQyBhbmQgcmVnaXN0ZXIgYnVzICov CiAJV1JFRzMyX1AoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX0xNSV9DVFJMMiksIDAs CkBAIC05MjYsNyArOTI2LDcgQEAgc3RhdGljIGludCB1dmRfdjdfMF9yaW5nX3Rlc3RfcmluZyhz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiAJdW5zaWduZWQgaTsKIAlpbnQgcjsKIAotCVdSRUcz MihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfQ09OVEVYVF9JRCksIDB4Q0FGRURFQUQp OworCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0NPTlRFWFRfSUQsIDB4Q0FGRURFQUQpOwog CXIgPSBhbWRncHVfcmluZ19hbGxvYyhyaW5nLCAzKTsKIAlpZiAocikgewogCQlEUk1fRVJST1Io ImFtZGdwdTogY3AgZmFpbGVkIHRvIGxvY2sgcmluZyAlZCAoJWQpLlxuIiwKQEAgLTkzOCw3ICs5 MzgsNyBAQCBzdGF0aWMgaW50IHV2ZF92N18wX3JpbmdfdGVzdF9yaW5nKHN0cnVjdCBhbWRncHVf cmluZyAqcmluZykKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCAweERFQURCRUVGKTsKIAlhbWRn cHVfcmluZ19jb21taXQocmluZyk7CiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnVzZWNfdGltZW91 dDsgaSsrKSB7Ci0JCXRtcCA9IFJSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRf Q09OVEVYVF9JRCkpOworCQl0bXAgPSBSUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9DT05URVhU X0lEKTsKIAkJaWYgKHRtcCA9PSAweERFQURCRUVGKQogCQkJYnJlYWs7CiAJCURSTV9VREVMQVko MSk7CkBAIC0xMTQ5LDcgKzExNDksNyBAQCBzdGF0aWMgYm9vbCB1dmRfdjdfMF9jaGVja19zb2Z0 X3Jlc2V0KHZvaWQgKmhhbmRsZSkKIAogCWlmIChSRUdfR0VUX0ZJRUxEKHRtcCwgU1JCTV9TVEFU VVMsIFVWRF9SUV9QRU5ESU5HKSB8fAogCSAgICBSRUdfR0VUX0ZJRUxEKHRtcCwgU1JCTV9TVEFU VVMsIFVWRF9CVVNZKSB8fAotCSAgICAoUlJFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBt bVVWRF9TVEFUVVMpICYKKwkgICAgKFJSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1NUQVRVUykg JgogCQkgICAgQU1ER1BVX1VWRF9TVEFUVVNfQlVTWV9NQVNLKSkpCiAJCXNyYm1fc29mdF9yZXNl dCA9IFJFR19TRVRfRklFTEQoc3JibV9zb2Z0X3Jlc2V0LAogCQkJCVNSQk1fU09GVF9SRVNFVCwg U09GVF9SRVNFVF9VVkQsIDEpOwpAQCAtMTI1Niw5ICsxMjU2LDkgQEAgc3RhdGljIHZvaWQgdXZk X3Y3XzBfc2V0X3N3X2Nsb2NrX2dhdGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsK IAl1aW50MzJfdCBkYXRhLCBkYXRhMSwgZGF0YTIsIHN1dmRfZmxhZ3M7CiAKLQlkYXRhID0gUlJF RzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9DR0NfQ1RSTCkpOwotCWRhdGExID0g UlJFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9TVVZEX0NHQ19HQVRFKSk7Ci0J ZGF0YTIgPSBSUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX1NVVkRfQ0dDX0NU UkwpKTsKKwlkYXRhID0gUlJFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfQ0dDX0NUUkwpOworCWRh dGExID0gUlJFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfU1VWRF9DR0NfR0FURSk7CisJZGF0YTIg PSBSUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9TVVZEX0NHQ19DVFJMKTsKIAogCWRhdGEgJj0g fihVVkRfQ0dDX0NUUkxfX0NMS19PRkZfREVMQVlfTUFTSyB8CiAJCSAgVVZEX0NHQ19DVFJMX19D TEtfR0FURV9ETFlfVElNRVJfTUFTSyk7CkBAIC0xMzAyLDE4ICsxMzAyLDE4IEBAIHN0YXRpYyB2 b2lkIHV2ZF92N18wX3NldF9zd19jbG9ja19nYXRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCiAJCQlVVkRfU1VWRF9DR0NfQ1RSTF9fU0RCX01PREVfTUFTSyk7CiAJZGF0YTEgfD0gc3V2 ZF9mbGFnczsKIAotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfQ0dDX0NU UkwpLCBkYXRhKTsKLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX0NHQ19H QVRFKSwgMCk7Ci0JV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoVVZELCAwLCBtbVVWRF9TVVZEX0NH Q19HQVRFKSwgZGF0YTEpOwotCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRf U1VWRF9DR0NfQ1RSTCksIGRhdGEyKTsKKwlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9DR0Nf Q1RSTCwgZGF0YSk7CisJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfQ0dDX0dBVEUsIDApOwor CVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1NVVkRfQ0dDX0dBVEUsIGRhdGExKTsKKwlXUkVH MzJfU09DMTUoVVZELCAwLCBtbVVWRF9TVVZEX0NHQ19DVFJMLCBkYXRhMik7CiB9CiAKIHN0YXRp YyB2b2lkIHV2ZF92N18wX3NldF9od19jbG9ja19nYXRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpCiB7CiAJdWludDMyX3QgZGF0YSwgZGF0YTEsIGNnY19mbGFncywgc3V2ZF9mbGFnczsK IAotCWRhdGEgPSBSUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX0NHQ19HQVRF KSk7Ci0JZGF0YTEgPSBSUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX1NVVkRf Q0dDX0dBVEUpKTsKKwlkYXRhID0gUlJFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfQ0dDX0dBVEUp OworCWRhdGExID0gUlJFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfU1VWRF9DR0NfR0FURSk7CiAK IAljZ2NfZmxhZ3MgPSBVVkRfQ0dDX0dBVEVfX1NZU19NQVNLIHwKIAkJVVZEX0NHQ19HQVRFX19V REVDX01BU0sgfApAQCAtMTM0NSw4ICsxMzQ1LDggQEAgc3RhdGljIHZvaWQgdXZkX3Y3XzBfc2V0 X2h3X2Nsb2NrX2dhdGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlkYXRhIHw9IGNn Y19mbGFnczsKIAlkYXRhMSB8PSBzdXZkX2ZsYWdzOwogCi0JV1JFRzMyKFNPQzE1X1JFR19PRkZT RVQoVVZELCAwLCBtbVVWRF9DR0NfR0FURSksIGRhdGEpOwotCVdSRUczMihTT0MxNV9SRUdfT0ZG U0VUKFVWRCwgMCwgbW1VVkRfU1VWRF9DR0NfR0FURSksIGRhdGExKTsKKwlXUkVHMzJfU09DMTUo VVZELCAwLCBtbVVWRF9DR0NfR0FURSwgZGF0YSk7CisJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1V VkRfU1VWRF9DR0NfR0FURSwgZGF0YTEpOwogfQogCiBzdGF0aWMgdm9pZCB1dmRfdjdfMF9zZXRf YnlwYXNzX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgZW5hYmxlKQpAQCAt MTQwNSw3ICsxNDA1LDcgQEAgc3RhdGljIGludCB1dmRfdjdfMF9zZXRfcG93ZXJnYXRpbmdfc3Rh dGUodm9pZCAqaGFuZGxlLAogCWlmICghKGFkZXYtPnBnX2ZsYWdzICYgQU1EX1BHX1NVUFBPUlRf VVZEKSkKIAkJcmV0dXJuIDA7CiAKLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1t VVZEX1BPV0VSX1NUQVRVUyksIFVWRF9QT1dFUl9TVEFUVVNfX1VWRF9QR19FTl9NQVNLKTsKKwlX UkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9QT1dFUl9TVEFUVVMsIFVWRF9QT1dFUl9TVEFUVVNf X1VWRF9QR19FTl9NQVNLKTsKIAogCWlmIChzdGF0ZSA9PSBBTURfUEdfU1RBVEVfR0FURSkgewog CQl1dmRfdjdfMF9zdG9wKGFkZXYpOwotLSAKMi4xMi4wCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2FtZC1nZngK