From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: Re: [PATCH v7 6/6] drm/msm: iommu: Replace runtime calls with runtime suppliers Date: Tue, 13 Feb 2018 09:42:05 -0700 Message-ID: <20180213164205.GA7599@jcrouse-lnx.qualcomm.com> References: <1517999482-17317-1-git-send-email-vivek.gautam@codeaurora.org> <1517999482-17317-7-git-send-email-vivek.gautam@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Tomasz Figa Cc: Mark Rutland , devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Airlie , "Rafael J. Wysocki" , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Will Deacon , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel , "list-Y9sIeH5OGRo@public.gmane.org:IOMMU DRIVERS , Joerg Roedel , " , Rob Herring , Vivek Gautam , Greg KH , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, sboyd-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, Robin Murphy List-Id: linux-arm-msm@vger.kernel.org T24gVHVlLCBGZWIgMTMsIDIwMTggYXQgMDY6MTA6MzhQTSArMDkwMCwgVG9tYXN6IEZpZ2Egd3Jv dGU6Cj4gSGkgVml2ZWssCj4gCj4gVGhhbmtzIGZvciB0aGUgcGF0Y2guIFBsZWFzZSBzZWUgbXkg Y29tbWVudHMgaW5saW5lLgo+IAo+IE9uIFdlZCwgRmViIDcsIDIwMTggYXQgNzozMSBQTSwgVml2 ZWsgR2F1dGFtCj4gPHZpdmVrLmdhdXRhbUBjb2RlYXVyb3JhLm9yZz4gd3JvdGU6Cj4gPiBXaGls ZSBoYW5kbGluZyB0aGUgY29uY2VybmVkIGlvbW11LCB0aGVyZSBzaG91bGQgbm90IGJlIGEKPiA+ IG5lZWQgdG8gcG93ZXIgY29udHJvbCB0aGUgZHJtIGRldmljZXMgZnJvbSBpb21tdSBpbnRlcmZh Y2UuCj4gPiBJZiB0aGVzZSBkcm0gZGV2aWNlcyBuZWVkIHRvIGJlIHBvd2VyZWQgYXJvdW5kIHRo aXMgdGltZSwKPiA+IHRoZSByZXNwZWN0aXZlIGRyaXZlcnMgc2hvdWxkIHRha2UgY2FyZSBvZiB0 aGlzLgo+ID4KPiA+IFJlcGxhY2UgdGhlIHBtX3J1bnRpbWVfZ2V0L3B1dF9zeW5jKDxkcm1fZGV2 aWNlPikgd2l0aAo+ID4gcG1fcnVudGltZV9nZXQvcHV0X3N1cHBsaWVycyg8ZHJtX2RldmljZT4p IGNhbGxzLCB0byBwb3dlci11cAo+ID4gdGhlIGNvbm5lY3RlZCBpb21tdSB0aHJvdWdoIHRoZSBk ZXZpY2UgbGluayBpbnRlcmZhY2UuCj4gPiBJbiBjYXNlIHRoZSBkZXZpY2UgbGluayBpcyBub3Qg c2V0dXAgdGhlc2UgZ2V0L3B1dF9zdXBwbGllcnMoKQo+ID4gY2FsbHMgd2lsbCBiZSBhIG5vLW9w LCBhbmQgdGhlIGlvbW11IGRyaXZlciBzaG91bGQgdGFrZSBjYXJlIG9mCj4gPiBwb3dlcmluZyBv biBpdHMgZGV2aWNlcyBhY2NvcmRpbmdseS4KPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBWaXZlayBH YXV0YW0gPHZpdmVrLmdhdXRhbUBjb2RlYXVyb3JhLm9yZz4KPiA+IC0tLQo+ID4gIGRyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2lvbW11LmMgfCAxNiArKysrKysrKy0tLS0tLS0tCj4gPiAgMSBmaWxl IGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21faW9tbXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2lvbW11LmMKPiA+IGluZGV4IGIyM2QzMzYyMmYzNy4uMWFiNjI5YmJlZTY5IDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21faW9tbXUuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL21zbS9tc21faW9tbXUuYwo+ID4gQEAgLTQwLDkgKzQwLDkgQEAgc3RhdGlj IGludCBtc21faW9tbXVfYXR0YWNoKHN0cnVjdCBtc21fbW11ICptbXUsIGNvbnN0IGNoYXIgKiBj b25zdCAqbmFtZXMsCj4gPiAgICAgICAgIHN0cnVjdCBtc21faW9tbXUgKmlvbW11ID0gdG9fbXNt X2lvbW11KG1tdSk7Cj4gPiAgICAgICAgIGludCByZXQ7Cj4gPgo+ID4gLSAgICAgICBwbV9ydW50 aW1lX2dldF9zeW5jKG1tdS0+ZGV2KTsKPiA+ICsgICAgICAgcG1fcnVudGltZV9nZXRfc3VwcGxp ZXJzKG1tdS0+ZGV2KTsKPiA+ICAgICAgICAgcmV0ID0gaW9tbXVfYXR0YWNoX2RldmljZShpb21t dS0+ZG9tYWluLCBtbXUtPmRldik7Cj4gPiAtICAgICAgIHBtX3J1bnRpbWVfcHV0X3N5bmMobW11 LT5kZXYpOwo+ID4gKyAgICAgICBwbV9ydW50aW1lX3B1dF9zdXBwbGllcnMobW11LT5kZXYpOwo+ IAo+IEZvciBtZSwgaXQgbG9va3MgbGlrZSBhIHdyb25nIHBsYWNlIHRvIGhhbmRsZSBydW50aW1l IFBNIG9mIElPTU1VCj4gaGVyZS4gaW9tbXVfYXR0YWNoX2RldmljZSgpIGNhbGxzIGludG8gSU9N TVUgZHJpdmVyJ3MgYXR0YWNoX2RldmljZSgpCj4gY2FsbGJhY2sgYW5kIHRoYXQncyB3aGVyZSBu ZWNlc3NhcnkgcnVudGltZSBQTSBnZXRzIHNob3VsZCBoYXBwZW4sIGlmCj4gYW55LiBJbiBvdGhl ciB3b3JkcywgZHJpdmVyIEEgKE1TTSBEUk0gZHJpdmVyKSBzaG91bGRuJ3QgYmUgZGVhbGluZwo+ IHdpdGggcG93ZXIgc3RhdGUgb2YgZGV2aWNlIGNvbnRyb2xsZWQgYnkgZHJpdmVyIEIgKEFSTSBT TU1VKS4KIApUaGlzIHdob2xlIHRoaW5nIGlzIGNvbmZ1c2VkIGJ5IHRoZSBmYWN0IHRoYXQgb24g TVNNIHRoZSBHUFUgYW5kIHRoZSBHUFUgSU9NTVUKc2hhcmUgc29tZSBvZiB0aGUgc2FtZSBjbG9j a3MgYW5kIHBvd2VyIHJhaWwgc28gdHVybmluZyBvbiB0aGUgR1BVIGFsc28KdHVybmVkIG9uIHRo ZSBJT01NVSByZWdpc3RlciBiYW5rcyBieSBleHRlbnNpb24uCgpCdXQgaWYgd2UgcHV0IHRoYXQg YXNpZGUgdGhlIHF1ZXN0aW9uIGlzIHdobyBzaG91bGQgYmUgcmVzcG9uc2libGUgZm9yCmNvbnRy b2xsaW5nIHRoZSBwb3dlciBpbiB0aGlzIHJlbGF0aW9uc2hpcCBhbmQgdGhlcmUgYXJlIHNldmVy YWwgZ29vZCByZWFzb25zIHRvCmxlYXZlIGl0IHVwIHRvIHRoZSBjbGllbnQgZGV2aWNlLiBUaGUg bW9zdCBpbXBvcnRhbnQgcmVhc29uIGlzIHdoZW4gd2UgbW92ZSB0bwp0aGUgcGVyLWluc3RhbmNl IG1vZGVsIHdoZXJlIHRoZSBHUFUgc2VsZi1wcm9ncmFtbWluZ3MgdGhlIFNNTVUgcmVnaXN0ZXJz LiBJbgp0aGF0IGNhc2UsIHRoZSBkcml2ZXIgd2lsbCBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRo ZSBTTU1VIGlzIHBvd2VyZWQgdXAgYmVmb3JlCnN1Ym1pdHRpbmcgdGhlIGNvbW1hbmQgYW5kIHRo ZW4gcmVtb3ZpbmcgdGhlIHBvd2VyIHZvdGUgd2hlbiB0aGUgY29tbWFuZHMKYXJlIGRvbmUgdG8g c2F2ZSBlbmVyZ3kuCgpBZGRpdGlvbmFsbHksIHRoZXJlIG1pZ2h0IGJlIGxlZ2l0aW1hdGUgcmVh c29ucyBpbiB0aGUgZHJpdmVyIHRvIGJhdGNoCm9wZXJhdGlvbnMgLSB5b3UgbWF5IHdpc2ggdG8g YXR0YWNoIHRoZSBkZXZpY2UgYW5kIHRoZW4gbWFwIHNldmVyYWwgZ2xvYmFsCmJ1ZmZlcnMgaW1t ZWRpYXRlbHkgLSBoYXZpbmcgZHJpdmVyIHNpZGUgY29udHJvbCBwcmV2ZW50cyBzZXZlcmFsIHVu bmVlZGVkIHBvd2VyCnRyYW5zaXRpb25zLgoKUGVyaGFwcyB0aGUgcmlnaHQgYW5zd2VyIGlzIHRv IGRvIGJvdGggLSBhbGxvdyBmb3IgdGhlIGRyaXZlciB0byBlbmFibGUgdGhlCnN1cHBsaWVyIGJ1 dCBhbHNvIGRvIHRoZSByaWdodCBwb3dlciBvcGVyYXRpb25zIGF0IHRoZSBhcHByb3ByaWF0ZWx5 IHBsYWNlcyBpbgp0aGUgSU9NTVUgZHJpdmVyLgoKPiBUaGlzIGlzIGFsc28gaW1wb3J0YW50IGZv ciB0aGUgcmVhc29ucyBJIHN0YXRlZCBpbiBteSBjb21tZW50cyB0bwo+ICJbUEFUQ0ggdjcgMS82 XSBiYXNlOiBwb3dlcjogcnVudGltZTogRXhwb3J0Cj4gcG1fcnVudGltZV9nZXQvcHV0X3N1cHBs aWVycyIuIFF1b3RpbmcgZm9yIGV2ZXJ5b25lJ3MgY29udmVuaWVuY2U6Cj4gCj4gPj4gVGhlcmUg YXJlIGhvd2V2ZXIgY2FzZXMgaW4gd2hpY2ggdGhlIGNvbnN1bWVyIHdhbnRzIHRvIHBvd2VyLW9u Cj4gPj4gdGhlIHN1cHBsaWVyLCBidXQgbm90IGl0c2VsZi4KPiA+PiBFLmcuLCBBIEdyYXBoaWNz IG9yIG11bHRpbWVkaWEgZHJpdmVyIHdhbnRzIHRvIHBvd2VyLW9uIHRoZSBTTU1VCj4gPj4gdG8g dW5tYXAgYSBidWZmZXIgYW5kIGZpbmlzaCB0aGUgVExCIG9wZXJhdGlvbnMgd2l0aG91dCBwb3dl cmluZwo+ID4+IG9uIGl0c2VsZi4KPiA+Cj4gPlRoaXMgc291bmRzIHN0cmFuZ2UgdG8gbWUuIElm IHRoZSBTTU1VIGlzIHBvd2VyZWQgZG93biwgd291bGRuJ3QgdGhlCj4gPlRMQiBsb3NlIGl0cyBj b250ZW50cyBhcyB3ZWxsIChhbmQgc28gbm8gZmx1c2hpbmcgbmVlZGVkKT8KPiA+Cgo+ID5PdGhl ciB0aGFuIHRoYXQsIHdoYXQga2luZCBvZiBoYXJkd2FyZSBvcGVyYXRpb25zIHdvdWxkIGJlIG5l ZWRlZAo+ID5iZXNpZGVzIGp1c3QgdXBkYXRpbmcgdGhlIHBhZ2UgdGFibGVzIGZyb20gdGhlIENQ VT8KPiA+Cgo+IEluIG90aGVyIHdvcmRzLCB0aGUgU01NVSBkcml2ZXIgY2FuIGRlYWwgd2l0aCBo YXJkd2FyZSBzdGF0ZSBiYXNlZCBvbgo+IHJldHVybiB2YWx1ZSBvZiBwbV9ydW50aW1lX2dldF9z eW5jKCkgb3IgcG1fcnVudGltZV9nZXRfaWZfaW5fdXNlKCkKPiBhbmQgZGVjaWRlIHdoZXRoZXIg c29tZSBvcGVyYXRpb25zIGFyZSBuZWNlc3Nhcnkgb3Igbm90LCBlLmcuCj4gLSBhIHN0YXRlIHJl c3RvcmUgaXMgbmVjZXNzYXJ5IGlmIHRoZSBkb21haW4gd2FzIHBvd2VyZWQgb2ZmLCBidXQgd2UK PiBhcmUgYnJpbmdpbmcgdGhlIG1hc3RlciBvbiwKPiAtIGEgZmx1c2ggbWF5IG5vdCBiZSByZXF1 aXJlZCB3aGVuICh1biltYXBwaW5nIHdpdGggdGhlIGRvbWFpbiBwb3dlcmVkIG9mZiwKPiAtIGV0 Yy4KCkkgYWdyZWUgdGhhdCB0aGVyZSBpcyBwcm9iYWJseSBzb21lIGFkdmFuY2VkIGxvZ2ljIHRo YXQgd2UgY2FuIGRvIHRvCmNvbmNsdXNpdmVseSBmaWd1cmUgb3V0IHRoZSBzdGF0ZSBvZiB0aGUg aGFyZHdhcmUgYW5kIGltcHJvdmUgdGhlIGJlaGF2aW9yLgpJIHdvdWxkIGxvdmUgdG8gc2VlIHRo ZSBTTU1VIGRyaXZlciBnZXQgc21hcnRlciBidXQgZm9yIHRoZSBtb21lbnQgd2UgY2FuJ3QKdHJ1 c3QgaXQgYW5kIHNvIHdlIG5lZWQgdG8gZm9yY2UgdGhlIGJlaGF2aW9yIGZyb20gdGhlIEdQVSBk cml2ZXIuIFRoZSBjdXJyZW50CmNvZGUgd29ya3MgZm9yIGE1eCBhbmQgZWFybGllciBidXQgb24g c2RtODQ1IHdlIGNhbiAobm8gbG9uZ2VyKSB0cmVhdCB0aGUgR1BVCmFuZCB0aGUgU01NVSBhcyB0 aGUgc2FtZSBkZXZpY2UgZm9yIHBvd2VyIHB1cnBvc2VzIHNvIHdlIG5lZWQgdGhpcyBjb2RlLiBJ ZiBhdApzb21lIHBvaW50IGluIHRoZSBmdXR1cmUgd2UgY2FuIHN0YXJ0IHRvIHNlbGVjdGl2ZWx5 IHJlbW92ZSB0aGUgc3VwcGxpZXIgY2FsbHMKSSB3b3VsZG4ndCBtaW5kIG9uZSBiaXQuCgpKb3Jk YW4KCi0tIApUaGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIg b2YgQ29kZSBBdXJvcmEgRm9ydW0sCmEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFBy b2plY3QKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJl ZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AH8x226HM66R00EMhLSpd1YIEGvPSijqwWm1MTDgrlwxe7TWDROfd8i3ndYdapj75szqVt4ukrOj ARC-Seal: i=1; a=rsa-sha256; t=1518540129; cv=none; d=google.com; s=arc-20160816; b=P75qN2jQ5Hz2+yc4I2NGTVNM0Ro41c/87cwLUt1liuuZp1isrE9H9pJw20A6kwsAr9 CXGibKWFIUGijfY9M9gWr7nr2/kZg8avLBONxhBKbaKSdMrKHM3d5NLe4nOEr+TsWeSB WdgGSGQC6cvbuGZtcHAYZUxEsfvsWn/JdmOksgxCPSUF/d/WIOPDPMosSRchB6h6p1y2 w4YKkdYlIiScWJjA4m8S/xfCAzEQGiWyHZ9JODHYkwukybfUiX0Ssyp69EWxJagsznuW g1Wd3IlN8j2BYjgYfDSzJMs9K6w9KaRbGm0Ou1IFvqc9zcC1fu1ZeolqtSmShCgxZKU6 DBPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=user-agent:in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:dmarc-filter :dkim-signature:dkim-signature:arc-authentication-results; bh=urH3thVpLxkMmpRTeH5QSBPkobKjUurfZn/5TYIK1xQ=; b=kQdP/gvI4xgW810rA9o4FI05MzH3CHBlyOihosCCObLy6igchCJeyoQGW4n9JP6T7G KpKzRwSZVgRZU0D9smr6IPyyE58KzlaR6SAPQ2WrVvZzEPtREf0+d9lIpn6W289Xsr8C ErF/Yt8/Vq+3iZ8TxRQVkzgn5GPZCX388EQLrBKVzgzVqyLneSPWGNbrrzIa/hzS61S7 Tc+Rf8BsF0Tcgn0YEcHUjMWJ/aieddV2Df6ncY105TeijCEZU3FcgOdpAh7qXaf928TC nP3wwooNl5A+uF6QjH9M4ArLEq2tGRhhCAus2mX5lcIm4NHQA1XFcRq5npDckzGDE4co fmOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=ni5FW66x; dkim=pass header.i=@codeaurora.org header.s=default header.b=laQnbadK; spf=pass (google.com: domain of jcrouse@codeaurora.org designates 198.145.29.96 as permitted sender) smtp.mailfrom=jcrouse@codeaurora.org Authentication-Results: mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=ni5FW66x; dkim=pass header.i=@codeaurora.org header.s=default header.b=laQnbadK; spf=pass (google.com: domain of jcrouse@codeaurora.org designates 198.145.29.96 as permitted sender) smtp.mailfrom=jcrouse@codeaurora.org DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 67EC360F6B Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=jcrouse@codeaurora.org Date: Tue, 13 Feb 2018 09:42:05 -0700 From: Jordan Crouse To: Tomasz Figa Cc: Vivek Gautam , Mark Rutland , devicetree@vger.kernel.org, linux-pm@vger.kernel.org, David Airlie , Will Deacon , "Rafael J. Wysocki" , "list@263.net:IOMMU DRIVERS , Joerg Roedel , " , dri-devel , linux-kernel@vger.kernel.org, Rob Herring , Greg KH , freedreno@lists.freedesktop.org, Robin Murphy , sboyd@codeaurora.org, linux-arm-msm@vger.kernel.org Subject: Re: [PATCH v7 6/6] drm/msm: iommu: Replace runtime calls with runtime suppliers Message-ID: <20180213164205.GA7599@jcrouse-lnx.qualcomm.com> Mail-Followup-To: Tomasz Figa , Vivek Gautam , Mark Rutland , devicetree@vger.kernel.org, linux-pm@vger.kernel.org, David Airlie , Will Deacon , "Rafael J. Wysocki" , "list@263.net:IOMMU DRIVERS , Joerg Roedel , " , dri-devel , linux-kernel@vger.kernel.org, Rob Herring , Greg KH , freedreno@lists.freedesktop.org, Robin Murphy , sboyd@codeaurora.org, linux-arm-msm@vger.kernel.org References: <1517999482-17317-1-git-send-email-vivek.gautam@codeaurora.org> <1517999482-17317-7-git-send-email-vivek.gautam@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1591737886832187485?= X-GMAIL-MSGID: =?utf-8?q?1592304735267809608?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: On Tue, Feb 13, 2018 at 06:10:38PM +0900, Tomasz Figa wrote: > Hi Vivek, > > Thanks for the patch. Please see my comments inline. > > On Wed, Feb 7, 2018 at 7:31 PM, Vivek Gautam > wrote: > > While handling the concerned iommu, there should not be a > > need to power control the drm devices from iommu interface. > > If these drm devices need to be powered around this time, > > the respective drivers should take care of this. > > > > Replace the pm_runtime_get/put_sync() with > > pm_runtime_get/put_suppliers() calls, to power-up > > the connected iommu through the device link interface. > > In case the device link is not setup these get/put_suppliers() > > calls will be a no-op, and the iommu driver should take care of > > powering on its devices accordingly. > > > > Signed-off-by: Vivek Gautam > > --- > > drivers/gpu/drm/msm/msm_iommu.c | 16 ++++++++-------- > > 1 file changed, 8 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/gpu/drm/msm/msm_iommu.c b/drivers/gpu/drm/msm/msm_iommu.c > > index b23d33622f37..1ab629bbee69 100644 > > --- a/drivers/gpu/drm/msm/msm_iommu.c > > +++ b/drivers/gpu/drm/msm/msm_iommu.c > > @@ -40,9 +40,9 @@ static int msm_iommu_attach(struct msm_mmu *mmu, const char * const *names, > > struct msm_iommu *iommu = to_msm_iommu(mmu); > > int ret; > > > > - pm_runtime_get_sync(mmu->dev); > > + pm_runtime_get_suppliers(mmu->dev); > > ret = iommu_attach_device(iommu->domain, mmu->dev); > > - pm_runtime_put_sync(mmu->dev); > > + pm_runtime_put_suppliers(mmu->dev); > > For me, it looks like a wrong place to handle runtime PM of IOMMU > here. iommu_attach_device() calls into IOMMU driver's attach_device() > callback and that's where necessary runtime PM gets should happen, if > any. In other words, driver A (MSM DRM driver) shouldn't be dealing > with power state of device controlled by driver B (ARM SMMU). This whole thing is confused by the fact that on MSM the GPU and the GPU IOMMU share some of the same clocks and power rail so turning on the GPU also turned on the IOMMU register banks by extension. But if we put that aside the question is who should be responsible for controlling the power in this relationship and there are several good reasons to leave it up to the client device. The most important reason is when we move to the per-instance model where the GPU self-programmings the SMMU registers. In that case, the driver will need to make sure that the SMMU is powered up before submitting the command and then removing the power vote when the commands are done to save energy. Additionally, there might be legitimate reasons in the driver to batch operations - you may wish to attach the device and then map several global buffers immediately - having driver side control prevents several unneeded power transitions. Perhaps the right answer is to do both - allow for the driver to enable the supplier but also do the right power operations at the appropriately places in the IOMMU driver. > This is also important for the reasons I stated in my comments to > "[PATCH v7 1/6] base: power: runtime: Export > pm_runtime_get/put_suppliers". Quoting for everyone's convenience: > > >> There are however cases in which the consumer wants to power-on > >> the supplier, but not itself. > >> E.g., A Graphics or multimedia driver wants to power-on the SMMU > >> to unmap a buffer and finish the TLB operations without powering > >> on itself. > > > >This sounds strange to me. If the SMMU is powered down, wouldn't the > >TLB lose its contents as well (and so no flushing needed)? > > > >Other than that, what kind of hardware operations would be needed > >besides just updating the page tables from the CPU? > > > In other words, the SMMU driver can deal with hardware state based on > return value of pm_runtime_get_sync() or pm_runtime_get_if_in_use() > and decide whether some operations are necessary or not, e.g. > - a state restore is necessary if the domain was powered off, but we > are bringing the master on, > - a flush may not be required when (un)mapping with the domain powered off, > - etc. I agree that there is probably some advanced logic that we can do to conclusively figure out the state of the hardware and improve the behavior. I would love to see the SMMU driver get smarter but for the moment we can't trust it and so we need to force the behavior from the GPU driver. The current code works for a5x and earlier but on sdm845 we can (no longer) treat the GPU and the SMMU as the same device for power purposes so we need this code. If at some point in the future we can start to selectively remove the supplier calls I wouldn't mind one bit. Jordan -- The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project