From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Chen Subject: [PATCH 2/2] xen/arm: smmu: Parse generic iommu binding for PCI devices Date: Fri, 30 Jun 2017 11:23:07 +0800 Message-ID: <1498792987-29934-3-git-send-email-Wei.Chen@arm.com> References: <1498792987-29934-1-git-send-email-Wei.Chen@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1498792987-29934-1-git-send-email-Wei.Chen@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: sstabellini@kernel.org, wei.chen@arm.com, steve.capper@arm.com, Kaly.Xin@arm.com, julien.grall@arm.com, nd@arm.com List-Id: xen-devel@lists.xenproject.org VGhlIGxlZ2FjeSBzbW11IGJpbmRpbmcgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZhdm91ciBvZiB0 aGUgZ2VuZXJpYwoiaW9tbXVzIiBiaW5kaW5nLiBTbyB3ZSBuZWVkIGEgbmV3IGhlbHBlciB0byBw YXJzZSBnZW5lcmljIGlvbW11CmJpbmRpbmdzLiBXaGVuIHRoZSBzeXN0ZW0gZGV0ZWN0cyB0aGUg U01NVSBpcyB1c2luZyBnZW5lcmljIGlvbW11CmJpbmRpbmcsIHRoaXMgaGVscGVyIHdpbGwgYmUg Y2FsbGVkIHdoZW4gdGhpcyBwbGF0Zm9ybSBkZXZpY2UgaXMKYXNzaWdlZCB0byBhIGd1ZXN0LgoK VGhpcyBwYXRjaCBpcyBiYXNlZCBvbiBMaW51eCBvZl9pb21tdS5jOgpodHRwczovL2dpdC5rZXJu ZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC90b3J2YWxkcy9saW51eC5naXQvdHJlZS9k cml2ZXJzL2lvbW11L29mX2lvbW11LmMKVGhlIGNvbW1pdCBpZCBpczoKMmEwYzU3NTQ1YTI5MWYy NTdjZDIzMWIxYzRiMTgyODViODQ2MDhkOAoKU2lnbmVkLW9mZi1ieTogV2VpIENoZW4gPFdlaS5D aGVuQGFybS5jb20+Ci0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYyB8IDcz ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwg NzEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3Nt bXUuYwppbmRleCAyNWYyMjA3Li41MGZmOTk3IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9hcm0vc21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11 LmMKQEAgLTI3NTAsNyArMjc1MCw3MiBAQCBzdGF0aWMgaW50IGFybV9zbW11X3BsYXRmb3JtX2lv bW11X2luaXQoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50 IGFybV9zbW11X3hlbl9hZGRfZGV2aWNlKHU4IGRldmZuLCBzdHJ1Y3QgZGV2aWNlKmRldikKKy8q CisgKiBDdXJyZW50bHksIHdlIGhhdmVuJ3Qgc3VwcG9ydGVkIFBDSSBkZXZpY2Ugb24gQVJNLiBT byB0aGlzIGlzIHRoZQorICogdGVtcG9yYXJ5IGZ1bmN0aW9uIHRvIGdldCBkZXZpY2Ugbm9kZSBv ZiBwY2kgYnJpZGdlIGRldmljZSBmb3IKKyAqIGZ1bmN0aW9uIHZlcmlmaWNhdGlvbiBvbmx5Cisg Ki8KK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX25vZGUgKnBjaV9nZXRfYnJpZGdlX2RldmljZV9ub2Rl KHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKmR0X2RldjsKKwlj b25zdCBjaGFyICp0eXBlX3N0cjsKKworCWR0X2Zvcl9lYWNoX2RldmljZV9ub2RlKGR0X2hvc3Qs IGR0X2RldikgeworCQkvKiBSZXR1cm4gdGhlIGZpcnN0IHBjaSBicmlkZ2UgZGV2aWNlIG5vZGUg c2ltcGx5ICovCisJCWlmICghZHRfcHJvcGVydHlfcmVhZF9zdHJpbmcoZHRfZGV2LCAiZGV2aWNl X3R5cGUiLCAmdHlwZV9zdHIpICYmCisJCQkhc3RyY21wKHR5cGVfc3RyLCAicGNpIikpCisJCQly ZXR1cm4gZHRfZGV2OworCX0KKworCXJldHVybiBOVUxMOworfQorCisjZGVmaW5lIFBDSV9ERVZJ RChidXMsIGRldmZuKSAgKCgoKHUxNikoYnVzKSkgPDwgOCkgfCAoZGV2Zm4pKQorCitzdGF0aWMg aW50IGFybV9zbW11X3BjaV9pb21tdV9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgdTggZGV2Zm4p Cit7CisJc3RydWN0IGRldmljZV9ub2RlICpicmlkZ2VfbnA7CisJc3RydWN0IG9mX3BoYW5kbGVf YXJncyBpb21tdV9zcGVjOworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYp OworCWludCByZXQ7CisKKwlicmlkZ2VfbnAgPSBwY2lfZ2V0X2JyaWRnZV9kZXZpY2Vfbm9kZShk ZXYpOworCWlmICghYnJpZGdlX25wKSB7CisJCWRldl9lcnIoZGV2LCAiQ2xvdWQgbm90IGZpbmQg dGhlIHBjaSBicmlkZ2UgZGV2aWNlIG5vZGUhXG4iKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQor CisJLyoKKwkgKiBTdGFydCBieSB0cmFjaW5nIHRoZSBSSUQgYWxpYXMgZG93biB0aGUgUENJIHRv cG9sb2d5IGFzCisJICogZmFyIGFzIHRoZSBob3N0IGJyaWRnZSB3aG9zZSBPRiBub2RlIHdlIGhh dmUuLi4KKwkgKiAod2UncmUgbm90IGV2ZW4gYXR0ZW1wdGluZyB0byBoYW5kbGUgbXVsdGktYWxp YXMgZGV2aWNlcyB5ZXQpCisJICovCisJaW9tbXVfc3BlYy5hcmdzX2NvdW50ID0gMTsKKwlpb21t dV9zcGVjLm5wID0gYnJpZGdlX25wOworCXJldCA9IF9fYXJtX3NtbXVfZ2V0X3BjaV9zaWQocGRl diwgUENJX0RFVklEKHBkZXYtPmJ1cywgZGV2Zm4pLAorCQkJCQkmaW9tbXVfc3BlYy5hcmdzWzBd KTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZGV2LCAiR2V0IHBjaSByZXF1ZXN0ZXIgSUQgZmFp bGVkLCBlcnI9JWQhXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCS8qCisJICogLi4u dGhlbiBmaW5kIG91dCB3aGF0IHRoYXQgYmVjb21lcyBvbmNlIGl0IGVzY2FwZXMgdGhlIFBDSQor CSAqIGJ1cyBpbnRvIHRoZSBzeXN0ZW0gYmV5b25kLCBhbmQgd2hpY2ggSU9NTVUgaXQgZW5kcyB1 cCBhdC4KKwkgKi8KKwlpb21tdV9zcGVjLm5wID0gTlVMTDsKKwlyZXQgPSBkdF9wY2lfbWFwX3Jp ZChicmlkZ2VfbnAsIGlvbW11X3NwZWMuYXJnc1swXSwgImlvbW11LW1hcCIsCisJCQkJCSJpb21t dS1tYXAtbWFzayIsICZpb21tdV9zcGVjLm5wLAorCQkJCQlpb21tdV9zcGVjLmFyZ3MpOworCWlm IChyZXQpIHsKKwkJZGV2X2VycihkZXYsICJEbyBwY2kgbWFwIHJpZCBmYWlsZWQsIGVycj0lZFxu IiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gYXJtX3NtbXVfb2ZfeGxhdGUo ZGV2LCAmaW9tbXVfc3BlYyk7Cit9CisKK3N0YXRpYyBpbnQgYXJtX3NtbXVfeGVuX2FkZF9kZXZp Y2UodTggZGV2Zm4sIHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlpbnQgcmV0OwogCkBAIC0yNzYw LDcgKzI4MjUsMTEgQEAgc3RhdGljIGludCBhcm1fc21tdV94ZW5fYWRkX2RldmljZSh1OCBkZXZm biwgc3RydWN0IGRldmljZSpkZXYpCiAJICogcmVnaXN0ZXIgTWFzdGVyIElEcyB3aGlsZSB0aGlz IGZ1bmN0aW9uIGhhZCBiZWVuIGludm9rZWQuCiAJICovCiAJaWYgKHVzaW5nX2dlbmVyaWNfYmlu ZGluZykgewotCQlyZXQgPSBhcm1fc21tdV9wbGF0Zm9ybV9pb21tdV9pbml0KGRldik7CisJCWlm IChkZXZfaXNfcGNpKGRldikpCisJCQlyZXQgPSBhcm1fc21tdV9wY2lfaW9tbXVfaW5pdChkZXYs IGRldmZuKTsKKwkJZWxzZQorCQkJcmV0ID0gYXJtX3NtbXVfcGxhdGZvcm1faW9tbXVfaW5pdChk ZXYpOworCiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KLS0gCjIuNy40CgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==