From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [RFC PATCH v1 10/15] drm/msm: Add support for IOMMU auxiliary domains Date: Fri, 1 Mar 2019 12:38:32 -0700 Message-ID: <1551469117-3404-11-git-send-email-jcrouse@codeaurora.org> References: <1551469117-3404-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: <1551469117-3404-1-git-send-email-jcrouse@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: freedreno@lists.freedesktop.org Cc: jean-philippe.brucker@arm.com, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, David Airlie , dianders@chromimum.org, hoegsberg@google.com, Sean Paul , baolu.lu@linux.intel.com List-Id: linux-arm-msm@vger.kernel.org QWRkIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGEgYXV4aWxpYXJ5IGRvbWFpbiBmcm9tIHRoZSBJT01N VSBkZXZpY2UgdG8KaW1wbGVtZW50IHBlci1pbnN0YW5jZSBwYWdldGFibGVzLiBBbHNvIGFkZCBh IGhlbHBlciBmdW5jdGlvbiB0bwpyZXR1cm4gdGhlIHBhZ2V0YWJsZSBiYXNlIGFkZHJlc3MgKHR0 YnIpIGFuZCBhc2lkIHRvIHRoZSBjYWxsZXIgc28KdGhhdCB0aGUgR1BVIHRhcmdldCBjb2RlIGNh biBzZXQgdXAgdGhlIHBhZ2V0YWJsZSBzd2l0Y2guCgpTaWduZWQtb2ZmLWJ5OiBKb3JkYW4gQ3Jv dXNlIDxqY3JvdXNlQGNvZGVhdXJvcmEub3JnPgotLS0KCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9pb21tdS5jIHwgOTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX21tdS5oICAgfCAgNCArKwogMiBmaWxlcyBjaGFuZ2Vk LCAxMDEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2lvbW11LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9pb21tdS5jCmluZGV4IDE5MjYzMjku LmFkZjlmMTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2lvbW11LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21faW9tbXUuYwpAQCAtMjEsOSArMjEsMjEgQEAKIHN0 cnVjdCBtc21faW9tbXUgewogCXN0cnVjdCBtc21fbW11IGJhc2U7CiAJc3RydWN0IGlvbW11X2Rv bWFpbiAqZG9tYWluOworCXU2NCB0dGJyOworCXUzMiBhc2lkOwogfTsKICNkZWZpbmUgdG9fbXNt X2lvbW11KHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgbXNtX2lvbW11LCBiYXNlKQogCisvKgor ICogVGhlIGFzaWQgaXMgY3VycmVudGx5IHVudXNlZCBmb3IgYXJtLXNtbXUtdjIgc2luY2UgYWxs IHRoZSBwYWdldGFibGUKKyAqIHN3aXRjaGluZyBkb2VzIGEgVExCSUFMTCBidXQgc3RpbGwgYXNz aWduIGEgc29tZXdoYXQgdW5pcXVlIG51bWJlciBwZXIKKyAqIGluc3RhbmNlIHRvIGxlYXZlIG9w ZW4gdGhlIHBvc3NpYmlsaXR5IG9mIGJlaW5nIHNtYXJ0ZXIgYWJvdXQgaXQKKyAqCisgKiBBY2Nl cHRlZCByYW5nZSBpcyAzMiB0byAyNTUgKHN0YXJ0aW5nIGF0IDMyIGdpdmVzIGEgY3VzaGlvbiBm b3IgdGhlIGFzaWRzCisgKiBhc3NpZ25lZCB0byB0aGUgcmVhbCBjb250ZXh0IGJhbmtzIGluIHRo ZSBhcm0tc21tdSBkcml2ZXIuCisgKi8KK3N0YXRpYyBpbnQgbXNtX2lvbW11X2FzaWQgPSAzMjsK Kwogc3RhdGljIGludCBtc21fZmF1bHRfaGFuZGxlcihzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb21h aW4sIHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJdW5zaWduZWQgbG9uZyBpb3ZhLCBpbnQgZmxhZ3Ms IHZvaWQgKmFyZykKIHsKQEAgLTM0LDYgKzQ2LDQ3IEBAIHN0YXRpYyBpbnQgbXNtX2ZhdWx0X2hh bmRsZXIoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLCBzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJ cmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgbXNtX2lvbW11X2F1eF9hdHRhY2goc3RydWN0IG1z bV9tbXUgKm1tdSwgY29uc3QgY2hhciAqIGNvbnN0ICpuYW1lcywKKwkJCSAgICBpbnQgY250KQor eworCXN0cnVjdCBtc21faW9tbXUgKmlvbW11ID0gdG9fbXNtX2lvbW11KG1tdSk7CisJaW50IHJl dDsKKworCS8qIEF0dGFjaCB0aGUgYXV4IGRldmljZSAqLworCXJldCA9IGlvbW11X2F1eF9hdHRh Y2hfZGV2aWNlKGlvbW11LT5kb21haW4sIG1tdS0+ZGV2KTsKKwlpZiAocmV0KQorCQlyZXR1cm4g cmV0OworCisJLyogR2V0IHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIHBhZ2V0YWJsZSAqLworCXJl dCA9IGlvbW11X2RvbWFpbl9nZXRfYXR0cihpb21tdS0+ZG9tYWluLCBET01BSU5fQVRUUl9QVEJB U0UsCisJCSZpb21tdS0+dHRicik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCS8qCisJ ICogQXNzaWduIGFuIGFzaWQgZm9yIHRoZSBpbnN0YW5jZSBldmVuIHRob3VnaCB0aGUgY29kZSBk b2Vzbid0CisJICogY3VycmVudGx5IHN1cHBvcnQgcGVyLWFzaWQgVExCIGludmFsaWRhdGlvbi4g VGhlcmUgaXNuJ3QgYW55CisJICogcHJvdGVjdGlvbiBvbiB0aGlzIHNvIHR3byBpbnN0YW5jZXMg Y291bGQgaW4gdGhlb3J5IGVuZCB1cCB3aXRoIHRoZQorCSAqIHNhbWUgQVNJRCBidXQgdGhhdCB3 b3VsZCBoYXZlIHZlcnkgbWlub3IgcGVyZm9ybWFuY2UgaW1wbGljYXRpb25zIGlmCisJICogcGVy LUFTSUQgVExCIGludmFsaWRhdGlvbiB3ZXJlIHRvIGJlIGVuYWJsZWQgaW4gdGhlIGZ1dHVyZQor CSAqLworCWlvbW11LT5hc2lkID0gbXNtX2lvbW11X2FzaWQrKzsKKworCWlmIChtc21faW9tbXVf YXNpZCA+IDB4ZmYpCisJCW1zbV9pb21tdV9hc2lkID0gMzI7CisKKwlyZXR1cm4gMDsKK30KKwor c3RhdGljIHZvaWQgbXNtX2lvbW11X2F1eF9kZXRhY2goc3RydWN0IG1zbV9tbXUgKm1tdSwgY29u c3QgY2hhciAqIGNvbnN0ICpuYW1lcywKKwkJCSAgICAgaW50IGNudCkKK3sKKwlzdHJ1Y3QgbXNt X2lvbW11ICppb21tdSA9IHRvX21zbV9pb21tdShtbXUpOworCisJaW9tbXUtPnR0YnIgPSAwOwor CWlvbW11LT5hc2lkID0gMDsKK30KKwogc3RhdGljIGludCBtc21faW9tbXVfYXR0YWNoKHN0cnVj dCBtc21fbW11ICptbXUsIGNvbnN0IGNoYXIgKiBjb25zdCAqbmFtZXMsCiAJCQkgICAgaW50IGNu dCkKIHsKQEAgLTg2LDYgKzEzOSw1MCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1zbV9tbXVfZnVu Y3MgZnVuY3MgPSB7CiAJCS5kZXN0cm95ID0gbXNtX2lvbW11X2Rlc3Ryb3ksCiB9OwogCitzdGF0 aWMgY29uc3Qgc3RydWN0IG1zbV9tbXVfZnVuY3MgYXV4X2Z1bmNzID0geworCQkuYXR0YWNoID0g bXNtX2lvbW11X2F1eF9hdHRhY2gsCisJCS5kZXRhY2ggPSBtc21faW9tbXVfYXV4X2RldGFjaCwK KwkJLm1hcCA9IG1zbV9pb21tdV9tYXAsCisJCS51bm1hcCA9IG1zbV9pb21tdV91bm1hcCwKKwkJ LmRlc3Ryb3kgPSBtc21faW9tbXVfZGVzdHJveSwKK307CisKK2Jvb2wgbXNtX2lvbW11X2dldF9w dGluZm8oc3RydWN0IG1zbV9tbXUgKm1tdSwgdTY0ICp0dGJyLCB1MzIgKmFzaWQpCit7CisJc3Ry dWN0IG1zbV9pb21tdSAqaW9tbXUgPSB0b19tc21faW9tbXUobW11KTsKKworCWlmICghaW9tbXUt PnR0YnIpCisJCXJldHVybiBmYWxzZTsKKworCWlmICh0dGJyKQorCQkqdHRiciA9IGlvbW11LT50 dGJyOworCWlmIChhc2lkKQorCQkqYXNpZCA9IGlvbW11LT5hc2lkOworCisJcmV0dXJuIHRydWU7 Cit9CisKKworc3RydWN0IG1zbV9tbXUgKm1zbV9pb21tdV9uZXdfaW5zdGFuY2Uoc3RydWN0IGRl dmljZSAqZGV2KQoreworCXN0cnVjdCBtc21faW9tbXUgKmlvbW11OworCisJaW9tbXUgPSBremFs bG9jKHNpemVvZigqaW9tbXUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWlvbW11KQorCQlyZXR1cm4g RVJSX1BUUigtRU5PTUVNKTsKKworCS8qIENyZWF0ZSBhIG5ldyBkb21haW4gdGhhdCB3aWxsIGJl IGF0dGFjaGVkIGFzIGFuIGF1eCBkb21haW4gKi8KKwlpb21tdS0+ZG9tYWluID0gaW9tbXVfZG9t YWluX2FsbG9jKCZwbGF0Zm9ybV9idXNfdHlwZSk7CisJaWYgKCFpb21tdS0+ZG9tYWluKSB7CisJ CWtmcmVlKGlvbW11KTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJfQorCisJbXNtX21t dV9pbml0KCZpb21tdS0+YmFzZSwgZGV2LCAmYXV4X2Z1bmNzKTsKKworCXJldHVybiAmaW9tbXUt PmJhc2U7Cit9CisKIHN0cnVjdCBtc21fbW11ICptc21faW9tbXVfbmV3KHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluKQogewogCXN0cnVjdCBtc21faW9tbXUg KmlvbW11OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fbW11LmggYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9tbXUuaAppbmRleCBkMjFiMjY2Li5mNDMwOTAzIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9tbXUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9tbXUuaApAQCAtNDYsNiArNDYsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIG1zbV9t bXVfaW5pdChzdHJ1Y3QgbXNtX21tdSAqbW11LCBzdHJ1Y3QgZGV2aWNlICpkZXYsCiBzdHJ1Y3Qg bXNtX21tdSAqbXNtX2lvbW11X25ldyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBpb21tdV9k b21haW4gKmRvbWFpbik7CiBzdHJ1Y3QgbXNtX21tdSAqbXNtX2dwdW1tdV9uZXcoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgbXNtX2dwdSAqZ3B1KTsKIAorc3RydWN0IG1zbV9tbXUgKm1zbV9p b21tdV9uZXdfaW5zdGFuY2Uoc3RydWN0IGRldmljZSAqZGV2KTsKKworYm9vbCBtc21faW9tbXVf Z2V0X3B0aW5mbyhzdHJ1Y3QgbXNtX21tdSAqbW11LCB1NjQgKnR0YnIsIHUzMiAqYXNpZCk7CisK IHN0YXRpYyBpbmxpbmUgdm9pZCBtc21fbW11X3NldF9mYXVsdF9oYW5kbGVyKHN0cnVjdCBtc21f bW11ICptbXUsIHZvaWQgKmFyZywKIAkJaW50ICgqaGFuZGxlcikodm9pZCAqYXJnLCB1bnNpZ25l ZCBsb25nIGlvdmEsIGludCBmbGFncykpCiB7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs