From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felix Kuehling Subject: [PATCH 5/9] drm/amdkfd: Add dGPU support to the device queue manager Date: Thu, 4 Jan 2018 17:17:44 -0500 Message-ID: <1515104268-25087-6-git-send-email-Felix.Kuehling@amd.com> References: <1515104268-25087-1-git-send-email-Felix.Kuehling@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1515104268-25087-1-git-send-email-Felix.Kuehling-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, oded.gabbay-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org Cc: Felix Kuehling R0ZYdjcgYW5kIHY4IGRHUFVzIHVzZSBhIGRpZmZlcmVudCBhZGRyZXNzaW5nIG1vZGUgZm9yIEtG RCBjb21wYXJlZAp0byBBUFVzIChHUFVWTTY0IHZzIEhTQTY0KS4gQW5kIGRHUFVzIGRvbid0IHN1 cHBvcnQgTVRZUEVfQ0MuIFRoZXkKdXNlIE1UWVBFX1VDIGluc3RlYWQgZm9yIG1lbW9yeSB0aGF0 IHJlcXVpcmVzIGNvaGVyZW5jeS4KClNpZ25lZC1vZmYtYnk6IEZlbGl4IEt1ZWhsaW5nIDxGZWxp eC5LdWVobGluZ0BhbWQuY29tPgotLS0KIC4uLi9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2Rldmlj ZV9xdWV1ZV9tYW5hZ2VyLmMgIHwgMTEgKysrCiAuLi4vZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9k ZXZpY2VfcXVldWVfbWFuYWdlci5oICB8ICA0ICsKIC4uLi9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2 aWNlX3F1ZXVlX21hbmFnZXJfY2lrLmMgIHwgNTYgKysrKysrKysrKysrKwogLi4uL2RybS9hbWQv YW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlcl92aS5jICAgfCA5MyArKysrKysrKysrKysr KysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDE2NCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIuYwpp bmRleCAzZTJmNTNiLi4wOTI2NTNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGtmZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGtmZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIuYwpAQCAtMTMwOCw2ICsxMzA4LDE3IEBA IHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZGV2aWNlX3F1ZXVlX21hbmFnZXJfaW5pdChz dHJ1Y3Qga2ZkX2RldiAqZGV2KQogCWNhc2UgQ0hJUF9LQVZFUkk6CiAJCWRldmljZV9xdWV1ZV9t YW5hZ2VyX2luaXRfY2lrKCZkcW0tPmFzaWNfb3BzKTsKIAkJYnJlYWs7CisKKwljYXNlIENISVBf SEFXQUlJOgorCQlkZXZpY2VfcXVldWVfbWFuYWdlcl9pbml0X2Npa19oYXdhaWkoJmRxbS0+YXNp Y19vcHMpOworCQlicmVhazsKKworCWNhc2UgQ0hJUF9UT05HQToKKwljYXNlIENISVBfRklKSToK KwljYXNlIENISVBfUE9MQVJJUzEwOgorCWNhc2UgQ0hJUF9QT0xBUklTMTE6CisJCWRldmljZV9x dWV1ZV9tYW5hZ2VyX2luaXRfdmlfdG9uZ2EoJmRxbS0+YXNpY19vcHMpOworCQlicmVhazsKIAlk ZWZhdWx0OgogCQlXQVJOKDEsICJVbmV4cGVjdGVkIEFTSUMgZmFtaWx5ICV1IiwKIAkJICAgICBk ZXYtPmRldmljZV9pbmZvLT5hc2ljX2ZhbWlseSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5oCmluZGV4IDlmZGM5YzIuLjY4 YmUwYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2Vf cXVldWVfbWFuYWdlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZp Y2VfcXVldWVfbWFuYWdlci5oCkBAIC0xODUsOCArMTg1LDEyIEBAIHN0cnVjdCBkZXZpY2VfcXVl dWVfbWFuYWdlciB7CiAKIHZvaWQgZGV2aWNlX3F1ZXVlX21hbmFnZXJfaW5pdF9jaWsoCiAJCXN0 cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlcl9hc2ljX29wcyAqYXNpY19vcHMpOwordm9pZCBkZXZp Y2VfcXVldWVfbWFuYWdlcl9pbml0X2Npa19oYXdhaWkoCisJCXN0cnVjdCBkZXZpY2VfcXVldWVf bWFuYWdlcl9hc2ljX29wcyAqYXNpY19vcHMpOwogdm9pZCBkZXZpY2VfcXVldWVfbWFuYWdlcl9p bml0X3ZpKAogCQlzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXJfYXNpY19vcHMgKmFzaWNfb3Bz KTsKK3ZvaWQgZGV2aWNlX3F1ZXVlX21hbmFnZXJfaW5pdF92aV90b25nYSgKKwkJc3RydWN0IGRl dmljZV9xdWV1ZV9tYW5hZ2VyX2FzaWNfb3BzICphc2ljX29wcyk7CiB2b2lkIHByb2dyYW1fc2hf bWVtX3NldHRpbmdzKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAogCQkJCQlzdHJ1 Y3QgcWNtX3Byb2Nlc3NfZGV2aWNlICpxcGQpOwogdW5zaWduZWQgaW50IGdldF9xdWV1ZXNfbnVt KHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlcl9jaWsuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlcl9jaWsuYwppbmRl eCAyOGU0OGM5Li5hZWQ0YzIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtm ZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXJfY2lrLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyX2Npay5jCkBAIC0zNCw4ICszNCwxMyBA QCBzdGF0aWMgYm9vbCBzZXRfY2FjaGVfbWVtb3J5X3BvbGljeV9jaWsoc3RydWN0IGRldmljZV9x dWV1ZV9tYW5hZ2VyICpkcW0sCiAJCQkJICAgdWludDY0X3QgYWx0ZXJuYXRlX2FwZXJ0dXJlX3Np emUpOwogc3RhdGljIGludCB1cGRhdGVfcXBkX2NpayhzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFn ZXIgKmRxbSwKIAkJCQkJc3RydWN0IHFjbV9wcm9jZXNzX2RldmljZSAqcXBkKTsKK3N0YXRpYyBp bnQgdXBkYXRlX3FwZF9jaWtfaGF3YWlpKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFt LAorCQkJCQlzdHJ1Y3QgcWNtX3Byb2Nlc3NfZGV2aWNlICpxcGQpOwogc3RhdGljIHZvaWQgaW5p dF9zZG1hX3ZtKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLCBzdHJ1Y3QgcXVldWUg KnEsCiAJCQkJc3RydWN0IHFjbV9wcm9jZXNzX2RldmljZSAqcXBkKTsKK3N0YXRpYyB2b2lkIGlu aXRfc2RtYV92bV9oYXdhaWkoc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCisJCQkJ c3RydWN0IHF1ZXVlICpxLAorCQkJCXN0cnVjdCBxY21fcHJvY2Vzc19kZXZpY2UgKnFwZCk7CiAK IHZvaWQgZGV2aWNlX3F1ZXVlX21hbmFnZXJfaW5pdF9jaWsoCiAJCXN0cnVjdCBkZXZpY2VfcXVl dWVfbWFuYWdlcl9hc2ljX29wcyAqYXNpY19vcHMpCkBAIC00NSw2ICs1MCwxNCBAQCB2b2lkIGRl dmljZV9xdWV1ZV9tYW5hZ2VyX2luaXRfY2lrKAogCWFzaWNfb3BzLT5pbml0X3NkbWFfdm0gPSBp bml0X3NkbWFfdm07CiB9CiAKK3ZvaWQgZGV2aWNlX3F1ZXVlX21hbmFnZXJfaW5pdF9jaWtfaGF3 YWlpKAorCQlzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXJfYXNpY19vcHMgKmFzaWNfb3BzKQor eworCWFzaWNfb3BzLT5zZXRfY2FjaGVfbWVtb3J5X3BvbGljeSA9IHNldF9jYWNoZV9tZW1vcnlf cG9saWN5X2NpazsKKwlhc2ljX29wcy0+dXBkYXRlX3FwZCA9IHVwZGF0ZV9xcGRfY2lrX2hhd2Fp aTsKKwlhc2ljX29wcy0+aW5pdF9zZG1hX3ZtID0gaW5pdF9zZG1hX3ZtX2hhd2FpaTsKK30KKwog c3RhdGljIHVpbnQzMl90IGNvbXB1dGVfc2hfbWVtX2Jhc2VzXzY0Yml0KHVuc2lnbmVkIGludCB0 b3BfYWRkcmVzc19ueWJibGUpCiB7CiAJLyogSW4gNjQtYml0IG1vZGUsIHdlIGNhbiBvbmx5IGNv bnRyb2wgdGhlIHRvcCAzIGJpdHMgb2YgdGhlIExEUywKQEAgLTEzMiw2ICsxNDUsMzYgQEAgc3Rh dGljIGludCB1cGRhdGVfcXBkX2NpayhzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwK IAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCB1cGRhdGVfcXBkX2Npa19oYXdhaWkoc3RydWN0 IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCisJCXN0cnVjdCBxY21fcHJvY2Vzc19kZXZpY2Ug KnFwZCkKK3sKKwlzdHJ1Y3Qga2ZkX3Byb2Nlc3NfZGV2aWNlICpwZGQ7CisJdW5zaWduZWQgaW50 IHRlbXA7CisKKwlwZGQgPSBxcGRfdG9fcGRkKHFwZCk7CisKKwkvKiBjaGVjayBpZiBzaF9tZW1f Y29uZmlnIHJlZ2lzdGVyIGFscmVhZHkgY29uZmlndXJlZCAqLworCWlmIChxcGQtPnNoX21lbV9j b25maWcgPT0gMCkgeworCQlxcGQtPnNoX21lbV9jb25maWcgPQorCQkJQUxJR05NRU5UX01PREUo U0hfTUVNX0FMSUdOTUVOVF9NT0RFX1VOQUxJR05FRCkgfAorCQkJREVGQVVMVF9NVFlQRShNVFlQ RV9OT05DQUNIRUQpIHwKKwkJCUFQRTFfTVRZUEUoTVRZUEVfTk9OQ0FDSEVEKTsKKwkJcXBkLT5z aF9tZW1fYXBlMV9saW1pdCA9IDA7CisJCXFwZC0+c2hfbWVtX2FwZTFfYmFzZSA9IDA7CisJfQor CisJLyogT24gZEdQVSB3ZSdyZSBhbHdheXMgaW4gR1BVVk02NCBhZGRyZXNzaW5nIG1vZGUgd2l0 aCA2NC1iaXQKKwkgKiBhcGVydHVyZSBhZGRyZXNzZXMuCisJICovCisJdGVtcCA9IGdldF9zaF9t ZW1fYmFzZXNfbnliYmxlXzY0KHBkZCk7CisJcXBkLT5zaF9tZW1fYmFzZXMgPSBjb21wdXRlX3No X21lbV9iYXNlc182NGJpdCh0ZW1wKTsKKworCXByX2RlYnVnKCJpczMyYml0IHByb2Nlc3M6ICVk IHNoX21lbV9iYXNlcyBueWJibGU6IDB4JVggYW5kIHJlZ2lzdGVyIDB4JVhcbiIsCisJCXFwZC0+ cHFtLT5wcm9jZXNzLT5pc18zMmJpdF91c2VyX21vZGUsIHRlbXAsIHFwZC0+c2hfbWVtX2Jhc2Vz KTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgdm9pZCBpbml0X3NkbWFfdm0oc3RydWN0IGRl dmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sIHN0cnVjdCBxdWV1ZSAqcSwKIAkJCQlzdHJ1Y3QgcWNt X3Byb2Nlc3NfZGV2aWNlICpxcGQpCiB7CkBAIC0xNDcsMyArMTkwLDE2IEBAIHN0YXRpYyB2b2lk IGluaXRfc2RtYV92bShzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwgc3RydWN0IHF1 ZXVlICpxLAogCiAJcS0+cHJvcGVydGllcy5zZG1hX3ZtX2FkZHIgPSB2YWx1ZTsKIH0KKworc3Rh dGljIHZvaWQgaW5pdF9zZG1hX3ZtX2hhd2FpaShzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIg KmRxbSwKKwkJCQlzdHJ1Y3QgcXVldWUgKnEsCisJCQkJc3RydWN0IHFjbV9wcm9jZXNzX2Rldmlj ZSAqcXBkKQoreworCS8qIE9uIGRHUFUgd2UncmUgYWx3YXlzIGluIEdQVVZNNjQgYWRkcmVzc2lu ZyBtb2RlIHdpdGggNjQtYml0CisJICogYXBlcnR1cmUgYWRkcmVzc2VzLgorCSAqLworCXEtPnBy b3BlcnRpZXMuc2RtYV92bV9hZGRyID0KKwkJKChnZXRfc2hfbWVtX2Jhc2VzX255YmJsZV82NChx cGRfdG9fcGRkKHFwZCkpKSA8PAorCQkgU0RNQTBfUkxDMF9WSVJUVUFMX0FERFJfX1NIQVJFRF9C QVNFX19TSElGVCkgJgorCQlTRE1BMF9STEMwX1ZJUlRVQUxfQUREUl9fU0hBUkVEX0JBU0VfTUFT SzsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2Vf cXVldWVfbWFuYWdlcl92aS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2Rldmlj ZV9xdWV1ZV9tYW5hZ2VyX3ZpLmMKaW5kZXggMmZiY2U1Ny4uZmQ2MGExMSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyX3ZpLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2Vy X3ZpLmMKQEAgLTMzLDEwICszMywyMSBAQCBzdGF0aWMgYm9vbCBzZXRfY2FjaGVfbWVtb3J5X3Bv bGljeV92aShzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwKIAkJCQkgICBlbnVtIGNh Y2hlX3BvbGljeSBhbHRlcm5hdGVfcG9saWN5LAogCQkJCSAgIHZvaWQgX191c2VyICphbHRlcm5h dGVfYXBlcnR1cmVfYmFzZSwKIAkJCQkgICB1aW50NjRfdCBhbHRlcm5hdGVfYXBlcnR1cmVfc2l6 ZSk7CitzdGF0aWMgYm9vbCBzZXRfY2FjaGVfbWVtb3J5X3BvbGljeV92aV90b25nYShzdHJ1Y3Qg ZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwKKwkJCXN0cnVjdCBxY21fcHJvY2Vzc19kZXZpY2Ug KnFwZCwKKwkJCWVudW0gY2FjaGVfcG9saWN5IGRlZmF1bHRfcG9saWN5LAorCQkJZW51bSBjYWNo ZV9wb2xpY3kgYWx0ZXJuYXRlX3BvbGljeSwKKwkJCXZvaWQgX191c2VyICphbHRlcm5hdGVfYXBl cnR1cmVfYmFzZSwKKwkJCXVpbnQ2NF90IGFsdGVybmF0ZV9hcGVydHVyZV9zaXplKTsKIHN0YXRp YyBpbnQgdXBkYXRlX3FwZF92aShzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwKIAkJ CQkJc3RydWN0IHFjbV9wcm9jZXNzX2RldmljZSAqcXBkKTsKK3N0YXRpYyBpbnQgdXBkYXRlX3Fw ZF92aV90b25nYShzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwKKwkJCXN0cnVjdCBx Y21fcHJvY2Vzc19kZXZpY2UgKnFwZCk7CiBzdGF0aWMgdm9pZCBpbml0X3NkbWFfdm0oc3RydWN0 IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sIHN0cnVjdCBxdWV1ZSAqcSwKIAkJCQlzdHJ1Y3Qg cWNtX3Byb2Nlc3NfZGV2aWNlICpxcGQpOworc3RhdGljIHZvaWQgaW5pdF9zZG1hX3ZtX3Rvbmdh KHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAorCQkJc3RydWN0IHF1ZXVlICpxLAor CQkJc3RydWN0IHFjbV9wcm9jZXNzX2RldmljZSAqcXBkKTsKIAogdm9pZCBkZXZpY2VfcXVldWVf bWFuYWdlcl9pbml0X3ZpKAogCQlzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXJfYXNpY19vcHMg KmFzaWNfb3BzKQpAQCAtNDYsNiArNTcsMTQgQEAgdm9pZCBkZXZpY2VfcXVldWVfbWFuYWdlcl9p bml0X3ZpKAogCWFzaWNfb3BzLT5pbml0X3NkbWFfdm0gPSBpbml0X3NkbWFfdm07CiB9CiAKK3Zv aWQgZGV2aWNlX3F1ZXVlX21hbmFnZXJfaW5pdF92aV90b25nYSgKKwkJc3RydWN0IGRldmljZV9x dWV1ZV9tYW5hZ2VyX2FzaWNfb3BzICphc2ljX29wcykKK3sKKwlhc2ljX29wcy0+c2V0X2NhY2hl X21lbW9yeV9wb2xpY3kgPSBzZXRfY2FjaGVfbWVtb3J5X3BvbGljeV92aV90b25nYTsKKwlhc2lj X29wcy0+dXBkYXRlX3FwZCA9IHVwZGF0ZV9xcGRfdmlfdG9uZ2E7CisJYXNpY19vcHMtPmluaXRf c2RtYV92bSA9IGluaXRfc2RtYV92bV90b25nYTsKK30KKwogc3RhdGljIHVpbnQzMl90IGNvbXB1 dGVfc2hfbWVtX2Jhc2VzXzY0Yml0KHVuc2lnbmVkIGludCB0b3BfYWRkcmVzc19ueWJibGUpCiB7 CiAJLyogSW4gNjQtYml0IG1vZGUsIHdlIGNhbiBvbmx5IGNvbnRyb2wgdGhlIHRvcCAzIGJpdHMg b2YgdGhlIExEUywKQEAgLTEwMyw2ICsxMjIsMzMgQEAgc3RhdGljIGJvb2wgc2V0X2NhY2hlX21l bW9yeV9wb2xpY3lfdmkoc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCiAJcmV0dXJu IHRydWU7CiB9CiAKK3N0YXRpYyBib29sIHNldF9jYWNoZV9tZW1vcnlfcG9saWN5X3ZpX3Rvbmdh KHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAorCQlzdHJ1Y3QgcWNtX3Byb2Nlc3Nf ZGV2aWNlICpxcGQsCisJCWVudW0gY2FjaGVfcG9saWN5IGRlZmF1bHRfcG9saWN5LAorCQllbnVt IGNhY2hlX3BvbGljeSBhbHRlcm5hdGVfcG9saWN5LAorCQl2b2lkIF9fdXNlciAqYWx0ZXJuYXRl X2FwZXJ0dXJlX2Jhc2UsCisJCXVpbnQ2NF90IGFsdGVybmF0ZV9hcGVydHVyZV9zaXplKQorewor CXVpbnQzMl90IGRlZmF1bHRfbXR5cGU7CisJdWludDMyX3QgYXBlMV9tdHlwZTsKKworCWRlZmF1 bHRfbXR5cGUgPSAoZGVmYXVsdF9wb2xpY3kgPT0gY2FjaGVfcG9saWN5X2NvaGVyZW50KSA/CisJ CQlNVFlQRV9VQyA6CisJCQlNVFlQRV9OQzsKKworCWFwZTFfbXR5cGUgPSAoYWx0ZXJuYXRlX3Bv bGljeSA9PSBjYWNoZV9wb2xpY3lfY29oZXJlbnQpID8KKwkJCU1UWVBFX1VDIDoKKwkJCU1UWVBF X05DOworCisJcXBkLT5zaF9tZW1fY29uZmlnID0KKwkJCVNIX01FTV9BTElHTk1FTlRfTU9ERV9V TkFMSUdORUQgPDwKKwkJCQkgICBTSF9NRU1fQ09ORklHX19BTElHTk1FTlRfTU9ERV9fU0hJRlQg fAorCQkJZGVmYXVsdF9tdHlwZSA8PCBTSF9NRU1fQ09ORklHX19ERUZBVUxUX01UWVBFX19TSElG VCB8CisJCQlhcGUxX210eXBlIDw8IFNIX01FTV9DT05GSUdfX0FQRTFfTVRZUEVfX1NISUZUOwor CisJcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBpbnQgdXBkYXRlX3FwZF92aShzdHJ1Y3QgZGV2 aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwKIAkJCQkJc3RydWN0IHFjbV9wcm9jZXNzX2RldmljZSAq cXBkKQogewpAQCAtMTQ0LDYgKzE5MCw0MCBAQCBzdGF0aWMgaW50IHVwZGF0ZV9xcGRfdmkoc3Ry dWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBp bnQgdXBkYXRlX3FwZF92aV90b25nYShzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwK KwkJCXN0cnVjdCBxY21fcHJvY2Vzc19kZXZpY2UgKnFwZCkKK3sKKwlzdHJ1Y3Qga2ZkX3Byb2Nl c3NfZGV2aWNlICpwZGQ7CisJdW5zaWduZWQgaW50IHRlbXA7CisKKwlwZGQgPSBxcGRfdG9fcGRk KHFwZCk7CisKKwkvKiBjaGVjayBpZiBzaF9tZW1fY29uZmlnIHJlZ2lzdGVyIGFscmVhZHkgY29u ZmlndXJlZCAqLworCWlmIChxcGQtPnNoX21lbV9jb25maWcgPT0gMCkgeworCQlxcGQtPnNoX21l bV9jb25maWcgPQorCQkJCVNIX01FTV9BTElHTk1FTlRfTU9ERV9VTkFMSUdORUQgPDwKKwkJCQkJ U0hfTUVNX0NPTkZJR19fQUxJR05NRU5UX01PREVfX1NISUZUIHwKKwkJCQlNVFlQRV9VQyA8PAor CQkJCQlTSF9NRU1fQ09ORklHX19ERUZBVUxUX01UWVBFX19TSElGVCB8CisJCQkJTVRZUEVfVUMg PDwKKwkJCQkJU0hfTUVNX0NPTkZJR19fQVBFMV9NVFlQRV9fU0hJRlQ7CisKKwkJcXBkLT5zaF9t ZW1fYXBlMV9saW1pdCA9IDA7CisJCXFwZC0+c2hfbWVtX2FwZTFfYmFzZSA9IDA7CisJfQorCisJ LyogT24gZEdQVSB3ZSdyZSBhbHdheXMgaW4gR1BVVk02NCBhZGRyZXNzaW5nIG1vZGUgd2l0aCA2 NC1iaXQKKwkgKiBhcGVydHVyZSBhZGRyZXNzZXMuCisJICovCisJdGVtcCA9IGdldF9zaF9tZW1f YmFzZXNfbnliYmxlXzY0KHBkZCk7CisJcXBkLT5zaF9tZW1fYmFzZXMgPSBjb21wdXRlX3NoX21l bV9iYXNlc182NGJpdCh0ZW1wKTsKKworCXByX2RlYnVnKCJzaF9tZW1fYmFzZXMgbnliYmxlOiAw eCVYIGFuZCByZWdpc3RlciAweCVYXG4iLAorCQl0ZW1wLCBxcGQtPnNoX21lbV9iYXNlcyk7CisK KwlyZXR1cm4gMDsKK30KKwogc3RhdGljIHZvaWQgaW5pdF9zZG1hX3ZtKHN0cnVjdCBkZXZpY2Vf cXVldWVfbWFuYWdlciAqZHFtLCBzdHJ1Y3QgcXVldWUgKnEsCiAJCQkJc3RydWN0IHFjbV9wcm9j ZXNzX2RldmljZSAqcXBkKQogewpAQCAtMTU5LDMgKzIzOSwxNiBAQCBzdGF0aWMgdm9pZCBpbml0 X3NkbWFfdm0oc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sIHN0cnVjdCBxdWV1ZSAq cSwKIAogCXEtPnByb3BlcnRpZXMuc2RtYV92bV9hZGRyID0gdmFsdWU7CiB9CisKK3N0YXRpYyB2 b2lkIGluaXRfc2RtYV92bV90b25nYShzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwK KwkJCXN0cnVjdCBxdWV1ZSAqcSwKKwkJCXN0cnVjdCBxY21fcHJvY2Vzc19kZXZpY2UgKnFwZCkK K3sKKwkvKiBPbiBkR1BVIHdlJ3JlIGFsd2F5cyBpbiBHUFVWTTY0IGFkZHJlc3NpbmcgbW9kZSB3 aXRoIDY0LWJpdAorCSAqIGFwZXJ0dXJlIGFkZHJlc3Nlcy4KKwkgKi8KKwlxLT5wcm9wZXJ0aWVz LnNkbWFfdm1fYWRkciA9CisJCSgoZ2V0X3NoX21lbV9iYXNlc19ueWJibGVfNjQocXBkX3RvX3Bk ZChxcGQpKSkgPDwKKwkJIFNETUEwX1JMQzBfVklSVFVBTF9BRERSX19TSEFSRURfQkFTRV9fU0hJ RlQpICYKKwkJU0RNQTBfUkxDMF9WSVJUVUFMX0FERFJfX1NIQVJFRF9CQVNFX01BU0s7Cit9Ci0t IAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K YW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==