From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yintian Tao Subject: [PATCH] drm/amdgpu: support dpm level modification under virtualization v3 Date: Wed, 10 Apr 2019 22:25:32 +0800 Message-ID: <1554906332-10229-1-git-send-email-yttao@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: Yintian Tao VW5kZXIgdmVnYTEwIHZpcnR1YWx1emF0aW9uLCBzbXUgaXAgYmxvY2sgd2lsbCBub3QgYmUgYWRk ZWQuClRoZXJlZm9yZSwgd2UgbmVlZCBhZGQgcHAgY2xrIHF1ZXJ5IGFuZCBmb3JjZSBkcG0gbGV2 ZWwgZnVuY3Rpb24KYXQgYW1kZ3B1X3ZpcnRfb3BzIHRvIHN1cHBvcnQgdGhlIGZlYXR1cmUuCgp2 MjogYWRkIGdldF9wcF9jbGsgZXhpc3RlbmNlIGNoZWNrIGFuZCB1c2Uga3phbGxvYyB0byBhbGxv Y2F0ZSBidWYKCnYzOiByZXR1cm4gLUVOT01FTSBmb3IgYWxsb2NhdGlvbiBmYWlsdXJlIGFuZCBj b3JyZWN0IHRoZSBjb2Rpbmcgc3R5bGUKCkNoYW5nZS1JZDogSTcxMzQxOWM1N2I4NTQwODJmNmY3 MzlmMWQzMmEwNTVjNzExNWU2MjAKU2lnbmVkLW9mZi1ieTogWWludGlhbiBUYW8gPHl0dGFvQGFt ZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jIHwg IDEgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jICAgIHwgIDQgKysK IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jICAgICB8IDE1ICsrKysrKwog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYyAgIHwgNDkgKysrKysrKysr KysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuaCAgIHwg MTEgKysrKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmMgICAgICB8IDc4 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvbXhncHVfYWkuaCAgICAgIHwgIDYgKysrCiA3IGZpbGVzIGNoYW5nZWQsIDE2NCBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rl dmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCmluZGV4 IDNmZjg4OTkuLmJiMGZkNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf ZGV2aWNlLmMKQEAgLTI0ODYsNiArMjQ4Niw3IEBAIGludCBhbWRncHVfZGV2aWNlX2luaXQoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJbXV0ZXhfaW5pdCgmYWRldi0+dmlydC52Zl9lcnJv cnMubG9jayk7CiAJaGFzaF9pbml0KGFkZXYtPm1uX2hhc2gpOwogCW11dGV4X2luaXQoJmFkZXYt PmxvY2tfcmVzZXQpOworCW11dGV4X2luaXQoJmFkZXYtPnZpcnQuZHBtX211dGV4KTsKIAogCWFt ZGdwdV9kZXZpY2VfY2hlY2tfYXJndW1lbnRzKGFkZXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfa21zLmMKaW5kZXggNjE5MDQ5NS4uMjllYzI4ZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYwpAQCAtNzI3LDYgKzcyNywxMCBAQCBzdGF0aWMgaW50 IGFtZGdwdV9pbmZvX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0 cnVjdCBkcm1fZmlsZQogCQlpZiAoYWRldi0+cG0uZHBtX2VuYWJsZWQpIHsKIAkJCWRldl9pbmZv Lm1heF9lbmdpbmVfY2xvY2sgPSBhbWRncHVfZHBtX2dldF9zY2xrKGFkZXYsIGZhbHNlKSAqIDEw OwogCQkJZGV2X2luZm8ubWF4X21lbW9yeV9jbG9jayA9IGFtZGdwdV9kcG1fZ2V0X21jbGsoYWRl diwgZmFsc2UpICogMTA7CisJCX0gZWxzZSBpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpICYmIGFt ZGdpbV9pc19od3BlcmYoYWRldikgJiYKKwkJCSAgIGFkZXYtPnZpcnQub3BzLT5nZXRfcHBfY2xr KSB7CisJCQlkZXZfaW5mby5tYXhfZW5naW5lX2Nsb2NrID0gYW1kZ3B1X3ZpcnRfZ2V0X3NjbGso YWRldiwgZmFsc2UpICogMTA7CisJCQlkZXZfaW5mby5tYXhfbWVtb3J5X2Nsb2NrID0gYW1kZ3B1 X3ZpcnRfZ2V0X21jbGsoYWRldiwgZmFsc2UpICogMTA7CiAJCX0gZWxzZSB7CiAJCQlkZXZfaW5m by5tYXhfZW5naW5lX2Nsb2NrID0gYWRldi0+Y2xvY2suZGVmYXVsdF9zY2xrICogMTA7CiAJCQlk ZXZfaW5mby5tYXhfbWVtb3J5X2Nsb2NrID0gYWRldi0+Y2xvY2suZGVmYXVsdF9tY2xrICogMTA7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jCmluZGV4IDU1NDAyNTkuLjAxNjJk MWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jCkBAIC0zODAsNiArMzgw LDE3IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9zZXRfZHBtX2ZvcmNlZF9wZXJmb3JtYW5jZV9s ZXZlbChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCWdvdG8gZmFpbDsKIAl9CiAKKyAgICAgICAgaWYg KGFtZGdwdV9zcmlvdl92ZihhZGV2KSkgeworICAgICAgICAgICAgICAgIGlmIChhbWRnaW1faXNf aHdwZXJmKGFkZXYpICYmCisgICAgICAgICAgICAgICAgICAgIGFkZXYtPnZpcnQub3BzLT5mb3Jj ZV9kcG1fbGV2ZWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG11dGV4X2xvY2soJmFkZXYt PnBtLm11dGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZXYtPnZpcnQub3BzLT5mb3Jj ZV9kcG1fbGV2ZWwoYWRldiwgbGV2ZWwpOworICAgICAgICAgICAgICAgICAgICAgICAgbXV0ZXhf dW5sb2NrKCZhZGV2LT5wbS5tdXRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g Y291bnQ7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgfQorCiAJaWYgKGN1cnJlbnRfbGV2ZWwgPT0gbGV2ZWwp CiAJCXJldHVybiBjb3VudDsKIApAQCAtODQzLDYgKzg1NCwxMCBAQCBzdGF0aWMgc3NpemVfdCBh bWRncHVfZ2V0X3BwX2RwbV9zY2xrKHN0cnVjdCBkZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGRldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCXN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gZGRldi0+ZGV2X3ByaXZhdGU7CiAKKwlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYp ICYmIGFtZGdpbV9pc19od3BlcmYoYWRldikgJiYKKwkgICAgYWRldi0+dmlydC5vcHMtPmdldF9w cF9jbGspCisJCXJldHVybiBhZGV2LT52aXJ0Lm9wcy0+Z2V0X3BwX2NsayhhZGV2LCBQUF9TQ0xL LCBidWYpOworCiAJaWYgKGlzX3N1cHBvcnRfc3dfc211KGFkZXYpKQogCQlyZXR1cm4gc211X3By aW50X2Nsa19sZXZlbHMoJmFkZXYtPnNtdSwgUFBfU0NMSywgYnVmKTsKIAllbHNlIGlmIChhZGV2 LT5wb3dlcnBsYXkucHBfZnVuY3MtPnByaW50X2Nsb2NrX2xldmVscykKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdmlydC5jCmluZGV4IDQ2MmEwNGUuLjdlN2Y5ZWQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYwpAQCAtMzc1LDQgKzM3NSw1MyBAQCB2 b2lkIGFtZGdwdV92aXJ0X2luaXRfZGF0YV9leGNoYW5nZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIAl9CiB9CiAKK3N0YXRpYyB1aW50MzJfdCBwYXJzZV9jbGsoY2hhciAqYnVmLCBib29s IG1pbikKK3sKKyAgICAgICAgY2hhciAqcHRyID0gYnVmOworICAgICAgICB1aW50MzJfdCBjbGsg PSAwOworCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBwdHIgPSBzdHJjaHIocHRyLCAn OicpOworICAgICAgICAgICAgICAgIGlmICghcHRyKQorICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICAgICAgcHRyKz0yOworICAgICAgICAgICAgICAgIGNsayA9IHNp bXBsZV9zdHJ0b3VsKHB0ciwgTlVMTCwgMTApOworICAgICAgICB9IHdoaWxlICghbWluKTsKKwor ICAgICAgICByZXR1cm4gY2xrICogMTAwOworfQorCit1aW50MzJfdCBhbWRncHVfdmlydF9nZXRf c2NsayhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgYm9vbCBsb3dlc3QpCit7CisJY2hhciAq YnVmID0gTlVMTDsKKwl1aW50MzJfdCBjbGsgPSAwOworCisJYnVmID0ga3phbGxvYyhQQUdFX1NJ WkUsIEdGUF9LRVJORUwpOworCWlmICghYnVmKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWFkZXYt PnZpcnQub3BzLT5nZXRfcHBfY2xrKGFkZXYsIFBQX1NDTEssIGJ1Zik7CisJY2xrID0gcGFyc2Vf Y2xrKGJ1ZiwgbG93ZXN0KTsKKworCWtmcmVlKGJ1Zik7CisKKwlyZXR1cm4gY2xrOworfQorCit1 aW50MzJfdCBhbWRncHVfdmlydF9nZXRfbWNsayhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwg Ym9vbCBsb3dlc3QpCit7CisJY2hhciAqYnVmID0gTlVMTDsKKwl1aW50MzJfdCBjbGsgPSAwOwor CisJYnVmID0ga3phbGxvYyhQQUdFX1NJWkUsIEdGUF9LRVJORUwpOworCWlmICghYnVmKQorCQly ZXR1cm4gLUVOT01FTTsKKworCWFkZXYtPnZpcnQub3BzLT5nZXRfcHBfY2xrKGFkZXYsIFBQX01D TEssIGJ1Zik7CisJY2xrID0gcGFyc2VfY2xrKGJ1ZiwgbG93ZXN0KTsKKworCWtmcmVlKGJ1Zik7 CisKKwlyZXR1cm4gY2xrOworfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdmlydC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zp cnQuaAppbmRleCA3MjJkZWVmLi41ODQ5NDdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdmlydC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV92aXJ0LmgKQEAgLTU3LDYgKzU3LDggQEAgc3RydWN0IGFtZGdwdV92aXJ0X29wcyB7 CiAJaW50ICgqcmVzZXRfZ3B1KShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiAJaW50ICgq d2FpdF9yZXNldCkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogCXZvaWQgKCp0cmFuc19t c2cpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgcmVxLCB1MzIgZGF0YTEsIHUzMiBk YXRhMiwgdTMyIGRhdGEzKTsKKwlpbnQgKCpnZXRfcHBfY2xrKShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwgdTMyIHR5cGUsIGNoYXIgKmJ1Zik7CisJaW50ICgqZm9yY2VfZHBtX2xldmVsKShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIGxldmVsKTsKIH07CiAKIC8qCkBAIC04Myw2 ICs4NSw4IEBAIGVudW0gQU1ER0lNX0ZFQVRVUkVfRkxBRyB7CiAJQU1ER0lNX0ZFQVRVUkVfR0lN X0xPQURfVUNPREVTICAgPSAweDIsCiAJLyogVlJBTSBMT1NUIGJ5IEdJTSAqLwogCUFNREdJTV9G RUFUVVJFX0dJTV9GTFJfVlJBTUxPU1QgPSAweDQsCisJLyogSFcgUEVSRiBTSU0gaW4gR0lNICov CisJQU1ER0lNX0ZFQVRVUkVfSFdfUEVSRl9TSU1VTEFUSU9OID0gKDEgPDwgMyksCiB9OwogCiBz dHJ1Y3QgYW1kX3NyaW92X21zZ19wZjJ2Zl9pbmZvX2hlYWRlciB7CkBAIC0yNTIsNiArMjU2LDgg QEAgc3RydWN0IGFtZGdwdV92aXJ0IHsKIAlzdHJ1Y3QgYW1kZ3B1X3ZmX2Vycm9yX2J1ZmZlciAg IHZmX2Vycm9yczsKIAlzdHJ1Y3QgYW1kZ3B1X3ZpcnRfZndfcmVzZXJ2ZQlmd19yZXNlcnZlOwog CXVpbnQzMl90IGdpbV9mZWF0dXJlOworCS8qIHByb3RlY3QgRFBNIGV2ZW50cyB0byBHSU0gKi8K KwlzdHJ1Y3QgbXV0ZXggICAgICAgICAgICAgICAgICAgIGRwbV9tdXRleDsKIH07CiAKICNkZWZp bmUgYW1kZ3B1X3NyaW92X2VuYWJsZWQoYWRldikgXApAQCAtMjc4LDYgKzI4NCw5IEBAIHN0YXRp YyBpbmxpbmUgYm9vbCBpc192aXJ0dWFsX21hY2hpbmUodm9pZCkKICNlbmRpZgogfQogCisjZGVm aW5lIGFtZGdpbV9pc19od3BlcmYoYWRldikgXAorCSgoYWRldiktPnZpcnQuZ2ltX2ZlYXR1cmUg JiBBTURHSU1fRkVBVFVSRV9IV19QRVJGX1NJTVVMQVRJT04pCisKIGJvb2wgYW1kZ3B1X3ZpcnRf bW1pb19ibG9ja2VkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIHZvaWQgYW1kZ3B1X3Zp cnRfaW5pdF9zZXR0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIHVpbnQzMl90IGFt ZGdwdV92aXJ0X2tpcV9ycmVnKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCBy ZWcpOwpAQCAtMjk1LDUgKzMwNCw3IEBAIGludCBhbWRncHVfdmlydF9md19yZXNlcnZlX2dldF9j aGVja3N1bSh2b2lkICpvYmosIHVuc2lnbmVkIGxvbmcgb2JqX3NpemUsCiAJCQkJCXVuc2lnbmVk IGludCBrZXksCiAJCQkJCXVuc2lnbmVkIGludCBjaGtzdW0pOwogdm9pZCBhbWRncHVfdmlydF9p bml0X2RhdGFfZXhjaGFuZ2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwordWludDMyX3Qg YW1kZ3B1X3ZpcnRfZ2V0X3NjbGsoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgbG93 ZXN0KTsKK3VpbnQzMl90IGFtZGdwdV92aXJ0X2dldF9tY2xrKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LCBib29sIGxvd2VzdCk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214 Z3B1X2FpLmMKaW5kZXggNzM4NTFlYi4uOGRiYWQ0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9teGdwdV9haS5jCkBAIC0xNTcsNiArMTU3LDgyIEBAIHN0YXRpYyB2b2lkIHhncHVfYWlfbWFp bGJveF90cmFuc19tc2cgKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCXhncHVfYWlfbWFp bGJveF9zZXRfdmFsaWQoYWRldiwgZmFsc2UpOwogfQogCitzdGF0aWMgaW50IHhncHVfYWlfZ2V0 X3BwX2NsayhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyIHR5cGUsIGNoYXIgKmJ1ZikK K3sKKyAgICAgICAgaW50IHIgPSAwOworICAgICAgICB1MzIgcmVxLCB2YWwsIHNpemU7CisKKyAg ICAgICAgaWYgKCFhbWRnaW1faXNfaHdwZXJmKGFkZXYpIHx8IGJ1ZiA9PSBOVUxMKQorICAgICAg ICAgICAgICAgIHJldHVybiAtRUJBRFJRQzsKKworICAgICAgICBzd2l0Y2godHlwZSkgeworICAg ICAgICBjYXNlIFBQX1NDTEs6CisgICAgICAgICAgICAgICAgcmVxID0gSURIX0lSUV9HRVRfUFBf U0NMSzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQUF9NQ0xLOgorICAg ICAgICAgICAgICAgIHJlcSA9IElESF9JUlFfR0VUX1BQX01DTEs7CisgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIC1FQkFEUlFD OworICAgICAgICB9CisKKyAgICAgICAgbXV0ZXhfbG9jaygmYWRldi0+dmlydC5kcG1fbXV0ZXgp OworCisgICAgICAgIHhncHVfYWlfbWFpbGJveF90cmFuc19tc2coYWRldiwgcmVxLCAwLCAwLCAw KTsKKworICAgICAgICByID0geGdwdV9haV9wb2xsX21zZyhhZGV2LCBJREhfU1VDQ0VTUyk7Cisg ICAgICAgIGlmICghciAmJiBhZGV2LT5md192cmFtX3VzYWdlLnZhICE9IE5VTEwpIHsKKyAgICAg ICAgICAgICAgICB2YWwgPSBSUkVHMzJfTk9fS0lRKAorICAgICAgICAgICAgICAgICAgICAgICAg U09DMTVfUkVHX09GRlNFVChOQklPLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtbUJJRl9CWF9QRjBfTUFJTEJPWF9NU0dCVUZfUkNWX0RXMSkpOworICAgICAg ICAgICAgICAgIHNpemUgPSBzdHJubGVuKCgoKGNoYXIgKilhZGV2LT52aXJ0LmZ3X3Jlc2VydmUu cF9wZjJ2ZikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpLCBQQUdFX1NJ WkUpOworCisgICAgICAgICAgICAgICAgaWYgKHNpemUgPCBQQUdFX1NJWkUpCisgICAgICAgICAg ICAgICAgICAgICAgICBzdHJjcHkoYnVmLCgoY2hhciAqKWFkZXYtPnZpcnQuZndfcmVzZXJ2ZS5w X3BmMnZmICsgdmFsKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZSA9IDA7CisKKyAgICAgICAgICAgICAgICByID0gc2l6ZTsKKyAgICAgICAgICAg ICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorCisgICAgICAgIHIgPSB4Z3B1X2FpX3BvbGxfbXNn KGFkZXYsIElESF9GQUlMKTsKKyAgICAgICAgaWYocikKKyAgICAgICAgICAgICAgICBwcl9pbmZv KCIlcyBEUE0gcmVxdWVzdCBmYWlsZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGUg PT0gUFBfU0NMSyk/ICJTQ0xLIiA6ICJNQ0xLIik7CisKK291dDoKKyAgICAgICAgbXV0ZXhfdW5s b2NrKCZhZGV2LT52aXJ0LmRwbV9tdXRleCk7CisgICAgICAgIHJldHVybiByOworfQorCitzdGF0 aWMgaW50IHhncHVfYWlfZm9yY2VfZHBtX2xldmVsKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LCB1MzIgbGV2ZWwpCit7CisgICAgICAgIGludCByID0gMDsKKyAgICAgICAgdTMyIHJlcSA9IElE SF9JUlFfRk9SQ0VfRFBNX0xFVkVMOworCisgICAgICAgIGlmICghYW1kZ2ltX2lzX2h3cGVyZihh ZGV2KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gLUVCQURSUUM7CisKKyAgICAgICAgbXV0ZXhf bG9jaygmYWRldi0+dmlydC5kcG1fbXV0ZXgpOworICAgICAgICB4Z3B1X2FpX21haWxib3hfdHJh bnNfbXNnKGFkZXYsIHJlcSwgbGV2ZWwsIDAsIDApOworCisgICAgICAgIHIgPSB4Z3B1X2FpX3Bv bGxfbXNnKGFkZXYsIElESF9TVUNDRVNTKTsKKyAgICAgICAgaWYgKCFyKQorICAgICAgICAgICAg ICAgIGdvdG8gb3V0OworCisgICAgICAgIHIgPSB4Z3B1X2FpX3BvbGxfbXNnKGFkZXYsIElESF9G QUlMKTsKKyAgICAgICAgaWYgKCFyKQorICAgICAgICAgICAgICAgIHByX2luZm8oIkRQTSByZXF1 ZXN0IGZhaWxlZCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcHJfaW5mbygiTWFp bGJveCBpcyBicm9rZW4iKTsKKworb3V0OgorICAgICAgICBtdXRleF91bmxvY2soJmFkZXYtPnZp cnQuZHBtX211dGV4KTsKKyAgICAgICAgcmV0dXJuIHI7Cit9CisKIHN0YXRpYyBpbnQgeGdwdV9h aV9zZW5kX2FjY2Vzc19yZXF1ZXN0cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkJ ZW51bSBpZGhfcmVxdWVzdCByZXEpCiB7CkBAIC0zNzUsNCArNDUxLDYgQEAgY29uc3Qgc3RydWN0 IGFtZGdwdV92aXJ0X29wcyB4Z3B1X2FpX3ZpcnRfb3BzID0gewogCS5yZXNldF9ncHUgPSB4Z3B1 X2FpX3JlcXVlc3RfcmVzZXQsCiAJLndhaXRfcmVzZXQgPSBOVUxMLAogCS50cmFuc19tc2cgPSB4 Z3B1X2FpX21haWxib3hfdHJhbnNfbXNnLAorCS5nZXRfcHBfY2xrID0geGdwdV9haV9nZXRfcHBf Y2xrLAorCS5mb3JjZV9kcG1fbGV2ZWwgPSB4Z3B1X2FpX2ZvcmNlX2RwbV9sZXZlbCwKIH07CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9teGdwdV9haS5oIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfYWkuaAppbmRleCBiNGE5Y2VlLi4zOWQxNTFiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9teGdwdV9haS5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X2FpLmgKQEAgLTM1LDYgKzM1LDEwIEBAIGVu dW0gaWRoX3JlcXVlc3QgewogCUlESF9SRUxfR1BVX0ZJTklfQUNDRVNTLAogCUlESF9SRVFfR1BV X1JFU0VUX0FDQ0VTUywKIAorCUlESF9JUlFfRk9SQ0VfRFBNX0xFVkVMID0gMTAsCisJSURIX0lS UV9HRVRfUFBfU0NMSywKKwlJREhfSVJRX0dFVF9QUF9NQ0xLLAorCiAJSURIX0xPR19WRl9FUlJP UiAgICAgICA9IDIwMCwKIH07CiAKQEAgLTQzLDYgKzQ3LDggQEAgZW51bSBpZGhfZXZlbnQgewog CUlESF9SRUFEWV9UT19BQ0NFU1NfR1BVLAogCUlESF9GTFJfTk9USUZJQ0FUSU9OLAogCUlESF9G TFJfTk9USUZJQ0FUSU9OX0NNUEwsCisJSURIX1NVQ0NFU1MsCisJSURIX0ZBSUwsCiAJSURIX0VW RU5UX01BWAogfTsKIAotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v YW1kLWdmeA==