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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 15A02C433F5 for ; Wed, 19 Jan 2022 17:49:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348769AbiASRty (ORCPT ); Wed, 19 Jan 2022 12:49:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34844 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350883AbiASRtx (ORCPT ); Wed, 19 Jan 2022 12:49:53 -0500 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1A1CBC061574 for ; Wed, 19 Jan 2022 09:49:53 -0800 (PST) Received: by mail-pl1-x62d.google.com with SMTP id u11so2875403plh.13 for ; Wed, 19 Jan 2022 09:49:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=m2jEv1T9iOrxqYTw18pKQSL30EzBZlle4dn9cK+DSqw=; b=yYC/dxsoRFYYCmHQLUxvN9S6Rv06g14VEcDuzt4uz0F2KjwW1iRdeYUMBbaD6CNfWr vGjuX5PoTNyF/MZkmPqlf33YZ7E5i4xXgmgCoIOHQ837W9l8Y2+qb8QXOF3gjGX5OJtH cGb7/d6iQoFC82KaDydcPa4Kpaxm3dVjbY9+CKCMXd1YOIBxvuRPcTVCIDn1f1DcVHcR KdvkiSBn9iDs1G7Cq4mcPUWahx+wTKMOqIQQWKuOZw7Q+tQW6nzhDfdU74gTDWRtl01h aFNbRI3ZwzsK0r6I2N/NXKOkDetbIpEXZ+lBFniKWejE9KRAYslDjl8zBYJ8TQBKyLUT 3RAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=m2jEv1T9iOrxqYTw18pKQSL30EzBZlle4dn9cK+DSqw=; b=Rn14x91zTcayKtP8F6/CT+lokftT2436FMDBpJl2YvCV+EKr8uMT486qSGIWADmB4H qKLQz0qRW45U1DjQFC9SNk+1duf/C4uYufdVTZMOT/7YlTLDLOizhVTMA9ciFqLpWhRH qqGeHYFyPlvvzc0t64le3UdvfkM/D9NLCI/TYTHrdGoNjPUE544Ybp6/DvJk8M5zD3wv fW7xgwcIuzFydIyDtuUR9aFPwOZbj2JEn/6nsNJ9g2iwSCZ7OVfojlBiPsw5bFEY3IER h8sBvvy4mLR40srKvfHwx4/RB4ymUHAlHzXZVjYFFT3VOE1E2+nFxlEbrsLNDhAUbHNv lvlQ== X-Gm-Message-State: AOAM530kxXY4+Z6fIv+CaH9ONvcLVeVSILq07M5aXp4xjUF0yNDYH3ok yCFXzCvXTc0fQdwd2a8DR5sIkw== X-Google-Smtp-Source: ABdhPJw6QwCwyN0MLYbe0U5pzmVmTRgRp/n4pJ+Hy1u2Aykbx4Kawx2ncMpzUtvyGtt1RmXiGXfsOQ== X-Received: by 2002:a17:902:ecc6:b0:14a:fba3:168d with SMTP id a6-20020a170902ecc600b0014afba3168dmr1989056plh.8.1642614592561; Wed, 19 Jan 2022 09:49:52 -0800 (PST) Received: from p14s (S0106889e681aac74.cg.shawcable.net. [68.147.0.187]) by smtp.gmail.com with ESMTPSA id k16sm319644pff.39.2022.01.19.09.49.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Jan 2022 09:49:50 -0800 (PST) Date: Wed, 19 Jan 2022 10:49:47 -0700 From: Mathieu Poirier To: Peng Fan Cc: "Peng Fan (OSS)" , "bjorn.andersson@linaro.org" , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" , "kernel@pengutronix.de" , "festevam@gmail.com" , dl-linux-imx , "linux-remoteproc@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH 5/9] remoteproc: imx_rproc: make clk optional Message-ID: <20220119174947.GA1282028@p14s> References: <20220111033333.403448-1-peng.fan@oss.nxp.com> <20220111033333.403448-8-peng.fan@oss.nxp.com> <20220118185019.GG1119324@p14s> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org On Wed, Jan 19, 2022 at 02:25:48AM +0000, Peng Fan wrote: > > Subject: Re: [PATCH 5/9] remoteproc: imx_rproc: make clk optional > > > > On Tue, Jan 11, 2022 at 11:33:29AM +0800, Peng Fan (OSS) wrote: > > > From: Peng Fan > > > > > > To i.MX8QXP/QM/ULP and i.MX7ULP, Mcore maybe out of control of Linux. > > > And in such case, no need clk, so make clk optional with has_clk. > > > > > > Signed-off-by: Peng Fan > > > --- > > > drivers/remoteproc/imx_rproc.c | 5 +++++ > > > 1 file changed, 5 insertions(+) > > > > > > diff --git a/drivers/remoteproc/imx_rproc.c > > > b/drivers/remoteproc/imx_rproc.c index 7b2578177ea8..0e99a3ca6fbc > > > 100644 > > > --- a/drivers/remoteproc/imx_rproc.c > > > +++ b/drivers/remoteproc/imx_rproc.c > > > @@ -89,6 +89,7 @@ struct imx_rproc { > > > struct work_struct rproc_work; > > > struct workqueue_struct *workqueue; > > > void __iomem *rsc_table; > > > + bool has_clk; > > > > I am usually weary of bloating structures with flags. I suggest achieving the > > same functionality with a macro that compares priv->dcfg with the right > > imx_rproc_dcfg structure. > > priv->dcfg is some kind fixed settings, however has_clk could be runtime changed, > because i.MX platform M-core support multiple booting method and it > could work w/o clk handled by Linux depending on some pre-configuration > such as moving M-core in an separate hardware partition. Unless there is an FPGA in the mix, clocks and power domains should not change. Either clocks are handled by the remote processor or the application processor, regardless of the mode (attached or detached) the platform is booting into. > > Thanks, > Peng. > > > > > > }; > > > > > > static const struct imx_rproc_att imx_rproc_att_imx8mn[] = { @@ > > > -724,6 +725,9 @@ static int imx_rproc_clk_enable(struct imx_rproc *priv) > > > if (dcfg->method == IMX_RPROC_NONE) > > > return 0; > > > > > > + if (!priv->has_clk) > > > + return 0; > > > + > > > priv->clk = devm_clk_get(dev, NULL); > > > if (IS_ERR(priv->clk)) { > > > dev_err(dev, "Failed to get clock\n"); @@ -768,6 +772,7 @@ static > > > int imx_rproc_probe(struct platform_device *pdev) > > > priv->rproc = rproc; > > > priv->dcfg = dcfg; > > > priv->dev = dev; > > > + priv->has_clk = true; > > > > > > dev_set_drvdata(dev, rproc); > > > priv->workqueue = create_workqueue(dev_name(dev)); > > > -- > > > 2.25.1 > > > 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6D536C433EF for ; Wed, 19 Jan 2022 17:51:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Ujb9IpdoGNdGZh2yeqZoDjx+5WQQrsXjrST4yPlcdkg=; b=FQLm5vrNyq0Z/e i9NiT6b2MvazTUdrSd2Mv8ZL775k4lY+z+2fmBn48PGMzKSVPtK90UyQIskrsVXwdQ53ggMSbXxq7 KKJ87d6qF3WyMjUp0q0k42AFhafI/VCw21T0WZGPJuJf2Fh5z/DHD3h1RiCeun1MAVN00OtGotqUY CWNyMkM8001m19xg8GolOL38vMTnHqNDpGf13MH3aauBa6BbZnug4JJW96UOsjv9sZ4jQ8Dksx8xf LtxFZdT8D9QwLpvfPPaxrmkwqvLQrWp7qSS7WE8aKK+UPULkk8PwI/2IUEVMtbJskWLNSKVp7JmoO FXeD7Qoy69s3BBDpc3Hw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nAF5p-006dAk-PR; Wed, 19 Jan 2022 17:49:57 +0000 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nAF5l-006d9K-T2 for linux-arm-kernel@lists.infradead.org; Wed, 19 Jan 2022 17:49:55 +0000 Received: by mail-pl1-x635.google.com with SMTP id n8so2907114plc.3 for ; Wed, 19 Jan 2022 09:49:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=m2jEv1T9iOrxqYTw18pKQSL30EzBZlle4dn9cK+DSqw=; b=yYC/dxsoRFYYCmHQLUxvN9S6Rv06g14VEcDuzt4uz0F2KjwW1iRdeYUMBbaD6CNfWr vGjuX5PoTNyF/MZkmPqlf33YZ7E5i4xXgmgCoIOHQ837W9l8Y2+qb8QXOF3gjGX5OJtH cGb7/d6iQoFC82KaDydcPa4Kpaxm3dVjbY9+CKCMXd1YOIBxvuRPcTVCIDn1f1DcVHcR KdvkiSBn9iDs1G7Cq4mcPUWahx+wTKMOqIQQWKuOZw7Q+tQW6nzhDfdU74gTDWRtl01h aFNbRI3ZwzsK0r6I2N/NXKOkDetbIpEXZ+lBFniKWejE9KRAYslDjl8zBYJ8TQBKyLUT 3RAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=m2jEv1T9iOrxqYTw18pKQSL30EzBZlle4dn9cK+DSqw=; b=Yo7McBWVYQ96matCFADQpb85DVUaklkMFxlSr7YJ8sZzlHUKKIF/YIMpugdkXXIgKq MoNUWcfpl5mttR39Hia196fBG1O/NWwoWFa9AfesvaIGMaG/8AA7Lzf8oL3vZxcvTcTD OMpxuXX2t16YI4aIbZwqrVIV/7bQl2IsamhRZz2GQsOw/38zYdXFq/fwSesYNb+3Tn2r sV08gTtiPkRdt3CYv+BRWFG9qBfkMy95uDV2jhwAmkAeIjRN7D9CgtfDS4/CIdSFgVYP FRcX52SX03GSPw8lJlLNAa948TXKfgdtiX2MoC6Sf75ZMfp5HHIhmqifZmjb/JotKlKy 4qNA== X-Gm-Message-State: AOAM530VkoS16r9Swb07vOhZx/r3uo4Q3g69NWHvUx2A+vQf26Ok8ru7 xN/ppBfi5zZu8UrgQKUU5p/xLA== X-Google-Smtp-Source: ABdhPJw6QwCwyN0MLYbe0U5pzmVmTRgRp/n4pJ+Hy1u2Aykbx4Kawx2ncMpzUtvyGtt1RmXiGXfsOQ== X-Received: by 2002:a17:902:ecc6:b0:14a:fba3:168d with SMTP id a6-20020a170902ecc600b0014afba3168dmr1989056plh.8.1642614592561; Wed, 19 Jan 2022 09:49:52 -0800 (PST) Received: from p14s (S0106889e681aac74.cg.shawcable.net. [68.147.0.187]) by smtp.gmail.com with ESMTPSA id k16sm319644pff.39.2022.01.19.09.49.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Jan 2022 09:49:50 -0800 (PST) Date: Wed, 19 Jan 2022 10:49:47 -0700 From: Mathieu Poirier To: Peng Fan Cc: "Peng Fan (OSS)" , "bjorn.andersson@linaro.org" , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" , "kernel@pengutronix.de" , "festevam@gmail.com" , dl-linux-imx , "linux-remoteproc@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH 5/9] remoteproc: imx_rproc: make clk optional Message-ID: <20220119174947.GA1282028@p14s> References: <20220111033333.403448-1-peng.fan@oss.nxp.com> <20220111033333.403448-8-peng.fan@oss.nxp.com> <20220118185019.GG1119324@p14s> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220119_094953_995070_A1A5B29A X-CRM114-Status: GOOD ( 26.75 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed, Jan 19, 2022 at 02:25:48AM +0000, Peng Fan wrote: > > Subject: Re: [PATCH 5/9] remoteproc: imx_rproc: make clk optional > > > > On Tue, Jan 11, 2022 at 11:33:29AM +0800, Peng Fan (OSS) wrote: > > > From: Peng Fan > > > > > > To i.MX8QXP/QM/ULP and i.MX7ULP, Mcore maybe out of control of Linux. > > > And in such case, no need clk, so make clk optional with has_clk. > > > > > > Signed-off-by: Peng Fan > > > --- > > > drivers/remoteproc/imx_rproc.c | 5 +++++ > > > 1 file changed, 5 insertions(+) > > > > > > diff --git a/drivers/remoteproc/imx_rproc.c > > > b/drivers/remoteproc/imx_rproc.c index 7b2578177ea8..0e99a3ca6fbc > > > 100644 > > > --- a/drivers/remoteproc/imx_rproc.c > > > +++ b/drivers/remoteproc/imx_rproc.c > > > @@ -89,6 +89,7 @@ struct imx_rproc { > > > struct work_struct rproc_work; > > > struct workqueue_struct *workqueue; > > > void __iomem *rsc_table; > > > + bool has_clk; > > > > I am usually weary of bloating structures with flags. I suggest achieving the > > same functionality with a macro that compares priv->dcfg with the right > > imx_rproc_dcfg structure. > > priv->dcfg is some kind fixed settings, however has_clk could be runtime changed, > because i.MX platform M-core support multiple booting method and it > could work w/o clk handled by Linux depending on some pre-configuration > such as moving M-core in an separate hardware partition. Unless there is an FPGA in the mix, clocks and power domains should not change. Either clocks are handled by the remote processor or the application processor, regardless of the mode (attached or detached) the platform is booting into. > > Thanks, > Peng. > > > > > > }; > > > > > > static const struct imx_rproc_att imx_rproc_att_imx8mn[] = { @@ > > > -724,6 +725,9 @@ static int imx_rproc_clk_enable(struct imx_rproc *priv) > > > if (dcfg->method == IMX_RPROC_NONE) > > > return 0; > > > > > > + if (!priv->has_clk) > > > + return 0; > > > + > > > priv->clk = devm_clk_get(dev, NULL); > > > if (IS_ERR(priv->clk)) { > > > dev_err(dev, "Failed to get clock\n"); @@ -768,6 +772,7 @@ static > > > int imx_rproc_probe(struct platform_device *pdev) > > > priv->rproc = rproc; > > > priv->dcfg = dcfg; > > > priv->dev = dev; > > > + priv->has_clk = true; > > > > > > dev_set_drvdata(dev, rproc); > > > priv->workqueue = create_workqueue(dev_name(dev)); > > > -- > > > 2.25.1 > > > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel