From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 3/6] drm/msm: Make separate iommu function tables for v1 and v2 MMUs Date: Tue, 7 Mar 2017 10:14:17 -0700 Message-ID: <1488906860-11073-4-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 U2luY2Ugd2UgaGF2ZSB0aGUgaW5mcmFzdHJ1Y3R1cmUgZm9yIElPTU1VIGZ1bmN0aW9uIHRhYmxl cyBpdCBtYWtlcwpzZW5zZSB0byB1c2UgaXQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHYxIGFu ZCB2MiB0YXJnZXRzLiBJdCBhZGRzCmEgYml0IG1vcmUgaW5mcmFzdHJ1Y3R1cmUgYnV0IGl0IGFs c28gZ2l2ZXMgdXMgdGhlIGZyZWVkb20gdG8gZXhwYW5kCm9uIGVhY2ggZmxhdm9yIChlc3BlY2lh bGx5IHYyKSBmb3IgdGhpbmdzIGxpa2UgZHluYW1pYyBkb21haW5zLgoKU2lnbmVkLW9mZi1ieTog Sm9yZGFuIENyb3VzZSA8amNyb3VzZUBjb2RlYXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9pb21tdS5jIHwgNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9pb21tdS5jIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21faW9tbXUuYwppbmRleCBkNTIwZGIyLi5jMWJmYzkyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9pb21tdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2lvbW11LmMKQEAgLTIxLDcgKzIxLDYgQEAKIHN0cnVjdCBtc21faW9tbXUgewog CXN0cnVjdCBtc21fbW11IGJhc2U7CiAJc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluOwotCWJv b2wgaGFzX2N0eDsKIH07CiAjZGVmaW5lIHRvX21zbV9pb21tdSh4KSBjb250YWluZXJfb2YoeCwg c3RydWN0IG1zbV9pb21tdSwgYmFzZSkKIApAQCAtNDAsMTUgKzM5LDEyIEBAIHN0YXRpYyBpbnQg bXNtX2ZhdWx0X2hhbmRsZXIoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLCBzdHJ1Y3QgZGV2 aWNlICpkZXYsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbXNtX2lvbW11X2F0dGFjaChz dHJ1Y3QgbXNtX21tdSAqbW11LCBjb25zdCBjaGFyICogY29uc3QgKm5hbWVzLAotCQkJICAgIGlu dCBjbnQpCitzdGF0aWMgaW50IG1zbV9pb21tdV92MV9hdHRhY2goc3RydWN0IG1zbV9tbXUgKm1t dSwgY29uc3QgY2hhciAqY29uc3QgKm5hbWVzLAorCQkJICAgICAgIGludCBjbnQpCiB7CiAJc3Ry dWN0IG1zbV9pb21tdSAqaW9tbXUgPSB0b19tc21faW9tbXUobW11KTsKIAlpbnQgaSwgcmV0Owog Ci0JaWYgKCFpb21tdS0+aGFzX2N0eCkKLQkJcmV0dXJuIGlvbW11X2F0dGFjaF9kZXZpY2UoaW9t bXUtPmRvbWFpbiwgbW11LT5kZXYpOwotCiAJZm9yIChpID0gMDsgaSA8IGNudDsgaSsrKSB7CiAJ CXN0cnVjdCBkZXZpY2UgKmN0eCA9IG1zbV9pb21tdV9nZXRfY3R4KG5hbWVzW2ldKTsKIApAQCAt NjcsMTUgKzYzLDEyIEBAIHN0YXRpYyBpbnQgbXNtX2lvbW11X2F0dGFjaChzdHJ1Y3QgbXNtX21t dSAqbW11LCBjb25zdCBjaGFyICogY29uc3QgKm5hbWVzLAogCXJldHVybiAwOwogfQogCi1zdGF0 aWMgdm9pZCBtc21faW9tbXVfZGV0YWNoKHN0cnVjdCBtc21fbW11ICptbXUsIGNvbnN0IGNoYXIg KiBjb25zdCAqbmFtZXMsCi0JCQkgICAgIGludCBjbnQpCitzdGF0aWMgdm9pZCBtc21faW9tbXVf djFfZGV0YWNoKHN0cnVjdCBtc21fbW11ICptbXUsIGNvbnN0IGNoYXIgKiBjb25zdCAqbmFtZXMs CisJCQkJaW50IGNudCkKIHsKIAlzdHJ1Y3QgbXNtX2lvbW11ICppb21tdSA9IHRvX21zbV9pb21t dShtbXUpOwogCWludCBpOwogCi0JaWYgKCFpb21tdS0+aGFzX2N0eCkKLQkJaW9tbXVfZGV0YWNo X2RldmljZShpb21tdS0+ZG9tYWluLCBtbXUtPmRldik7Ci0KIAlmb3IgKGkgPSAwOyBpIDwgY250 OyBpKyspIHsKIAkJc3RydWN0IGRldmljZSAqY3R4ID0gbXNtX2lvbW11X2dldF9jdHgobmFtZXNb aV0pOwogCkBAIC04Niw2ICs3OSwyMiBAQCBzdGF0aWMgdm9pZCBtc21faW9tbXVfZGV0YWNoKHN0 cnVjdCBtc21fbW11ICptbXUsIGNvbnN0IGNoYXIgKiBjb25zdCAqbmFtZXMsCiAJfQogfQogCitz dGF0aWMgaW50IG1zbV9pb21tdV92Ml9hdHRhY2goc3RydWN0IG1zbV9tbXUgKm1tdSwgY29uc3Qg Y2hhciAqIGNvbnN0ICpuYW1lcywKKwkJCSAgICAgICBpbnQgY250KQoreworCXN0cnVjdCBtc21f aW9tbXUgKmlvbW11ID0gdG9fbXNtX2lvbW11KG1tdSk7CisKKwlyZXR1cm4gaW9tbXVfYXR0YWNo X2RldmljZShpb21tdS0+ZG9tYWluLCBtbXUtPmRldik7Cit9CisKK3N0YXRpYyB2b2lkIG1zbV9p b21tdV92Ml9kZXRhY2goc3RydWN0IG1zbV9tbXUgKm1tdSwgY29uc3QgY2hhciAqIGNvbnN0ICpu YW1lcywKKwkJCQlpbnQgY250KQoreworCXN0cnVjdCBtc21faW9tbXUgKmlvbW11ID0gdG9fbXNt X2lvbW11KG1tdSk7CisKKwlpb21tdV9kZXRhY2hfZGV2aWNlKGlvbW11LT5kb21haW4sIG1tdS0+ ZGV2KTsKK30KKwogc3RhdGljIGludCBtc21faW9tbXVfbWFwKHN0cnVjdCBtc21fbW11ICptbXUs IHVpbnQ2NF90IGlvdmEsCiAJCXN0cnVjdCBzZ190YWJsZSAqc2d0LCB1bnNpZ25lZCBsZW4sIGlu dCBwcm90KQogewpAQCAtMTU5LDkgKzE2OCwxOSBAQCBzdGF0aWMgdm9pZCBtc21faW9tbXVfZGVz dHJveShzdHJ1Y3QgbXNtX21tdSAqbW11KQogCWtmcmVlKGlvbW11KTsKIH0KIAotc3RhdGljIGNv bnN0IHN0cnVjdCBtc21fbW11X2Z1bmNzIGZ1bmNzID0gewotCQkuYXR0YWNoID0gbXNtX2lvbW11 X2F0dGFjaCwKLQkJLmRldGFjaCA9IG1zbV9pb21tdV9kZXRhY2gsCisvKiBUaGVzZSBhcmUgZm9y IHFjb20sbXNtLXNtbXUtdjIgYW5kIHFjb20sbXNtLW1tdS01MDAgYmFzZWQgdGFyZ2V0cyAqLwor c3RhdGljIGNvbnN0IHN0cnVjdCBtc21fbW11X2Z1bmNzIGZ1bmNzX3YxID0geworCQkuYXR0YWNo ID0gbXNtX2lvbW11X3YxX2F0dGFjaCwKKwkJLmRldGFjaCA9IG1zbV9pb21tdV92MV9kZXRhY2gs CisJCS5tYXAgPSBtc21faW9tbXVfbWFwLAorCQkudW5tYXAgPSBtc21faW9tbXVfdW5tYXAsCisJ CS5kZXN0cm95ID0gbXNtX2lvbW11X2Rlc3Ryb3ksCit9OworCisvKiBUaGVzZSBhcmUgZm9yIHRo ZSBhcm0tc21tdSBiYXNlZCB0YXJnZXRzICovCitzdGF0aWMgY29uc3Qgc3RydWN0IG1zbV9tbXVf ZnVuY3MgZnVuY3NfdjIgPSB7CisJCS5hdHRhY2ggPSBtc21faW9tbXVfdjJfYXR0YWNoLAorCQku ZGV0YWNoID0gbXNtX2lvbW11X3YyX2RldGFjaCwKIAkJLm1hcCA9IG1zbV9pb21tdV9tYXAsCiAJ CS51bm1hcCA9IG1zbV9pb21tdV91bm1hcCwKIAkJLmRlc3Ryb3kgPSBtc21faW9tbXVfZGVzdHJv eSwKQEAgLTE3MCwxOCArMTg5LDIxIEBAIHN0YXRpYyB2b2lkIG1zbV9pb21tdV9kZXN0cm95KHN0 cnVjdCBtc21fbW11ICptbXUpCiBzdHJ1Y3QgbXNtX21tdSAqbXNtX2lvbW11X25ldyhzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbikKIHsKIAlzdHJ1Y3QgbXNt X2lvbW11ICppb21tdTsKKwljb25zdCBzdHJ1Y3QgbXNtX21tdV9mdW5jcyAqZnVuY3M7CiAKIAlp b21tdSA9IGt6YWxsb2Moc2l6ZW9mKCppb21tdSksIEdGUF9LRVJORUwpOwogCWlmICghaW9tbXUp CiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0JaW9tbXUtPmRvbWFpbiA9IGRvbWFpbjsK LQltc21fbW11X2luaXQoJmlvbW11LT5iYXNlLCBkZXYsICZmdW5jcyk7Ci0JaW9tbXVfc2V0X2Zh dWx0X2hhbmRsZXIoZG9tYWluLCBtc21fZmF1bHRfaGFuZGxlciwgaW9tbXUsIHRydWUpOwotCiAJ aWYgKG9mX2ZpbmRfY29tcGF0aWJsZV9ub2RlKE5VTEwsIE5VTEwsICJxY29tLG1zbS1zbW11LXYy IikgfHwKIAkJCW9mX2ZpbmRfY29tcGF0aWJsZV9ub2RlKE5VTEwsIE5VTEwsICJxY29tLG1zbS1t bXUtNTAwIikpCi0JCWlvbW11LT5oYXNfY3R4ID0gdHJ1ZTsKKwkJZnVuY3MgPSAmZnVuY3NfdjE7 CisJZWxzZQorCQlmdW5jcyA9ICZmdW5jc192MjsKKworCWlvbW11LT5kb21haW4gPSBkb21haW47 CisJbXNtX21tdV9pbml0KCZpb21tdS0+YmFzZSwgZGV2LCBmdW5jcyk7CisJaW9tbXVfc2V0X2Zh dWx0X2hhbmRsZXIoZG9tYWluLCBtc21fZmF1bHRfaGFuZGxlciwgaW9tbXUsIHRydWUpOwogCiAJ cmV0dXJuICZpb21tdS0+YmFzZTsKIH0KLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVu b0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9mcmVlZHJlbm8K