From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vivek Gautam Subject: Re: [PATCH v12 3/4] iommu/arm-smmu: Add the device_link between masters and smmu Date: Wed, 18 Jul 2018 15:00:39 +0530 Message-ID: References: <20180708173413.1965-1-vivek.gautam@codeaurora.org> <20180708173413.1965-4-vivek.gautam@codeaurora.org> <5179668.PHK6S3sxLu@aspire.rjw.lan> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5179668.PHK6S3sxLu-yvgW3jdyMHm1GS7QM15AGw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: "Rafael J. Wysocki" , Robin Murphy Cc: Mark Rutland , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Archit Taneja , Jordan Crouse , alex.williamson-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Linux PM , sboyd-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, Sricharan R , "list-Y9sIeH5OGRo@public.gmane.org:IOMMU DRIVERS , Joerg Roedel , " , Will Deacon , open list , Tomasz Figa "list-Y9sIeH5OGRo@public.gmane.org:IOMMU DRIVERS , Joerg Roedel , " , robh+dt , Rob Clark , linux-arm-msm , Lukas Wunner , freedreno M List-Id: linux-arm-msm@vger.kernel.org T24gV2VkLCBKdWwgMTEsIDIwMTggYXQgMzoyMyBQTSwgUmFmYWVsIEouIFd5c29ja2kgPHJqd0By and5c29ja2kubmV0PiB3cm90ZToKPiBPbiBTdW5kYXksIEp1bHkgOCwgMjAxOCA3OjM0OjEyIFBN IENFU1QgVml2ZWsgR2F1dGFtIHdyb3RlOgo+PiBGcm9tOiBTcmljaGFyYW4gUiA8c3JpY2hhcmFu QGNvZGVhdXJvcmEub3JnPgo+Pgo+PiBGaW5hbGx5IGFkZCB0aGUgZGV2aWNlIGxpbmsgYmV0d2Vl biB0aGUgbWFzdGVyIGRldmljZSBhbmQKPj4gc21tdSwgc28gdGhhdCB0aGUgc21tdSBnZXRzIHJ1 bnRpbWUgZW5hYmxlZC9kaXNhYmxlZCBvbmx5IHdoZW4gdGhlCj4+IG1hc3RlciBuZWVkcyBpdC4g VGhpcyBpcyBkb25lIGZyb20gYWRkX2RldmljZSBjYWxsYmFjayB3aGljaCBnZXRzCj4+IGNhbGxl ZCBvbmNlIHdoZW4gdGhlIG1hc3RlciBpcyBhZGRlZCB0byB0aGUgc21tdS4KPj4KPj4gU2lnbmVk LW9mZi1ieTogU3JpY2hhcmFuIFIgPHNyaWNoYXJhbkBjb2RlYXVyb3JhLm9yZz4KPj4gU2lnbmVk LW9mZi1ieTogVml2ZWsgR2F1dGFtIDx2aXZlay5nYXV0YW1AY29kZWF1cm9yYS5vcmc+Cj4+IFJl dmlld2VkLWJ5OiBUb21hc3ogRmlnYSA8dGZpZ2FAY2hyb21pdW0ub3JnPgo+PiBDYzogUmFmYWVs IEouIFd5c29ja2kgPHJqd0Byand5c29ja2kubmV0Pgo+PiBDYzogTHVrYXMgV3VubmVyIDxsdWth c0B3dW5uZXIuZGU+Cj4+IC0tLQo+Pgo+PiAgLSBDaGFuZ2Ugc2luY2UgdjExCj4+ICAgICogUmVw bGFjZWQgRExfRkxBR19BVVRPUkVNT1ZFIGZsYWcgd2l0aCBETF9GTEFHX0FVVE9SRU1PVkVfU1VQ UExJRVIuCj4+Cj4+ICBkcml2ZXJzL2lvbW11L2FybS1zbW11LmMgfCAxMiArKysrKysrKysrKysK Pj4gIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspCj4+Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2lvbW11L2FybS1zbW11LmMgYi9kcml2ZXJzL2lvbW11L2FybS1zbW11LmMKPj4gaW5k ZXggMDkyNjVlMjA2ZTJkLi45MTZjZGU0OTU0ZDIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvaW9t bXUvYXJtLXNtbXUuYwo+PiArKysgYi9kcml2ZXJzL2lvbW11L2FybS1zbW11LmMKPj4gQEAgLTE0 NjEsOCArMTQ2MSwyMCBAQCBzdGF0aWMgaW50IGFybV9zbW11X2FkZF9kZXZpY2Uoc3RydWN0IGRl dmljZSAqZGV2KQo+Pgo+PiAgICAgICBpb21tdV9kZXZpY2VfbGluaygmc21tdS0+aW9tbXUsIGRl dik7Cj4+Cj4+ICsgICAgIGlmIChwbV9ydW50aW1lX2VuYWJsZWQoc21tdS0+ZGV2KSAmJgo+Cj4g V2h5IGRvZXMgdGhlIGNyZWF0aW9uIG9mIHRoZSBsaW5rIGRlcGVuZCBvbiB3aGV0aGVyIG9yIG5v dCBydW50aW1lIFBNCj4gaXMgZW5hYmxlZCBmb3IgdGhlIE1NVSBkZXZpY2U/Cj4KPiBXaGF0IGFi b3V0IHN5c3RlbS13aWRlIFBNIGFuZCBzeXN0ZW0gc2h1dGRvd24/ICBBcmUgdGhleSBhbHdheXMg Z3VhcmFudGVlZAo+IHRvIGhhcHBlbiBpbiB0aGUgcmlnaHQgb3JkZXIgd2l0aG91dCB0aGUgbGlu az8KCkhpIFJvYmluLAoKQXMgUmFmYWVsIHBvaW50ZWQsIHdlIHNob3VsZCB0aGUgZGV2aWNlIGxp bmsgY3JlYXRpb24gc2hvdWxkIG5vdCBkZXBlbmQgb24KcnVudGltZSBQTSBiZWluZyBlbmFibGVk IG9yIG5vdCwgYXMgd2Ugd291bGQgYWxzbyB3YW50IHRvIGd1YXJhbnRlZQp0aGF0IHN5c3RlbSB3 aWRlIFBNIGNhbGxiYWNrcyBhcmUgY2FsbGVkIGluIHRoZSByaWdodCBvcmRlciBmb3Igc21tdQph bmQgY2xpZW50cy4KCkRvZXMgdGhpcyBjaGFuZ2Ugb2YgcmVtb3ZpbmcgdGhlIGNoZWNrIGZvciBw bV9ydW50aW1lX2VuYWJsZWQoKSBmcm9tIGhlcmUKbG9va3Mgb2theSB0byB5b3U/CgpGWUksIGFz IGRpc2N1c3NlZCBpbiB0aGUgZmlyc3QgcGF0Y2ggWzFdIG9mIHRoaXMgc2VyaWVzLCBJIHdpbGwg YWRkIGEKc3lzdGVtIHdpZGUKc3VzcGVuZCBjYWxsYmFjayAtIGFybV9zbW11X3BtX3N1c3BlbmQs IHRoYXQgd291bGQgZG8gY2xvY2sgZGlzYWJsZSwgYW5kIHdpbGwKYWRkIGNvcnJlc3BvbmRpbmcg Y2xvY2sgZW5hYmxlIGNhbGxzIGluIGFybV9zbW11X3BtX3Jlc3VtZSgpLgoKWzFdIGh0dHBzOi8v bG9yZS5rZXJuZWwub3JnL3BhdGNod29yay9wYXRjaC85NjA0NjAvCgoKQmVzdCByZWdhcmRzClZp dmVrCgo+Cj4+ICsgICAgICAgICAhZGV2aWNlX2xpbmtfYWRkKGRldiwgc21tdS0+ZGV2LAo+PiAr ICAgICAgICAgICAgICAgICAgICAgRExfRkxBR19QTV9SVU5USU1FIHwgRExfRkxBR19BVVRPUkVN T1ZFX1NVUFBMSUVSKSkgewo+PiArICAgICAgICAgICAgIGRldl9lcnIoc21tdS0+ZGV2LCAiVW5h YmxlIHRvIGFkZCBsaW5rIHRvIHRoZSBjb25zdW1lciAlc1xuIiwKPj4gKyAgICAgICAgICAgICAg ICAgICAgIGRldl9uYW1lKGRldikpOwo+PiArICAgICAgICAgICAgIHJldCA9IC1FTk9ERVY7Cj4+ ICsgICAgICAgICAgICAgZ290byBvdXRfdW5saW5rOwo+PiArICAgICB9Cj4+ICsKPj4gICAgICAg cmV0dXJuIDA7Cj4+Cj4+ICtvdXRfdW5saW5rOgo+PiArICAgICBpb21tdV9kZXZpY2VfdW5saW5r KCZzbW11LT5pb21tdSwgZGV2KTsKPj4gKyAgICAgYXJtX3NtbXVfbWFzdGVyX2ZyZWVfc21lcyhm d3NwZWMpOwo+PiAgb3V0X2NmZ19mcmVlOgo+PiAgICAgICBrZnJlZShjZmcpOwo+PiAgb3V0X2Zy ZWU6Cj4+Cj4KPgoKCgotLSAKUVVBTENPTU0gSU5ESUEsIG9uIGJlaGFsZiBvZiBRdWFsY29tbSBJ bm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlcgpvZiBDb2RlIEF1cm9yYSBGb3J1bSwg aG9zdGVkIGJ5IFRoZSBMaW51eCBGb3VuZGF0aW9uCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ZyZWVkcmVubwo= 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.6 required=3.0 tests=DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,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 B454BECDFAA for ; Wed, 18 Jul 2018 09:30:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 99B802075A for ; Wed, 18 Jul 2018 09:30:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="e7q2/Tfi"; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="e9j+1uUw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 99B802075A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=codeaurora.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 S1730869AbeGRKHo (ORCPT ); Wed, 18 Jul 2018 06:07:44 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:58316 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730470AbeGRKHn (ORCPT ); Wed, 18 Jul 2018 06:07:43 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 3AA5F607DC; Wed, 18 Jul 2018 09:30:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1531906243; bh=eSEfOCtvcSA4Bcx165YYFoM0xGxU1ra82iGYuDgHVbc=; h=In-Reply-To:References:From:Date:Subject:To:Cc:From; b=e7q2/TfiTG5QPPDvdJHxG6Nd/vwUdZJh9UqyfoIhzegcTdn2idiI5d4DgMUsuWq5K j2CWsnrTCn88CUCZ7fIfbPf/MXi3O2Z1csNffYkaxZ0QQUKH7fA97dNdEXoBgVgtwO ash6zqf+CAiwDJqyPB9jCBgRxDja/6QwnuxEi7Wg= Received: from mail-qk0-f174.google.com (mail-qk0-f174.google.com [209.85.220.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: vivek.gautam@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id BB0AC607DC; Wed, 18 Jul 2018 09:30:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1531906240; bh=eSEfOCtvcSA4Bcx165YYFoM0xGxU1ra82iGYuDgHVbc=; h=In-Reply-To:References:From:Date:Subject:To:Cc:From; b=e9j+1uUwNLMH9c2XvbK+t8vRIEXv3n4aHc4pr9ScFs+Dml5k+iU5qXwKH0zLUAwrJ N9rYvl72TgvsvR9LQjP/d6K6olD2kBc69Jc8PIpX0lkmk80u8NtHdzo9RO0EqHQpjW pT5jn4z0rREGFiVu9donJTz/mNaDu0XCE975jfs4= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org BB0AC607DC 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=vivek.gautam@codeaurora.org Received: by mail-qk0-f174.google.com with SMTP id c126-v6so2011098qkd.7; Wed, 18 Jul 2018 02:30:40 -0700 (PDT) X-Gm-Message-State: AOUpUlHPynnsach8qG0MdWP9brbBg8ge/rHyGDO+PVzAjruWD6ay9d9v L2sykWI1MjwYF6Ys60va7ZnlqfOH5OjfWBM6o7U= X-Google-Smtp-Source: AAOMgpdKgaVNk/763g62p7vH5DShktnY0y8MkgXJIASLW12aCmsjSO09vlaM1THGihqX+BThR39CfYwHu8UDuTjjVek= X-Received: by 2002:a37:5942:: with SMTP id n63-v6mr4747969qkb.28.1531906239918; Wed, 18 Jul 2018 02:30:39 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:ac8:f25:0:0:0:0:0 with HTTP; Wed, 18 Jul 2018 02:30:39 -0700 (PDT) In-Reply-To: <5179668.PHK6S3sxLu@aspire.rjw.lan> References: <20180708173413.1965-1-vivek.gautam@codeaurora.org> <20180708173413.1965-4-vivek.gautam@codeaurora.org> <5179668.PHK6S3sxLu@aspire.rjw.lan> From: Vivek Gautam Date: Wed, 18 Jul 2018 15:00:39 +0530 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v12 3/4] iommu/arm-smmu: Add the device_link between masters and smmu To: "Rafael J. Wysocki" , Robin Murphy Cc: "list@263.net:IOMMU DRIVERS , Joerg Roedel ," , "robh+dt" , Mark Rutland , Will Deacon , "list@263.net:IOMMU DRIVERS , Joerg Roedel ," , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , open list , alex.williamson@redhat.com, Rob Clark , Linux PM , freedreno , sboyd@kernel.org, Tomasz Figa , Sricharan R , Marek Szyprowski , Archit Taneja , linux-arm-msm , Jordan Crouse , Lukas Wunner 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 3:23 PM, Rafael J. Wysocki wrote: > On Sunday, July 8, 2018 7:34:12 PM CEST Vivek Gautam wrote: >> From: Sricharan R >> >> Finally add the device link between the master device and >> smmu, so that the smmu gets runtime enabled/disabled only when the >> master needs it. This is done from add_device callback which gets >> called once when the master is added to the smmu. >> >> Signed-off-by: Sricharan R >> Signed-off-by: Vivek Gautam >> Reviewed-by: Tomasz Figa >> Cc: Rafael J. Wysocki >> Cc: Lukas Wunner >> --- >> >> - Change since v11 >> * Replaced DL_FLAG_AUTOREMOVE flag with DL_FLAG_AUTOREMOVE_SUPPLIER. >> >> drivers/iommu/arm-smmu.c | 12 ++++++++++++ >> 1 file changed, 12 insertions(+) >> >> diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c >> index 09265e206e2d..916cde4954d2 100644 >> --- a/drivers/iommu/arm-smmu.c >> +++ b/drivers/iommu/arm-smmu.c >> @@ -1461,8 +1461,20 @@ static int arm_smmu_add_device(struct device *dev) >> >> iommu_device_link(&smmu->iommu, dev); >> >> + if (pm_runtime_enabled(smmu->dev) && > > Why does the creation of the link depend on whether or not runtime PM > is enabled for the MMU device? > > What about system-wide PM and system shutdown? Are they always guaranteed > to happen in the right order without the link? Hi Robin, As Rafael pointed, we should the device link creation should not depend on runtime PM being enabled or not, as we would also want to guarantee that system wide PM callbacks are called in the right order for smmu and clients. Does this change of removing the check for pm_runtime_enabled() from here looks okay to you? FYI, as discussed in the first patch [1] of this series, I will add a system wide suspend callback - arm_smmu_pm_suspend, that would do clock disable, and will add corresponding clock enable calls in arm_smmu_pm_resume(). [1] https://lore.kernel.org/patchwork/patch/960460/ Best regards Vivek > >> + !device_link_add(dev, smmu->dev, >> + DL_FLAG_PM_RUNTIME | DL_FLAG_AUTOREMOVE_SUPPLIER)) { >> + dev_err(smmu->dev, "Unable to add link to the consumer %s\n", >> + dev_name(dev)); >> + ret = -ENODEV; >> + goto out_unlink; >> + } >> + >> return 0; >> >> +out_unlink: >> + iommu_device_unlink(&smmu->iommu, dev); >> + arm_smmu_master_free_smes(fwspec); >> out_cfg_free: >> kfree(cfg); >> out_free: >> > > -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation