Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp310356imm; Wed, 18 Jul 2018 02:32:05 -0700 (PDT) X-Google-Smtp-Source: AAOMgpewNrckKNJxLCVLEOnyIPIUi8OpkRkC12PjA56jHb09WWzZ2lMiD/hceFn/TkgGkn9keIer X-Received: by 2002:a17:902:780e:: with SMTP id p14-v6mr5152248pll.239.1531906325847; Wed, 18 Jul 2018 02:32:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531906325; cv=none; d=google.com; s=arc-20160816; b=nZwSfm/Ebw2u8Pib+wZevlb4AUYnRwK29HmOKWMWLbeBCF6vtY0dF1vHUL4aue20ht +xcUBeIJ65PeHq9zQvDRKXBolcUfoi5o7zf+zRgaJuEJyIsC5hc+lqYeBX8cpgaB0WfB Y8XZnv+bV4M0b3rDH7aNbFiejfiPvlUJUgvvhBoauNb894wn1H1+LQnYzHYxfZLTeCK1 yPUtg6lZqTwZ6QXuK07tBsEBkF1HqcLeJF63hJ6NCUG2FRjtvi3L/t74Vku804mpm315 o7eKVPHAW0RBH5InxvrqJ8PtI8QxAVxw0HrHAFXelLQL9W4EVJSmFfp0QYhRIhRBpSE4 6l0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dmarc-filter:dkim-signature :dkim-signature:arc-authentication-results; bh=+kTmyVe4yCozat8BySvAFvEoWz7xbmxXks1tgRLoUmU=; b=aKQ3+/ztZG5bhJ6DZXAnGq8hdRSWXfSBL6UJ9Wk3OrK/POxj3NkJKCoU/HtypPHA/q CdX336V3pNSwi/epX4aeAeGVfpVjqyflBGGbo3e+Dz7YQqx/dGXD9xQdGgs9J+dPTxDU fshGD1BfROKZFeFyk+8ox7QkM0PNZ8sySBEkM5/W4TwMPpdYKnYpWQ9KFcJziTVwf7Ao eZ5L+9ZV4Ji1mA3NULG+a42WU3iwnmDgoUjsbtMlAlhu4EjXLHOCam16mSgOBNicZwWt K03XhZfDd2IU4wizW1svFQtwF2XKOr3H9x2vWMRnrrhPKd28sw3povIA48YQDW0knk9G 2bnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b="e7q2/Tfi"; dkim=pass header.i=@codeaurora.org header.s=default header.b=e9j+1uUw; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 38-v6si3053980pgz.286.2018.07.18.02.31.51; Wed, 18 Jul 2018 02:32:05 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b="e7q2/Tfi"; dkim=pass header.i=@codeaurora.org header.s=default header.b=e9j+1uUw; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730839AbeGRKHo (ORCPT + 99 others); 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= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 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-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