From: Piotr Redlewski Subject: [RFC 3/7] drm/amdgpu/gmc6: don't use vram location programmed by the vbios Date: Wed, 8 Nov 2017 23:38:35 +0100 Message-ID: <20171108223839.579-4-predlewski@gmail.com> References: <20171108223839.579-1-predlewski@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171108223839.579-1-predlewski-Re5JQEeQqe8AvxtiuMwx3w@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 T24gU0kgY2hpcHMsIGZiIGxvY2F0aW9uIHByb2dyYW1tZWQgYnkgdGhlIHZiaW9zICg0MC1iaXQg YWRkcmVzcykgaXMgb3V0IG9mCnJlYWNoIG9mIHRoZSBVVkQgbWVtb3J5IGNvbnRyb2xsZXIsIHdo aWNoIHN1cHBvcnRzIG9ubHkgMzItYml0cy4KClRoaXMgcGFydGlhbGx5IHJldmVydHMgZm9sbG93 aW5nIGNvbW1pdHM6CmNvbW1pdCBlNGY2YjM5ZThiY2QgKCJkcm0vYW1kZ3B1OiByZW1vdmUgKl9t Y19hY2Nlc3MgZnJvbSBkaXNwbGF5IGZ1bmNzIikKY29tbWl0IDcxMDg2YTNlODQ3MCAoImRybS9h bWRncHUvZ21jNjogZHJvcCBmYiBsb2NhdGlvbiBwcm9ncmFtbWluZyIpCmNvbW1pdCBiYTNhNWI4 M2RkOWIgKCJkcm0vYW1kZ3B1L2dtYzY6IHVzZSB0aGUgdnJhbSBsb2NhdGlvbiBwcm9ncmFtbWVk IGJ5IHRoZSB2YmlvcyIpCgpTaWduZWQtb2ZmLWJ5OiBQaW90ciBSZWRsZXdza2kgPHByZWRsZXdz a2lAZ21haWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tb2Rl LmggfCAgIDYgKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMgICAgfCAx MTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZGNlX3Y2XzAuaCAgICB8ICAgNSArKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z21jX3Y2XzAuYyAgICB8ICA0MCArKysrKysrKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxNTUgaW5z ZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9tb2RlLmgKaW5kZXggNDA2OWEzYjJmNTVmLi4wYmQ5MTZiZDRjMDggMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tb2RlLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaApAQCAtMjYyLDYgKzI2MiwxMiBAQCBzdHJ1 Y3QgYW1kZ3B1X2F1ZGlvIHsKIAlpbnQgbnVtX3BpbnM7CiB9OwogCitzdHJ1Y3QgYW1kZ3B1X21v ZGVfbWNfc2F2ZSB7CisJdTMyIHZnYV9yZW5kZXJfY29udHJvbDsKKwl1MzIgdmdhX2hkcF9jb250 cm9sOworCWJvb2wgY3J0Y19lbmFibGVkW0FNREdQVV9NQVhfQ1JUQ1NdOworfTsKKwogc3RydWN0 IGFtZGdwdV9kaXNwbGF5X2Z1bmNzIHsKIAkvKiBkaXNwbGF5IHdhdGVybWFya3MgKi8KIAl2b2lk ICgqYmFuZHdpZHRoX3VwZGF0ZSkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y2XzAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMKaW5kZXggYmQyYzRmNzI3ZGY2Li5iOTU0OTgwNmFi YzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y2XzAuYwpAQCAtMzkzLDggKzM5Mywx MTggQEAgc3RhdGljIHUzMiBkY2VfdjZfMF9ocGRfZ2V0X2dwaW9fcmVnKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogCXJldHVybiBtbURDX0dQSU9fSFBEX0E7CiB9CiAKLXN0YXRpYyB2b2lk IGRjZV92Nl8wX3NldF92Z2FfcmVuZGVyX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LAotCQkJCQkgIGJvb2wgcmVuZGVyKQorc3RhdGljIHUzMiBldmVyZ3JlZW5fZ2V0X3ZibGFua19j b3VudGVyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBpbnQgY3J0YykKK3sKKwlpZiAoY3J0 YyA+PSBhZGV2LT5tb2RlX2luZm8ubnVtX2NydGMpCisJCXJldHVybiAwOworCWVsc2UKKwkJcmV0 dXJuIFJSRUczMihtbUNSVENfU1RBVFVTX0ZSQU1FX0NPVU5UICsgY3J0Y19vZmZzZXRzW2NydGNd KTsKK30KKwordm9pZCBkY2VfdjZfMF9zdG9wX21jX2FjY2VzcyhzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwKKwkJCSAgICAgc3RydWN0IGFtZGdwdV9tb2RlX21jX3NhdmUgKnNhdmUpCit7CisJ dTMyIGNydGNfZW5hYmxlZCwgdG1wLCBmcmFtZV9jb3VudDsKKwlpbnQgaSwgajsKKworCXNhdmUt PnZnYV9yZW5kZXJfY29udHJvbCA9IFJSRUczMihtbVZHQV9SRU5ERVJfQ09OVFJPTCk7CisJc2F2 ZS0+dmdhX2hkcF9jb250cm9sID0gUlJFRzMyKG1tVkdBX0hEUF9DT05UUk9MKTsKKworCS8qIGRp c2FibGUgVkdBIHJlbmRlciAqLworCVdSRUczMihtbVZHQV9SRU5ERVJfQ09OVFJPTCwgMCk7CisK KwkvKiBibGFuayB0aGUgZGlzcGxheSBjb250cm9sbGVycyAqLworCWZvciAoaSA9IDA7IGkgPCBh ZGV2LT5tb2RlX2luZm8ubnVtX2NydGM7IGkrKykgeworCQljcnRjX2VuYWJsZWQgPSBSUkVHMzIo bW1DUlRDX0NPTlRST0wgKyBjcnRjX29mZnNldHNbaV0pICYgQ1JUQ19DT05UUk9MX19DUlRDX01B U1RFUl9FTl9NQVNLOworCQlpZiAoY3J0Y19lbmFibGVkKSB7CisJCQlzYXZlLT5jcnRjX2VuYWJs ZWRbaV0gPSB0cnVlOworCQkJdG1wID0gUlJFRzMyKG1tQ1JUQ19CTEFOS19DT05UUk9MICsgY3J0 Y19vZmZzZXRzW2ldKTsKKworCQkJaWYgKCEodG1wICYgQ1JUQ19CTEFOS19DT05UUk9MX19DUlRD X0JMQU5LX0RBVEFfRU5fTUFTSykpIHsKKwkJCQlkY2VfdjZfMF92Ymxhbmtfd2FpdChhZGV2LCBp KTsKKwkJCQlXUkVHMzIobW1DUlRDX1VQREFURV9MT0NLICsgY3J0Y19vZmZzZXRzW2ldLCAxKTsK KwkJCQl0bXAgfD0gQ1JUQ19CTEFOS19DT05UUk9MX19DUlRDX0JMQU5LX0RBVEFfRU5fTUFTSzsK KwkJCQlXUkVHMzIobW1DUlRDX0JMQU5LX0NPTlRST0wgKyBjcnRjX29mZnNldHNbaV0sIHRtcCk7 CisJCQkJV1JFRzMyKG1tQ1JUQ19VUERBVEVfTE9DSyArIGNydGNfb2Zmc2V0c1tpXSwgMCk7CisJ CQl9CisJCQkvKiB3YWl0IGZvciB0aGUgbmV4dCBmcmFtZSAqLworCQkJZnJhbWVfY291bnQgPSBl dmVyZ3JlZW5fZ2V0X3ZibGFua19jb3VudGVyKGFkZXYsIGkpOworCQkJZm9yIChqID0gMDsgaiA8 IGFkZXYtPnVzZWNfdGltZW91dDsgaisrKSB7CisJCQkJaWYgKGV2ZXJncmVlbl9nZXRfdmJsYW5r X2NvdW50ZXIoYWRldiwgaSkgIT0gZnJhbWVfY291bnQpCisJCQkJCWJyZWFrOworCQkJCXVkZWxh eSgxKTsKKwkJCX0KKworCQkJLyogWFhYIHRoaXMgaXMgYSBoYWNrIHRvIGF2b2lkIHN0cmFuZ2Ug YmVoYXZpb3Igd2l0aCBFRkkgb24gY2VydGFpbiBzeXN0ZW1zICovCisJCQlXUkVHMzIobW1DUlRD X1VQREFURV9MT0NLICsgY3J0Y19vZmZzZXRzW2ldLCAxKTsKKwkJCXRtcCA9IFJSRUczMihtbUNS VENfQ09OVFJPTCArIGNydGNfb2Zmc2V0c1tpXSk7CisJCQl0bXAgJj0gfkNSVENfQ09OVFJPTF9f Q1JUQ19NQVNURVJfRU5fTUFTSzsKKwkJCVdSRUczMihtbUNSVENfQ09OVFJPTCArIGNydGNfb2Zm c2V0c1tpXSwgdG1wKTsKKwkJCVdSRUczMihtbUNSVENfVVBEQVRFX0xPQ0sgKyBjcnRjX29mZnNl dHNbaV0sIDApOworCQkJc2F2ZS0+Y3J0Y19lbmFibGVkW2ldID0gZmFsc2U7CisJCQkvKiAqKioq KiAqLworCQl9IGVsc2UgeworCQkJc2F2ZS0+Y3J0Y19lbmFibGVkW2ldID0gZmFsc2U7CisJCX0K Kwl9Cit9CisKK3ZvaWQgZGNlX3Y2XzBfcmVzdW1lX21jX2FjY2VzcyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwKKwkJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X21vZGVfbWNfc2F2ZSAqc2F2ZSkK K3sKKwl1MzIgdG1wOworCWludCBpLCBqOworCisJLyogdXBkYXRlIGNydGMgYmFzZSBhZGRyZXNz ZXMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bW9kZV9pbmZvLm51bV9jcnRjOyBpKyspIHsK KwkJV1JFRzMyKG1tR1JQSF9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIICsgY3J0Y19vZmZz ZXRzW2ldLAorCQkgICAgICAgdXBwZXJfMzJfYml0cyhhZGV2LT5tYy52cmFtX3N0YXJ0KSk7CisJ CVdSRUczMihtbUdSUEhfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIICsgY3J0Y19vZmZz ZXRzW2ldLAorCQkgICAgICAgdXBwZXJfMzJfYml0cyhhZGV2LT5tYy52cmFtX3N0YXJ0KSk7CisJ CVdSRUczMihtbUdSUEhfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1MgKyBjcnRjX29mZnNldHNbaV0s CisJCSAgICAgICAodTMyKWFkZXYtPm1jLnZyYW1fc3RhcnQpOworCQlXUkVHMzIobW1HUlBIX1NF Q09OREFSWV9TVVJGQUNFX0FERFJFU1MgKyBjcnRjX29mZnNldHNbaV0sCisJCSAgICAgICAodTMy KWFkZXYtPm1jLnZyYW1fc3RhcnQpOworCX0KKworCVdSRUczMihtbVZHQV9NRU1PUllfQkFTRV9B RERSRVNTX0hJR0gsIHVwcGVyXzMyX2JpdHMoYWRldi0+bWMudnJhbV9zdGFydCkpOworCVdSRUcz MihtbVZHQV9NRU1PUllfQkFTRV9BRERSRVNTLCAodTMyKWFkZXYtPm1jLnZyYW1fc3RhcnQpOwor CisJLyogdW5sb2NrIHJlZ3MgYW5kIHdhaXQgZm9yIHVwZGF0ZSAqLworCWZvciAoaSA9IDA7IGkg PCBhZGV2LT5tb2RlX2luZm8ubnVtX2NydGM7IGkrKykgeworCQlpZiAoc2F2ZS0+Y3J0Y19lbmFi bGVkW2ldKSB7CisJCQl0bXAgPSBSUkVHMzIobW1NQVNURVJfVVBEQVRFX01PREUgKyBjcnRjX29m ZnNldHNbaV0pOworCQkJaWYgKCh0bXAgJiAweDcpICE9IDApIHsKKwkJCQl0bXAgJj0gfjB4NzsK KwkJCQlXUkVHMzIobW1NQVNURVJfVVBEQVRFX01PREUgKyBjcnRjX29mZnNldHNbaV0sIHRtcCk7 CisJCQl9CisJCQl0bXAgPSBSUkVHMzIobW1HUlBIX1VQREFURSArIGNydGNfb2Zmc2V0c1tpXSk7 CisJCQlpZiAodG1wICYgR1JQSF9VUERBVEVfX0dSUEhfVVBEQVRFX0xPQ0tfTUFTSykgeworCQkJ CXRtcCAmPSB+R1JQSF9VUERBVEVfX0dSUEhfVVBEQVRFX0xPQ0tfTUFTSzsKKwkJCQlXUkVHMzIo bW1HUlBIX1VQREFURSArIGNydGNfb2Zmc2V0c1tpXSwgdG1wKTsKKwkJCX0KKwkJCXRtcCA9IFJS RUczMihtbU1BU1RFUl9VUERBVEVfTE9DSyArIGNydGNfb2Zmc2V0c1tpXSk7CisJCQlpZiAodG1w ICYgMSkgeworCQkJCXRtcCAmPSB+MTsKKwkJCQlXUkVHMzIobW1NQVNURVJfVVBEQVRFX0xPQ0sg KyBjcnRjX29mZnNldHNbaV0sIHRtcCk7CisJCQl9CisJCQlmb3IgKGogPSAwOyBqIDwgYWRldi0+ dXNlY190aW1lb3V0OyBqKyspIHsKKwkJCQl0bXAgPSBSUkVHMzIobW1HUlBIX1VQREFURSArIGNy dGNfb2Zmc2V0c1tpXSk7CisJCQkJaWYgKCh0bXAgJiBHUlBIX1VQREFURV9fR1JQSF9TVVJGQUNF X1VQREFURV9QRU5ESU5HX01BU0spID09IDApCisJCQkJCWJyZWFrOworCQkJCXVkZWxheSgxKTsK KwkJCX0KKwkJfQorCX0KKworCS8qIFVubG9jayB2Z2EgYWNjZXNzICovCisJV1JFRzMyKG1tVkdB X0hEUF9DT05UUk9MLCBzYXZlLT52Z2FfaGRwX2NvbnRyb2wpOworCW1kZWxheSgxKTsKKwlXUkVH MzIobW1WR0FfUkVOREVSX0NPTlRST0wsIHNhdmUtPnZnYV9yZW5kZXJfY29udHJvbCk7CisKK30K Kwordm9pZCBkY2VfdjZfMF9zZXRfdmdhX3JlbmRlcl9zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwgYm9vbCByZW5kZXIpCiB7CiAJaWYgKCFyZW5kZXIpCiAJCVdSRUczMihtbVZHQV9S RU5ERVJfQ09OVFJPTCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Rj ZV92Nl8wLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5oCmluZGV4IDdi NTQ2YjU5NmRlMS4uMzUxMzQ1MjNmNTNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9kY2VfdjZfMC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92 Nl8wLmgKQEAgLTI4LDUgKzI4LDEwIEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lwX2Js b2NrX3ZlcnNpb24gZGNlX3Y2XzBfaXBfYmxvY2s7CiBleHRlcm4gY29uc3Qgc3RydWN0IGFtZGdw dV9pcF9ibG9ja192ZXJzaW9uIGRjZV92Nl80X2lwX2Jsb2NrOwogCiB2b2lkIGRjZV92Nl8wX2Rp c2FibGVfZGNlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKK3ZvaWQgZGNlX3Y2XzBfc3Rv cF9tY19hY2Nlc3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkgICAgIHN0cnVjdCBh bWRncHVfbW9kZV9tY19zYXZlICpzYXZlKTsKK3ZvaWQgZGNlX3Y2XzBfcmVzdW1lX21jX2FjY2Vz cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCSAgICAgICBzdHJ1Y3QgYW1kZ3B1X21v ZGVfbWNfc2F2ZSAqc2F2ZSk7Cit2b2lkIGRjZV92Nl8wX3NldF92Z2FfcmVuZGVyX3N0YXRlKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIHJlbmRlcik7CiAKICNlbmRpZgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMKaW5kZXggZDJhNDNkYjIyY2ZmLi4zZjg5MWYyMmFm OTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYwpAQCAtMjQsNiArMjQsNyBA QAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSAiYW1kZ3B1LmgiCiAjaW5jbHVkZSAi Z21jX3Y2XzAuaCIKKyNpbmNsdWRlICJkY2VfdjZfMC5oIgogI2luY2x1ZGUgImFtZGdwdV91Y29k ZS5oIgogCiAjaW5jbHVkZSAiYmlmL2JpZl8zXzBfZC5oIgpAQCAtNjYsMTAgKzY3LDE0IEBAIHN0 YXRpYyBjb25zdCB1MzIgY3J0Y19vZmZzZXRzWzZdID0KIAlTSV9DUlRDNV9SRUdJU1RFUl9PRkZT RVQKIH07CiAKLXN0YXRpYyB2b2lkIGdtY192Nl8wX21jX3N0b3Aoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCitzdGF0aWMgdm9pZCBnbWNfdjZfMF9tY19zdG9wKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LAorCQkJICAgICBzdHJ1Y3QgYW1kZ3B1X21vZGVfbWNfc2F2ZSAqc2F2ZSkKIHsK IAl1MzIgYmxhY2tvdXQ7CiAKKwlpZiAoYWRldi0+bW9kZV9pbmZvLm51bV9jcnRjKQorCQlkY2Vf djZfMF9zdG9wX21jX2FjY2VzcyhhZGV2LCBzYXZlKTsKKwogCWdtY192Nl8wX3dhaXRfZm9yX2lk bGUoKHZvaWQgKilhZGV2KTsKIAogCWJsYWNrb3V0ID0gUlJFRzMyKG1tTUNfU0hBUkVEX0JMQUNL T1VUX0NOVEwpOwpAQCAtODYsNyArOTEsOCBAQCBzdGF0aWMgdm9pZCBnbWNfdjZfMF9tY19zdG9w KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiB9CiAKLXN0YXRpYyB2b2lkIGdtY192Nl8w X21jX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3N0YXRpYyB2b2lkIGdtY192 Nl8wX21jX3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCSAgICAgICBzdHJ1 Y3QgYW1kZ3B1X21vZGVfbWNfc2F2ZSAqc2F2ZSkKIHsKIAl1MzIgdG1wOwogCkBAIC05OCw2ICsx MDQsOSBAQCBzdGF0aWMgdm9pZCBnbWNfdjZfMF9tY19yZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCiAJdG1wID0gUkVHX1NFVF9GSUVMRCgwLCBCSUZfRkJfRU4sIEZCX1JFQURfRU4s IDEpOwogCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBCSUZfRkJfRU4sIEZCX1dSSVRFX0VOLCAx KTsKIAlXUkVHMzIobW1CSUZfRkJfRU4sIHRtcCk7CisKKwlpZiAoYWRldi0+bW9kZV9pbmZvLm51 bV9jcnRjKQorCQlkY2VfdjZfMF9yZXN1bWVfbWNfYWNjZXNzKGFkZXYsIHNhdmUpOwogfQogCiBz dGF0aWMgaW50IGdtY192Nl8wX2luaXRfbWljcm9jb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQpAQCAtMjE5LDIwICsyMjgsMTkgQEAgc3RhdGljIGludCBnbWNfdjZfMF9tY19sb2FkX21p Y3JvY29kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHN0YXRpYyB2b2lkIGdtY192Nl8w X3ZyYW1fZ3R0X2xvY2F0aW9uKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJCSAgICAg ICBzdHJ1Y3QgYW1kZ3B1X21jICptYykKIHsKLQl1NjQgYmFzZSA9IFJSRUczMihtbU1DX1ZNX0ZC X0xPQ0FUSU9OKSAmIDB4RkZGRjsKLQliYXNlIDw8PSAyNDsKLQogCWlmIChtYy0+bWNfdnJhbV9z aXplID4gMHhGRkMwMDAwMDAwVUxMKSB7CiAJCWRldl93YXJuKGFkZXYtPmRldiwgImxpbWl0aW5n IFZSQU1cbiIpOwogCQltYy0+cmVhbF92cmFtX3NpemUgPSAweEZGQzAwMDAwMDBVTEw7CiAJCW1j LT5tY192cmFtX3NpemUgPSAweEZGQzAwMDAwMDBVTEw7CiAJfQotCWFtZGdwdV92cmFtX2xvY2F0 aW9uKGFkZXYsICZhZGV2LT5tYywgYmFzZSk7CisJYW1kZ3B1X3ZyYW1fbG9jYXRpb24oYWRldiwg JmFkZXYtPm1jLCAwKTsKIAlhbWRncHVfZ2FydF9sb2NhdGlvbihhZGV2LCBtYyk7CiB9CiAKIHN0 YXRpYyB2b2lkIGdtY192Nl8wX21jX3Byb2dyYW0oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp CiB7CisJc3RydWN0IGFtZGdwdV9tb2RlX21jX3NhdmUgc2F2ZTsKKwl1MzIgdG1wOwogCWludCBp LCBqOwogCiAJLyogSW5pdGlhbGl6ZSBIRFAgKi8KQEAgLTI0NSw2ICsyNTMsMTEgQEAgc3RhdGlj IHZvaWQgZ21jX3Y2XzBfbWNfcHJvZ3JhbShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl9 CiAJV1JFRzMyKG1tSERQX1JFR19DT0hFUkVOQ1lfRkxVU0hfQ05UTCwgMCk7CiAKKwlpZiAoYWRl di0+bW9kZV9pbmZvLm51bV9jcnRjKQorCQlkY2VfdjZfMF9zZXRfdmdhX3JlbmRlcl9zdGF0ZShh ZGV2LCBmYWxzZSk7CisKKwlnbWNfdjZfMF9tY19zdG9wKGFkZXYsICZzYXZlKTsKKwogCWlmIChn bWNfdjZfMF93YWl0X2Zvcl9pZGxlKCh2b2lkICopYWRldikpIHsKIAkJZGV2X3dhcm4oYWRldi0+ ZGV2LCAiV2FpdCBmb3IgTUMgaWRsZSB0aW1lZG91dCAhXG4iKTsKIAl9CkBAIC0yNjksNiArMjgy LDE1IEBAIHN0YXRpYyB2b2lkIGdtY192Nl8wX21jX3Byb2dyYW0oc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpCiAJICAgICAgIGFkZXYtPm1jLnZyYW1fZW5kID4+IDEyKTsKIAlXUkVHMzIobW1N Q19WTV9TWVNURU1fQVBFUlRVUkVfREVGQVVMVF9BRERSLAogCSAgICAgICBhZGV2LT52cmFtX3Nj cmF0Y2guZ3B1X2FkZHIgPj4gMTIpOworCisJdG1wID0gKChhZGV2LT5tYy52cmFtX2VuZCA+PiAy NCkgJiAweEZGRkYpIDw8IDE2OworCXRtcCB8PSAoKGFkZXYtPm1jLnZyYW1fc3RhcnQgPj4gMjQp ICYgMHhGRkZGKTsKKwlXUkVHMzIobW1NQ19WTV9GQl9MT0NBVElPTiwgdG1wKTsKKwkvKiBYWFgg ZG91YmxlIGNoZWNrIHRoZXNlISAqLworCVdSRUczMihtbUhEUF9OT05TVVJGQUNFX0JBU0UsIChh ZGV2LT5tYy52cmFtX3N0YXJ0ID4+IDgpKTsKKwlXUkVHMzIobW1IRFBfTk9OU1VSRkFDRV9JTkZP LCAoMiA8PCA3KSB8ICgxIDw8IDMwKSk7CisJV1JFRzMyKG1tSERQX05PTlNVUkZBQ0VfU0laRSwg MHgzRkZGRkZGRik7CisKIAlXUkVHMzIobW1NQ19WTV9BR1BfQkFTRSwgMCk7CiAJV1JFRzMyKG1t TUNfVk1fQUdQX1RPUCwgMHgwRkZGRkZGRik7CiAJV1JFRzMyKG1tTUNfVk1fQUdQX0JPVCwgMHgw RkZGRkZGRik7CkBAIC0yNzYsNiArMjk4LDcgQEAgc3RhdGljIHZvaWQgZ21jX3Y2XzBfbWNfcHJv Z3JhbShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlpZiAoZ21jX3Y2XzBfd2FpdF9mb3Jf aWRsZSgodm9pZCAqKWFkZXYpKSB7CiAJCWRldl93YXJuKGFkZXYtPmRldiwgIldhaXQgZm9yIE1D IGlkbGUgdGltZWRvdXQgIVxuIik7CiAJfQorCWdtY192Nl8wX21jX3Jlc3VtZShhZGV2LCAmc2F2 ZSk7CiB9CiAKIHN0YXRpYyBpbnQgZ21jX3Y2XzBfbWNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikKQEAgLTk5Nyw2ICsxMDIwLDcgQEAgc3RhdGljIGludCBnbWNfdjZfMF93YWl0X2Zv cl9pZGxlKHZvaWQgKmhhbmRsZSkKIHN0YXRpYyBpbnQgZ21jX3Y2XzBfc29mdF9yZXNldCh2b2lk ICpoYW5kbGUpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdw dV9kZXZpY2UgKiloYW5kbGU7CisJc3RydWN0IGFtZGdwdV9tb2RlX21jX3NhdmUgc2F2ZTsKIAl1 MzIgc3JibV9zb2Z0X3Jlc2V0ID0gMDsKIAl1MzIgdG1wID0gUlJFRzMyKG1tU1JCTV9TVEFUVVMp OwogCkBAIC0xMDEyLDcgKzEwMzYsNyBAQCBzdGF0aWMgaW50IGdtY192Nl8wX3NvZnRfcmVzZXQo dm9pZCAqaGFuZGxlKQogCX0KIAogCWlmIChzcmJtX3NvZnRfcmVzZXQpIHsKLQkJZ21jX3Y2XzBf bWNfc3RvcChhZGV2KTsKKwkJZ21jX3Y2XzBfbWNfc3RvcChhZGV2LCAmc2F2ZSk7CiAJCWlmIChn bWNfdjZfMF93YWl0X2Zvcl9pZGxlKGFkZXYpKSB7CiAJCQlkZXZfd2FybihhZGV2LT5kZXYsICJX YWl0IGZvciBHTUMgaWRsZSB0aW1lZCBvdXQgIVxuIik7CiAJCX0KQEAgLTEwMzIsNyArMTA1Niw3 IEBAIHN0YXRpYyBpbnQgZ21jX3Y2XzBfc29mdF9yZXNldCh2b2lkICpoYW5kbGUpCiAKIAkJdWRl bGF5KDUwKTsKIAotCQlnbWNfdjZfMF9tY19yZXN1bWUoYWRldik7CisJCWdtY192Nl8wX21jX3Jl c3VtZShhZGV2LCAmc2F2ZSk7CiAJCXVkZWxheSg1MCk7CiAJfQogCi0tIAoyLjE1LjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGlu ZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=