Message ID | 1348154447-3815-1-git-send-email-ulf.hansson@stericsson.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Sep 20, 2012 at 5:20 PM, Ulf Hansson <ulf.hansson@stericsson.com> wrote: > From: Philippe Begnic <philippe.begnic@stericsson.com> > > Make sure to clk_prepare as well as clk_enable. Looks correct. xfer() is slowpatch so we might as well call prepare/unprepare functions there. Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
Hi Wolfram, Juts a kind reminder on this. Do you see any problem merging this? Kind regards Ulf Hansson On 20 September 2012 21:17, Linus Walleij <linus.walleij@linaro.org> wrote: > On Thu, Sep 20, 2012 at 5:20 PM, Ulf Hansson <ulf.hansson@stericsson.com> wrote: > >> From: Philippe Begnic <philippe.begnic@stericsson.com> >> >> Make sure to clk_prepare as well as clk_enable. > > Looks correct. xfer() is slowpatch so we might as well call > prepare/unprepare functions there. > Reviewed-by: Linus Walleij <linus.walleij@linaro.org> > > Yours, > Linus Walleij
diff --git a/drivers/i2c/busses/i2c-nomadik.c b/drivers/i2c/busses/i2c-nomadik.c index 1b898b6..3eeae52 100644 --- a/drivers/i2c/busses/i2c-nomadik.c +++ b/drivers/i2c/busses/i2c-nomadik.c @@ -642,7 +642,11 @@ static int nmk_i2c_xfer(struct i2c_adapter *i2c_adap, pm_runtime_get_sync(&dev->adev->dev); - clk_enable(dev->clk); + status = clk_prepare_enable(dev->clk); + if (status) { + dev_err(&dev->adev->dev, "can't prepare_enable clock\n"); + goto out_clk; + } status = init_hw(dev); if (status) @@ -669,7 +673,8 @@ static int nmk_i2c_xfer(struct i2c_adapter *i2c_adap, } out: - clk_disable(dev->clk); + clk_disable_unprepare(dev->clk); +out_clk: pm_runtime_put_sync(&dev->adev->dev); dev->busy = false;