From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 3/5] drm/tegra: Setup shared IOMMU domain after initialization Date: Wed, 23 Jan 2019 10:39:49 +0100 Message-ID: <20190123093951.24908-4-thierry.reding@gmail.com> References: <20190123093951.24908-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190123093951.24908-1-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: linux-tegra@vger.kernel.org, Dmitry Osipenko , dri-devel@lists.freedesktop.org, Mikko Perttunen List-Id: linux-tegra@vger.kernel.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCk1vdmUgaW5pdGlhbGl6 YXRpb24gb2YgdGhlIHNoYXJlZCBJT01NVSBkb21haW4gYWZ0ZXIgdGhlIGhvc3QxeCBkZXZpY2UK aGFzIGJlZW4gaW5pdGlhbGl6ZWQuIEF0IHRoaXMgcG9pbnQgYWxsIHRoZSBUZWdyYSBEUk0gY2xp ZW50cyBoYXZlIGJlZW4KYXR0YWNoZWQgdG8gdGhlIHNoYXJlZCBJT01NVSBkb21haW4uCgpUaGlz IGlzIGltcG9ydGFudCBiZWNhdXNlIFRlZ3JhMTg2IGFuZCBsYXRlciB1c2UgYW4gQVJNIFNNTVUs IGZvciB3aGljaAp0aGUgZHJpdmVyIGRlZmVycyBzZXR0aW5nIHVwIHRoZSBnZW9tZXRyeSBmb3Ig YSBkb21haW4gdW50aWwgYSBkZXZpY2UgaXMKYXR0YWNoZWQgdG8gaXQuIFRoaXMgaXMgdG8gZW5z dXJlIHRoYXQgdGhlIGRvbWFpbiBpcyBwcm9wZXJseSBzZXQgdXAgZm9yCmEgc3BlY2lmaWMgQVJN IFNNTVUgaW5zdGFuY2UsIHdoaWNoIGlzIHVua25vd24gYXQgYWxsb2NhdGlvbiB0aW1lLgoKU2ln bmVkLW9mZi1ieTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMgfCA1NCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5jIGIvZHJpdmVycy9n cHUvZHJtL3RlZ3JhL2RybS5jCmluZGV4IDYxZGNiZDIxOGZmYy4uMjcxYzdhNWZjOTU0IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L3RlZ3JhL2RybS5jCkBAIC05MiwxMCArOTIsNiBAQCBzdGF0aWMgaW50IHRlZ3JhX2RybV9sb2Fk KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAJCXJldHVybiAt RU5PTUVNOwogCiAJaWYgKGlvbW11X3ByZXNlbnQoJnBsYXRmb3JtX2J1c190eXBlKSkgewotCQl1 NjQgY2FydmVvdXRfc3RhcnQsIGNhcnZlb3V0X2VuZCwgZ2VtX3N0YXJ0LCBnZW1fZW5kOwotCQlz dHJ1Y3QgaW9tbXVfZG9tYWluX2dlb21ldHJ5ICpnZW9tZXRyeTsKLQkJdW5zaWduZWQgbG9uZyBv cmRlcjsKLQogCQl0ZWdyYS0+ZG9tYWluID0gaW9tbXVfZG9tYWluX2FsbG9jKCZwbGF0Zm9ybV9i dXNfdHlwZSk7CiAJCWlmICghdGVncmEtPmRvbWFpbikgewogCQkJZXJyID0gLUVOT01FTTsKQEAg LTEwNSwyNyArMTAxLDYgQEAgc3RhdGljIGludCB0ZWdyYV9kcm1fbG9hZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtLCB1bnNpZ25lZCBsb25nIGZsYWdzKQogCQllcnIgPSBpb3ZhX2NhY2hlX2dldCgp OwogCQlpZiAoZXJyIDwgMCkKIAkJCWdvdG8gZG9tYWluOwotCi0JCWdlb21ldHJ5ID0gJnRlZ3Jh LT5kb21haW4tPmdlb21ldHJ5OwotCQlnZW1fc3RhcnQgPSBnZW9tZXRyeS0+YXBlcnR1cmVfc3Rh cnQ7Ci0JCWdlbV9lbmQgPSBnZW9tZXRyeS0+YXBlcnR1cmVfZW5kIC0gQ0FSVkVPVVRfU1o7Ci0J CWNhcnZlb3V0X3N0YXJ0ID0gZ2VtX2VuZCArIDE7Ci0JCWNhcnZlb3V0X2VuZCA9IGdlb21ldHJ5 LT5hcGVydHVyZV9lbmQ7Ci0KLQkJb3JkZXIgPSBfX2Zmcyh0ZWdyYS0+ZG9tYWluLT5wZ3NpemVf Yml0bWFwKTsKLQkJaW5pdF9pb3ZhX2RvbWFpbigmdGVncmEtPmNhcnZlb3V0LmRvbWFpbiwgMVVM IDw8IG9yZGVyLAotCQkJCSBjYXJ2ZW91dF9zdGFydCA+PiBvcmRlcik7Ci0KLQkJdGVncmEtPmNh cnZlb3V0LnNoaWZ0ID0gaW92YV9zaGlmdCgmdGVncmEtPmNhcnZlb3V0LmRvbWFpbik7Ci0JCXRl Z3JhLT5jYXJ2ZW91dC5saW1pdCA9IGNhcnZlb3V0X2VuZCA+PiB0ZWdyYS0+Y2FydmVvdXQuc2hp ZnQ7Ci0KLQkJZHJtX21tX2luaXQoJnRlZ3JhLT5tbSwgZ2VtX3N0YXJ0LCBnZW1fZW5kIC0gZ2Vt X3N0YXJ0ICsgMSk7Ci0JCW11dGV4X2luaXQoJnRlZ3JhLT5tbV9sb2NrKTsKLQotCQlEUk1fREVC VUcoIklPTU1VIGFwZXJ0dXJlczpcbiIpOwotCQlEUk1fREVCVUcoIiAgR0VNOiAlI2xseC0lI2xs eFxuIiwgZ2VtX3N0YXJ0LCBnZW1fZW5kKTsKLQkJRFJNX0RFQlVHKCIgIENhcnZlb3V0OiAlI2xs eC0lI2xseFxuIiwgY2FydmVvdXRfc3RhcnQsCi0JCQkgIGNhcnZlb3V0X2VuZCk7CiAJfQogCiAJ bXV0ZXhfaW5pdCgmdGVncmEtPmNsaWVudHNfbG9jayk7CkBAIC0xNTksNiArMTM0LDM1IEBAIHN0 YXRpYyBpbnQgdGVncmFfZHJtX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgdW5zaWduZWQg bG9uZyBmbGFncykKIAlpZiAoZXJyIDwgMCkKIAkJZ290byBmYmRldjsKIAorCWlmICh0ZWdyYS0+ ZG9tYWluKSB7CisJCXU2NCBjYXJ2ZW91dF9zdGFydCwgY2FydmVvdXRfZW5kLCBnZW1fc3RhcnQs IGdlbV9lbmQ7CisJCWRtYV9hZGRyX3Qgc3RhcnQsIGVuZDsKKwkJdW5zaWduZWQgbG9uZyBvcmRl cjsKKworCQlzdGFydCA9IHRlZ3JhLT5kb21haW4tPmdlb21ldHJ5LmFwZXJ0dXJlX3N0YXJ0Owor CQllbmQgPSB0ZWdyYS0+ZG9tYWluLT5nZW9tZXRyeS5hcGVydHVyZV9lbmQ7CisKKwkJZ2VtX3N0 YXJ0ID0gc3RhcnQ7CisJCWdlbV9lbmQgPSBlbmQgLSBDQVJWRU9VVF9TWjsKKwkJY2FydmVvdXRf c3RhcnQgPSBnZW1fZW5kICsgMTsKKwkJY2FydmVvdXRfZW5kID0gZW5kOworCisJCW9yZGVyID0g X19mZnModGVncmEtPmRvbWFpbi0+cGdzaXplX2JpdG1hcCk7CisJCWluaXRfaW92YV9kb21haW4o JnRlZ3JhLT5jYXJ2ZW91dC5kb21haW4sIDFVTCA8PCBvcmRlciwKKwkJCQkgY2FydmVvdXRfc3Rh cnQgPj4gb3JkZXIpOworCisJCXRlZ3JhLT5jYXJ2ZW91dC5zaGlmdCA9IGlvdmFfc2hpZnQoJnRl Z3JhLT5jYXJ2ZW91dC5kb21haW4pOworCQl0ZWdyYS0+Y2FydmVvdXQubGltaXQgPSBjYXJ2ZW91 dF9lbmQgPj4gdGVncmEtPmNhcnZlb3V0LnNoaWZ0OworCisJCWRybV9tbV9pbml0KCZ0ZWdyYS0+ bW0sIGdlbV9zdGFydCwgZ2VtX2VuZCAtIGdlbV9zdGFydCArIDEpOworCQltdXRleF9pbml0KCZ0 ZWdyYS0+bW1fbG9jayk7CisKKwkJRFJNX0RFQlVHKCJJT01NVSBhcGVydHVyZXM6XG4iKTsKKwkJ RFJNX0RFQlVHKCIgIEdFTTogJSNsbHgtJSNsbHhcbiIsIGdlbV9zdGFydCwgZ2VtX2VuZCk7CisJ CURSTV9ERUJVRygiICBDYXJ2ZW91dDogJSNsbHgtJSNsbHhcbiIsIGNhcnZlb3V0X3N0YXJ0LAor CQkJICBjYXJ2ZW91dF9lbmQpOworCX0KKwogCWlmICh0ZWdyYS0+aHViKSB7CiAJCWVyciA9IHRl Z3JhX2Rpc3BsYXlfaHViX3ByZXBhcmUodGVncmEtPmh1Yik7CiAJCWlmIChlcnIgPCAwKQotLSAK Mi4xOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK