Hi Miquel, On mar., janv. 08 2019, Miquel Raynal <[email protected]> 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 <[email protected]> Reviewed-by: Gregory CLEMENT <[email protected]> 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

