[PATCH v4] I2C: add CSR SiRFprimaII on-chip I2C controllers driver

Barry Song 21cnbao at gmail.com
Tue Dec 20 22:29:29 EST 2011


2011/12/21 Russell King - ARM Linux <linux at arm.linux.org.uk>:
> On Wed, Dec 14, 2011 at 04:55:27PM +0800, Barry Song wrote:
>> +static int __devinit i2c_sirfsoc_probe(struct platform_device *pdev)
>> +{
>> +     struct clk *clk;
>> +
>> +     clk = clk_get(&pdev->dev, NULL);
>> +     err = clk_prepare(clk);
>> +     err = clk_enable(clk);
> ...
>> +     clk_disable(clk);
>> +
>> +     dev_info(&pdev->dev, " I2C adapter ready to operate\n");
>> +
>> +     return 0;
>> +}
>> +
>> +static int __devexit i2c_sirfsoc_remove(struct platform_device *pdev)
>> +{
>> +     clk_disable(siic->clk);
>> +     clk_unprepare(siic->clk);
>> +     clk_put(siic->clk);
>
> This doesn't look right - look at the state which you leave the clk in
> upon successful probe, and now look at what you do when you do a remove.
>
> It seems that you disable an already disabled clock to me.

Russell, thanks! i will fix that in v5. but i have to wait for Ben's
feedback and add other fixes together before doing that.
Ben seems to have been scheduled out, i hope the state is
TASK_INTERRUPTBILE not TASK_UNINTERRUPTBILE. Then my signal can wake
up him.

Thanks
barry



More information about the linux-arm-kernel mailing list