From: Jordan Crouse Subject: [PATCH 06/16] iommu: arm-smmu: Add side-band function for specific PASID callbacks Date: Fri, 18 May 2018 15:34:50 -0600 Message-ID: <20180518213500.31595-7-jcrouse@codeaurora.org> References: <20180518213500.31595-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180518213500.31595-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: dri-devel@lists.freedesktop.org SnVzdCBhbGxvd2luZyBhIGNsaWVudCBkcml2ZXIgdG8gY3JlYXRlIGFuZCBtYW5hZ2UgYQphIHBy aXZhdGUgUEFTSUQgaXNuJ3QgaW50ZXJlc3RpbmcgaWYgdGhlIGNsaWVudCBkcml2ZXIgZG9lc24n dCBoYXZlCmVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGFnZXRhYmxlIHRvIGJlIGFibGUg dG8gdXNlIGl0LiBBZGQgYQpzaWRlIGJhbmQgZnVuY3Rpb24gZm9yIGFybS1zbW11IHRoYXQgbGV0 cyB0aGUgY2xpZW50IGRldmljZSByZWdpc3RlcgpwYXNpZCBvcGVyYXRpb25zIHRvIHBhc3MgdGhl IHJlbGV2YW50IHBhZ2V0YWJsZSBpbmZvcm1hdGlvbiB0byB0aGUKY2xpZW50IGRyaXZlciB3aGVu ZXZlciBhIG5ldyBQQVNJRCBpcyBjcmVhdGVkIG9yIGRlc3Ryb3llZAoKU2lnbmVkLW9mZi1ieTog Sm9yZGFuIENyb3VzZSA8amNyb3VzZUBjb2RlYXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJzL2lvbW11 L2FybS1zbW11LmMgfCA0MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiBpbmNsdWRlL2xpbnV4L2FybS1zbW11LmggfCAxOCArKysrKysrKysrKysrKysrKysKIDIgZmls ZXMgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUv bGludXgvYXJtLXNtbXUuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvYXJtLXNtbXUuYyBi L2RyaXZlcnMvaW9tbXUvYXJtLXNtbXUuYwppbmRleCA1YzdjMTM1YmJiNDQuLjEwMDc5N2EwN2Jl MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9hcm0tc21tdS5jCisrKyBiL2RyaXZlcnMvaW9t bXUvYXJtLXNtbXUuYwpAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3Jt X2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlu bG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2FybS1zbW11Lmg+CiAKICNpbmNsdWRlIDxsaW51eC9h bWJhL2J1cy5oPgogCkBAIC0yNTQsNiArMjU1LDggQEAgc3RydWN0IGFybV9zbW11X2RvbWFpbiB7 CiAKIAlzcGlubG9ja190CQkJcGFzaWRfbG9jazsKIAlzdHJ1Y3QgbGlzdF9oZWFkCQlwYXNpZF9s aXN0OworCWNvbnN0IHN0cnVjdCBhcm1fc21tdV9wYXNpZF9vcHMJKnBhc2lkX29wczsKKwl2b2lk CQkJCSpwYXNpZF9kYXRhOwogfTsKIAogc3RydWN0IGFybV9zbW11X29wdGlvbl9wcm9wIHsKQEAg LTI5Niw2ICsyOTksMTAgQEAgc3RhdGljIHZvaWQgYXJtX3NtbXVfbW1fZGV0YWNoKHN0cnVjdCBp b21tdV9kb21haW4gKmRvbWFpbiwgc3RydWN0IGRldmljZSAqZGV2LAogCXN0cnVjdCBhcm1fc21t dV9kb21haW4gKnNtbXVfZG9tYWluID0gdG9fc21tdV9kb21haW4oZG9tYWluKTsKIAlzdHJ1Y3Qg YXJtX3NtbXVfcGFzaWQgKm5vZGUsICpvYmogPSBOVUxMOwogCisJaWYgKHNtbXVfZG9tYWluLT5w YXNpZF9vcHMgJiYgc21tdV9kb21haW4tPnBhc2lkX29wcy0+cmVtb3ZlX3Bhc2lkKQorCQlzbW11 X2RvbWFpbi0+cGFzaWRfb3BzLT5yZW1vdmVfcGFzaWQoaW9fbW0tPnBhc2lkLAorCQkJc21tdV9k b21haW4tPnBhc2lkX2RhdGEpOworCiAJc3Bpbl9sb2NrKCZzbW11X2RvbWFpbi0+cGFzaWRfbG9j ayk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShub2RlLCAmc21tdV9kb21haW4tPnBhc2lkX2xpc3Qs IG5vZGUpIHsKIAkJaWYgKG5vZGUtPnBhc2lkID09IGlvX21tLT5wYXNpZCkgewpAQCAtMzkyLDYg KzM5OSwyNiBAQCBzdGF0aWMgaW50IGFybV9zbW11X21tX2F0dGFjaChzdHJ1Y3QgaW9tbXVfZG9t YWluICpkb21haW4sIHN0cnVjdCBkZXZpY2UgKmRldiwKIAlvYmotPmRvbWFpbiA9IGRvbWFpbjsK IAlvYmotPnBhc2lkID0gaW9fbW0tPnBhc2lkOwogCisJaWYgKHNtbXVfZG9tYWluLT5wYXNpZF9v cHMgJiYgc21tdV9kb21haW4tPnBhc2lkX29wcy0+aW5zdGFsbF9wYXNpZCkgeworCQlpbnQgcmV0 OworCQl1NjQgdHRicjsKKworCQlpZiAoc21tdV9kb21haW4tPmNmZy5mbXQgPT0gQVJNX1NNTVVf Q1RYX0ZNVF9BQVJDSDMyX1MpCisJCQl0dGJyID0gcGd0YmxfY2ZnLmFybV92N3NfY2ZnLnR0YnI7 CisJCWVsc2UKKwkJCXR0YnIgPSBwZ3RibF9jZmcuYXJtX2xwYWVfczFfY2ZnLnR0YnI7CisKKwkJ cmV0ID0gc21tdV9kb21haW4tPnBhc2lkX29wcy0+aW5zdGFsbF9wYXNpZChpb19tbS0+cGFzaWQs IHR0YnIsCisJCQlzbW11X2RvbWFpbi0+Y2ZnLmFzaWQsIHNtbXVfZG9tYWluLT5wYXNpZF9kYXRh KTsKKworCQlpZiAocmV0KSB7CisJCQlmcmVlX2lvX3BndGFibGVfb3BzKG9iai0+cGd0Ymxfb3Bz KTsKKwkJCWtmcmVlKG9iaik7CisKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisKIAlzcGluX2xv Y2soJnNtbXVfZG9tYWluLT5wYXNpZF9sb2NrKTsKIAlsaXN0X2FkZF90YWlsKCZvYmotPm5vZGUs ICZzbW11X2RvbWFpbi0+cGFzaWRfbGlzdCk7CiAJc3Bpbl91bmxvY2soJnNtbXVfZG9tYWluLT5w YXNpZF9sb2NrKTsKQEAgLTIxNTYsNiArMjE4MywxOSBAQCBzdGF0aWMgaW50IGFybV9zbW11X2Rl dmljZV9jZmdfcHJvYmUoc3RydWN0IGFybV9zbW11X2RldmljZSAqc21tdSkKIAlyZXR1cm4gMDsK IH0KIAordm9pZCBhcm1fc21tdV9hZGRfcGFzaWRfb3BzKHN0cnVjdCBpb21tdV9kb21haW4gKmRv bWFpbiwKKwljb25zdCBzdHJ1Y3QgYXJtX3NtbXVfcGFzaWRfb3BzICpvcHMsIHZvaWQgKmRhdGEp Cit7CisJc3RydWN0IGFybV9zbW11X2RvbWFpbiAqc21tdV9kb21haW47CisKKwlpZiAoZG9tYWlu KSB7CisJCXNtbXVfZG9tYWluID0gdG9fc21tdV9kb21haW4oZG9tYWluKTsKKwkJc21tdV9kb21h aW4tPnBhc2lkX29wcyA9IG9wczsKKwkJc21tdV9kb21haW4tPnBhc2lkX2RhdGEgPSBkYXRhOwor CX0KK30KK0VYUE9SVF9TWU1CT0xfR1BMKGFybV9zbW11X2FkZF9wYXNpZF9vcHMpOworCiBzdHJ1 Y3QgYXJtX3NtbXVfbWF0Y2hfZGF0YSB7CiAJZW51bSBhcm1fc21tdV9hcmNoX3ZlcnNpb24gdmVy c2lvbjsKIAllbnVtIGFybV9zbW11X2ltcGxlbWVudGF0aW9uIG1vZGVsOwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9saW51eC9hcm0tc21tdS5oIGIvaW5jbHVkZS9saW51eC9hcm0tc21tdS5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYzE0Y2E1MjIzMWJmCi0tLSAvZGV2 L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9hcm0tc21tdS5oCkBAIC0wLDAgKzEsMTggQEAKKy8q IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCisvKiBDb3B5cmlnaHQgKGMpIDIw MTgsIFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAqLworCisjaWZu ZGVmIEFSTV9TTU1VX0hfCisjZGVmaW5lIEFSTV9TTU1VX0hfCisKK3N0cnVjdCBpb21tdV9kb21h aW47CisKK3N0cnVjdCBhcm1fc21tdV9wYXNpZF9vcHMgeworCWludCAoKmluc3RhbGxfcGFzaWQp KGludCBwYXNpZCwgdTY0IHR0YnIsIHUzMiBhc2lkLCB2b2lkICpkYXRhKTsKKwl2b2lkICgqcmVt b3ZlX3Bhc2lkKShpbnQgcGFzaWQsIHZvaWQgKmRhdGEpOworfTsKKworCit2b2lkIGFybV9zbW11 X2FkZF9wYXNpZF9vcHMoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLAorCWNvbnN0IHN0cnVj dCBhcm1fc21tdV9wYXNpZF9vcHMgKm9wcywgdm9pZCAqZGF0YSk7CisKKyNlbmRpZgotLSAKMi4x Ny4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVl ZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K