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/