From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vivek Gautam Subject: [Patch v15 1/5] iommu/arm-smmu: Add pm_runtime/sleep ops Date: Mon, 27 Aug 2018 16:25:47 +0530 Message-ID: <20180827105551.16346-2-vivek.gautam@codeaurora.org> References: <20180827105551.16346-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: <20180827105551.16346-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, 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, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: mark.rutland-5wv7dgnIgG8@public.gmane.org, architt-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 , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, andy.gross-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org RnJvbTogU3JpY2hhcmFuIFIgPHNyaWNoYXJhbkBjb2RlYXVyb3JhLm9yZz4KClRoZSBzbW11IG5l ZWRzIHRvIGJlIGZ1bmN0aW9uYWwgb25seSB3aGVuIHRoZSByZXNwZWN0aXZlCm1hc3RlcidzIHVz aW5nIGl0IGFyZSBhY3RpdmUuIFRoZSBkZXZpY2VfbGluayBmZWF0dXJlCmhlbHBzIHRvIHRyYWNr IHN1Y2ggZnVuY3Rpb25hbCBkZXBlbmRlbmNpZXMsIHNvIHRoYXQgdGhlCmlvbW11IGdldHMgcG93 ZXJlZCB3aGVuIHRoZSBtYXN0ZXIgZGV2aWNlIGVuYWJsZXMgaXRzZWxmCnVzaW5nIHBtX3J1bnRp bWUuIFNvIGJ5IGFkYXB0aW5nIHRoZSBzbW11IGRyaXZlciBmb3IKcnVudGltZSBwbSwgYWJvdmUg c2FpZCBkZXBlbmRlbmN5IGNhbiBiZSBhZGRyZXNzZWQuCgpUaGlzIHBhdGNoIGFkZHMgdGhlIHBt IHJ1bnRpbWUvc2xlZXAgY2FsbGJhY2tzIHRvIHRoZQpkcml2ZXIgYW5kIGFsc28gdGhlIGZ1bmN0 aW9ucyB0byBwYXJzZSB0aGUgc21tdSBjbG9ja3MKZnJvbSBEVCBhbmQgZW5hYmxlIHRoZW0gaW4g cmVzdW1lL3N1c3BlbmQuCgpBbHNvLCB3aGlsZSB3ZSBlbmFibGUgdGhlIHJ1bnRpbWUgcG0gYWRk IGEgcG0gc2xlZXAgc3VzcGVuZApjYWxsYmFjayB0aGF0IHB1c2hlcyBkZXZpY2VzIHRvIGxvdyBw b3dlciBzdGF0ZSBieSB0dXJuaW5nCnRoZSBjbG9ja3Mgb2ZmIGluIGEgc3lzdGVtIHNsZWVwLgpB bHNvIGFkZCBjb3JyZXNwb25kaW5nIGNsb2NrIGVuYWJsZSBwYXRoIGluIHJlc3VtZSBjYWxsYmFj ay4KClNpZ25lZC1vZmYtYnk6IFNyaWNoYXJhbiBSIDxzcmljaGFyYW5AY29kZWF1cm9yYS5vcmc+ ClNpZ25lZC1vZmYtYnk6IEFyY2hpdCBUYW5lamEgPGFyY2hpdHRAY29kZWF1cm9yYS5vcmc+Clt2 aXZlazogcmV3b3JrIGZvciBjbG9jayBhbmQgcG0gb3BzXQpTaWduZWQtb2ZmLWJ5OiBWaXZlayBH YXV0YW0gPHZpdmVrLmdhdXRhbUBjb2RlYXVyb3JhLm9yZz4KUmV2aWV3ZWQtYnk6IFRvbWFzeiBG aWdhIDx0ZmlnYUBjaHJvbWl1bS5vcmc+ClRlc3RlZC1ieTogU3Jpbml2YXMgS2FuZGFnYXRsYSA8 c3Jpbml2YXMua2FuZGFnYXRsYUBsaW5hcm8ub3JnPgotLS0KCkNoYW5nZXMgc2luY2UgdjE0Ogog LSBub25lLgoKIGRyaXZlcnMvaW9tbXUvYXJtLXNtbXUuYyB8IDc3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDc0IGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9hcm0t c21tdS5jIGIvZHJpdmVycy9pb21tdS9hcm0tc21tdS5jCmluZGV4IGZkMWI4MGVmOTQ5MC4uYTgx MjI0YmM2NjM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lvbW11L2FybS1zbW11LmMKKysrIGIvZHJp dmVycy9pb21tdS9hcm0tc21tdS5jCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8bGludXgv b2ZfaW9tbXUuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0 Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAjaW5jbHVkZSA8 bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAKQEAgLTIwNSw2ICsy MDYsOCBAQCBzdHJ1Y3QgYXJtX3NtbXVfZGV2aWNlIHsKIAl1MzIJCQkJbnVtX2dsb2JhbF9pcnFz OwogCXUzMgkJCQludW1fY29udGV4dF9pcnFzOwogCXVuc2lnbmVkIGludAkJCSppcnFzOworCXN0 cnVjdCBjbGtfYnVsa19kYXRhCQkqY2xrczsKKwlpbnQJCQkJbnVtX2Nsa3M7CiAKIAl1MzIJCQkJ Y2F2aXVtX2lkX2Jhc2U7IC8qIFNwZWNpZmljIHRvIENhdml1bSAqLwogCkBAIC0xODk2LDEwICsx ODk5LDEyIEBAIHN0YXRpYyBpbnQgYXJtX3NtbXVfZGV2aWNlX2NmZ19wcm9iZShzdHJ1Y3QgYXJt X3NtbXVfZGV2aWNlICpzbW11KQogc3RydWN0IGFybV9zbW11X21hdGNoX2RhdGEgewogCWVudW0g YXJtX3NtbXVfYXJjaF92ZXJzaW9uIHZlcnNpb247CiAJZW51bSBhcm1fc21tdV9pbXBsZW1lbnRh dGlvbiBtb2RlbDsKKwljb25zdCBjaGFyICogY29uc3QgKmNsa3M7CisJaW50IG51bV9jbGtzOwog fTsKIAogI2RlZmluZSBBUk1fU01NVV9NQVRDSF9EQVRBKG5hbWUsIHZlciwgaW1wKQlcCi1zdGF0 aWMgc3RydWN0IGFybV9zbW11X21hdGNoX2RhdGEgbmFtZSA9IHsgLnZlcnNpb24gPSB2ZXIsIC5t b2RlbCA9IGltcCB9CitzdGF0aWMgY29uc3Qgc3RydWN0IGFybV9zbW11X21hdGNoX2RhdGEgbmFt ZSA9IHsgLnZlcnNpb24gPSB2ZXIsIC5tb2RlbCA9IGltcCB9CiAKIEFSTV9TTU1VX01BVENIX0RB VEEoc21tdV9nZW5lcmljX3YxLCBBUk1fU01NVV9WMSwgR0VORVJJQ19TTU1VKTsKIEFSTV9TTU1V X01BVENIX0RBVEEoc21tdV9nZW5lcmljX3YyLCBBUk1fU01NVV9WMiwgR0VORVJJQ19TTU1VKTsK QEAgLTE5MTgsNiArMTkyMywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBh cm1fc21tdV9vZl9tYXRjaFtdID0gewogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFybV9z bW11X29mX21hdGNoKTsKIAorc3RhdGljIHZvaWQgYXJtX3NtbXVfZmlsbF9jbGtfZGF0YShzdHJ1 Y3QgYXJtX3NtbXVfZGV2aWNlICpzbW11LAorCQkJCSAgIGNvbnN0IGNoYXIgKiBjb25zdCAqY2xr cykKK3sKKwlpbnQgaTsKKworCWlmIChzbW11LT5udW1fY2xrcyA8IDEpCisJCXJldHVybjsKKwor CXNtbXUtPmNsa3MgPSBkZXZtX2tjYWxsb2Moc21tdS0+ZGV2LCBzbW11LT5udW1fY2xrcywKKwkJ CQkgIHNpemVvZigqc21tdS0+Y2xrcyksIEdGUF9LRVJORUwpOworCWlmICghc21tdS0+Y2xrcykK KwkJcmV0dXJuOworCisJZm9yIChpID0gMDsgaSA8IHNtbXUtPm51bV9jbGtzOyBpKyspCisJCXNt bXUtPmNsa3NbaV0uaWQgPSBjbGtzW2ldOworfQorCiAjaWZkZWYgQ09ORklHX0FDUEkKIHN0YXRp YyBpbnQgYWNwaV9zbW11X2dldF9kYXRhKHUzMiBtb2RlbCwgc3RydWN0IGFybV9zbW11X2Rldmlj ZSAqc21tdSkKIHsKQEAgLTIwMDAsNiArMjAyMiw5IEBAIHN0YXRpYyBpbnQgYXJtX3NtbXVfZGV2 aWNlX2R0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJZGF0YSA9IG9mX2Rl dmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOwogCXNtbXUtPnZlcnNpb24gPSBkYXRhLT52ZXJzaW9u OwogCXNtbXUtPm1vZGVsID0gZGF0YS0+bW9kZWw7CisJc21tdS0+bnVtX2Nsa3MgPSBkYXRhLT5u dW1fY2xrczsKKworCWFybV9zbW11X2ZpbGxfY2xrX2RhdGEoc21tdSwgZGF0YS0+Y2xrcyk7CiAK IAlwYXJzZV9kcml2ZXJfb3B0aW9ucyhzbW11KTsKIApAQCAtMjA5OCw2ICsyMTIzLDE0IEBAIHN0 YXRpYyBpbnQgYXJtX3NtbXVfZGV2aWNlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCiAJCXNtbXUtPmlycXNbaV0gPSBpcnE7CiAJfQogCisJZXJyID0gZGV2bV9jbGtfYnVsa19n ZXQoc21tdS0+ZGV2LCBzbW11LT5udW1fY2xrcywgc21tdS0+Y2xrcyk7CisJaWYgKGVycikKKwkJ cmV0dXJuIGVycjsKKworCWVyciA9IGNsa19idWxrX3ByZXBhcmUoc21tdS0+bnVtX2Nsa3MsIHNt bXUtPmNsa3MpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKIAllcnIgPSBhcm1fc21tdV9k ZXZpY2VfY2ZnX3Byb2JlKHNtbXUpOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CkBAIC0yMTg0 LDYgKzIyMTcsOSBAQCBzdGF0aWMgaW50IGFybV9zbW11X2RldmljZV9yZW1vdmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKIAogCS8qIFR1cm4gdGhlIHRoaW5nIG9mZiAqLwogCXdyaXRl bChzQ1IwX0NMSUVOVFBELCBBUk1fU01NVV9HUjBfTlMoc21tdSkgKyBBUk1fU01NVV9HUjBfc0NS MCk7CisKKwljbGtfYnVsa191bnByZXBhcmUoc21tdS0+bnVtX2Nsa3MsIHNtbXUtPmNsa3MpOwor CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTIxOTIsMTUgKzIyMjgsNTAgQEAgc3RhdGljIHZvaWQgYXJt X3NtbXVfZGV2aWNlX3NodXRkb3duKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJYXJt X3NtbXVfZGV2aWNlX3JlbW92ZShwZGV2KTsKIH0KIAotc3RhdGljIGludCBfX21heWJlX3VudXNl ZCBhcm1fc21tdV9wbV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQorc3RhdGljIGludCBfX21h eWJlX3VudXNlZCBhcm1fc21tdV9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7 CiAJc3RydWN0IGFybV9zbW11X2RldmljZSAqc21tdSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwor CWludCByZXQ7CisKKwlyZXQgPSBjbGtfYnVsa19lbmFibGUoc21tdS0+bnVtX2Nsa3MsIHNtbXUt PmNsa3MpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAlhcm1fc21tdV9kZXZpY2VfcmVz ZXQoc21tdSk7CisKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKGFy bV9zbW11X3BtX29wcywgTlVMTCwgYXJtX3NtbXVfcG1fcmVzdW1lKTsKK3N0YXRpYyBpbnQgX19t YXliZV91bnVzZWQgYXJtX3NtbXVfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikK K3sKKwlzdHJ1Y3QgYXJtX3NtbXVfZGV2aWNlICpzbW11ID0gZGV2X2dldF9kcnZkYXRhKGRldik7 CisKKwljbGtfYnVsa19kaXNhYmxlKHNtbXUtPm51bV9jbGtzLCBzbW11LT5jbGtzKTsKKworCXJl dHVybiAwOworfQorCitzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGFybV9zbW11X3BtX3Jlc3Vt ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJaWYgKHBtX3J1bnRpbWVfc3VzcGVuZGVkKGRldikp CisJCXJldHVybiAwOworCisJcmV0dXJuIGFybV9zbW11X3J1bnRpbWVfcmVzdW1lKGRldik7Cit9 CisKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgYXJtX3NtbXVfcG1fc3VzcGVuZChzdHJ1Y3Qg ZGV2aWNlICpkZXYpCit7CisJaWYgKHBtX3J1bnRpbWVfc3VzcGVuZGVkKGRldikpCisJCXJldHVy biAwOworCisJcmV0dXJuIGFybV9zbW11X3J1bnRpbWVfc3VzcGVuZChkZXYpOworfQorCitzdGF0 aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgYXJtX3NtbXVfcG1fb3BzID0geworCVNFVF9TWVNU RU1fU0xFRVBfUE1fT1BTKGFybV9zbW11X3BtX3N1c3BlbmQsIGFybV9zbW11X3BtX3Jlc3VtZSkK KwlTRVRfUlVOVElNRV9QTV9PUFMoYXJtX3NtbXVfcnVudGltZV9zdXNwZW5kLAorCQkJICAgYXJt X3NtbXVfcnVudGltZV9yZXN1bWUsIE5VTEwpCit9OwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3Jt X2RyaXZlciBhcm1fc21tdV9kcml2ZXIgPSB7CiAJLmRyaXZlcgk9IHsKLS0gClFVQUxDT01NIElO RElBLCBvbiBiZWhhbGYgb2YgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBt ZW1iZXIKb2YgQ29kZSBBdXJvcmEgRm9ydW0sIGhvc3RlZCBieSBUaGUgTGludXggRm91bmRhdGlv bgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRy ZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==