On Fri, Feb 19, 2016 at 4:45 AM, Stephen Boyd <[email protected]> wrote: > On 02/17, Andy Shevchenko wrote: >> diff --git a/drivers/mfd/intel_quark_i2c_gpio.c >> b/drivers/mfd/intel_quark_i2c_gpio.c >> index bdc5e27..43d8066 100644 >> --- a/drivers/mfd/intel_quark_i2c_gpio.c >> +++ b/drivers/mfd/intel_quark_i2c_gpio.c >> @@ -150,11 +150,10 @@ static void intel_quark_unregister_i2c_clk(struct >> pci_dev *pdev) >> { >> struct intel_quark_mfd *quark_mfd = dev_get_drvdata(&pdev->dev); >> >> - if (!quark_mfd->i2c_clk || !quark_mfd->i2c_clk_lookup) >> + clk_unregister(quark_mfd->i2c_clk); >> + if (!quark_mfd->i2c_clk_lookup) >> return; >> - >> clkdev_drop(quark_mfd->i2c_clk_lookup); > > It's probably not a great idea to unregister the clk before the > lookup is dropped. I suppose nothing too bad will happen though > because we handle this case in the framework and substitute dummy > ops in place of the real ones.
Thanks for pointing this out. Okay, I will re-do this. I think the correct one is to add clk_unregister() call to the _register_i2c_clk(). -- With Best Regards, Andy Shevchenko

