From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 03/14] iommu: Create a base struct for io_mm Date: Wed, 21 Feb 2018 15:59:13 -0700 Message-ID: <20180221225924.30737-4-jcrouse@codeaurora.org> References: <20180221225924.30737-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180221225924.30737-1-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: jean-philippe.brucker-5wv7dgnIgG8@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, tfiga-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, vivek.gautam-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org SW4gb3JkZXIgdG8gc3VwcG9ydCBib3RoIHNoYXJlZCBtbSBzdmEgcGFnZXRhYmxlcyBhcyB3ZWxs IGFzCmlvLXBndGFibGUgYmFja2VkIHRhYmxlcyBhZGQgYSBiYXNlIHN0cnVjdHVyZSB0bwppb19t bSBzbyB0aGF0IHRoZSB0d28gc3R5bGVzIGNhbiBzaGFyZSB0aGUgc2FtZSBpZHIuCgpTaWduZWQt b2ZmLWJ5OiBKb3JkYW4gQ3JvdXNlIDxqY3JvdXNlQGNvZGVhdXJvcmEub3JnPgotLS0KIGRyaXZl cnMvaW9tbXUvYXJtLXNtbXUtdjMuYyB8ICA4ICsrKystLS0tCiBkcml2ZXJzL2lvbW11L2lvbW11 LXN2YS5jICAgfCA1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0KIGluY2x1ZGUvbGludXgvaW9tbXUuaCAgICAgICB8IDExICsrKysrKysrKy0KIDMgZmlsZXMg Y2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9pb21tdS9hcm0tc21tdS12My5jIGIvZHJpdmVycy9pb21tdS9hcm0tc21tdS12My5j CmluZGV4IDI2OTM1YTlhNWE5Ny4uNDczNmEyYmYzOWNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lv bW11L2FybS1zbW11LXYzLmMKKysrIGIvZHJpdmVycy9pb21tdS9hcm0tc21tdS12My5jCkBAIC0y NDU0LDcgKzI0NTQsNyBAQCBzdGF0aWMgaW50IGFybV9zbW11X21tX2F0dGFjaChzdHJ1Y3QgaW9t bXVfZG9tYWluICpkb21haW4sIHN0cnVjdCBkZXZpY2UgKmRldiwKIAlpZiAoIWF0dGFjaF9kb21h aW4pCiAJCXJldHVybiAwOwogCi0JcmV0dXJuIG9wcy0+c2V0X2VudHJ5KG9wcywgaW9fbW0tPnBh c2lkLCBzbW11X21tLT5jZCk7CisJcmV0dXJuIG9wcy0+c2V0X2VudHJ5KG9wcywgaW9fbW0tPmJh c2UucGFzaWQsIHNtbXVfbW0tPmNkKTsKIH0KIAogc3RhdGljIHZvaWQgYXJtX3NtbXVfbW1fZGV0 YWNoKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbiwgc3RydWN0IGRldmljZSAqZGV2LApAQCAt MjQ2Niw5ICsyNDY2LDkgQEAgc3RhdGljIHZvaWQgYXJtX3NtbXVfbW1fZGV0YWNoKHN0cnVjdCBp b21tdV9kb21haW4gKmRvbWFpbiwgc3RydWN0IGRldmljZSAqZGV2LAogCXN0cnVjdCBhcm1fc21t dV9tYXN0ZXJfZGF0YSAqbWFzdGVyID0gZGV2LT5pb21tdV9md3NwZWMtPmlvbW11X3ByaXY7CiAK IAlpZiAoZGV0YWNoX2RvbWFpbikKLQkJb3BzLT5jbGVhcl9lbnRyeShvcHMsIGlvX21tLT5wYXNp ZCwgc21tdV9tbS0+Y2QpOworCQlvcHMtPmNsZWFyX2VudHJ5KG9wcywgaW9fbW0tPmJhc2UucGFz aWQsIHNtbXVfbW0tPmNkKTsKIAotCWFybV9zbW11X2F0Y19pbnZfbWFzdGVyX2FsbChtYXN0ZXIs IGlvX21tLT5wYXNpZCk7CisJYXJtX3NtbXVfYXRjX2ludl9tYXN0ZXJfYWxsKG1hc3RlciwgaW9f bW0tPmJhc2UucGFzaWQpOwogCS8qIFRPRE86IEludmFsaWRhdGUgYWxsIG1hcHBpbmdzIGlmIGxh c3QgYW5kIG5vdCBEVk0uICovCiB9CiAKQEAgLTI0NzgsNyArMjQ3OCw3IEBAIHN0YXRpYyB2b2lk IGFybV9zbW11X21tX2ludmFsaWRhdGUoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLAogewog CXN0cnVjdCBhcm1fc21tdV9tYXN0ZXJfZGF0YSAqbWFzdGVyID0gZGV2LT5pb21tdV9md3NwZWMt PmlvbW11X3ByaXY7CiAKLQlhcm1fc21tdV9hdGNfaW52X21hc3Rlcl9yYW5nZShtYXN0ZXIsIGlv X21tLT5wYXNpZCwgaW92YSwgc2l6ZSk7CisJYXJtX3NtbXVfYXRjX2ludl9tYXN0ZXJfcmFuZ2Uo bWFzdGVyLCBpb19tbS0+YmFzZS5wYXNpZCwgaW92YSwgc2l6ZSk7CiAJLyoKIAkgKiBUT0RPOiBJ bnZhbGlkYXRlIG1hcHBpbmcgaWYgbm90IERWTQogCSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9p b21tdS9pb21tdS1zdmEuYyBiL2RyaXZlcnMvaW9tbXUvaW9tbXUtc3ZhLmMKaW5kZXggZDdiMjMx Y2Q3MzU1Li41ZmM2ODliMWVmNzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW9tbXUvaW9tbXUtc3Zh LmMKKysrIGIvZHJpdmVycy9pb21tdS9pb21tdS1zdmEuYwpAQCAtMTYxLDEzICsxNjEsMTUgQEAg aW9fbW1fYWxsb2Moc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLCBzdHJ1Y3QgZGV2aWNlICpk ZXYsCiAJaW9fbW0tPm1tCQk9IG1tOwogCWlvX21tLT5ub3RpZmllci5vcHMJPSAmaW9tbXVfbW11 X25vdGlmaWVyOwogCWlvX21tLT5yZWxlYXNlCQk9IGRvbWFpbi0+b3BzLT5tbV9mcmVlOworCWlv X21tLT5iYXNlLnR5cGUJPSBJT19UWVBFX01NOworCiAJSU5JVF9MSVNUX0hFQUQoJmlvX21tLT5k ZXZpY2VzKTsKIAogCWlkcl9wcmVsb2FkKEdGUF9LRVJORUwpOwogCXNwaW5fbG9jaygmaW9tbXVf c3ZhX2xvY2spOwotCXBhc2lkID0gaWRyX2FsbG9jX2N5Y2xpYygmaW9tbXVfcGFzaWRfaWRyLCBp b19tbSwgZGV2X3BhcmFtLT5taW5fcGFzaWQsCi0JCQkJIGRldl9wYXJhbS0+bWF4X3Bhc2lkICsg MSwgR0ZQX0FUT01JQyk7Ci0JaW9fbW0tPnBhc2lkID0gcGFzaWQ7CisJcGFzaWQgPSBpZHJfYWxs b2NfY3ljbGljKCZpb21tdV9wYXNpZF9pZHIsICZpb19tbS0+YmFzZSwKKwkJZGV2X3BhcmFtLT5t aW5fcGFzaWQsIGRldl9wYXJhbS0+bWF4X3Bhc2lkICsgMSwgR0ZQX0FUT01JQyk7CisJaW9fbW0t PmJhc2UucGFzaWQgPSBwYXNpZDsKIAlzcGluX3VubG9jaygmaW9tbXVfc3ZhX2xvY2spOwogCWlk cl9wcmVsb2FkX2VuZCgpOwogCkBAIC0yMDAsNyArMjAyLDcgQEAgaW9fbW1fYWxsb2Moc3RydWN0 IGlvbW11X2RvbWFpbiAqZG9tYWluLCBzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJICogMCBzbyBubyB1 c2VyIGNvdWxkIGdldCBhIHJlZmVyZW5jZSB0byBpdC4gRnJlZSBpdCBtYW51YWxseS4KIAkgKi8K IAlzcGluX2xvY2soJmlvbW11X3N2YV9sb2NrKTsKLQlpZHJfcmVtb3ZlKCZpb21tdV9wYXNpZF9p ZHIsIGlvX21tLT5wYXNpZCk7CisJaWRyX3JlbW92ZSgmaW9tbXVfcGFzaWRfaWRyLCBpb19tbS0+ YmFzZS5wYXNpZCk7CiAJc3Bpbl91bmxvY2soJmlvbW11X3N2YV9sb2NrKTsKIAogZXJyX2ZyZWVf bW06CkBAIC0yMzEsNyArMjMzLDcgQEAgc3RhdGljIHZvaWQgaW9fbW1fcmVsZWFzZShzdHJ1Y3Qg a3JlZiAqa3JlZikKIAlpb19tbSA9IGNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3QgaW9fbW0sIGty ZWYpOwogCVdBUk5fT04oIWxpc3RfZW1wdHkoJmlvX21tLT5kZXZpY2VzKSk7CiAKLQlpZHJfcmVt b3ZlKCZpb21tdV9wYXNpZF9pZHIsIGlvX21tLT5wYXNpZCk7CisJaWRyX3JlbW92ZSgmaW9tbXVf cGFzaWRfaWRyLCBpb19tbS0+YmFzZS5wYXNpZCk7CiAKIAkvKgogCSAqIElmIHdlJ3JlIGJlaW5n IHJlbGVhc2VkIGZyb20gbW0gZXhpdCwgdGhlIG5vdGlmaWVyIGNhbGxiYWNrIC0+cmVsZWFzZQpA QCAtMjg2LDcgKzI4OCw3IEBAIHN0YXRpYyBpbnQgaW9fbW1fYXR0YWNoKHN0cnVjdCBpb21tdV9k b21haW4gKmRvbWFpbiwgc3RydWN0IGRldmljZSAqZGV2LAogewogCWludCByZXQ7CiAJYm9vbCBh dHRhY2hfZG9tYWluID0gdHJ1ZTsKLQlpbnQgcGFzaWQgPSBpb19tbS0+cGFzaWQ7CisJaW50IHBh c2lkID0gaW9fbW0tPmJhc2UucGFzaWQ7CiAJc3RydWN0IGlvbW11X2JvbmQgKmJvbmQsICp0bXA7 CiAJc3RydWN0IGlvbW11X3BhcmFtICpkZXZfcGFyYW0gPSBkZXYtPmlvbW11X3BhcmFtOwogCkBA IC0zNzgsNyArMzgwLDcgQEAgc3RhdGljIGludCBpb21tdV9zaWduYWxfbW1fZXhpdChzdHJ1Y3Qg aW9tbXVfYm9uZCAqYm9uZCkKIAlpZiAoIWRldi0+aW9tbXVfcGFyYW0gfHwgIWRldi0+aW9tbXVf cGFyYW0tPm1tX2V4aXQpCiAJCXJldHVybiAwOwogCi0JcmV0dXJuIGRldi0+aW9tbXVfcGFyYW0t Pm1tX2V4aXQoZGV2LCBpb19tbS0+cGFzaWQsIGJvbmQtPmRydmRhdGEpOworCXJldHVybiBkZXYt PmlvbW11X3BhcmFtLT5tbV9leGl0KGRldiwgaW9fbW0tPmJhc2UucGFzaWQsIGJvbmQtPmRydmRh dGEpOwogfQogCiAvKgpAQCAtNDEwLDcgKzQxMiw3IEBAIHN0YXRpYyB2b2lkIGlvbW11X25vdGlm aWVyX3JlbGVhc2Uoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sIHN0cnVjdCBtbV9zdHJ1Y3QgKm1t CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJvbmQsIG5leHQsICZpb19tbS0+ZGV2aWNlcywg bW1faGVhZCkgewogCQlpZiAoaW9tbXVfc2lnbmFsX21tX2V4aXQoYm9uZCkpCiAJCQlkZXZfV0FS Tihib25kLT5kZXYsICJwb3NzaWJsZSBsZWFrIG9mIFBBU0lEICV1IiwKLQkJCQkgaW9fbW0tPnBh c2lkKTsKKwkJCQkgaW9fbW0tPmJhc2UucGFzaWQpOwogCiAJCWlvX21tX2RldGFjaF9hbGxfbG9j a2VkKGJvbmQpOwogCX0KQEAgLTU4NSw2ICs1ODcsNyBAQCBpbnQgaW9tbXVfc3ZhX2JpbmRfZGV2 aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IG1tX3N0cnVjdCAqbW0sIGludCAqcGFzaWQs CiAJCQkgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIHZvaWQgKmRydmRhdGEpCiB7CiAJaW50IGksIHJl dDsKKwlzdHJ1Y3QgaW9fYmFzZSAqaW9fYmFzZSA9IE5VTEw7CiAJc3RydWN0IGlvX21tICppb19t bSA9IE5VTEw7CiAJc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluOwogCXN0cnVjdCBpb21tdV9i b25kICpib25kID0gTlVMTCwgKnRtcDsKQEAgLTYwNSw3ICs2MDgsMTIgQEAgaW50IGlvbW11X3N2 YV9iaW5kX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBp bnQgKnBhc2lkLAogCiAJLyogSWYgYW4gaW9fbW0gYWxyZWFkeSBleGlzdHMsIHVzZSBpdCAqLwog CXNwaW5fbG9jaygmaW9tbXVfc3ZhX2xvY2spOwotCWlkcl9mb3JfZWFjaF9lbnRyeSgmaW9tbXVf cGFzaWRfaWRyLCBpb19tbSwgaSkgeworCWlkcl9mb3JfZWFjaF9lbnRyeSgmaW9tbXVfcGFzaWRf aWRyLCBpb19iYXNlLCBpKSB7CisJCWlmIChpb19iYXNlLT50eXBlICE9IElPX1RZUEVfTU0pCisJ CQljb250aW51ZTsKKworCQlpb19tbSA9IGNvbnRhaW5lcl9vZihpb19iYXNlLCBzdHJ1Y3QgaW9f bW0sIGJhc2UpOworCiAJCWlmIChpb19tbS0+bW0gIT0gbW0gfHwgIWlvX21tX2dldF9sb2NrZWQo aW9fbW0pKQogCQkJY29udGludWU7CiAKQEAgLTYzNiw3ICs2NDQsNyBAQCBpbnQgaW9tbXVfc3Zh X2JpbmRfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IG1tX3N0cnVjdCAqbW0sIGlu dCAqcGFzaWQsCiAJaWYgKHJldCkKIAkJaW9fbW1fcHV0KGlvX21tKTsKIAllbHNlCi0JCSpwYXNp ZCA9IGlvX21tLT5wYXNpZDsKKwkJKnBhc2lkID0gaW9fbW0tPmJhc2UucGFzaWQ7CiAKIAlyZXR1 cm4gcmV0OwogfQpAQCAtNjU5LDYgKzY2Nyw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKGlvbW11X3N2 YV9iaW5kX2RldmljZSk7CiBpbnQgaW9tbXVfc3ZhX3VuYmluZF9kZXZpY2Uoc3RydWN0IGRldmlj ZSAqZGV2LCBpbnQgcGFzaWQpCiB7CiAJaW50IHJldCA9IC1FU1JDSDsKKwlzdHJ1Y3QgaW9fYmFz ZSAqaW9fYmFzZTsKIAlzdHJ1Y3QgaW9fbW0gKmlvX21tOwogCXN0cnVjdCBpb21tdV9kb21haW4g KmRvbWFpbjsKIAlzdHJ1Y3QgaW9tbXVfYm9uZCAqYm9uZCA9IE5VTEw7CkBAIC02NzQsMTIgKzY4 MywxNCBAQCBpbnQgaW9tbXVfc3ZhX3VuYmluZF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LCBp bnQgcGFzaWQpCiAJaW9tbXVfZmF1bHRfcXVldWVfZmx1c2goZGV2KTsKIAogCXNwaW5fbG9jaygm aW9tbXVfc3ZhX2xvY2spOwotCWlvX21tID0gaWRyX2ZpbmQoJmlvbW11X3Bhc2lkX2lkciwgcGFz aWQpOwotCWlmICghaW9fbW0pIHsKKwlpb19iYXNlID0gaWRyX2ZpbmQoJmlvbW11X3Bhc2lkX2lk ciwgcGFzaWQpOworCWlmICghaW9fYmFzZSB8fCBpb19iYXNlLT50eXBlICE9IElPX1RZUEVfTU0p IHsKIAkJc3Bpbl91bmxvY2soJmlvbW11X3N2YV9sb2NrKTsKIAkJcmV0dXJuIC1FU1JDSDsKIAl9 CiAKKwlpb19tbSA9IGNvbnRhaW5lcl9vZihpb19iYXNlLCBzdHJ1Y3QgaW9fbW0sIGJhc2UpOwor CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShib25kLCAmaW9fbW0tPmRldmljZXMsIG1tX2hlYWQpIHsK IAkJaWYgKGJvbmQtPmRldiA9PSBkZXYpIHsKIAkJCWlvX21tX2RldGFjaF9sb2NrZWQoYm9uZCk7 CkBAIC03NzcsMTYgKzc4OCwyMSBAQCBFWFBPUlRfU1lNQk9MX0dQTChpb21tdV91bnJlZ2lzdGVy X21tX2V4aXRfaGFuZGxlcik7CiAgKi8KIHN0cnVjdCBtbV9zdHJ1Y3QgKmlvbW11X3N2YV9maW5k KGludCBwYXNpZCkKIHsKKwlzdHJ1Y3QgaW9fYmFzZSAqaW9fYmFzZTsKIAlzdHJ1Y3QgaW9fbW0g KmlvX21tOwogCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gTlVMTDsKIAogCXNwaW5fbG9jaygmaW9t bXVfc3ZhX2xvY2spOwotCWlvX21tID0gaWRyX2ZpbmQoJmlvbW11X3Bhc2lkX2lkciwgcGFzaWQp OwotCWlmIChpb19tbSAmJiBpb19tbV9nZXRfbG9ja2VkKGlvX21tKSkgewotCQlpZiAobW1nZXRf bm90X3plcm8oaW9fbW0tPm1tKSkKLQkJCW1tID0gaW9fbW0tPm1tOworCWlvX2Jhc2UgPSBpZHJf ZmluZCgmaW9tbXVfcGFzaWRfaWRyLCBwYXNpZCk7CisJaWYgKGlvX2Jhc2UgJiYgaW9fYmFzZS0+ dHlwZSA9PSBJT19UWVBFX01NKSB7CisJCWlvX21tID0gY29udGFpbmVyX29mKGlvX2Jhc2UsIHN0 cnVjdCBpb19tbSwgYmFzZSk7CisKKwkJaWYgKGlvX21tX2dldF9sb2NrZWQoaW9fbW0pKSB7CisJ CQlpZiAobW1nZXRfbm90X3plcm8oaW9fbW0tPm1tKSkKKwkJCQltbSA9IGlvX21tLT5tbTsKIAot CQlpb19tbV9wdXRfbG9ja2VkKGlvX21tKTsKKwkJCWlvX21tX3B1dF9sb2NrZWQoaW9fbW0pOwor CQl9CiAJfQogCXNwaW5fdW5sb2NrKCZpb21tdV9zdmFfbG9jayk7CiAKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbGludXgvaW9tbXUuaCBiL2luY2x1ZGUvbGludXgvaW9tbXUuaAppbmRleCBlMmM0OWU1 ODNkOGQuLmU5OTgzODljZjE5NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pb21tdS5oCisr KyBiL2luY2x1ZGUvbGludXgvaW9tbXUuaApAQCAtMTEwLDggKzExMCwxNyBAQCBzdHJ1Y3QgaW9t bXVfZG9tYWluIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG1tX2xpc3Q7CiB9OwogCitlbnVtIGlvbW11 X2lvX3R5cGUgeworCUlPX1RZUEVfTU0sCit9OworCitzdHJ1Y3QgaW9fYmFzZSB7CisJaW50IHR5 cGU7CisJaW50IHBhc2lkOworfTsKKwogc3RydWN0IGlvX21tIHsKLQlpbnQJCQlwYXNpZDsKKwlz dHJ1Y3QgaW9fYmFzZQkJYmFzZTsKIAlzdHJ1Y3QgbGlzdF9oZWFkCWRldmljZXM7CiAJc3RydWN0 IGtyZWYJCWtyZWY7CiAjaWYgZGVmaW5lZChDT05GSUdfTU1VX05PVElGSUVSKQotLSAKMi4xNi4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJl bm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K