From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 02/12] drm/tegra: Simplify IOMMU group selection Date: Mon, 28 Oct 2019 13:37:08 +0100 Message-ID: <20191028123718.3890217-3-thierry.reding@gmail.com> References: <20191028123718.3890217-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: <20191028123718.3890217-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, Sachin Nikam , dri-devel@lists.freedesktop.org, Puneet Saxena List-Id: linux-tegra@vger.kernel.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkFsbCB0aGUgZGV2aWNl cyB0aGF0IG1ha2UgdXAgdGhlIERSTSBkZXZpY2UgYXJlIG5vdyBwYXJ0IG9mIHRoZSBzYW1lCklP TU1VIGdyb3VwLiBUaGlzIHNpbXBsaWZpZXMgdGhlIGhhbmRsaW5nIG9mIHRoZSBJT01NVSBhdHRh Y2htZW50IGFuZAphbHNvIGF2b2lkcyBleGhhdXN0aW5nIHRoZSBudW1iZXIgb2YgSU9NTVVzIGF2 YWlsYWJsZSBvbiBlYXJseSBUZWdyYQpTb0MgZ2VuZXJhdGlvbnMuCgpTaWduZWQtb2ZmLWJ5OiBU aGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS90 ZWdyYS9kYy5jICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5jICB8IDM0ICsr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS90ZWdyYS9k cm0uaCAgfCAgMyArLS0KIGRyaXZlcnMvZ3B1L2RybS90ZWdyYS9ncjJkLmMgfCAgMiArLQogZHJp dmVycy9ncHUvZHJtL3RlZ3JhL2dyM2QuYyB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vdGVncmEv dmljLmMgIHwgIDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMjAgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vdGVncmEvZGMuYwppbmRleCA1NDk2NmY1MzgxNDEuLjM2YzM2YjI5NWFiMSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3RlZ3JhL2RjLmMKQEAgLTIwMTQsNyArMjAxNCw3IEBAIHN0YXRpYyBpbnQgdGVncmFfZGNf aW5pdChzdHJ1Y3QgaG9zdDF4X2NsaWVudCAqY2xpZW50KQogCWlmICghZGMtPnN5bmNwdCkKIAkJ ZGV2X3dhcm4oZGMtPmRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSBzeW5jcG9pbnRcbiIpOwogCi0J ZXJyID0gaG9zdDF4X2NsaWVudF9pb21tdV9hdHRhY2goY2xpZW50LCB0cnVlKTsKKwllcnIgPSBo b3N0MXhfY2xpZW50X2lvbW11X2F0dGFjaChjbGllbnQpOwogCWlmIChlcnIgPCAwKSB7CiAJCWRl dl9lcnIoY2xpZW50LT5kZXYsICJmYWlsZWQgdG8gYXR0YWNoIHRvIGRvbWFpbjogJWRcbiIsIGVy cik7CiAJCXJldHVybiBlcnI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJt LmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMKaW5kZXggNzQ4MGY1NzUxODhkLi45YTFj MTY5NDYwNGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kcm0uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMKQEAgLTkwNCw3ICs5MDQsNyBAQCBpbnQgdGVncmFf ZHJtX3VucmVnaXN0ZXJfY2xpZW50KHN0cnVjdCB0ZWdyYV9kcm0gKnRlZ3JhLAogCXJldHVybiAw OwogfQogCi1pbnQgaG9zdDF4X2NsaWVudF9pb21tdV9hdHRhY2goc3RydWN0IGhvc3QxeF9jbGll bnQgKmNsaWVudCwgYm9vbCBzaGFyZWQpCitpbnQgaG9zdDF4X2NsaWVudF9pb21tdV9hdHRhY2go c3RydWN0IGhvc3QxeF9jbGllbnQgKmNsaWVudCkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJt ID0gZGV2X2dldF9kcnZkYXRhKGNsaWVudC0+cGFyZW50KTsKIAlzdHJ1Y3QgdGVncmFfZHJtICp0 ZWdyYSA9IGRybS0+ZGV2X3ByaXZhdGU7CkBAIC05MTIsMjkgKzkxMiwzMCBAQCBpbnQgaG9zdDF4 X2NsaWVudF9pb21tdV9hdHRhY2goc3RydWN0IGhvc3QxeF9jbGllbnQgKmNsaWVudCwgYm9vbCBz aGFyZWQpCiAJaW50IGVycjsKIAogCWlmICh0ZWdyYS0+ZG9tYWluKSB7CisJCXN0cnVjdCBpb21t dV9kb21haW4gKmRvbWFpbjsKKwogCQlncm91cCA9IGlvbW11X2dyb3VwX2dldChjbGllbnQtPmRl dik7CiAJCWlmICghZ3JvdXApIHsKIAkJCWRldl9lcnIoY2xpZW50LT5kZXYsICJmYWlsZWQgdG8g Z2V0IElPTU1VIGdyb3VwXG4iKTsKIAkJCXJldHVybiAtRU5PREVWOwogCQl9CiAKLQkJaWYgKCFz aGFyZWQgfHwgKHNoYXJlZCAmJiAoZ3JvdXAgIT0gdGVncmEtPmdyb3VwKSkpIHsKICNpZiBJU19F TkFCTEVEKENPTkZJR19BUk1fRE1BX1VTRV9JT01NVSkKLQkJCWlmIChjbGllbnQtPmRldi0+YXJj aGRhdGEubWFwcGluZykgewotCQkJCXN0cnVjdCBkbWFfaW9tbXVfbWFwcGluZyAqbWFwcGluZyA9 Ci0JCQkJCXRvX2RtYV9pb21tdV9tYXBwaW5nKGNsaWVudC0+ZGV2KTsKLQkJCQlhcm1faW9tbXVf ZGV0YWNoX2RldmljZShjbGllbnQtPmRldik7Ci0JCQkJYXJtX2lvbW11X3JlbGVhc2VfbWFwcGlu ZyhtYXBwaW5nKTsKLQkJCX0KKwkJaWYgKGNsaWVudC0+ZGV2LT5hcmNoZGF0YS5tYXBwaW5nKSB7 CisJCQlzdHJ1Y3QgZG1hX2lvbW11X21hcHBpbmcgKm1hcHBpbmcgPQorCQkJCXRvX2RtYV9pb21t dV9tYXBwaW5nKGNsaWVudC0+ZGV2KTsKKwkJCWFybV9pb21tdV9kZXRhY2hfZGV2aWNlKGNsaWVu dC0+ZGV2KTsKKwkJCWFybV9pb21tdV9yZWxlYXNlX21hcHBpbmcobWFwcGluZyk7CisJCX0KICNl bmRpZgorCisJCWRvbWFpbiA9IGlvbW11X2dldF9kb21haW5fZm9yX2RldihjbGllbnQtPmRldik7 CisJCWlmIChkb21haW4gIT0gdGVncmEtPmRvbWFpbikgewogCQkJZXJyID0gaW9tbXVfYXR0YWNo X2dyb3VwKHRlZ3JhLT5kb21haW4sIGdyb3VwKTsKIAkJCWlmIChlcnIgPCAwKSB7CiAJCQkJaW9t bXVfZ3JvdXBfcHV0KGdyb3VwKTsKIAkJCQlyZXR1cm4gZXJyOwogCQkJfQotCi0JCQlpZiAoc2hh cmVkICYmICF0ZWdyYS0+Z3JvdXApCi0JCQkJdGVncmEtPmdyb3VwID0gZ3JvdXA7CiAJCX0KIAl9 CiAKQEAgLTk0NywxMiArOTQ4LDE3IEBAIHZvaWQgaG9zdDF4X2NsaWVudF9pb21tdV9kZXRhY2go c3RydWN0IGhvc3QxeF9jbGllbnQgKmNsaWVudCkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJt ID0gZGV2X2dldF9kcnZkYXRhKGNsaWVudC0+cGFyZW50KTsKIAlzdHJ1Y3QgdGVncmFfZHJtICp0 ZWdyYSA9IGRybS0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluOwog CiAJaWYgKGNsaWVudC0+Z3JvdXApIHsKLQkJaWYgKGNsaWVudC0+Z3JvdXAgPT0gdGVncmEtPmdy b3VwKSB7CisJCS8qCisJCSAqIERldmljZXMgdGhhdCBhcmUgcGFydCBvZiB0aGUgc2FtZSBncm91 cCBtYXkgbm8gbG9uZ2VyIGJlCisJCSAqIGF0dGFjaGVkIHRvIGEgZG9tYWluIGF0IHRoaXMgcG9p bnQgYmVjYXVzZSB0aGVpciBncm91cCBtYXkKKwkJICogaGF2ZSBiZWVuIGRldGFjaGVkIGJ5IGFu IGVhcmxpZXIgY2xpZW50LgorCQkgKi8KKwkJZG9tYWluID0gaW9tbXVfZ2V0X2RvbWFpbl9mb3Jf ZGV2KGNsaWVudC0+ZGV2KTsKKwkJaWYgKGRvbWFpbikKIAkJCWlvbW11X2RldGFjaF9ncm91cCh0 ZWdyYS0+ZG9tYWluLCBjbGllbnQtPmdyb3VwKTsKLQkJCXRlZ3JhLT5ncm91cCA9IE5VTEw7Ci0J CX0KIAogCQlpb21tdV9ncm91cF9wdXQoY2xpZW50LT5ncm91cCk7CiAJfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5oIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5o CmluZGV4IDhiODEyYmI1MmU1Yi4uMjhmMjgyMGE3MzcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vdGVncmEvZHJtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5oCkBAIC0z Niw3ICszNiw2IEBAIHN0cnVjdCB0ZWdyYV9kcm0gewogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm07 CiAKIAlzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb21haW47Ci0Jc3RydWN0IGlvbW11X2dyb3VwICpn cm91cDsKIAlzdHJ1Y3QgbXV0ZXggbW1fbG9jazsKIAlzdHJ1Y3QgZHJtX21tIG1tOwogCkBAIC0x MDAsNyArOTksNyBAQCBpbnQgdGVncmFfZHJtX3JlZ2lzdGVyX2NsaWVudChzdHJ1Y3QgdGVncmFf ZHJtICp0ZWdyYSwKIAkJCSAgICAgIHN0cnVjdCB0ZWdyYV9kcm1fY2xpZW50ICpjbGllbnQpOwog aW50IHRlZ3JhX2RybV91bnJlZ2lzdGVyX2NsaWVudChzdHJ1Y3QgdGVncmFfZHJtICp0ZWdyYSwK IAkJCQlzdHJ1Y3QgdGVncmFfZHJtX2NsaWVudCAqY2xpZW50KTsKLWludCBob3N0MXhfY2xpZW50 X2lvbW11X2F0dGFjaChzdHJ1Y3QgaG9zdDF4X2NsaWVudCAqY2xpZW50LCBib29sIHNoYXJlZCk7 CitpbnQgaG9zdDF4X2NsaWVudF9pb21tdV9hdHRhY2goc3RydWN0IGhvc3QxeF9jbGllbnQgKmNs aWVudCk7CiB2b2lkIGhvc3QxeF9jbGllbnRfaW9tbXVfZGV0YWNoKHN0cnVjdCBob3N0MXhfY2xp ZW50ICpjbGllbnQpOwogCiBpbnQgdGVncmFfZHJtX2luaXQoc3RydWN0IHRlZ3JhX2RybSAqdGVn cmEsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3RlZ3JhL2dyMmQuYyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9ncjJkLmMKaW5kZXggNWQ1YWY5 YTA1YzE4Li4xZmM0ZTU2YzdjYzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9n cjJkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2dyMmQuYwpAQCAtNTAsNyArNTAsNyBA QCBzdGF0aWMgaW50IGdyMmRfaW5pdChzdHJ1Y3QgaG9zdDF4X2NsaWVudCAqY2xpZW50KQogCQln b3RvIHB1dDsKIAl9CiAKLQllcnIgPSBob3N0MXhfY2xpZW50X2lvbW11X2F0dGFjaChjbGllbnQs IGZhbHNlKTsKKwllcnIgPSBob3N0MXhfY2xpZW50X2lvbW11X2F0dGFjaChjbGllbnQpOwogCWlm IChlcnIgPCAwKSB7CiAJCWRldl9lcnIoY2xpZW50LT5kZXYsICJmYWlsZWQgdG8gYXR0YWNoIHRv IGRvbWFpbjogJWRcbiIsIGVycik7CiAJCWdvdG8gZnJlZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS90ZWdyYS9ncjNkLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZ3IzZC5jCmluZGV4 IGMyNDlhNmJkOGQ1MS4uMjRmYWUwZjY0MDMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v dGVncmEvZ3IzZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9ncjNkLmMKQEAgLTU5LDcg KzU5LDcgQEAgc3RhdGljIGludCBncjNkX2luaXQoc3RydWN0IGhvc3QxeF9jbGllbnQgKmNsaWVu dCkKIAkJZ290byBwdXQ7CiAJfQogCi0JZXJyID0gaG9zdDF4X2NsaWVudF9pb21tdV9hdHRhY2go Y2xpZW50LCBmYWxzZSk7CisJZXJyID0gaG9zdDF4X2NsaWVudF9pb21tdV9hdHRhY2goY2xpZW50 KTsKIAlpZiAoZXJyIDwgMCkgewogCQlkZXZfZXJyKGNsaWVudC0+ZGV2LCAiZmFpbGVkIHRvIGF0 dGFjaCB0byBkb21haW46ICVkXG4iLCBlcnIpOwogCQlnb3RvIGZyZWU7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdGVncmEvdmljLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvdmljLmMK aW5kZXggZDM0YjFhZGE0MjJjLi42MDNmNDFlZDRiODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS90ZWdyYS92aWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvdmljLmMKQEAgLTE4 Nyw3ICsxODcsNyBAQCBzdGF0aWMgaW50IHZpY19pbml0KHN0cnVjdCBob3N0MXhfY2xpZW50ICpj bGllbnQpCiAJc3RydWN0IHZpYyAqdmljID0gdG9fdmljKGRybSk7CiAJaW50IGVycjsKIAotCWVy ciA9IGhvc3QxeF9jbGllbnRfaW9tbXVfYXR0YWNoKGNsaWVudCwgZmFsc2UpOworCWVyciA9IGhv c3QxeF9jbGllbnRfaW9tbXVfYXR0YWNoKGNsaWVudCk7CiAJaWYgKGVyciA8IDApIHsKIAkJZGV2 X2Vycih2aWMtPmRldiwgImZhaWxlZCB0byBhdHRhY2ggdG8gZG9tYWluOiAlZFxuIiwgZXJyKTsK IAkJcmV0dXJuIGVycjsKLS0gCjIuMjMuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVs