From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 06/11] drm/nouveau: gk20a: Set IOMMU bit for DMA API if appropriate Date: Mon, 16 Sep 2019 17:04:07 +0200 Message-ID: <20190916150412.10025-7-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 RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkRldGVjdCBpZiB0aGUg RE1BIEFQSSBpcyBiYWNrZWQgYnkgYW4gSU9NTVUgYW5kIHNldCB0aGUgSU9NTVUgYml0IGlmIHNv LgpUaGlzIGlzIG5lZWRlZCB0byBtYWtlIHN1cmUgSU9NTVUgYWRkcmVzc2VzIGFyZSBwcm9wZXJs eSB0cmFuc2xhdGVkIGV2ZW4KdGhlIGV4cGxpY2l0IElPTU1VIEFQSSBpcyBub3QgdXNlZC4KClNp Z25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Ci0tLQogLi4u L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2luc3RtZW0vZ2syMGEuYyAgIHwgMzUgKysrKysrKysr KysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2lu c3RtZW0vZ2syMGEuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2luc3Rt ZW0vZ2syMGEuYwppbmRleCBiMDQ5M2Y4ZGYxZmUuLjExMjBhMmE3ZDVmMSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvaW5zdG1lbS9nazIwYS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2luc3RtZW0vZ2syMGEuYwpAQCAt MTAwLDEyICsxMDAsMTQgQEAgc3RydWN0IGdrMjBhX2luc3RtZW0gewogCXVuc2lnbmVkIGludCB2 YWRkcl9tYXg7CiAJc3RydWN0IGxpc3RfaGVhZCB2YWRkcl9scnU7CiAKKwkvKiBJT01NVSBtYXBw aW5nICovCisJdW5zaWduZWQgaW50IHBhZ2Vfc2hpZnQ7CisJdTY0IGlvbW11X21hc2s7CisKIAkv KiBPbmx5IHVzZWQgaWYgSU9NTVUgaWYgcHJlc2VudCAqLwogCXN0cnVjdCBtdXRleCAqbW1fbXV0 ZXg7CiAJc3RydWN0IG52a21fbW0gKm1tOwogCXN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbjsK LQl1bnNpZ25lZCBsb25nIGlvbW11X3Bnc2hpZnQ7Ci0JdTE2IGlvbW11X2JpdDsKIAogCS8qIE9u bHkgdXNlZCBieSBETUEgQVBJICovCiAJdW5zaWduZWQgbG9uZyBhdHRyczsKQEAgLTM1NywxMiAr MzU5LDEyIEBAIGdrMjBhX2luc3RvYmpfZHRvcl9pb21tdShzdHJ1Y3QgbnZrbV9tZW1vcnkgKm1l bW9yeSkKIAltdXRleF91bmxvY2soJmltZW0tPmxvY2spOwogCiAJLyogY2xlYXIgSU9NTVUgYml0 IHRvIHVubWFwIHBhZ2VzICovCi0Jci0+b2Zmc2V0ICY9IH5CSVQoaW1lbS0+aW9tbXVfYml0IC0g aW1lbS0+aW9tbXVfcGdzaGlmdCk7CisJci0+b2Zmc2V0ICY9IH5pbWVtLT5pb21tdV9tYXNrOwog CiAJLyogVW5tYXAgcGFnZXMgZnJvbSBHUFUgYWRkcmVzcyBzcGFjZSBhbmQgZnJlZSB0aGVtICov CiAJZm9yIChpID0gMDsgaSA8IG5vZGUtPmJhc2UubW4tPmxlbmd0aDsgaSsrKSB7CiAJCWlvbW11 X3VubWFwKGltZW0tPmRvbWFpbiwKLQkJCSAgICAoci0+b2Zmc2V0ICsgaSkgPDwgaW1lbS0+aW9t bXVfcGdzaGlmdCwgUEFHRV9TSVpFKTsKKwkJCSAgICAoci0+b2Zmc2V0ICsgaSkgPDwgaW1lbS0+ cGFnZV9zaGlmdCwgUEFHRV9TSVpFKTsKIAkJZG1hX3VubWFwX3BhZ2UoZGV2LCBub2RlLT5kbWFf YWRkcnNbaV0sIFBBR0VfU0laRSwKIAkJCSAgICAgICBETUFfQklESVJFQ1RJT05BTCk7CiAJCV9f ZnJlZV9wYWdlKG5vZGUtPnBhZ2VzW2ldKTsKQEAgLTQ0MCw3ICs0NDIsNyBAQCBnazIwYV9pbnN0 b2JqX2N0b3JfZG1hKHN0cnVjdCBnazIwYV9pbnN0bWVtICppbWVtLCB1MzIgbnBhZ2VzLCB1MzIg YWxpZ24sCiAKIAkvKiBwcmVzZW50IG1lbW9yeSBmb3IgYmVpbmcgbWFwcGVkIHVzaW5nIHNtYWxs IHBhZ2VzICovCiAJbm9kZS0+ci50eXBlID0gMTI7Ci0Jbm9kZS0+ci5vZmZzZXQgPSBub2RlLT5o YW5kbGUgPj4gMTI7CisJbm9kZS0+ci5vZmZzZXQgPSBpbWVtLT5pb21tdV9tYXNrIHwgbm9kZS0+ aGFuZGxlID4+IDEyOwogCW5vZGUtPnIubGVuZ3RoID0gKG5wYWdlcyA8PCBQQUdFX1NISUZUKSA+ PiAxMjsKIAogCW5vZGUtPmJhc2UubW4gPSAmbm9kZS0+cjsKQEAgLTQ5Myw3ICs0OTUsNyBAQCBn azIwYV9pbnN0b2JqX2N0b3JfaW9tbXUoc3RydWN0IGdrMjBhX2luc3RtZW0gKmltZW0sIHUzMiBu cGFnZXMsIHUzMiBhbGlnbiwKIAltdXRleF9sb2NrKGltZW0tPm1tX211dGV4KTsKIAkvKiBSZXNl cnZlIGFyZWEgZnJvbSBHUFUgYWRkcmVzcyBzcGFjZSAqLwogCXJldCA9IG52a21fbW1faGVhZChp bWVtLT5tbSwgMCwgMSwgbnBhZ2VzLCBucGFnZXMsCi0JCQkgICBhbGlnbiA+PiBpbWVtLT5pb21t dV9wZ3NoaWZ0LCAmcik7CisJCQkgICBhbGlnbiA+PiBpbWVtLT5wYWdlX3NoaWZ0LCAmcik7CiAJ bXV0ZXhfdW5sb2NrKGltZW0tPm1tX211dGV4KTsKIAlpZiAocmV0KSB7CiAJCW52a21fZXJyb3Io c3ViZGV2LCAiSU9NTVUgc3BhY2UgaXMgZnVsbCFcbiIpOwpAQCAtNTAyLDcgKzUwNCw3IEBAIGdr MjBhX2luc3RvYmpfY3Rvcl9pb21tdShzdHJ1Y3QgZ2syMGFfaW5zdG1lbSAqaW1lbSwgdTMyIG5w YWdlcywgdTMyIGFsaWduLAogCiAJLyogTWFwIGludG8gR1BVIGFkZHJlc3Mgc3BhY2UgKi8KIAlm b3IgKGkgPSAwOyBpIDwgbnBhZ2VzOyBpKyspIHsKLQkJdTMyIG9mZnNldCA9IChyLT5vZmZzZXQg KyBpKSA8PCBpbWVtLT5pb21tdV9wZ3NoaWZ0OworCQl1MzIgb2Zmc2V0ID0gKHItPm9mZnNldCAr IGkpIDw8IGltZW0tPnBhZ2Vfc2hpZnQ7CiAKIAkJcmV0ID0gaW9tbXVfbWFwKGltZW0tPmRvbWFp biwgb2Zmc2V0LCBub2RlLT5kbWFfYWRkcnNbaV0sCiAJCQkJUEFHRV9TSVpFLCBJT01NVV9SRUFE IHwgSU9NTVVfV1JJVEUpOwpAQCAtNTE4LDcgKzUyMCw3IEBAIGdrMjBhX2luc3RvYmpfY3Rvcl9p b21tdShzdHJ1Y3QgZ2syMGFfaW5zdG1lbSAqaW1lbSwgdTMyIG5wYWdlcywgdTMyIGFsaWduLAog CX0KIAogCS8qIElPTU1VIGJpdCB0ZWxscyB0aGF0IGFuIGFkZHJlc3MgaXMgdG8gYmUgcmVzb2x2 ZWQgdGhyb3VnaCB0aGUgSU9NTVUgKi8KLQlyLT5vZmZzZXQgfD0gQklUKGltZW0tPmlvbW11X2Jp dCAtIGltZW0tPmlvbW11X3Bnc2hpZnQpOworCXItPm9mZnNldCB8PSBpbWVtLT5pb21tdV9tYXNr OwogCiAJbm9kZS0+YmFzZS5tbiA9IHI7CiAJcmV0dXJuIDA7CkBAIC02MTksMTEgKzYyMSwxMiBA QCBnazIwYV9pbnN0bWVtX25ldyhzdHJ1Y3QgbnZrbV9kZXZpY2UgKmRldmljZSwgaW50IGluZGV4 LAogCQlpbWVtLT5tbV9tdXRleCA9ICZ0ZGV2LT5pb21tdS5tdXRleDsKIAkJaW1lbS0+bW0gPSAm dGRldi0+aW9tbXUubW07CiAJCWltZW0tPmRvbWFpbiA9IHRkZXYtPmlvbW11LmRvbWFpbjsKLQkJ aW1lbS0+aW9tbXVfcGdzaGlmdCA9IHRkZXYtPmlvbW11LnBnc2hpZnQ7Ci0JCWltZW0tPmlvbW11 X2JpdCA9IHRkZXYtPmZ1bmMtPmlvbW11X2JpdDsKKwkJaW1lbS0+cGFnZV9zaGlmdCA9IHRkZXYt PmlvbW11LnBnc2hpZnQ7CiAKIAkJbnZrbV9pbmZvKCZpbWVtLT5iYXNlLnN1YmRldiwgInVzaW5n IElPTU1VXG4iKTsKIAl9IGVsc2UgeworCQlpbWVtLT5wYWdlX3NoaWZ0ID0gUEFHRV9TSElGVDsK KwogCQlpbWVtLT5hdHRycyA9IERNQV9BVFRSX05PTl9DT05TSVNURU5UIHwKIAkJCSAgICAgIERN QV9BVFRSX1dFQUtfT1JERVJJTkcgfAogCQkJICAgICAgRE1BX0FUVFJfV1JJVEVfQ09NQklORTsK QEAgLTYzMSw1ICs2MzQsMTcgQEAgZ2syMGFfaW5zdG1lbV9uZXcoc3RydWN0IG52a21fZGV2aWNl ICpkZXZpY2UsIGludCBpbmRleCwKIAkJbnZrbV9pbmZvKCZpbWVtLT5iYXNlLnN1YmRldiwgInVz aW5nIERNQSBBUElcbiIpOwogCX0KIAorCS8qCisJICogVGhlIElPTU1VIG1hc2sgbmVlZHMgdG8g YmUgc2V0IGlmIGFuIElPTU1VIGlzIHVzZWQgZXhwbGljaXRseSAodmlhCisJICogZGlyZWN0IElP TU1VIEFQSSB1c2FnZSkgb3IgaW1wbGljaXRseSAodmlhIHRoZSBETUEgQVBJKS4gSW4gYm90aAor CSAqIGNhc2VzIHRoZSBkZXZpY2Ugd2lsbCBoYXZlIGJlZW4gYXR0YWNoZWQgdG8gYW4gSU9NTVUg ZG9tYWluLgorCSAqLworCWlmIChpb21tdV9nZXRfZG9tYWluX2Zvcl9kZXYoZGV2aWNlLT5kZXYp KSB7CisJCWltZW0tPmlvbW11X21hc2sgPSBCSVRfVUxMKHRkZXYtPmZ1bmMtPmlvbW11X2JpdCAt CisJCQkJCSAgIGltZW0tPnBhZ2Vfc2hpZnQpOworCQludmttX2RlYnVnKCZpbWVtLT5iYXNlLnN1 YmRldiwgIklPTU1VIG1hc2s6ICUwMTZsbHhcbiIsCisJCQkgICBpbWVtLT5pb21tdV9tYXNrKTsK Kwl9CisKIAlyZXR1cm4gMDsKIH0KLS0gCjIuMjMuMAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KTm91dmVhdSBtYWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9ub3V2ZWF1