Hi Linus, On Tue, Jun 12, 2012 at 11:03 PM, Linus Walleij <linus.walleij@xxxxxxxxxxxxxx> wrote: > From: Linus Walleij <linus.walleij@xxxxxxxxxx> > > Make sure we prepare/unprepare the clock for the ST U300 > I2C driver as is required by the clk API especially if you > use common clock. Not a comment rather a doubt. The transfer is still using enable and disable? Can you help me understand the difference. > > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > drivers/i2c/busses/i2c-stu300.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/i2c/busses/i2c-stu300.c b/drivers/i2c/busses/i2c-stu300.c > index 4d44af1..79b7851 100644 > --- a/drivers/i2c/busses/i2c-stu300.c > +++ b/drivers/i2c/busses/i2c-stu300.c > @@ -924,7 +924,7 @@ stu300_probe(struct platform_device *pdev) > > dev->speed = scl_frequency; > > - clk_enable(dev->clk); > + clk_prepare_enable(dev->clk); > ret = stu300_init_hw(dev); > clk_disable(dev->clk); > > @@ -960,6 +960,7 @@ stu300_probe(struct platform_device *pdev) > > err_add_adapter: > err_init_hw: > + clk_unprepare(dev->clk); So this also fixes an earlier lack of disable also? > free_irq(dev->irq, dev); > err_no_irq: > iounmap(dev->virtbase); > @@ -1016,6 +1017,7 @@ stu300_remove(struct platform_device *pdev) > free_irq(dev->irq, dev); > iounmap(dev->virtbase); > release_mem_region(dev->phybase, dev->physize); > + clk_unprepare(dev->clk); > clk_put(dev->clk); > platform_set_drvdata(pdev, NULL); > kfree(dev); > -- > 1.7.9.2 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-i2c" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html