From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 09/11] drm/nouveau: tegra: Fall back to 32-bit DMA mask without IOMMU Date: Mon, 16 Sep 2019 17:04:10 +0200 Message-ID: <20190916150412.10025-10-thierry.reding@gmail.com> References: <20190916150412.10025-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: <20190916150412.10025-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Ben Skeggs , Thierry Reding Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-tegra@vger.kernel.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClRoZSBHUFUgY2FuIHVz dWFsbHkgYWRkcmVzcyBtb3JlIHRoYW4gMzItYml0LCBldmVuIHdpdGhvdXQgYmVpbmcKYXR0YWNo ZWQgdG8gYW4gSU9NTVUuIEhvd2V2ZXIsIGlmIHRoZSBHUFUgaXMgbm90IGF0dGFjaGVkIHRvIGFu IElPTU1VLAppdCdzIGxpa2VseSB0aGF0IHRoZXJlIGlzIG5vIElPTU1VIGluIHRoZSBzeXN0ZW0s IGluIHdoaWNoIGNhc2UgYW55CmJ1ZmZlcnMgYWxsb2NhdGVkIGJ5IE5vdXZlYXUgd2lsbCBsaWtl bHkgZW5kIHVwIGluIGEgcmVnaW9uIG9mIG1lbW9yeQp0aGF0IGNhbm5vdCBiZSBhY2Nlc3NlZCBi eSBob3N0MXguCgpTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEu Y29tPgotLS0KIC4uLi9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9kZXZpY2UvdGVncmEuYyAgICB8 IDExMSArKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCsp LCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u dmttL2VuZ2luZS9kZXZpY2UvdGVncmEuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20v ZW5naW5lL2RldmljZS90ZWdyYS5jCmluZGV4IGZjNjUyYWFhNDFjNy4uMjIxMjM4YTJjZjUzIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9kZXZpY2UvdGVn cmEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9kZXZpY2UvdGVn cmEuYwpAQCAtOTcsNyArOTcsNyBAQCBudmttX2RldmljZV90ZWdyYV9wb3dlcl9kb3duKHN0cnVj dCBudmttX2RldmljZV90ZWdyYSAqdGRldikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQK K3N0YXRpYyBpbnQKIG52a21fZGV2aWNlX3RlZ3JhX3Byb2JlX2lvbW11KHN0cnVjdCBudmttX2Rl dmljZV90ZWdyYSAqdGRldikKIHsKICNpZiBJU19FTkFCTEVEKENPTkZJR19JT01NVV9BUEkpCkBA IC0xMTEsNDcgKzExMSw2NSBAQCBudmttX2RldmljZV90ZWdyYV9wcm9iZV9pb21tdShzdHJ1Y3Qg bnZrbV9kZXZpY2VfdGVncmEgKnRkZXYpCiAJICogSU9NTVUuCiAJICovCiAJaWYgKGlvbW11X2dl dF9kb21haW5fZm9yX2RldihkZXYpKQotCQlyZXR1cm47CisJCXJldHVybiAtRU5PREVWOwogCiAJ aWYgKCF0ZGV2LT5mdW5jLT5pb21tdV9iaXQpCi0JCXJldHVybjsKKwkJcmV0dXJuIC1FTk9ERVY7 CisKKwlpZiAoIWlvbW11X3ByZXNlbnQoJnBsYXRmb3JtX2J1c190eXBlKSkKKwkJcmV0dXJuIC1F Tk9ERVY7CiAKIAltdXRleF9pbml0KCZ0ZGV2LT5pb21tdS5tdXRleCk7CiAKLQlpZiAoaW9tbXVf cHJlc2VudCgmcGxhdGZvcm1fYnVzX3R5cGUpKSB7Ci0JCXRkZXYtPmlvbW11LmRvbWFpbiA9IGlv bW11X2RvbWFpbl9hbGxvYygmcGxhdGZvcm1fYnVzX3R5cGUpOwotCQlpZiAoIXRkZXYtPmlvbW11 LmRvbWFpbikKLQkJCWdvdG8gZXJyb3I7CisJdGRldi0+aW9tbXUuZG9tYWluID0gaW9tbXVfZG9t YWluX2FsbG9jKCZwbGF0Zm9ybV9idXNfdHlwZSk7CisJaWYgKCF0ZGV2LT5pb21tdS5kb21haW4p CisJCXJldHVybiAtRU5PTUVNOwogCi0JCS8qCi0JCSAqIEEgSU9NTVUgaXMgb25seSB1c2FibGUg aWYgaXQgc3VwcG9ydHMgcGFnZSBzaXplcyBzbWFsbGVyCi0JCSAqIG9yIGVxdWFsIHRvIHRoZSBz eXN0ZW0ncyBQQUdFX1NJWkUsIHdpdGggYSBwcmVmZXJlbmNlIGlmCi0JCSAqIGJvdGggYXJlIGVx dWFsLgotCQkgKi8KLQkJcGdzaXplX2JpdG1hcCA9IHRkZXYtPmlvbW11LmRvbWFpbi0+b3BzLT5w Z3NpemVfYml0bWFwOwotCQlpZiAocGdzaXplX2JpdG1hcCAmIFBBR0VfU0laRSkgewotCQkJdGRl di0+aW9tbXUucGdzaGlmdCA9IFBBR0VfU0hJRlQ7Ci0JCX0gZWxzZSB7Ci0JCQl0ZGV2LT5pb21t dS5wZ3NoaWZ0ID0gZmxzKHBnc2l6ZV9iaXRtYXAgJiB+UEFHRV9NQVNLKTsKLQkJCWlmICh0ZGV2 LT5pb21tdS5wZ3NoaWZ0ID09IDApIHsKLQkJCQlkZXZfd2FybihkZXYsICJ1bnN1cHBvcnRlZCBJ T01NVSBwYWdlIHNpemVcbiIpOwotCQkJCWdvdG8gZnJlZV9kb21haW47Ci0JCQl9Ci0JCQl0ZGV2 LT5pb21tdS5wZ3NoaWZ0IC09IDE7CisJLyoKKwkgKiBBbiBJT01NVSBpcyBvbmx5IHVzYWJsZSBp ZiBpdCBzdXBwb3J0cyBwYWdlIHNpemVzIHNtYWxsZXIgb3IgZXF1YWwKKwkgKiB0byB0aGUgc3lz dGVtJ3MgUEFHRV9TSVpFLCB3aXRoIGEgcHJlZmVyZW5jZSBpZiBib3RoIGFyZSBlcXVhbC4KKwkg Ki8KKwlwZ3NpemVfYml0bWFwID0gdGRldi0+aW9tbXUuZG9tYWluLT5vcHMtPnBnc2l6ZV9iaXRt YXA7CisJaWYgKHBnc2l6ZV9iaXRtYXAgJiBQQUdFX1NJWkUpIHsKKwkJdGRldi0+aW9tbXUucGdz aGlmdCA9IFBBR0VfU0hJRlQ7CisJfSBlbHNlIHsKKwkJdGRldi0+aW9tbXUucGdzaGlmdCA9IGZs cyhwZ3NpemVfYml0bWFwICYgflBBR0VfTUFTSyk7CisJCWlmICh0ZGV2LT5pb21tdS5wZ3NoaWZ0 ID09IDApIHsKKwkJCWRldl93YXJuKGRldiwgInVuc3VwcG9ydGVkIElPTU1VIHBhZ2Ugc2l6ZVxu Iik7CisJCQlyZXQgPSAtRU5PVFNVUFA7CisJCQlnb3RvIGZyZWVfZG9tYWluOwogCQl9CiAKLQkJ cmV0ID0gaW9tbXVfYXR0YWNoX2RldmljZSh0ZGV2LT5pb21tdS5kb21haW4sIGRldik7Ci0JCWlm IChyZXQpCi0JCQlnb3RvIGZyZWVfZG9tYWluOworCQl0ZGV2LT5pb21tdS5wZ3NoaWZ0IC09IDE7 CisJfQogCi0JCXJldCA9IG52a21fbW1faW5pdCgmdGRldi0+aW9tbXUubW0sIDAsIDAsCi0JCQkJ ICAgKDFVTEwgPDwgdGRldi0+ZnVuYy0+aW9tbXVfYml0KSA+PgotCQkJCSAgIHRkZXYtPmlvbW11 LnBnc2hpZnQsIDEpOwotCQlpZiAocmV0KQotCQkJZ290byBkZXRhY2hfZGV2aWNlOworCXJldCA9 IGlvbW11X2F0dGFjaF9kZXZpY2UodGRldi0+aW9tbXUuZG9tYWluLCBkZXYpOworCWlmIChyZXQp IHsKKwkJZGV2X3dhcm4oZGV2LCAiZmFpbGVkIHRvIGF0dGFjaCB0byBJT01NVTogJWRcbiIsIHJl dCk7CisJCWdvdG8gZnJlZV9kb21haW47CisJfQorCisJcmV0ID0gbnZrbV9tbV9pbml0KCZ0ZGV2 LT5pb21tdS5tbSwgMCwgMCwKKwkJCSAgICgxVUxMIDw8IHRkZXYtPmZ1bmMtPmlvbW11X2JpdCkg Pj4KKwkJCSAgIHRkZXYtPmlvbW11LnBnc2hpZnQsIDEpOworCWlmIChyZXQpIHsKKwkJZGV2X3dh cm4oZGV2LCAiZmFpbGVkIHRvIGluaXRpYWxpemUgSU9WQSBzcGFjZTogJWRcbiIsIHJldCk7CisJ CWdvdG8gZGV0YWNoX2RldmljZTsKKwl9CisKKwkvKgorCSAqIFRoZSBJT01NVSBiaXQgZGVmaW5l cyB0aGUgdXBwZXIgbGltaXQgb2YgdGhlIEdQVS1hZGRyZXNzYWJsZSBzcGFjZS4KKwkgKi8KKwly ZXQgPSBkbWFfc2V0X21hc2soZGV2LCBETUFfQklUX01BU0sodGRldi0+ZnVuYy0+aW9tbXVfYml0 KSk7CisJaWYgKHJldCkgeworCQlkZXZfd2FybihkZXYsICJmYWlsZWQgdG8gc2V0IERNQSBtYXNr OiAlZFxuIiwgcmV0KTsKKwkJZ290byBmaW5pX21tOwogCX0KIAotCXJldHVybjsKKwlyZXR1cm4g MDsKKworZmluaV9tbToKKwludmttX21tX2ZpbmkoJnRkZXYtPmlvbW11Lm1tKTsKIAogZGV0YWNo X2RldmljZToKIAlpb21tdV9kZXRhY2hfZGV2aWNlKHRkZXYtPmlvbW11LmRvbWFpbiwgZGV2KTsK QEAgLTE1OSwxMCArMTc3LDE1IEBAIG52a21fZGV2aWNlX3RlZ3JhX3Byb2JlX2lvbW11KHN0cnVj dCBudmttX2RldmljZV90ZWdyYSAqdGRldikKIGZyZWVfZG9tYWluOgogCWlvbW11X2RvbWFpbl9m cmVlKHRkZXYtPmlvbW11LmRvbWFpbik7CiAKLWVycm9yOgorCS8qIHJlc2V0IHRoZXNlIHNvIHRo YXQgdGhlIERNQSBBUEkgY29kZSBwYXRocyBhcmUgZXhlY3V0ZWQgKi8KIAl0ZGV2LT5pb21tdS5k b21haW4gPSBOVUxMOwogCXRkZXYtPmlvbW11LnBnc2hpZnQgPSAwOwotCWRldl9lcnIoZGV2LCAi Y2Fubm90IGluaXRpYWxpemUgSU9NTVUgTU1cbiIpOworCisJZGV2X3dhcm4oZGV2LCAiY2Fubm90 IGluaXRpYWxpemUgSU9NTVUgTU1cbiIpOworCisJcmV0dXJuIHJldDsKKyNlbHNlCisJcmV0dXJu IC1FTk9UU1VQUDsKICNlbmRpZgogfQogCkBAIC0zMjcsMTQgKzM1MCwyMCBAQCBudmttX2Rldmlj ZV90ZWdyYV9uZXcoY29uc3Qgc3RydWN0IG52a21fZGV2aWNlX3RlZ3JhX2Z1bmMgKmZ1bmMsCiAJ CWdvdG8gZnJlZTsKIAl9CiAKLQkvKioKLQkgKiBUaGUgSU9NTVUgYml0IGRlZmluZXMgdGhlIHVw cGVyIGxpbWl0IG9mIHRoZSBHUFUtYWRkcmVzc2FibGUgc3BhY2UuCi0JICovCi0JcmV0ID0gZG1h X3NldF9tYXNrKCZwZGV2LT5kZXYsIERNQV9CSVRfTUFTSyh0ZGV2LT5mdW5jLT5pb21tdV9iaXQp KTsKLQlpZiAocmV0KQotCQlnb3RvIGZyZWU7Ci0KLQludmttX2RldmljZV90ZWdyYV9wcm9iZV9p b21tdSh0ZGV2KTsKKwlyZXQgPSBudmttX2RldmljZV90ZWdyYV9wcm9iZV9pb21tdSh0ZGV2KTsK KwlpZiAocmV0KSB7CisJCS8qCisJCSAqIElmIHdlIGZhaWwgdG8gc2V0IHVwIGFuIElPTU1VLCBm YWxsIGJhY2sgdG8gYSAzMi1iaXQgRE1BCisJCSAqIG1hc2suIFRoaXMgaXMgbm90IG5lY2Vzc2Fy eSBmb3IgdGhlIEdQVSB0byB3b3JrIGJlY2F1c2UgaXQKKwkJICogY2FuIHVzdWFsbHkgYWRkcmVz cyBhbGwgb2Ygc3lzdGVtIG1lbW9yeS4gSG93ZXZlciwgaWYgdGhlCisJCSAqIGJ1ZmZlcnMgYWxs b2NhdGVkIGJ5IE5vdXZlYXUgYXJlIG1lYW50IHRvIGJlIHNoYXJlZCB3aXRoCisJCSAqIHRoZSBk aXNwbGF5IGNvbnRyb2xsZXIsIHdlIG5lZWQgdG8gcmVzdHJpY3Qgd2hlcmUgdGhleSBjYW4KKwkJ ICogY29tZSBmcm9tLgorCQkgKi8KKwkJcmV0ID0gZG1hX3NldF9tYXNrKCZwZGV2LT5kZXYsIERN QV9CSVRfTUFTSygzMikpOworCQlpZiAocmV0KQorCQkJZ290byBmcmVlOworCX0KIAogCXJldCA9 IG52a21fZGV2aWNlX3RlZ3JhX3Bvd2VyX3VwKHRkZXYpOwogCWlmIChyZXQpCi0tIAoyLjIzLjAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5vdXZlYXUg bWFpbGluZyBsaXN0Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vbm91dmVhdQ==