From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 5/6] drm/msm: Support dynamic IOMMU domains Date: Tue, 7 Mar 2017 10:14:19 -0700 Message-ID: <1488906860-11073-6-git-send-email-jcrouse@codeaurora.org> References: <1488906860-11073-1-git-send-email-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1488906860-11073-1-git-send-email-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org RHluYW1pYyBJT01NVSBkb21haW5zIGFsbG93IG11bHRpcGxlIHBhZ2V0YWJsZXMgdG8gYmUgYXR0 YWNoZWQgdG8gdGhlCnNhbWUgSU9NTVUgZGV2aWNlLiBUaGVzZSBjYW4gYmUgdXNlZCBieSBzbWFy dCBkZXZpY2VzIGxpa2UgdGhlIEdQVQp0aGF0IGNhbiBzd2l0Y2ggdGhlIHBhZ2V0YWJsZSBkeW5h bWljYWxseSBiZXR3ZWVuIERSTSBpbnN0YW5jZXMuCgpBZGQgc3VwcG9ydCBmb3IgZHluYW1pYyBJ T01NVSBkb21haW5zIGlmIHRoZXkgYXJlIGVuYWJsZWQgYW5kCnN1cHBvcnRlZCBieSB5b3VyIGZy aWVuZGx5IG5laWdoYm9yaG9vZCBJT01NVSBkcml2ZXIuCgpTaWduZWQtb2ZmLWJ5OiBKb3JkYW4g Q3JvdXNlIDxqY3JvdXNlQGNvZGVhdXJvcmEub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2lvbW11LmMgfCA5OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21faW9tbXUuaCB8IDM0ICsrKysrKysrKysrKysrCiBk cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9tbXUuaCAgIHwgIDIgKy0KIDMgZmlsZXMgY2hhbmdlZCwg MTE3IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9tc20vbXNtX2lvbW11LmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9pb21tdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21faW9tbXUuYwppbmRl eCBjYzgyNDEwLi4zOGVjNWU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9p b21tdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2lvbW11LmMKQEAgLTE2LDEzICsx Niw3IEBACiAgKi8KIAogI2luY2x1ZGUgIm1zbV9kcnYuaCIKLSNpbmNsdWRlICJtc21fbW11Lmgi Ci0KLXN0cnVjdCBtc21faW9tbXUgewotCXN0cnVjdCBtc21fbW11IGJhc2U7Ci0Jc3RydWN0IGlv bW11X2RvbWFpbiAqZG9tYWluOwotfTsKLSNkZWZpbmUgdG9fbXNtX2lvbW11KHgpIGNvbnRhaW5l cl9vZih4LCBzdHJ1Y3QgbXNtX2lvbW11LCBiYXNlKQorI2luY2x1ZGUgIm1zbV9pb21tdS5oIgog CiBzdGF0aWMgaW50IG1zbV9mYXVsdF9oYW5kbGVyKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFp biwgc3RydWN0IGRldmljZSAqZGV2LAogCQl1bnNpZ25lZCBsb25nIGlvdmEsIGludCBmbGFncywg dm9pZCAqYXJnKQpAQCAtODMsMTQgKzc3LDE5IEBAIHN0YXRpYyBpbnQgbXNtX2lvbW11X3YyX2F0 dGFjaChzdHJ1Y3QgbXNtX21tdSAqbW11LCBjb25zdCBjaGFyICogY29uc3QgKm5hbWVzLAogCQkJ ICAgICAgIGludCBjbnQpCiB7CiAJc3RydWN0IG1zbV9pb21tdSAqaW9tbXUgPSB0b19tc21faW9t bXUobW11KTsKLQlpbnQgdmFsID0gMTsKKwlpbnQgdmFsID0gMSwgcmV0OwogCiAJLyogVXNlIFRU QlIxIGlmIGl0IGV4aXN0cyAqLwotCS8qIEZJWE1FOiBUaGlzIHNob3VsZCBvbmx5IGJlIGZvciBH UFUgYW5kIGluIHRoZW9yeSBvbmx5IGZvciBBNVhYICovCi0KLQlpb21tdV9kb21haW5fc2V0X2F0 dHIoaW9tbXUtPmRvbWFpbiwgRE9NQUlOX0FUVFJfRU5BQkxFX1RUQlIxLAorCXJldCA9IGlvbW11 X2RvbWFpbl9zZXRfYXR0cihpb21tdS0+ZG9tYWluLCBET01BSU5fQVRUUl9FTkFCTEVfVFRCUjEs CiAJCSZ2YWwpOwogCisJLyoKKwkgKiBXZSB3aWxsIG9ubHkgYWxsb3cgcGVyLWluc3RhbmNlIHBh Z2V0YWJsZXMgaWYgVFRCUjEgaXMgYXZhaWxhYmxlCisJICogYmVjYXVzZSB0aGUgYWx0ZXJuYXRp dmUgaXMgdG9vIGxhYm9yIGludGVuc2l2ZQorCSAqLworCWlvbW11LT5hbGxvd19keW5hbWljID0g IXJldCA/IHRydWUgOiBmYWxzZTsKKworCS8qIEF0dGFjaCB0aGUgZGV2aWNlIHRvIHRoZSBkb21h aW4gKi8KIAlyZXR1cm4gaW9tbXVfYXR0YWNoX2RldmljZShpb21tdS0+ZG9tYWluLCBtbXUtPmRl dik7CiB9CiAKQEAgLTEwMiw2ICsxMDEsMTggQEAgc3RhdGljIHZvaWQgbXNtX2lvbW11X3YyX2Rl dGFjaChzdHJ1Y3QgbXNtX21tdSAqbW11LCBjb25zdCBjaGFyICogY29uc3QgKm5hbWVzLAogCWlv bW11X2RldGFjaF9kZXZpY2UoaW9tbXUtPmRvbWFpbiwgbW11LT5kZXYpOwogfQogCisvKiBEeW5h bWljIGRvbWFpbnMgZG8gbm90IGhhdmUgYXR0YWNoL2RldGFjaCBzdGVwcyAqLworc3RhdGljIGlu dCBtc21faW9tbXVfYXR0YWNoX2R5bmFtaWMoc3RydWN0IG1zbV9tbXUgKm1tdSwKKwkJY29uc3Qg Y2hhciAqIGNvbnN0ICpuYW1lcywgaW50IGNudCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IHZvaWQgbXNtX2lvbW11X2RldGFjaF9keW5hbWljKHN0cnVjdCBtc21fbW11ICptbXUsCisJCQkJ ICAgICBjb25zdCBjaGFyICogY29uc3QgKm5hbWVzLCBpbnQgY250KQoreworfQorCiBzdGF0aWMg aW50IG1zbV9pb21tdV9tYXAoc3RydWN0IG1zbV9tbXUgKm1tdSwgdWludDY0X3QgaW92YSwKIAkJ c3RydWN0IHNnX3RhYmxlICpzZ3QsIHVuc2lnbmVkIGxlbiwgaW50IHByb3QpCiB7CkBAIC0xOTMs MjQgKzIwNCw3OCBAQCBzdGF0aWMgdm9pZCBtc21faW9tbXVfZGVzdHJveShzdHJ1Y3QgbXNtX21t dSAqbW11KQogCQkuZGVzdHJveSA9IG1zbV9pb21tdV9kZXN0cm95LAogfTsKIAotc3RydWN0IG1z bV9tbXUgKm1zbV9pb21tdV9uZXcoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgaW9tbXVfZG9t YWluICpkb21haW4pCisvKiBUaGVzZSBhcmUgZm9yIGR5bmFtaWMgcGVyLWluc3RhbmNlIGRvbWFp bnMgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXNtX21tdV9mdW5jcyBkeW5hbWljX2Z1bmNzID0g eworCQkuYXR0YWNoID0gbXNtX2lvbW11X2F0dGFjaF9keW5hbWljLAorCQkuZGV0YWNoID0gbXNt X2lvbW11X2RldGFjaF9keW5hbWljLAorCQkubWFwID0gbXNtX2lvbW11X21hcCwKKwkJLnVubWFw ID0gbXNtX2lvbW11X3VubWFwLAorCQkuZGVzdHJveSA9IG1zbV9pb21tdV9kZXN0cm95LAorfTsK Kworc3RydWN0IG1zbV9tbXUgKl9tc21faW9tbXVfbmV3KHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLAorCQljb25zdCBzdHJ1Y3QgbXNtX21tdV9mdW5jcyAq ZnVuY3MpCiB7CiAJc3RydWN0IG1zbV9pb21tdSAqaW9tbXU7Ci0JY29uc3Qgc3RydWN0IG1zbV9t bXVfZnVuY3MgKmZ1bmNzOwogCiAJaW9tbXUgPSBremFsbG9jKHNpemVvZigqaW9tbXUpLCBHRlBf S0VSTkVMKTsKIAlpZiAoIWlvbW11KQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAorCWlv bW11LT5kb21haW4gPSBkb21haW47CisJbXNtX21tdV9pbml0KCZpb21tdS0+YmFzZSwgZGV2LCBm dW5jcyk7CisJaW9tbXVfc2V0X2ZhdWx0X2hhbmRsZXIoZG9tYWluLCBtc21fZmF1bHRfaGFuZGxl ciwgaW9tbXUsIHRydWUpOworCisJcmV0dXJuICZpb21tdS0+YmFzZTsKK30KKworc3RydWN0IG1z bV9tbXUgKm1zbV9pb21tdV9uZXcoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgaW9tbXVfZG9t YWluICpkb21haW4pCit7CisJY29uc3Qgc3RydWN0IG1zbV9tbXVfZnVuY3MgKmZ1bmNzOworCiAJ aWYgKG9mX2ZpbmRfY29tcGF0aWJsZV9ub2RlKE5VTEwsIE5VTEwsICJxY29tLG1zbS1zbW11LXYy IikgfHwKIAkJCW9mX2ZpbmRfY29tcGF0aWJsZV9ub2RlKE5VTEwsIE5VTEwsICJxY29tLG1zbS1t bXUtNTAwIikpCiAJCWZ1bmNzID0gJmZ1bmNzX3YxOwogCWVsc2UKIAkJZnVuY3MgPSAmZnVuY3Nf djI7CiAKLQlpb21tdS0+ZG9tYWluID0gZG9tYWluOwotCW1zbV9tbXVfaW5pdCgmaW9tbXUtPmJh c2UsIGRldiwgZnVuY3MpOwotCWlvbW11X3NldF9mYXVsdF9oYW5kbGVyKGRvbWFpbiwgbXNtX2Zh dWx0X2hhbmRsZXIsIGlvbW11LCB0cnVlKTsKKwlyZXR1cm4gX21zbV9pb21tdV9uZXcoZGV2LCBk b21haW4sIGZ1bmNzKTsKK30KIAotCXJldHVybiAmaW9tbXUtPmJhc2U7CisvKgorICogR2l2ZW4g YSBiYXNlIGRvbWFpbiB0aGF0IGlzIGF0dGFjaGVkIHRvIGEgSU9NTVUgZGV2aWNlIHRyeSB0byBj cmVhdGUgYQorICogZHluYW1pYyBkb21haW4gdGhhdCBpcyBhbHNvIGF0dGFjaGVkIHRvIHRoZSBz YW1lIGRldmljZSBidXQgYWxsb2NhdGVzIGEgbmV3CisgKiBwYWdldGFibGUuIFRoaXMgaXMgdXNl ZCB0byBhbGxvdyBtdWx0aXBsZSBwYWdldGFibGVzIHRvIGJlIGF0dGFjaGVkIHRvIHRoZQorICog c2FtZSBkZXZpY2UuCisgKi8KK3N0cnVjdCBtc21fbW11ICptc21faW9tbXVfbmV3X2R5bmFtaWMo c3RydWN0IG1zbV9tbXUgKmJhc2UpCit7CisJc3RhdGljIHVuc2lnbmVkIGludCBwcm9jaWQ7CisJ c3RydWN0IG1zbV9pb21tdSAqYmFzZV9pb21tdSA9IHRvX21zbV9pb21tdShiYXNlKTsKKwlzdHJ1 Y3QgbXNtX2lvbW11ICppb21tdTsKKwlzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb21haW47CisJc3Ry dWN0IG1zbV9tbXUgKm1tdTsKKworCS8qIERvbid0IGNvbnRpbnVlIGlmIHRoZSBiYXNlIGRvbWFp biBkaWRuJ3QgaGF2ZSB0aGUgc3VwcG9ydCB3ZSBuZWVkICovCisJaWYgKCFiYXNlIHx8IGJhc2Vf aW9tbXUtPmFsbG93X2R5bmFtaWMgPT0gZmFsc2UpCisJCXJldHVybiBFUlJfUFRSKC1FT1BOT1RT VVBQKTsKKworCWRvbWFpbiA9IGlvbW11X2RvbWFpbl9jcmVhdGVfZHluYW1pYyhiYXNlX2lvbW11 LT5kb21haW4pOworCWlmICghZG9tYWluKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKKwor CW1tdSA9IF9tc21faW9tbXVfbmV3KGJhc2UtPmRldiwgZG9tYWluLCAmZHluYW1pY19mdW5jcyk7 CisKKwlpZiAoSVNfRVJSKG1tdSkpIHsKKwkJaWYgKGRvbWFpbikKKwkJCWlvbW11X2RvbWFpbl9m cmVlKGRvbWFpbik7CisJfQorCisJaW9tbXUgPSB0b19tc21faW9tbXUobW11KTsKKworCWlvbW11 X2RvbWFpbl9nZXRfYXR0cihpb21tdS0+ZG9tYWluLCBET01BSU5fQVRUUl9UVEJSMCwgJmlvbW11 LT50dGJyMCk7CisKKwlpb21tdS0+Y29udGV4dGlkciA9ICsrcHJvY2lkOworCisJcmV0dXJuIG1t dTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2lvbW11LmggYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9pb21tdS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmJmYjc1MDEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9pb21tdS5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qIENvcHlyaWdodCAoYykgMjAxNiBUaGUgTGlu dXggRm91bmRhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQor ICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2 ZXJzaW9uIDIgYW5kCisgKiBvbmx5IHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisg KiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICovCisKKyNp Zm5kZWYgX01TTV9JT01NVV9IXworI2RlZmluZSBfTVNNX0lPTU1VX0hfCisKKyNpbmNsdWRlICJt c21fbW11LmgiCisKK3N0cnVjdCBtc21faW9tbXUgeworCXN0cnVjdCBtc21fbW11IGJhc2U7CisJ c3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluOworCWludCBjYjsKKwlwaHlzX2FkZHJfdCB0dGJy MDsKKwl1aW50MzJfdCBjb250ZXh0aWRyOworCWJvb2wgYWxsb3dfZHluYW1pYzsKK307CisjZGVm aW5lIHRvX21zbV9pb21tdSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IG1zbV9pb21tdSwgYmFz ZSkKKworc3RhdGljIGlubGluZSBib29sIG1zbV9pb21tdV9hbGxvd19keW5hbWljKHN0cnVjdCBt c21fbW11ICptbXUpCit7CisJc3RydWN0IG1zbV9pb21tdSAqaW9tbXUgPSB0b19tc21faW9tbXUo bW11KTsKKworCXJldHVybiBpb21tdS0+YWxsb3dfZHluYW1pYzsKK30KKyNlbmRpZgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fbW11LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9tbXUuaAppbmRleCBlN2QxOTY3Li42NWU1MjAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL21zbV9tbXUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9tbXUuaApA QCAtNDUsNyArNDUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbXNtX21tdV9pbml0KHN0cnVjdCBt c21fbW11ICptbXUsIHN0cnVjdCBkZXZpY2UgKmRldiwKIH0KIAogc3RydWN0IG1zbV9tbXUgKm1z bV9pb21tdV9uZXcoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb21h aW4pOwotc3RydWN0IG1zbV9tbXUgKm1zbV9ncHVtbXVfbmV3KHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IG1zbV9ncHUgKmdwdSk7CitzdHJ1Y3QgbXNtX21tdSAqbXNtX2lvbW11X25ld19keW5h bWljKHN0cnVjdCBtc21fbW11ICpvcmlnKTsKIAogI2lmZGVmIENPTkZJR19RQ09NX0lPTU1VX1Yx CiBzdHJ1Y3QgZGV2aWNlICptc21faW9tbXVfZ2V0X2N0eChjb25zdCBjaGFyICpjdHhfbmFtZSk7 Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5v Cg==