On Mon, Jul 05, 2010 at 05:43:31PM +0200, Lars-Peter Clausen wrote:
> >> +static inline void jz4740_adc_clk_enable(struct jz4740_adc *adc)
> >> +{
> >> + unsigned long flags;
> >> +
> >> + spin_lock_irqsave(&adc->lock, flags);
> >> + if (adc->clk_ref++ == 0)
> >> + clk_enable(adc->clk);
> >> + spin_unlock_irqrestore(&adc->lock, flags);
> >> +}
> > I'm not familiar with your platform clock framework, but shouldn't the
> > refcounting be handled there instead of spread over all your drivers ?
>
> The ADC clock is the only clock on this platform which is shared between
> multiple
> devices so I refrained from adding the refcounting to the core for now. But
> to be
> strictly complaint with the clock API as defined in linux/clk.h the
> implementation
> should do refcounting. I'm still a bit uncertain what would be done best here.
>
I can't see what leaving the refcount handling to drivers could bring compared
to a centralized implementation. But that's your platform, either way is fine
with me as far as this MFD driver is concerned.
Cheers,
Samuel.
--
Intel Open Source Technology Centre
http://oss.intel.com/
|