From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vivek Gautam Subject: [PATCH v12 2/4] iommu/arm-smmu: Invoke pm_runtime during probe, add/remove device Date: Sun, 8 Jul 2018 23:04:11 +0530 Message-ID: <20180708173413.1965-3-vivek.gautam@codeaurora.org> References: <20180708173413.1965-1-vivek.gautam@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180708173413.1965-1-vivek.gautam-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: joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org, robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, mark.rutland-5wv7dgnIgG8@public.gmane.org, robin.murphy-5wv7dgnIgG8@public.gmane.org, will.deacon-5wv7dgnIgG8@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: architt-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, sboyd-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, tfiga-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, alex.williamson-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, vivek.gautam-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org List-Id: devicetree@vger.kernel.org RnJvbTogU3JpY2hhcmFuIFIgPHNyaWNoYXJhbkBjb2RlYXVyb3JhLm9yZz4KClRoZSBzbW11IGRl dmljZSBwcm9iZS9yZW1vdmUgYW5kIGFkZC9yZW1vdmUgbWFzdGVyIGRldmljZSBjYWxsYmFja3MK Z2V0cyBjYWxsZWQgd2hlbiB0aGUgc21tdSBpcyBub3QgbGlua2VkIHRvIGl0cyBtYXN0ZXIsIHRo YXQgaXMgd2l0aG91dAp0aGUgY29udGV4dCBvZiB0aGUgbWFzdGVyIGRldmljZS4gU28gY2FsbGlu ZyBydW50aW1lIGFwaXMgaW4gdGhvc2UgcGxhY2VzCnNlcGFyYXRlbHkuCgpTaWduZWQtb2ZmLWJ5 OiBTcmljaGFyYW4gUiA8c3JpY2hhcmFuQGNvZGVhdXJvcmEub3JnPgpbdml2ZWs6IENsZWFudXAg cG0gcnVudGltZSBjYWxsc10KU2lnbmVkLW9mZi1ieTogVml2ZWsgR2F1dGFtIDx2aXZlay5nYXV0 YW1AY29kZWF1cm9yYS5vcmc+ClJldmlld2VkLWJ5OiBUb21hc3ogRmlnYSA8dGZpZ2FAY2hyb21p dW0ub3JnPgotLS0KCiAtIENoYW5nZSBzaW5jZSB2MTEKICAgKiBSZXBsYWNlZCBwbV9ydW50aW1l X2Rpc2FibGUoKSB3aXRoIHBtX3J1bnRpbWVfZm9yY2Vfc3VzcGVuZCgpCiAgICAgdG8gYXZvaWQg d2FybmluZyBhYm91dCAiIFVucHJlcGFyaW5nIGVuYWJsZWQgY2xvY2siLgogICAgIEZ1bGwgd2Fy bmluZyB0ZXh0IG1lbnRpb25lZCBpbiBjb3ZlciBwYXRjaC4KCiBkcml2ZXJzL2lvbW11L2FybS1z bW11LmMgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvYXJtLXNtbXUuYyBiL2RyaXZlcnMvaW9tbXUvYXJtLXNt bXUuYwppbmRleCBhMDFkMGRkZTIxZGQuLjA5MjY1ZTIwNmUyZCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9pb21tdS9hcm0tc21tdS5jCisrKyBiL2RyaXZlcnMvaW9tbXUvYXJtLXNtbXUuYwpAQCAtMjY4 LDYgKzI2OCwyMCBAQCBzdGF0aWMgc3RydWN0IGFybV9zbW11X29wdGlvbl9wcm9wIGFybV9zbW11 X29wdGlvbnNbXSA9IHsKIAl7IDAsIE5VTEx9LAogfTsKIAorc3RhdGljIGlubGluZSBpbnQgYXJt X3NtbXVfcnBtX2dldChzdHJ1Y3QgYXJtX3NtbXVfZGV2aWNlICpzbW11KQoreworCWlmIChwbV9y dW50aW1lX2VuYWJsZWQoc21tdS0+ZGV2KSkKKwkJcmV0dXJuIHBtX3J1bnRpbWVfZ2V0X3N5bmMo c21tdS0+ZGV2KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYXJtX3Nt bXVfcnBtX3B1dChzdHJ1Y3QgYXJtX3NtbXVfZGV2aWNlICpzbW11KQoreworCWlmIChwbV9ydW50 aW1lX2VuYWJsZWQoc21tdS0+ZGV2KSkKKwkJcG1fcnVudGltZV9wdXQoc21tdS0+ZGV2KTsKK30K Kwogc3RhdGljIHN0cnVjdCBhcm1fc21tdV9kb21haW4gKnRvX3NtbXVfZG9tYWluKHN0cnVjdCBp b21tdV9kb21haW4gKmRvbSkKIHsKIAlyZXR1cm4gY29udGFpbmVyX29mKGRvbSwgc3RydWN0IGFy bV9zbW11X2RvbWFpbiwgZG9tYWluKTsKQEAgLTkxMywxMSArOTI3LDE1IEBAIHN0YXRpYyB2b2lk IGFybV9zbW11X2Rlc3Ryb3lfZG9tYWluX2NvbnRleHQoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9t YWluKQogCXN0cnVjdCBhcm1fc21tdV9kb21haW4gKnNtbXVfZG9tYWluID0gdG9fc21tdV9kb21h aW4oZG9tYWluKTsKIAlzdHJ1Y3QgYXJtX3NtbXVfZGV2aWNlICpzbW11ID0gc21tdV9kb21haW4t PnNtbXU7CiAJc3RydWN0IGFybV9zbW11X2NmZyAqY2ZnID0gJnNtbXVfZG9tYWluLT5jZmc7Ci0J aW50IGlycTsKKwlpbnQgcmV0LCBpcnE7CiAKIAlpZiAoIXNtbXUgfHwgZG9tYWluLT50eXBlID09 IElPTU1VX0RPTUFJTl9JREVOVElUWSkKIAkJcmV0dXJuOwogCisJcmV0ID0gYXJtX3NtbXVfcnBt X2dldChzbW11KTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuOworCiAJLyoKIAkgKiBEaXNhYmxl IHRoZSBjb250ZXh0IGJhbmsgYW5kIGZyZWUgdGhlIHBhZ2UgdGFibGVzIGJlZm9yZSBmcmVlaW5n CiAJICogaXQuCkBAIC05MzIsNiArOTUwLDggQEAgc3RhdGljIHZvaWQgYXJtX3NtbXVfZGVzdHJv eV9kb21haW5fY29udGV4dChzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb21haW4pCiAKIAlmcmVlX2lv X3BndGFibGVfb3BzKHNtbXVfZG9tYWluLT5wZ3RibF9vcHMpOwogCV9fYXJtX3NtbXVfZnJlZV9i aXRtYXAoc21tdS0+Y29udGV4dF9tYXAsIGNmZy0+Y2JuZHgpOworCisJYXJtX3NtbXVfcnBtX3B1 dChzbW11KTsKIH0KIAogc3RhdGljIHN0cnVjdCBpb21tdV9kb21haW4gKmFybV9zbW11X2RvbWFp bl9hbGxvYyh1bnNpZ25lZCB0eXBlKQpAQCAtMTIxMywxMCArMTIzMywxNSBAQCBzdGF0aWMgaW50 IGFybV9zbW11X2F0dGFjaF9kZXYoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLCBzdHJ1Y3Qg ZGV2aWNlICpkZXYpCiAJCXJldHVybiAtRU5PREVWOwogCiAJc21tdSA9IGZ3c3BlY19zbW11KGZ3 c3BlYyk7CisKKwlyZXQgPSBhcm1fc21tdV9ycG1fZ2V0KHNtbXUpOworCWlmIChyZXQgPCAwKQor CQlyZXR1cm4gcmV0OworCiAJLyogRW5zdXJlIHRoYXQgdGhlIGRvbWFpbiBpcyBmaW5hbGlzZWQg Ki8KIAlyZXQgPSBhcm1fc21tdV9pbml0X2RvbWFpbl9jb250ZXh0KGRvbWFpbiwgc21tdSk7CiAJ aWYgKHJldCA8IDApCi0JCXJldHVybiByZXQ7CisJCWdvdG8gcnBtX3B1dDsKIAogCS8qCiAJICog U2FuaXR5IGNoZWNrIHRoZSBkb21haW4uIFdlIGRvbid0IHN1cHBvcnQgZG9tYWlucyBhY3Jvc3MK QEAgLTEyMjYsMzMgKzEyNTEsNTAgQEAgc3RhdGljIGludCBhcm1fc21tdV9hdHRhY2hfZGV2KHN0 cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbiwgc3RydWN0IGRldmljZSAqZGV2KQogCQlkZXZfZXJy KGRldiwKIAkJCSJjYW5ub3QgYXR0YWNoIHRvIFNNTVUgJXMgd2hpbHN0IGFscmVhZHkgYXR0YWNo ZWQgdG8gZG9tYWluIG9uIFNNTVUgJXNcbiIsCiAJCQlkZXZfbmFtZShzbW11X2RvbWFpbi0+c21t dS0+ZGV2KSwgZGV2X25hbWUoc21tdS0+ZGV2KSk7Ci0JCXJldHVybiAtRUlOVkFMOworCQlyZXQg PSAtRUlOVkFMOworCQlnb3RvIHJwbV9wdXQ7CiAJfQogCiAJLyogTG9va3Mgb2ssIHNvIGFkZCB0 aGUgZGV2aWNlIHRvIHRoZSBkb21haW4gKi8KLQlyZXR1cm4gYXJtX3NtbXVfZG9tYWluX2FkZF9t YXN0ZXIoc21tdV9kb21haW4sIGZ3c3BlYyk7CisJcmV0ID0gYXJtX3NtbXVfZG9tYWluX2FkZF9t YXN0ZXIoc21tdV9kb21haW4sIGZ3c3BlYyk7CisKK3JwbV9wdXQ6CisJYXJtX3NtbXVfcnBtX3B1 dChzbW11KTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGFybV9zbW11X21hcChzdHJ1 Y3QgaW9tbXVfZG9tYWluICpkb21haW4sIHVuc2lnbmVkIGxvbmcgaW92YSwKIAkJCXBoeXNfYWRk cl90IHBhZGRyLCBzaXplX3Qgc2l6ZSwgaW50IHByb3QpCiB7CiAJc3RydWN0IGlvX3BndGFibGVf b3BzICpvcHMgPSB0b19zbW11X2RvbWFpbihkb21haW4pLT5wZ3RibF9vcHM7CisJc3RydWN0IGFy bV9zbW11X2RldmljZSAqc21tdSA9IHRvX3NtbXVfZG9tYWluKGRvbWFpbiktPnNtbXU7CisJaW50 IHJldDsKIAogCWlmICghb3BzKQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCXJldHVybiBvcHMtPm1h cChvcHMsIGlvdmEsIHBhZGRyLCBzaXplLCBwcm90KTsKKwlhcm1fc21tdV9ycG1fZ2V0KHNtbXUp OworCXJldCA9IG9wcy0+bWFwKG9wcywgaW92YSwgcGFkZHIsIHNpemUsIHByb3QpOworCWFybV9z bW11X3JwbV9wdXQoc21tdSk7CisKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgc2l6ZV90IGFy bV9zbW11X3VubWFwKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgbG9uZyBp b3ZhLAogCQkJICAgICBzaXplX3Qgc2l6ZSkKIHsKIAlzdHJ1Y3QgaW9fcGd0YWJsZV9vcHMgKm9w cyA9IHRvX3NtbXVfZG9tYWluKGRvbWFpbiktPnBndGJsX29wczsKKwlzdHJ1Y3QgYXJtX3NtbXVf ZGV2aWNlICpzbW11ID0gdG9fc21tdV9kb21haW4oZG9tYWluKS0+c21tdTsKKwlzaXplX3QgcmV0 OwogCiAJaWYgKCFvcHMpCiAJCXJldHVybiAwOwogCi0JcmV0dXJuIG9wcy0+dW5tYXAob3BzLCBp b3ZhLCBzaXplKTsKKwlhcm1fc21tdV9ycG1fZ2V0KHNtbXUpOworCXJldCA9IG9wcy0+dW5tYXAo b3BzLCBpb3ZhLCBzaXplKTsKKwlhcm1fc21tdV9ycG1fcHV0KHNtbXUpOworCisJcmV0dXJuIHJl dDsKIH0KIAogc3RhdGljIHZvaWQgYXJtX3NtbXVfaW90bGJfc3luYyhzdHJ1Y3QgaW9tbXVfZG9t YWluICpkb21haW4pCkBAIC0xNDA3LDcgKzE0NDksMTMgQEAgc3RhdGljIGludCBhcm1fc21tdV9h ZGRfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAl3aGlsZSAoaS0tKQogCQljZmctPnNtZW5k eFtpXSA9IElOVkFMSURfU01FTkRYOwogCisJcmV0ID0gYXJtX3NtbXVfcnBtX2dldChzbW11KTsK KwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXRfY2ZnX2ZyZWU7CisKIAlyZXQgPSBhcm1fc21tdV9t YXN0ZXJfYWxsb2Nfc21lcyhkZXYpOworCWFybV9zbW11X3JwbV9wdXQoc21tdSk7CisKIAlpZiAo cmV0KQogCQlnb3RvIG91dF9jZmdfZnJlZTsKIApAQCAtMTQyNyw3ICsxNDc1LDcgQEAgc3RhdGlj IHZvaWQgYXJtX3NtbXVfcmVtb3ZlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJc3RydWN0 IGlvbW11X2Z3c3BlYyAqZndzcGVjID0gZGV2LT5pb21tdV9md3NwZWM7CiAJc3RydWN0IGFybV9z bW11X21hc3Rlcl9jZmcgKmNmZzsKIAlzdHJ1Y3QgYXJtX3NtbXVfZGV2aWNlICpzbW11OwotCisJ aW50IHJldDsKIAogCWlmICghZndzcGVjIHx8IGZ3c3BlYy0+b3BzICE9ICZhcm1fc21tdV9vcHMp CiAJCXJldHVybjsKQEAgLTE0MzUsOCArMTQ4MywxNSBAQCBzdGF0aWMgdm9pZCBhcm1fc21tdV9y ZW1vdmVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAljZmcgID0gZndzcGVjLT5pb21tdV9w cml2OwogCXNtbXUgPSBjZmctPnNtbXU7CiAKKwlyZXQgPSBhcm1fc21tdV9ycG1fZ2V0KHNtbXUp OworCWlmIChyZXQgPCAwKQorCQlyZXR1cm47CisKIAlpb21tdV9kZXZpY2VfdW5saW5rKCZzbW11 LT5pb21tdSwgZGV2KTsKIAlhcm1fc21tdV9tYXN0ZXJfZnJlZV9zbWVzKGZ3c3BlYyk7CisKKwlh cm1fc21tdV9ycG1fcHV0KHNtbXUpOworCiAJaW9tbXVfZ3JvdXBfcmVtb3ZlX2RldmljZShkZXYp OwogCWtmcmVlKGZ3c3BlYy0+aW9tbXVfcHJpdik7CiAJaW9tbXVfZndzcGVjX2ZyZWUoZGV2KTsK QEAgLTIxMjQsNiArMjE3OSw4IEBAIHN0YXRpYyBpbnQgYXJtX3NtbXVfZGV2aWNlX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXNtbXUtPmlycXNbaV0gPSBpcnE7CiAJfQog CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgc21tdSk7CisKIAllcnIgPSBkZXZtX2Nsa19i dWxrX2dldChzbW11LT5kZXYsIHNtbXUtPm51bV9jbGtzLCBzbW11LT5jbGtzKTsKIAlpZiAoZXJy KQogCQlyZXR1cm4gZXJyOwpAQCAtMjEzMiw2ICsyMTg5LDE5IEBAIHN0YXRpYyBpbnQgYXJtX3Nt bXVfZGV2aWNlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaWYgKGVycikK IAkJcmV0dXJuIGVycjsKIAorCS8qCisJICogV2Ugd2FudCB0byBhdm9pZCB0b3VjaGluZyBkZXYt PnBvd2VyLmxvY2sgaW4gZmFzdHBhdGhzIHVubGVzcworCSAqIGl0J3MgcmVhbGx5IGdvaW5nIHRv IGRvIHNvbWV0aGluZyB1c2VmdWwgLSBwbV9ydW50aW1lX2VuYWJsZWQoKQorCSAqIGNhbiBzZXJ2 ZSBhcyBhbiBpZGVhbCBwcm94eSBmb3IgdGhhdCBkZWNpc2lvbi4gU28sIGNvbmRpdGlvbmFsbHkK KwkgKiBlbmFibGUgcG1fcnVudGltZS4KKwkgKi8KKwlpZiAoZGV2LT5wbV9kb21haW4pCisJCXBt X3J1bnRpbWVfZW5hYmxlKGRldik7CisKKwllcnIgPSBhcm1fc21tdV9ycG1fZ2V0KHNtbXUpOwor CWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCiAJZXJyID0gYXJtX3NtbXVfZGV2aWNlX2Nm Z19wcm9iZShzbW11KTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwpAQCAtMjE3MywxMCArMjI0 MywxMSBAQCBzdGF0aWMgaW50IGFybV9zbW11X2RldmljZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gZXJyOwogCX0KIAotCXBsYXRmb3JtX3NldF9kcnZkYXRh KHBkZXYsIHNtbXUpOwogCWFybV9zbW11X2RldmljZV9yZXNldChzbW11KTsKIAlhcm1fc21tdV90 ZXN0X3Ntcl9tYXNrcyhzbW11KTsKIAorCWFybV9zbW11X3JwbV9wdXQoc21tdSk7CisKIAkvKgog CSAqIEZvciBBQ1BJIGFuZCBnZW5lcmljIERUIGJpbmRpbmdzLCBhbiBTTU1VIHdpbGwgYmUgcHJv YmVkIGJlZm9yZQogCSAqIGFueSBkZXZpY2Ugd2hpY2ggbWlnaHQgbmVlZCBpdCwgc28gd2Ugd2Fu dCB0aGUgYnVzIG9wcyBpbiBwbGFjZQpAQCAtMjIxMiw4ICsyMjgzLDEzIEBAIHN0YXRpYyBpbnQg YXJtX3NtbXVfZGV2aWNlX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlm ICghYml0bWFwX2VtcHR5KHNtbXUtPmNvbnRleHRfbWFwLCBBUk1fU01NVV9NQVhfQ0JTKSkKIAkJ ZGV2X2VycigmcGRldi0+ZGV2LCAicmVtb3ZpbmcgZGV2aWNlIHdpdGggYWN0aXZlIGRvbWFpbnMh XG4iKTsKIAorCWFybV9zbW11X3JwbV9nZXQoc21tdSk7CiAJLyogVHVybiB0aGUgdGhpbmcgb2Zm ICovCiAJd3JpdGVsKHNDUjBfQ0xJRU5UUEQsIEFSTV9TTU1VX0dSMF9OUyhzbW11KSArIEFSTV9T TU1VX0dSMF9zQ1IwKTsKKwlhcm1fc21tdV9ycG1fcHV0KHNtbXUpOworCisJaWYgKHBtX3J1bnRp bWVfZW5hYmxlZChzbW11LT5kZXYpKQorCQlwbV9ydW50aW1lX2ZvcmNlX3N1c3BlbmQoc21tdS0+ ZGV2KTsKIAogCWNsa19idWxrX3VucHJlcGFyZShzbW11LT5udW1fY2xrcywgc21tdS0+Y2xrcyk7 CiAKLS0gClFVQUxDT01NIElORElBLCBvbiBiZWhhbGYgb2YgUXVhbGNvbW0gSW5ub3ZhdGlvbiBD ZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIKb2YgQ29kZSBBdXJvcmEgRm9ydW0sIGhvc3RlZCBieSBU aGUgTGludXggRm91bmRhdGlvbgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZnJlZWRyZW5vCg==