From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huang Rui Subject: [PATCH 03/18] drm/amdgpu: abstract system aperture initialization for gfxhub/mmhub Date: Thu, 1 Jun 2017 00:14:38 +0800 Message-ID: <1496247293-16429-4-git-send-email-ray.huang@amd.com> References: <1496247293-16429-1-git-send-email-ray.huang@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1496247293-16429-1-git-send-email-ray.huang-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, Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= Cc: Ken Wang , Huang Rui , Alvin Huan U2lnbmVkLW9mZi1ieTogSHVhbmcgUnVpIDxyYXkuaHVhbmdAYW1kLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhodWJfdjFfMC5jIHwgIDYxICsrKysrKysrKystLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3YxXzAuYyAgfCAxMDEgKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA4MSBpbnNlcnRpb25z KCspLCA4MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nZnhodWJfdjFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4aHViX3Yx XzAuYwppbmRleCBiMjE2MDdjLi41MjNhNzY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9nZnhodWJfdjFfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2dmeGh1Yl92MV8wLmMKQEAgLTY2LDMwICs2Niw1MiBAQCBzdGF0aWMgdm9pZCBnZnhodWJfdjFf MF9pbml0X2dhcnRfYXBlcnR1cmVfcmVncyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJ KHUzMikoYWRldi0+bWMuZ3R0X2VuZCA+PiA0NCkpOwogfQogCi1pbnQgZ2Z4aHViX3YxXzBfZ2Fy dF9lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCitzdGF0aWMgdm9pZCBnZnhodWJf djFfMF9pbml0X3N5c3RlbV9hcGVydHVyZV9yZWdzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQogewotCXUzMiB0bXA7Ci0JdTY0IHZhbHVlOwotCXUzMiBpOworCXVpbnQ2NF90IHZhbHVlOwor CXVpbnQzMl90IHRtcDsKIAotCS8qIFByb2dyYW0gTUMuICovCi0JZ2Z4aHViX3YxXzBfaW5pdF9w dF9yZWdzKGFkZXYpOwotCWdmeGh1Yl92MV8wX2luaXRfZ2FydF9hcGVydHVyZV9yZWdzKGFkZXYp OworCS8qIERpc2FibGUgQUdQLiAqLworCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBt bU1DX1ZNX0FHUF9CQVNFKSwgMCk7CisJV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1t TUNfVk1fQUdQX1RPUCksIDApOworCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbU1D X1ZNX0FHUF9CT1QpLCAweEZGRkZGRkZGKTsKIAorCS8qIFByb2dyYW0gdGhlIHN5c3RlbSBhcGVy dHVyZSBsb3cgbG9naWNhbCBwYWdlIG51bWJlci4gKi8KIAlXUkVHMzIoU09DMTVfUkVHX09GRlNF VChHQywgMCwgbW1NQ19WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FERFIpLAogCQlhZGV2LT5tYy52 cmFtX3N0YXJ0ID4+IDE4KTsKIAlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1NQ19W TV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSKSwKIAkJYWRldi0+bWMudnJhbV9lbmQgPj4gMTgp OwogCisJLyogU2V0IGRlZmF1bHQgcGFnZSBhZGRyZXNzLiAqLwogCXZhbHVlID0gYWRldi0+dnJh bV9zY3JhdGNoLmdwdV9hZGRyIC0gYWRldi0+bWMudnJhbV9zdGFydAogCQkrIGFkZXYtPnZtX21h bmFnZXIudnJhbV9iYXNlX29mZnNldDsKIAlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChHQywgMCwK IAkJCQltbU1DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZBVUxUX0FERFJfTFNCKSwKLQkJCQkodTMy KSh2YWx1ZSA+PiAxMikpOworCSAgICAgICAodTMyKSh2YWx1ZSA+PiAxMikpOwogCVdSRUczMihT T0MxNV9SRUdfT0ZGU0VUKEdDLCAwLAogCQkJCW1tTUNfVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFV TFRfQUREUl9NU0IpLAotCQkJCSh1MzIpKHZhbHVlID4+IDQ0KSk7CisJICAgICAgICh1MzIpKHZh bHVlID4+IDQ0KSk7CiAKKwkvKiBQcm9ncmFtICJwcm90ZWN0aW9uIGZhdWx0Ii4gKi8KKwlXUkVH MzIoU09DMTVfUkVHX09GRlNFVChHQywgMCwKKwkJCQltbVZNX0wyX1BST1RFQ1RJT05fRkFVTFRf REVGQVVMVF9BRERSX0xPMzIpLAorCSAgICAgICAodTMyKShhZGV2LT5kdW1teV9wYWdlLmFkZHIg Pj4gMTIpKTsKKwlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChHQywgMCwKKwkJCQltbVZNX0wyX1BS T1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0hJMzIpLAorCSAgICAgICAodTMyKSgodTY0KWFk ZXYtPmR1bW15X3BhZ2UuYWRkciA+PiA0NCkpOworCisJdG1wID0gUlJFRzMyKFNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMMikpOworCXRtcCA9IFJF R19TRVRfRklFTEQodG1wLCBWTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyLAorCQkJICAgIEFD VElWRV9QQUdFX01JR1JBVElPTl9QVEVfUkVBRF9SRVRSWSwgMSk7CisJV1JFRzMyKFNPQzE1X1JF R19PRkZTRVQoR0MsIDAsIG1tVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMMiksIHRtcCk7Cit9 CisKK2ludCBnZnhodWJfdjFfMF9nYXJ0X2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKK3sKKwl1MzIgdG1wOworCXUzMiBpOworCisJRFJNX0lORk8oIiVzIC0tIGluXG4iLCBfX2Z1 bmNfXyk7CiAJaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkgewogCQkvKiBNQ19WTV9GQl9MT0NB VElPTl9CQVNFL1RPUCBpcyBOVUxMIGZvciBWRiwgYmVjdWFzZSB0aGV5IGFyZSBWRiBjb3B5IHJl Z2lzdGVycyBzbwogCQl2YmlvcyBwb3N0IGRvZXNuJ3QgcHJvZ3JhbSB0aGVtLCBmb3IgU1JJT1Yg ZHJpdmVyIG5lZWQgdG8gcHJvZ3JhbSB0aGVtICovCkBAIC05OSwxMiArMTIxLDEwIEBAIGludCBn ZnhodWJfdjFfMF9nYXJ0X2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCQlh ZGV2LT5tYy52cmFtX2VuZCA+PiAyNCk7CiAJfQogCi0JLyogRGlzYWJsZSBBR1AuICovCi0JV1JF RzMyKFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tTUNfVk1fQUdQX0JBU0UpLCAwKTsKLQlXUkVH MzIoU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1NQ19WTV9BR1BfVE9QKSwgMCk7Ci0JV1JFRzMy KFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tTUNfVk1fQUdQX0JPVCksIDB4RkZGRkZGRkYpOwot CiAJLyogR0FSVCBFbmFibGUuICovCisJZ2Z4aHViX3YxXzBfaW5pdF9wdF9yZWdzKGFkZXYpOwor CWdmeGh1Yl92MV8wX2luaXRfZ2FydF9hcGVydHVyZV9yZWdzKGFkZXYpOworCWdmeGh1Yl92MV8w X2luaXRfc3lzdGVtX2FwZXJ0dXJlX3JlZ3MoYWRldik7CiAKIAkvKiBTZXR1cCBUTEIgY29udHJv bCAqLwogCXRtcCA9IFJSRUczMihTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbU1DX1ZNX01YX0wx X1RMQl9DTlRMKSk7CkBAIC0xNzYsMTkgKzE5Niw2IEBAIGludCBnZnhodWJfdjFfMF9nYXJ0X2Vu YWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCSAgICAwKTsKIAlXUkVHMzIoU09D MTVfUkVHX09GRlNFVChHQywgMCwgbW1WTV9MMl9DTlRMNCksIHRtcCk7CiAKLQlXUkVHMzIoU09D MTVfUkVHX09GRlNFVChHQywgMCwKLQkJCQltbVZNX0wyX1BST1RFQ1RJT05fRkFVTFRfREVGQVVM VF9BRERSX0xPMzIpLAotCQkodTMyKShhZGV2LT5kdW1teV9wYWdlLmFkZHIgPj4gMTIpKTsKLQlX UkVHMzIoU09DMTVfUkVHX09GRlNFVChHQywgMCwKLQkJCQltbVZNX0wyX1BST1RFQ1RJT05fRkFV TFRfREVGQVVMVF9BRERSX0hJMzIpLAotCQkodTMyKSgodTY0KWFkZXYtPmR1bW15X3BhZ2UuYWRk ciA+PiA0NCkpOwotCi0JdG1wID0gUlJFRzMyKFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tVk1f TDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMMikpOwotCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBW TV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyLAotCQkJICAgIEFDVElWRV9QQUdFX01JR1JBVElP Tl9QVEVfUkVBRF9SRVRSWSwKLQkJCSAgICAxKTsKLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyKSwgdG1wKTsKLQogCXRtcCA9IFJS RUczMihTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVZNX0NPTlRFWFQwX0NOVEwpKTsKIAl0bXAg PSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1fQ09OVEVYVDBfQ05UTCwgRU5BQkxFX0NPTlRFWFQsIDEp OwogCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTV9DT05URVhUMF9DTlRMLCBQQUdFX1RBQkxF X0RFUFRILCAwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHVi X3YxXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3YxXzAuYwppbmRleCA4 NGNkY2EyLi5kZjQ5ZjMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9t bWh1Yl92MV8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbW1odWJfdjFfMC5j CkBAIC03OSwzMiArNzksNTMgQEAgc3RhdGljIHZvaWQgbW1odWJfdjFfMF9pbml0X2dhcnRfYXBl cnR1cmVfcmVncyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJKHUzMikoYWRldi0+bWMu Z3R0X2VuZCA+PiA0NCkpOwogfQogCi1pbnQgbW1odWJfdjFfMF9nYXJ0X2VuYWJsZShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyB2b2lkIG1taHViX3YxXzBfaW5pdF9zeXN0ZW1f YXBlcnR1cmVfcmVncyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKLQl1MzIgdG1wOwot CXU2NCB2YWx1ZTsKLQl1aW50NjRfdCBhZGRyOwotCXUzMiBpOworCXVpbnQ2NF90IHZhbHVlOwor CXVpbnQzMl90IHRtcDsKIAotCS8qIFByb2dyYW0gTUMuICovCi0JbW1odWJfdjFfMF9pbml0X3B0 X3JlZ3MoYWRldik7Ci0JbW1odWJfdjFfMF9pbml0X2dhcnRfYXBlcnR1cmVfcmVncyhhZGV2KTsK KwkvKiBEaXNhYmxlIEFHUC4gKi8KKwlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChNTUhVQiwgMCwg bW1NQ19WTV9BR1BfQkFTRSksIDApOworCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKE1NSFVCLCAw LCBtbU1DX1ZNX0FHUF9UT1ApLCAwKTsKKwlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChNTUhVQiwg MCwgbW1NQ19WTV9BR1BfQk9UKSwgMHgwMEZGRkZGRik7CiAKLQkvKiBVcGRhdGUgY29uZmlndXJh dGlvbiAqLwotCURSTV9JTkZPKCIlcyAtLSBpblxuIiwgX19mdW5jX18pOworCS8qIFByb2dyYW0g dGhlIHN5c3RlbSBhcGVydHVyZSBsb3cgbG9naWNhbCBwYWdlIG51bWJlci4gKi8KIAlXUkVHMzIo U09DMTVfUkVHX09GRlNFVChNTUhVQiwgMCwgbW1NQ19WTV9TWVNURU1fQVBFUlRVUkVfTE9XX0FE RFIpLAogCQlhZGV2LT5tYy52cmFtX3N0YXJ0ID4+IDE4KTsKIAlXUkVHMzIoU09DMTVfUkVHX09G RlNFVChNTUhVQiwgMCwgbW1NQ19WTV9TWVNURU1fQVBFUlRVUkVfSElHSF9BRERSKSwKIAkJYWRl di0+bWMudnJhbV9lbmQgPj4gMTgpOworCisJLyogU2V0IGRlZmF1bHQgcGFnZSBhZGRyZXNzLiAq LwogCXZhbHVlID0gYWRldi0+dnJhbV9zY3JhdGNoLmdwdV9hZGRyIC0gYWRldi0+bWMudnJhbV9z dGFydCArCiAJCWFkZXYtPnZtX21hbmFnZXIudnJhbV9iYXNlX29mZnNldDsKIAlXUkVHMzIoU09D MTVfUkVHX09GRlNFVChNTUhVQiwgMCwKIAkJCQltbU1DX1ZNX1NZU1RFTV9BUEVSVFVSRV9ERUZB VUxUX0FERFJfTFNCKSwKLQkJCQkodTMyKSh2YWx1ZSA+PiAxMikpOworCSAgICAgICAodTMyKSh2 YWx1ZSA+PiAxMikpOwogCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKE1NSFVCLCAwLAogCQkJCW1t TUNfVk1fU1lTVEVNX0FQRVJUVVJFX0RFRkFVTFRfQUREUl9NU0IpLAotCQkJCSh1MzIpKHZhbHVl ID4+IDQ0KSk7CisJICAgICAgICh1MzIpKHZhbHVlID4+IDQ0KSk7CiAKKwkvKiBQcm9ncmFtICJw cm90ZWN0aW9uIGZhdWx0Ii4gKi8KKwlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChNTUhVQiwgMCwK KwkJCQltbVZNX0wyX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0xPMzIpLAorCSAgICAg ICAodTMyKShhZGV2LT5kdW1teV9wYWdlLmFkZHIgPj4gMTIpKTsKKwlXUkVHMzIoU09DMTVfUkVH X09GRlNFVChNTUhVQiwgMCwKKwkJCQltbVZNX0wyX1BST1RFQ1RJT05fRkFVTFRfREVGQVVMVF9B RERSX0hJMzIpLAorCSAgICAgICAodTMyKSgodTY0KWFkZXYtPmR1bW15X3BhZ2UuYWRkciA+PiA0 NCkpOworCisJdG1wID0gUlJFRzMyKFNPQzE1X1JFR19PRkZTRVQoTU1IVUIsIDAsIG1tVk1fTDJf UFJPVEVDVElPTl9GQVVMVF9DTlRMMikpOworCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTV9M Ml9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyLAorCQkJICAgIEFDVElWRV9QQUdFX01JR1JBVElPTl9Q VEVfUkVBRF9SRVRSWSwgMSk7CisJV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoTU1IVUIsIDAsIG1t Vk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMMiksIHRtcCk7Cit9CisKK2ludCBtbWh1Yl92MV8w X2dhcnRfZW5hYmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCXUzMiB0bXA7CisJ dWludDY0X3QgYWRkcjsKKwl1MzIgaTsKKworCURSTV9JTkZPKCIlcyAtLSBpblxuIiwgX19mdW5j X18pOwogCWlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpIHsKIAkJLyogTUNfVk1fRkJfTE9DQVRJ T05fQkFTRS9UT1AgaXMgTlVMTCBmb3IgVkYsIGJlY3Vhc2UgdGhleSBhcmUgVkYgY29weSByZWdp c3RlcnMgc28KIAkJdmJpb3MgcG9zdCBkb2Vzbid0IHByb2dyYW0gdGhlbSwgZm9yIFNSSU9WIGRy aXZlciBuZWVkIHRvIHByb2dyYW0gdGhlbSAqLwpAQCAtMTE0LDQwICsxMzUsMjUgQEAgaW50IG1t aHViX3YxXzBfZ2FydF9lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCQlhZGV2 LT5tYy52cmFtX2VuZCA+PiAyNCk7CiAJfQogCi0JLyogRGlzYWJsZSBBR1AuICovCi0JV1JFRzMy KFNPQzE1X1JFR19PRkZTRVQoTU1IVUIsIDAsIG1tTUNfVk1fQUdQX0JBU0UpLCAwKTsKLQlXUkVH MzIoU09DMTVfUkVHX09GRlNFVChNTUhVQiwgMCwgbW1NQ19WTV9BR1BfVE9QKSwgMCk7Ci0JV1JF RzMyKFNPQzE1X1JFR19PRkZTRVQoTU1IVUIsIDAsIG1tTUNfVk1fQUdQX0JPVCksIDB4MDBGRkZG RkYpOwotCiAJLyogR0FSVCBFbmFibGUuICovCisJbW1odWJfdjFfMF9pbml0X3B0X3JlZ3MoYWRl dik7CisJbW1odWJfdjFfMF9pbml0X2dhcnRfYXBlcnR1cmVfcmVncyhhZGV2KTsKKwltbWh1Yl92 MV8wX2luaXRfc3lzdGVtX2FwZXJ0dXJlX3JlZ3MoYWRldik7CiAKIAkvKiBTZXR1cCBUTEIgY29u dHJvbCAqLwogCXRtcCA9IFJSRUczMihTT0MxNV9SRUdfT0ZGU0VUKE1NSFVCLCAwLCBtbU1DX1ZN X01YX0wxX1RMQl9DTlRMKSk7CisKIAl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgTUNfVk1fTVhf TDFfVExCX0NOVEwsIEVOQUJMRV9MMV9UTEIsIDEpOwotCXRtcCA9IFJFR19TRVRfRklFTEQodG1w LAotCQkJCU1DX1ZNX01YX0wxX1RMQl9DTlRMLAotCQkJCVNZU1RFTV9BQ0NFU1NfTU9ERSwKLQkJ CQkzKTsKLQl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwKLQkJCQlNQ19WTV9NWF9MMV9UTEJfQ05U TCwKLQkJCQlFTkFCTEVfQURWQU5DRURfRFJJVkVSX01PREVMLAotCQkJCTEpOwotCXRtcCA9IFJF R19TRVRfRklFTEQodG1wLAotCQkJCU1DX1ZNX01YX0wxX1RMQl9DTlRMLAotCQkJCVNZU1RFTV9B UEVSVFVSRV9VTk1BUFBFRF9BQ0NFU1MsCi0JCQkJMCk7Ci0JdG1wID0gUkVHX1NFVF9GSUVMRCh0 bXAsCi0JCQkJTUNfVk1fTVhfTDFfVExCX0NOVEwsCi0JCQkJRUNPX0JJVFMsCi0JCQkJMCk7Ci0J dG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsCi0JCQkJTUNfVk1fTVhfTDFfVExCX0NOVEwsCi0JCQkJ TVRZUEUsCi0JCQkJTVRZUEVfVUMpOy8qIFhYWCBmb3IgZW11bGF0aW9uLiAqLwotCXRtcCA9IFJF R19TRVRfRklFTEQodG1wLAotCQkJCU1DX1ZNX01YX0wxX1RMQl9DTlRMLAotCQkJCUFUQ19FTiwK LQkJCQkxKTsKKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgTUNfVk1fTVhfTDFfVExCX0NOVEws IFNZU1RFTV9BQ0NFU1NfTU9ERSwgMyk7CisJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIE1DX1ZN X01YX0wxX1RMQl9DTlRMLAorCQkJICAgIEVOQUJMRV9BRFZBTkNFRF9EUklWRVJfTU9ERUwsIDEp OworCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBNQ19WTV9NWF9MMV9UTEJfQ05UTCwKKwkJCSAg ICBTWVNURU1fQVBFUlRVUkVfVU5NQVBQRURfQUNDRVNTLCAwKTsKKwl0bXAgPSBSRUdfU0VUX0ZJ RUxEKHRtcCwgTUNfVk1fTVhfTDFfVExCX0NOVEwsIEVDT19CSVRTLCAwKTsKKwl0bXAgPSBSRUdf U0VUX0ZJRUxEKHRtcCwgTUNfVk1fTVhfTDFfVExCX0NOVEwsCisJCQkgICAgTVRZUEUsIE1UWVBF X1VDKTsvKiBYWFggZm9yIGVtdWxhdGlvbi4gKi8KKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwg TUNfVk1fTVhfTDFfVExCX0NOVEwsIEFUQ19FTiwgMSk7CisKIAlXUkVHMzIoU09DMTVfUkVHX09G RlNFVChNTUhVQiwgMCwgbW1NQ19WTV9NWF9MMV9UTEJfQ05UTCksIHRtcCk7CiAKIAkvKiBTZXR1 cCBMMiBjYWNoZSAqLwpAQCAtMTkxLDE5ICsxOTcsNiBAQCBpbnQgbW1odWJfdjFfMF9nYXJ0X2Vu YWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCSAgICAwKTsKIAlXUkVHMzIoU09D MTVfUkVHX09GRlNFVChNTUhVQiwgMCwgbW1WTV9MMl9DTlRMNCksIHRtcCk7CiAKLQlXUkVHMzIo U09DMTVfUkVHX09GRlNFVChNTUhVQiwgMCwKLQkJCQltbVZNX0wyX1BST1RFQ1RJT05fRkFVTFRf REVGQVVMVF9BRERSX0xPMzIpLAotCQkodTMyKShhZGV2LT5kdW1teV9wYWdlLmFkZHIgPj4gMTIp KTsKLQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChNTUhVQiwgMCwKLQkJCQltbVZNX0wyX1BST1RF Q1RJT05fRkFVTFRfREVGQVVMVF9BRERSX0hJMzIpLAotCQkodTMyKSgodTY0KWFkZXYtPmR1bW15 X3BhZ2UuYWRkciA+PiA0NCkpOwotCi0JdG1wID0gUlJFRzMyKFNPQzE1X1JFR19PRkZTRVQoTU1I VUIsIDAsIG1tVk1fTDJfUFJPVEVDVElPTl9GQVVMVF9DTlRMMikpOwotCXRtcCA9IFJFR19TRVRf RklFTEQodG1wLCBWTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyLAotCQkJICAgIEFDVElWRV9Q QUdFX01JR1JBVElPTl9QVEVfUkVBRF9SRVRSWSwKLQkJCSAgICAxKTsKLQlXUkVHMzIoU09DMTVf UkVHX09GRlNFVChNTUhVQiwgMCwgbW1WTV9MMl9QUk9URUNUSU9OX0ZBVUxUX0NOVEwyKSwgdG1w KTsKLQogCWFkZHIgPSBTT0MxNV9SRUdfT0ZGU0VUKE1NSFVCLCAwLCBtbVZNX0NPTlRFWFQwX0NO VEwpOwogCXRtcCA9IFJSRUczMihhZGRyKTsKIAotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=