lkml.org 
[lkml]   [2022]   [Jan]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [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 <peng.fan@nxp.com>
    >
    > 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 <peng.fan@nxp.com>
    > ---
    > 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.

    > };
    >
    > 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
    >

    \
     
     \ /
      Last update: 2022-01-18 19:50    [W:2.671 / U:0.216 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site