From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Rafael J. Wysocki" Subject: Re: [PATCH v12 2/4] iommu/arm-smmu: Invoke pm_runtime during probe, add/remove device Date: Wed, 11 Jul 2018 12:59:37 +0200 Message-ID: References: <20180708173413.1965-1-vivek.gautam@codeaurora.org> <20180708173413.1965-3-vivek.gautam@codeaurora.org> <1694664.FhRBrgajmF@aspire.rjw.lan> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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" , Archit Taneja , jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, Alex Williamson , Linux PM , Stephen Boyd , Will Deacon , "list-Y9sIeH5OGRo@public.gmane.org:IOMMU DRIVERS , Joerg Roedel , " , "Rafael J. Wysocki" , Linux Kernel Mailing List "list-Y9sIeH5OGRo@public.gmane.org:IOMMU DRIVERS , Joerg Roedel , " , Rob Herring , Rob Clark , Vivek Gautam , linux-arm-msm , Sricharan R , freedreno List-Id: linux-arm-msm@vger.kernel.org T24gV2VkLCBKdWwgMTEsIDIwMTggYXQgMTI6MDUgUE0sIFRvbWFzeiBGaWdhIDx0ZmlnYUBjaHJv bWl1bS5vcmc+IHdyb3RlOgo+IEhpIFJhZmFlbCwKPgo+IFRoYW5rcyBmb3IgcmV2aWV3Lgo+Cj4g T24gV2VkLCBKdWwgMTEsIDIwMTggYXQgNjo1MyBQTSBSYWZhZWwgSi4gV3lzb2NraSA8cmp3QHJq d3lzb2NraS5uZXQ+IHdyb3RlOgo+Pgo+PiBPbiBTdW5kYXksIEp1bHkgOCwgMjAxOCA3OjM0OjEx IFBNIENFU1QgVml2ZWsgR2F1dGFtIHdyb3RlOgo+PiA+IEZyb206IFNyaWNoYXJhbiBSIDxzcmlj aGFyYW5AY29kZWF1cm9yYS5vcmc+Cj4+ID4KPj4gPiBUaGUgc21tdSBkZXZpY2UgcHJvYmUvcmVt b3ZlIGFuZCBhZGQvcmVtb3ZlIG1hc3RlciBkZXZpY2UgY2FsbGJhY2tzCj4+ID4gZ2V0cyBjYWxs ZWQgd2hlbiB0aGUgc21tdSBpcyBub3QgbGlua2VkIHRvIGl0cyBtYXN0ZXIsIHRoYXQgaXMgd2l0 aG91dAo+PiA+IHRoZSBjb250ZXh0IG9mIHRoZSBtYXN0ZXIgZGV2aWNlLiBTbyBjYWxsaW5nIHJ1 bnRpbWUgYXBpcyBpbiB0aG9zZSBwbGFjZXMKPj4gPiBzZXBhcmF0ZWx5Lgo+PiA+Cj4+ID4gU2ln bmVkLW9mZi1ieTogU3JpY2hhcmFuIFIgPHNyaWNoYXJhbkBjb2RlYXVyb3JhLm9yZz4KPj4gPiBb dml2ZWs6IENsZWFudXAgcG0gcnVudGltZSBjYWxsc10KPj4gPiBTaWduZWQtb2ZmLWJ5OiBWaXZl ayBHYXV0YW0gPHZpdmVrLmdhdXRhbUBjb2RlYXVyb3JhLm9yZz4KPj4gPiBSZXZpZXdlZC1ieTog VG9tYXN6IEZpZ2EgPHRmaWdhQGNocm9taXVtLm9yZz4KPj4gPiAtLS0KPj4gPgo+PiA+ICAtIENo YW5nZSBzaW5jZSB2MTEKPj4gPiAgICAqIFJlcGxhY2VkIHBtX3J1bnRpbWVfZGlzYWJsZSgpIHdp dGggcG1fcnVudGltZV9mb3JjZV9zdXNwZW5kKCkKPj4gPiAgICAgIHRvIGF2b2lkIHdhcm5pbmcg YWJvdXQgIiBVbnByZXBhcmluZyBlbmFibGVkIGNsb2NrIi4KPj4gPiAgICAgIEZ1bGwgd2Fybmlu ZyB0ZXh0IG1lbnRpb25lZCBpbiBjb3ZlciBwYXRjaC4KPj4gPgo+PiA+ICBkcml2ZXJzL2lvbW11 L2FybS1zbW11LmMgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0KPj4gPiAgMSBmaWxlIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCj4+ID4KPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9hcm0tc21tdS5jIGIv ZHJpdmVycy9pb21tdS9hcm0tc21tdS5jCj4+ID4gaW5kZXggYTAxZDBkZGUyMWRkLi4wOTI2NWUy MDZlMmQgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9pb21tdS9hcm0tc21tdS5jCj4+ID4gKysr IGIvZHJpdmVycy9pb21tdS9hcm0tc21tdS5jCj4+ID4gQEAgLTI2OCw2ICsyNjgsMjAgQEAgc3Rh dGljIHN0cnVjdCBhcm1fc21tdV9vcHRpb25fcHJvcCBhcm1fc21tdV9vcHRpb25zW10gPSB7Cj4+ ID4gICAgICAgeyAwLCBOVUxMfSwKPj4gPiAgfTsKPj4gPgo+PiA+ICtzdGF0aWMgaW5saW5lIGlu dCBhcm1fc21tdV9ycG1fZ2V0KHN0cnVjdCBhcm1fc21tdV9kZXZpY2UgKnNtbXUpCj4+ID4gK3sK Pj4gPiArICAgICBpZiAocG1fcnVudGltZV9lbmFibGVkKHNtbXUtPmRldikpCj4+Cj4+IFdoeSBk byB5b3UgbmVlZCB0aGUgcG1fcnVudGltZV9lbmFibGVkKCkgY2hlY2tzIGhlcmUgYW5kIGJlbG93 Pwo+Pgo+PiBwbV9ydW50aW1lX2dldF9zeW5jKCkgYW5kIHBtX3J1bnRpbWVfcHV0KCkgc2hvdWxk IHdvcmsganVzdCBmaW5lIGlmCj4+IHJ1bnRpbWUgUE0gaXMgbm90IGVuYWJsZWQuCj4KPiBCZWNh dXNlIHBtX3J1bnRpbWVfZ2V0X3N5bmMoKSBhY3F1aXJlcyBhIHNwaW4gbG9jaywgZXZlbiBpZiBv bmx5IGZvcgo+IHRoZSBzaG9ydCB0aW1lIG9mIGNoZWNraW5nIGlmIHJ1bnRpbWUgUE0gaXMgZW5h YmxlZCBhbmQgU01NVSBkcml2ZXIKPiBtYWludGFpbmVycyBkaWRuJ3Qgd2FudCBhbnkgc3BpbiBs b2NrcyBpbiBjZXJ0YWluIElPTU1VIEFQSSBjb2RlIHBhdGhzCj4gb24gaGFyZHdhcmUgaW1wbGVt ZW50YXRpb25zIHRoYXQgZG9uJ3QgbmVlZCBydW50aW1lIFBNLCB3aGlsZSB3ZSBzdGlsbAo+IG5l ZWQgdG8gYmUgYWJsZSB0byBjb250cm9sIHJ1bnRpbWUgUE0gdGhlcmUgb24gaGFyZHdhcmUKPiBp bXBsZW1lbnRhdGlvbnMgdGhhdCBuZWVkIHNvLgoKT0ssIHNvIGl0IGlzIGFuIG9wdGltaXphdGlv bi4gIEl0IHdvdWxkIGJlIGdvb2QgdG8gcHV0IGEgY29tbWVudCBpbgp0aGVyZSB0byB0aGF0IGVm ZmVjdC4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJl ZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=3.0 tests=DKIM_SIGNED, MAILING_LIST_MULTI,SPF_PASS,T_DKIM_INVALID,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54E35C5CFEB for ; Wed, 11 Jul 2018 10:59:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0A64820864 for ; Wed, 11 Jul 2018 10:59:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PX11QY1O" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0A64820864 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732710AbeGKLDY (ORCPT ); Wed, 11 Jul 2018 07:03:24 -0400 Received: from mail-oi0-f65.google.com ([209.85.218.65]:44613 "EHLO mail-oi0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732568AbeGKLDY (ORCPT ); Wed, 11 Jul 2018 07:03:24 -0400 Received: by mail-oi0-f65.google.com with SMTP id s198-v6so48429546oih.11; Wed, 11 Jul 2018 03:59:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=9RbvnIfsNpNCRJraShjFi/kCxZDAxi/fnL29ZTIgm3U=; b=PX11QY1OTzS7ZqQSVIy5j7VwplY/pjmkZpgRypq9gexnHzqswitqBRLQA/8j+8ZskY OpjNxDqU/jhnyM53lB9qcsfxbov/yQjH08JxKG+OmUO3zP7plV2zvpMk4MN7fLUzHHHN iXZF/1xC2GuLKl19NWpHWvCf7Y1dyvkxvYmchWmgcrRkPyqLSHNt6X8gZD7R+68VUHhQ xODT/7ommdg3wtw3hsr1s0OJqA3xQFcVasSjDqiWr7C+noeIjJE343tL6Lbk4gQwPcAB SK/J7vGJtRmP1TtLTL7InQwBYlixga2GVTV2lWISSJYU5VNyn3OPC3Z4ZDZkxONiKG0h VKGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=9RbvnIfsNpNCRJraShjFi/kCxZDAxi/fnL29ZTIgm3U=; b=J67BIwF2sS5r6fq3Bw55Wpa4EqsliU6JWilZqcPmAjfT8UrF/ZD02GdSHHGM5LWtlP OyDX3CZ520VjMRZBm6N8P9oLCMvR9s4LJCM31JPvT+lH1OU2jWcpNP1+E7qsA1p/aysX r6CwSlNWeaUazJnGjxEZlbEExPuSQNRzF9Tn4Plfn+yijsJ6OnU8qPQ6AL0oFGkoZ6dG XBwLRL3FPdM4gdPw/XILnt8qs/LycKCWXIqtFbve0FSAVySdC5zLjX7/LBGN8I2EkZWR KZqIqCq7PUdhILeGwGrPPkxwyyQIgF7RNRtaD7iZuSakLEF/679ct+qqYXgRQ+U1zXU+ l95w== X-Gm-Message-State: APt69E09R+ePk0RxOhuxDla2KmMdH3B8DOpj+zSD5hvddHcOTVb6FV+p YFgsyESBPJ8Jk6EgW8xtLZdDTA1hD6nkdz5gqpI= X-Google-Smtp-Source: AAOMgpeKqRnyUr7eqeXbK6zTt8AUOMKKKGKEtS+iP5wrOC6lNOLTO8aHeJchJCjTYUk5DzTZGprKPUHiFBPdXpcGOA0= X-Received: by 2002:aca:ef44:: with SMTP id n65-v6mr30060830oih.120.1531306777801; Wed, 11 Jul 2018 03:59:37 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a9d:63d2:0:0:0:0:0 with HTTP; Wed, 11 Jul 2018 03:59:37 -0700 (PDT) In-Reply-To: References: <20180708173413.1965-1-vivek.gautam@codeaurora.org> <20180708173413.1965-3-vivek.gautam@codeaurora.org> <1694664.FhRBrgajmF@aspire.rjw.lan> From: "Rafael J. Wysocki" Date: Wed, 11 Jul 2018 12:59:37 +0200 X-Google-Sender-Auth: vRBUtqWz_ABZG4zPY4EtEGS9gkM Message-ID: Subject: Re: [PATCH v12 2/4] iommu/arm-smmu: Invoke pm_runtime during probe, add/remove device To: Tomasz Figa Cc: "Rafael J. Wysocki" , Vivek Gautam , "list@263.net:IOMMU DRIVERS , Joerg Roedel ," , Rob Herring , Mark Rutland , Robin Murphy , Will Deacon , "list@263.net:IOMMU DRIVERS , Joerg Roedel ," , "devicetree@vger.kernel.org" , Linux Kernel Mailing List , Alex Williamson , Rob Clark , Linux PM , freedreno , Stephen Boyd , Sricharan R , Marek Szyprowski , Archit Taneja , linux-arm-msm , jcrouse@codeaurora.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 11, 2018 at 12:05 PM, Tomasz Figa wrote: > Hi Rafael, > > Thanks for review. > > On Wed, Jul 11, 2018 at 6:53 PM Rafael J. Wysocki wrote: >> >> On Sunday, July 8, 2018 7:34:11 PM CEST Vivek Gautam wrote: >> > From: Sricharan R >> > >> > The smmu device probe/remove and add/remove master device callbacks >> > gets called when the smmu is not linked to its master, that is without >> > the context of the master device. So calling runtime apis in those places >> > separately. >> > >> > Signed-off-by: Sricharan R >> > [vivek: Cleanup pm runtime calls] >> > Signed-off-by: Vivek Gautam >> > Reviewed-by: Tomasz Figa >> > --- >> > >> > - Change since v11 >> > * Replaced pm_runtime_disable() with pm_runtime_force_suspend() >> > to avoid warning about " Unpreparing enabled clock". >> > Full warning text mentioned in cover patch. >> > >> > drivers/iommu/arm-smmu.c | 92 +++++++++++++++++++++++++++++++++++++++++++----- >> > 1 file changed, 84 insertions(+), 8 deletions(-) >> > >> > diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c >> > index a01d0dde21dd..09265e206e2d 100644 >> > --- a/drivers/iommu/arm-smmu.c >> > +++ b/drivers/iommu/arm-smmu.c >> > @@ -268,6 +268,20 @@ static struct arm_smmu_option_prop arm_smmu_options[] = { >> > { 0, NULL}, >> > }; >> > >> > +static inline int arm_smmu_rpm_get(struct arm_smmu_device *smmu) >> > +{ >> > + if (pm_runtime_enabled(smmu->dev)) >> >> Why do you need the pm_runtime_enabled() checks here and below? >> >> pm_runtime_get_sync() and pm_runtime_put() should work just fine if >> runtime PM is not enabled. > > Because pm_runtime_get_sync() acquires a spin lock, even if only for > the short time of checking if runtime PM is enabled and SMMU driver > maintainers didn't want any spin locks in certain IOMMU API code paths > on hardware implementations that don't need runtime PM, while we still > need to be able to control runtime PM there on hardware > implementations that need so. OK, so it is an optimization. It would be good to put a comment in there to that effect.