[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <871s5anj97.fsf@FE-laptop>
Date: Fri, 18 Jan 2019 15:16:36 +0100
From: Gregory CLEMENT <gregory.clement@...tlin.com>
To: Miquel Raynal <miquel.raynal@...tlin.com>
Cc: Michael Turquette <mturquette@...libre.com>,
Stephen Boyd <sboyd@...nel.org>,
Russell King <linux@...linux.org.uk>,
linux-clk@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
Antoine Tenart <antoine.tenart@...tlin.com>,
Maxime Chevallier <maxime.chevallier@...tlin.com>,
Nadav Haklai <nadavh@...vell.com>
Subject: Re: [PATCH v4 3/4] clk: mvebu: armada-37xx-tbg: fill the device entry when registering the clocks
Hi Miquel,
On mar., janv. 08 2019, Miquel Raynal <miquel.raynal@...tlin.com> wrote:
> So far the clk_hw_register_fixed_factor() calls are not providing any
> device structure. While doing so is harmless for regular use, the
> missing device structure may be a problem for suspend to RAM support.
>
> Since, device links have been added to clocks, links created during
> probe will enforce the suspend/resume orders. When the device is
> missing during the registration, no link can be established, hence the
> order between parent and child clocks are not enforced.
>
> Adding the device structure here will create a link between the 4 TBG
> clocks (registered by this driver) and:
> * their parent clock: XTAL,
> * their child clocks: several 'periph' clock.
>
> Signed-off-by: Miquel Raynal <miquel.raynal@...tlin.com>
Reviewed-by: Gregory CLEMENT <gregory.clement@...tlin.com>
Thanks,
Gregory
> ---
> drivers/clk/mvebu/armada-37xx-tbg.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/clk/mvebu/armada-37xx-tbg.c b/drivers/clk/mvebu/armada-37xx-tbg.c
> index 77b978c55ef6..da3a08e419d6 100644
> --- a/drivers/clk/mvebu/armada-37xx-tbg.c
> +++ b/drivers/clk/mvebu/armada-37xx-tbg.c
> @@ -116,8 +116,10 @@ static int armada_3700_tbg_clock_probe(struct platform_device *pdev)
> name = tbg[i].name;
> mult = tbg_get_mult(reg, &tbg[i]);
> div = tbg_get_div(reg, &tbg[i]);
> - hw_tbg_data->hws[i] = clk_hw_register_fixed_factor(NULL, name,
> - parent_name, 0, mult, div);
> + hw_tbg_data->hws[i] = clk_hw_register_fixed_factor(dev, name,
> + parent_name,
> + 0, mult,
> + div);
> if (IS_ERR(hw_tbg_data->hws[i]))
> dev_err(dev, "Can't register TBG clock %s\n", name);
> }
> --
> 2.19.1
>
--
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com
Powered by blists - more mailing lists