From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 6/7] iommu: Add dynamic domains Date: Tue, 7 Mar 2017 09:39:54 -0700 Message-ID: <1488904795-870-7-git-send-email-jcrouse@codeaurora.org> References: <1488904795-870-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: <1488904795-870-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: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: iommu@lists.linux-foundation.org QWRkIGFuIEFQSSB0byBjcmVhdGUgYSBkeW5hbWljIGRvbWFpbiBmcm9tIGFuIGV4aXN0aW5nIGRv bWFpbi4KQSBkeW5hbWljIGRvbWFpbiBpcyBhIHNwZWNpYWwgSU9NTVUgZG9tYWluIHRoYXQgaXMg YXR0YWNoZWQgdG8KdGhlIHNhbWUgZGV2aWNlIGFzIHRoZSBwYXJlbnQgZG9tYWluIGJ1dCBpcyBi YWNrZWQgYnkgc2VwYXJhdGUKcGFnZXRhYmxlcy4gRGV2aWNlcyBzdWNoIGFzIEdQVXMgdGhhdCBz dXBwb3J0IGFzeW5jaHJvbm91cwptZXRob2RzIGZvciBzd2l0Y2hpbmcgcGFnZXRhYmxlcyBjYW4g Y3JlYXRlIGR5bmFtaWMgZG9tYWlucyBmb3IKZWFjaCBpbmRpdmlkdWFsIGluc3RhbmNlIGFuZCBt YXAgbWVtb3J5IGludG8gdGhlbS4KClRoZSBoYXJkd2FyZSBjYW4gdXNlIHRoZSBwaHlzaWNhbCBh ZGRyZXNzIG9mIHRoZSBwYWdldGFibGUKKGFzIHF1ZXJpZWQgYnkgRE9NQUlOX0FUVFJfVFRCUjAp IHRvIGFzeW5jaHJvbm91c2x5IHN3aXRjaCB0aGUKaGFyZHdhcmUgdG8gdGhlIGRlc2lyZWQgcGFn ZXRhYmxlIHdoZW4gbmVlZGVkLgoKRHluYW1pYyBkb21haW5zIG11c3QgYmUgY3JlYXRlZCBmcm9t IGV4aXN0aW5nIGF0dGFjaGVkCm5vbi1keW5hbWljIGRvbWFpbnMuICBUaGUgZG9tYWlucyB3aWxs IHNoYXJlIGNvbmZpZ3VyYXRpb24KKHBhZ2V0YWJsZSBmb3JtYXQsIGNvbnRleHQgYmFuaywgZXRj KS4gRHluYW1pYyBkb21haW5zIGRvIG5vdAptb2RpZnkgdGhlIGhhcmR3YXJlIGRpcmVjdGx5IC0g dGhleSBhcmUgdHlwaWNhbGx5IGEKd3JhcHBlciBmb3IgdGhlIHBhZ2V0YWJsZSBtZW1vcnkgYW5k IGZhY2lsaXRhdGUgdXNpbmcgdGhlIG90aGVyCklPTU1VIEFQSXMgdG8gbWFwIGFuZCB1bm1hcCBi dWZmZXJzLgoKU2lnbmVkLW9mZi1ieTogSm9yZGFuIENyb3VzZSA8amNyb3VzZUBjb2RlYXVyb3Jh Lm9yZz4KLS0tCiBkcml2ZXJzL2lvbW11L2lvbW11LmMgfCAzNyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2xpbnV4L2lvbW11LmggfCAxNyArKysrKysrKysr KysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9pb21tdS5jIGIvZHJpdmVycy9pb21tdS9pb21t dS5jCmluZGV4IDlhMmYxOTYuLjRiYTU5M2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW9tbXUvaW9t bXUuYworKysgYi9kcml2ZXJzL2lvbW11L2lvbW11LmMKQEAgLTEwNzksNiArMTA3OSwzMSBAQCB2 b2lkIGlvbW11X2RvbWFpbl9mcmVlKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbikKIH0KIEVY UE9SVF9TWU1CT0xfR1BMKGlvbW11X2RvbWFpbl9mcmVlKTsKIAorc3RydWN0IGlvbW11X2RvbWFp biAqaW9tbXVfZG9tYWluX2NyZWF0ZV9keW5hbWljKHN0cnVjdCBpb21tdV9kb21haW4gKnBhcmVu dCkKK3sKKwlzdHJ1Y3QgaW9tbXVfZG9tYWluICpjaGlsZDsKKwlpbnQgcmV0OworCisJaWYgKCFw YXJlbnQgfHwgIXBhcmVudC0+b3BzIHx8ICFwYXJlbnQtPm9wcy0+ZG9tYWluX2luaXRfZHluYW1p YykKKwkJcmV0dXJuIE5VTEw7CisKKwljaGlsZCA9IHBhcmVudC0+b3BzLT5kb21haW5fYWxsb2Mo SU9NTVVfRE9NQUlOX0RZTkFNSUMpOworCWlmIChjaGlsZCA9PSBOVUxMKQorCQlyZXR1cm4gTlVM TDsKKworCWNoaWxkLT5vcHMgPSBwYXJlbnQtPm9wczsKKwljaGlsZC0+dHlwZSA9IElPTU1VX0RP TUFJTl9EWU5BTUlDOworCWNoaWxkLT5wZ3NpemVfYml0bWFwID0gcGFyZW50LT5wZ3NpemVfYml0 bWFwOworCisJcmV0ID0gY2hpbGQtPm9wcy0+ZG9tYWluX2luaXRfZHluYW1pYyhwYXJlbnQsIGNo aWxkKTsKKwlpZiAoIXJldCkKKwkJcmV0dXJuIGNoaWxkOworCisJY2hpbGQtPm9wcy0+ZG9tYWlu X2ZyZWUoY2hpbGQpOworCXJldHVybiBOVUxMOworfQorRVhQT1JUX1NZTUJPTF9HUEwoaW9tbXVf ZG9tYWluX2NyZWF0ZV9keW5hbWljKTsKKwogc3RhdGljIGludCBfX2lvbW11X2F0dGFjaF9kZXZp Y2Uoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLAogCQkJCSBzdHJ1Y3QgZGV2aWNlICpkZXYp CiB7CkBAIC0xMDk3LDYgKzExMjIsMTAgQEAgaW50IGlvbW11X2F0dGFjaF9kZXZpY2Uoc3RydWN0 IGlvbW11X2RvbWFpbiAqZG9tYWluLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJc3RydWN0IGlvbW11 X2dyb3VwICpncm91cDsKIAlpbnQgcmV0OwogCisJLyogRG9uJ3QgdHJ5IHRvIGF0dGFjaCBkeW5h bWljIGRvbWFpbnMgKi8KKwlpZiAoIWRvbWFpbiB8fCBkb21haW4tPnR5cGUgPT0gSU9NTVVfRE9N QUlOX0RZTkFNSUMpCisJCXJldHVybiAtRUlOVkFMOworCiAJZ3JvdXAgPSBpb21tdV9ncm91cF9n ZXQoZGV2KTsKIAkvKiBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiBncm91cHMgYSBtYW5kYXRvcnkg Zm9yIGlvbW11IGRyaXZlcnMgKi8KIAlpZiAoZ3JvdXAgPT0gTlVMTCkKQEAgLTExMzUsNiArMTE2 NCwxMCBAQCB2b2lkIGlvbW11X2RldGFjaF9kZXZpY2Uoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9t YWluLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGlvbW11X2dyb3VwICpncm91cDsK IAorCS8qIERvbid0IHRyeSB0byBkZXRhY2ggZHluYW1pYyBkb21haW5zICovCisJaWYgKCFkb21h aW4gfHwgZG9tYWluLT50eXBlID09IElPTU1VX0RPTUFJTl9EWU5BTUlDKQorCQlyZXR1cm47CisK IAlncm91cCA9IGlvbW11X2dyb3VwX2dldChkZXYpOwogCS8qIEZJWE1FOiBSZW1vdmUgdGhpcyB3 aGVuIGdyb3VwcyBhIG1hbmRhdG9yeSBmb3IgaW9tbXUgZHJpdmVycyAqLwogCWlmIChncm91cCA9 PSBOVUxMKQpAQCAtMTUwOCw2ICsxNTQxLDEwIEBAIGludCBpb21tdV9kb21haW5fZ2V0X2F0dHIo c3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLAogCQkJcmV0ID0gLUVOT0RFVjsKIAogCQlicmVh azsKKwljYXNlIERPTUFJTl9BVFRSX0RZTkFNSUM6CisJCSooKHVuc2lnbmVkIGludCAqKSBkYXRh KSA9CisJCQkhIShkb21haW4tPnR5cGUgJiBfX0lPTU1VX0RPTUFJTl9EWU5BTUlDKTsKKwkJYnJl YWs7CiAJZGVmYXVsdDoKIAkJaWYgKCFkb21haW4tPm9wcy0+ZG9tYWluX2dldF9hdHRyKQogCQkJ cmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2lvbW11LmggYi9pbmNs dWRlL2xpbnV4L2lvbW11LmgKaW5kZXggNTQ0Y2ZjNi4uNWI1MzhkMCAxMDA2NDQKLS0tIGEvaW5j bHVkZS9saW51eC9pb21tdS5oCisrKyBiL2luY2x1ZGUvbGludXgvaW9tbXUuaApAQCAtNTcsNyAr NTcsNyBAQCBzdHJ1Y3QgaW9tbXVfZG9tYWluX2dlb21ldHJ5IHsKICNkZWZpbmUgX19JT01NVV9E T01BSU5fRE1BX0FQSQkoMVUgPDwgMSkgIC8qIERvbWFpbiBmb3IgdXNlIGluIERNQS1BUEkKIAkJ CQkJICAgICAgaW1wbGVtZW50YXRpb24gICAgICAgICAgICAgICovCiAjZGVmaW5lIF9fSU9NTVVf RE9NQUlOX1BUCSgxVSA8PCAyKSAgLyogRG9tYWluIGlzIGlkZW50aXR5IG1hcHBlZCAgICovCi0K KyNkZWZpbmUgX19JT01NVV9ET01BSU5fRFlOQU1JQyAgKDFVIDw8IDMpICAvKiBEb21haW4gaXMg ZHluYW1pYyAqLwogLyoKICAqIFRoaXMgYXJlIHRoZSBwb3NzaWJsZSBkb21haW4tdHlwZXMKICAq CkBAIC02OSwxMiArNjksMTggQEAgc3RydWN0IGlvbW11X2RvbWFpbl9nZW9tZXRyeSB7CiAgKglJ T01NVV9ET01BSU5fRE1BCS0gSW50ZXJuYWxseSB1c2VkIGZvciBETUEtQVBJIGltcGxlbWVudGF0 aW9ucy4KICAqCQkJCSAgVGhpcyBmbGFnIGFsbG93cyBJT01NVSBkcml2ZXJzIHRvIGltcGxlbWVu dAogICoJCQkJICBjZXJ0YWluIG9wdGltaXphdGlvbnMgZm9yIHRoZXNlIGRvbWFpbnMKKyAqCUlP TU1VX0RPTUFJTl9EWU5BTUlDCS0gVGhlIGRvbWFpbiBpcyBkeW5hbWljIGFuZCBib3VuZCB0byBh IHBhcmVudAorICoJCQkJICBkb21haW4uIFRoaXMgYWxsb3dzIHRoZSBkcml2ZXIgdG8gaW1wbGVt ZW50CisgKgkJCQkgIG11bHRpcGxlIGRvbWFpbnMgb24gb25lIGRldmljZSB3aXRoIGRpZmZlcmVu dAorICoJCQkJICBhdHRyaWJ1dGVzCiAgKi8KICNkZWZpbmUgSU9NTVVfRE9NQUlOX0JMT0NLRUQJ KDBVKQogI2RlZmluZSBJT01NVV9ET01BSU5fSURFTlRJVFkJKF9fSU9NTVVfRE9NQUlOX1BUKQog I2RlZmluZSBJT01NVV9ET01BSU5fVU5NQU5BR0VECShfX0lPTU1VX0RPTUFJTl9QQUdJTkcpCiAj ZGVmaW5lIElPTU1VX0RPTUFJTl9ETUEJKF9fSU9NTVVfRE9NQUlOX1BBR0lORyB8CVwKIAkJCQkg X19JT01NVV9ET01BSU5fRE1BX0FQSSkKKyNkZWZpbmUgSU9NTVVfRE9NQUlOX0RZTkFNSUMJKF9f SU9NTVVfRE9NQUlOX1BBR0lORyB8CVwKKwkJCQkgX19JT01NVV9ET01BSU5fRFlOQU1JQykKIAog c3RydWN0IGlvbW11X2RvbWFpbiB7CiAJdW5zaWduZWQgdHlwZTsKQEAgLTExNiw2ICsxMjIsNyBA QCBlbnVtIGlvbW11X2F0dHIgewogCURPTUFJTl9BVFRSX05FU1RJTkcsCS8qIHR3byBzdGFnZXMg b2YgdHJhbnNsYXRpb24gKi8KIAlET01BSU5fQVRUUl9FTkFCTEVfVFRCUjEsCiAJRE9NQUlOX0FU VFJfVFRCUjAsCisJRE9NQUlOX0FUVFJfRFlOQU1JQywKIAlET01BSU5fQVRUUl9NQVgsCiB9Owog CkBAIC0xNjAsNiArMTY3LDcgQEAgc3RydWN0IGlvbW11X2RtX3JlZ2lvbiB7CiAgKiBAZG9tYWlu X3NldF93aW5kb3dzOiBTZXQgdGhlIG51bWJlciBvZiB3aW5kb3dzIGZvciBhIGRvbWFpbgogICog QGRvbWFpbl9nZXRfd2luZG93czogUmV0dXJuIHRoZSBudW1iZXIgb2Ygd2luZG93cyBmb3IgYSBk b21haW4KICAqIEBvZl94bGF0ZTogYWRkIE9GIG1hc3RlciBJRHMgdG8gaW9tbXUgZ3JvdXBpbmcK KyAqIEBkb21haW5faW5pdF9keW5hbWljOiBJbml0aWFsaXplIGEgZHluYW1pYyBkb21haW4gYmFz ZWQgb24gYSBwYXJlbnQgZG9tYWluCiAgKiBAcGdzaXplX2JpdG1hcDogYml0bWFwIG9mIGFsbCBw b3NzaWJsZSBzdXBwb3J0ZWQgcGFnZSBzaXplcwogICovCiBzdHJ1Y3QgaW9tbXVfb3BzIHsKQEAg LTIwMyw2ICsyMTEsOSBAQCBzdHJ1Y3QgaW9tbXVfb3BzIHsKIAogCWludCAoKm9mX3hsYXRlKShz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBvZl9waGFuZGxlX2FyZ3MgKmFyZ3MpOwogCisJaW50 ICgqZG9tYWluX2luaXRfZHluYW1pYykoc3RydWN0IGlvbW11X2RvbWFpbiAqcGFyZW50LAorCQkJ c3RydWN0IGlvbW11X2RvbWFpbiAqY2hpbGQpOworCiAJdW5zaWduZWQgbG9uZyBwZ3NpemVfYml0 bWFwOwogfTsKIApAQCAtMjgwLDYgKzI5MSwxMCBAQCBleHRlcm4gaW50IGlvbW11X2RvbWFpbl93 aW5kb3dfZW5hYmxlKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbiwgdTMyIHduZF9uciwKIAkJ CQkgICAgICBwaHlzX2FkZHJfdCBvZmZzZXQsIHU2NCBzaXplLAogCQkJCSAgICAgIGludCBwcm90 KTsKIGV4dGVybiB2b2lkIGlvbW11X2RvbWFpbl93aW5kb3dfZGlzYWJsZShzdHJ1Y3QgaW9tbXVf ZG9tYWluICpkb21haW4sIHUzMiB3bmRfbnIpOworCitleHRlcm4gc3RydWN0IGlvbW11X2RvbWFp biAqaW9tbXVfZG9tYWluX2NyZWF0ZV9keW5hbWljKAorCQlzdHJ1Y3QgaW9tbXVfZG9tYWluICpw YXJlbnQpOworCiAvKioKICAqIHJlcG9ydF9pb21tdV9mYXVsdCgpIC0gcmVwb3J0IGFib3V0IGFu IElPTU1VIGZhdWx0IHRvIHRoZSBJT01NVSBmcmFtZXdvcmsKICAqIEBkb21haW46IHRoZSBpb21t dSBkb21haW4gd2hlcmUgdGhlIGZhdWx0IGhhcyBoYXBwZW5lZAotLSAKMS45LjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5n IGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=