[PATCH 10/10] S3C64XX I2S: En/Disable codec clocks.
jassi brar
jassisinghbrar at gmail.com
Tue Sep 15 08:35:48 EDT 2009
On Tue, Sep 15, 2009 at 8:49 PM, Mark Brown
<broonie at opensource.wolfsonmicro.com> wrote:
> On Tue, Sep 15, 2009 at 07:02:42PM +0900, Jassi wrote:
>
>> switch (clk_id) {
>> case S3C64XX_CLKSRC_PCLK:
>> iismod &= ~S3C64XX_IISMOD_IMS_SYSMUX;
>> + clk_disable(i2s->iis_cclk);
>> break;
>>
>> case S3C64XX_CLKSRC_MUX:
>> iismod |= S3C64XX_IISMOD_IMS_SYSMUX;
>> + clk_enable(i2s->iis_cclk);
>> break;
>
> I'd expect that this will cause trouble eventually - machine drivers
> tend to call set_sysclk() repeatedly, meaning that the clock will be
> repeatedly enabled or disabled. Eventually this will overflow the
> counter the clock API is using, perhaps even cause it to complain loudly
> about errors (eg, if the use count drops below zero). A local reference
> count should deal with those issues, or checking to see if iismod
> actualy changed before updating the clock API.
Yes, this was a bad idea.
More information about the linux-arm-kernel
mailing list