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=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS 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 218EAC3F2D1 for ; Mon, 2 Mar 2020 21:27:47 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8E72322B48 for ; Mon, 2 Mar 2020 21:27:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="jj9aH6Dk"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=intel-com.20150623.gappssmtp.com header.i=@intel-com.20150623.gappssmtp.com header.b="kiu3jdBq" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8E72322B48 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id DBAC21676; Mon, 2 Mar 2020 22:26:54 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz DBAC21676 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1583184464; bh=MxKNYRSc4U7voliI7J7coFQApA12uIgHOK0zI9+Ui+Q=; h=References:In-Reply-To:From:Date:Subject:To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=jj9aH6DkNqbSseFVGi/V+UOG3WkxpjqohPo2jWJWExjK0acOhVcjvSV4MPdSXekW3 rKgK9qXU1DFKuxEZbeus6aaCZORMafu/xoQm4UV5cWDhTWe4mBpEoal7YmEtO6WSmj laiCHfDrQeZr2Mien3KgtJMfafbyu3pV/tEe6PpY= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 7C730F801EC; Mon, 2 Mar 2020 22:26:54 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 1F621F801ED; Mon, 2 Mar 2020 22:26:53 +0100 (CET) Received: from mail-il1-x141.google.com (mail-il1-x141.google.com [IPv6:2607:f8b0:4864:20::141]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id AB475F80130 for ; Mon, 2 Mar 2020 22:26:48 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz AB475F80130 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=intel-com.20150623.gappssmtp.com header.i=@intel-com.20150623.gappssmtp.com header.b="kiu3jdBq" Received: by mail-il1-x141.google.com with SMTP id x7so794425ilq.11 for ; Mon, 02 Mar 2020 13:26:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=T0HZC5wGaYiacULJL5eqjWlCdMswXyLb5S9WIdniaEo=; b=kiu3jdBqgM2ZLAIdq1yGcAG9wjOEhNEPM5mqLfTqDKcBmYvo7UUPh25gp6iGPlRNEG QoQqN43/oUpGR8SiHDd+GUXPy0ROOozxfSxvHkazWRJUZErg5EjS2Mi2Iqvti7beVKKH FnRTkaDkcpCp2LLq21/YKHE4WtzpHSyuqofIDawJvTA7MiblFa9fCIsfn9WWHi7wMSt6 Yc2Wtcag8Odtncb6YoDURAE2dH5N/5BUbYx3uIRDInJWePTKv0A2t6i51+ZLlxSpb3OL Tuad5jrJCPEN6TFU37M2a/DaveMdN80agphGjJLTU160MaQlFcKdTi+q6oly5aafUDcL Jc8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=T0HZC5wGaYiacULJL5eqjWlCdMswXyLb5S9WIdniaEo=; b=XE8fv/a7TPHoYPY0cCo9QslkbkcugrSQcuXPWibZQg2ohW2HkOuWPFqOMw8NegYKd4 eSwuC2rEYzJd2a/qrHFKDUWju/3L5wjzeqWgnJ2lhX1Cqi/mpczQAxcb9bAE0amMiP8/ +PpuTAQfnkVn7ZBAIOJ8ak4bq/jYmeEfXSDMNkT8vy5pTgAaj/Y3pMD8QQcxOj+sOvq4 pA/yHQ+y0JZnCJZbgOTDLuTXVv9d5vQjR8aifB07NgX7IztQke+TVZZtx4gk1DVi5zao HBQNvyhTz9TRluIq941S1Iq8mLMTk8n8lxDfOu4gKKmt039Yfy8+2eXdUKQWI+YNCvPG ooZQ== X-Gm-Message-State: ANhLgQ3e2bjuOjVp7t+ECt+jb/wMLiLHJ1MqIBMcOIe7jw8tOy2aXIsx 56tgBL0u28wtsJnm6BVZM4r8kfmFSe1sbHsfC6dEWA== X-Google-Smtp-Source: ADFU+vuybSmz4rAptQcaRCKizlpWTIlyU2DreJwStc/RUwlUnqnLGVLDG0eFSiL5Ldwsx+yJ67a8ZK/MAIaA44SxCY0= X-Received: by 2002:a92:8893:: with SMTP id m19mr1561572ilh.54.1583184406823; Mon, 02 Mar 2020 13:26:46 -0800 (PST) MIME-Version: 1.0 References: <20200302205700.29746-1-daniel.baluta@oss.nxp.com> <20200302205700.29746-3-daniel.baluta@oss.nxp.com> In-Reply-To: <20200302205700.29746-3-daniel.baluta@oss.nxp.com> From: "Sridharan, Ranjani" Date: Mon, 2 Mar 2020 13:26:36 -0800 Message-ID: Subject: Re: [RFC PATCH 2/2] ASoC: SOF: Use multi PM domains helpers To: Daniel Baluta Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: Linux-ALSA , ulf.hansson@linaro.org, Pierre-Louis Bossart , pavel@ucw.cz, festevam@gmail.com, khilman@kernel.org, Ranjani Sridharan , linux-imx@nxp.com, "Brown, Len" , linux-pm@vger.kernel.org, s.hauer@pengutronix.de, paul.olaru@nxp.com, Daniel Baluta , linux-arm-kernel@lists.infradead.org, aisheng.dong@nxp.com, Daniel Baluta , Greg KH , shengjiu.wang@nxp.com, rjw@rjwysocki.net, linux-kernel@vger.kernel.org, kernel@pengutronix.de, shawnguo@kernel.org X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" On Mon, Mar 2, 2020 at 1:00 PM Daniel Baluta wrote: > From: Daniel Baluta > > Use dev_multi_pm_attach / dev_multi_pm_detach instead of the hardcoded > version. > > Signed-off-by: Daniel Baluta > --- > sound/soc/sof/imx/imx8.c | 54 +++++----------------------------------- > 1 file changed, 6 insertions(+), 48 deletions(-) > > diff --git a/sound/soc/sof/imx/imx8.c b/sound/soc/sof/imx/imx8.c > index b692752b2178..ca740538a2d5 100644 > --- a/sound/soc/sof/imx/imx8.c > +++ b/sound/soc/sof/imx/imx8.c > @@ -51,10 +51,7 @@ struct imx8_priv { > struct imx_sc_ipc *sc_ipc; > > /* Power domain handling */ > - int num_domains; > - struct device **pd_dev; > - struct device_link **link; > - > + struct dev_multi_pm_domain_data *mpd; > }; > > static void imx8_get_reply(struct snd_sof_dev *sdev) > @@ -207,7 +204,6 @@ static int imx8_probe(struct snd_sof_dev *sdev) > struct resource res; > u32 base, size; > int ret = 0; > - int i; > > priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); > if (!priv) > @@ -218,39 +214,9 @@ static int imx8_probe(struct snd_sof_dev *sdev) > priv->sdev = sdev; > > /* power up device associated power domains */ > - priv->num_domains = of_count_phandle_with_args(np, "power-domains", > - > "#power-domain-cells"); > - if (priv->num_domains < 0) { > - dev_err(sdev->dev, "no power-domains property in %pOF\n", > np); > - return priv->num_domains; > - } > - > - priv->pd_dev = devm_kmalloc_array(&pdev->dev, priv->num_domains, > - sizeof(*priv->pd_dev), > GFP_KERNEL); > - if (!priv->pd_dev) > - return -ENOMEM; > - > - priv->link = devm_kmalloc_array(&pdev->dev, priv->num_domains, > - sizeof(*priv->link), GFP_KERNEL); > - if (!priv->link) > - return -ENOMEM; > - > - for (i = 0; i < priv->num_domains; i++) { > - priv->pd_dev[i] = dev_pm_domain_attach_by_id(&pdev->dev, > i); > - if (IS_ERR(priv->pd_dev[i])) { > - ret = PTR_ERR(priv->pd_dev[i]); > - goto exit_unroll_pm; > - } > - priv->link[i] = device_link_add(&pdev->dev, > priv->pd_dev[i], > - DL_FLAG_STATELESS | > - DL_FLAG_PM_RUNTIME | > - DL_FLAG_RPM_ACTIVE); > - if (!priv->link[i]) { > - ret = -ENOMEM; > - dev_pm_domain_detach(priv->pd_dev[i], false); > - goto exit_unroll_pm; > - } > - } > + priv->mpd = dev_multi_pm_attach(&pdev->dev); > + if (IS_ERR(priv->mpd)) > + return PTR_ERR(priv->mpd); > > ret = imx_scu_get_handle(&priv->sc_ipc); > if (ret) { > @@ -329,25 +295,17 @@ static int imx8_probe(struct snd_sof_dev *sdev) > exit_pdev_unregister: > platform_device_unregister(priv->ipc_dev); > exit_unroll_pm: > Can we also rename the label to exit_pm_detach maybe? It is no longer an unroll anymore right? Thanks, Ranjani