Re: [PATCH 2/7] MFD: ASIC3: add clock handling for MFD cells

From: pHilipp Zabel
Date: Fri Jun 05 2009 - 12:27:33 EST


On Fri, Jun 5, 2009 at 1:49 AM, Samuel Ortiz<sameo@xxxxxxxxxxxxxx> wrote:
> Hi Philipp,
>
> On Thu, Jun 04, 2009 at 08:36:11PM +0200, Philipp Zabel wrote:
>> +
>> +struct asic3_clk {
>> +     int enabled;
> You probably want to use a kref here.
>
>> +static int asic3_clk_enable(struct asic3 *asic, struct asic3_clk *clk)
>> +{
>> +     unsigned long flags;
>> +     u32 cdex;
>> +
>> +     spin_lock_irqsave(&asic->lock, flags);
>> +     if (clk->enabled++ == 0) {
> using the kref API here would definitely be nicer.

While I agree that the kref API looks nice, I'm not convinced it is
intended to be used in this case. We are not counting references here.
There is no way to get the count back from the API, which we need to
decide whether or not to flip the CDEX bits. We could misuse the
release function pointer given to kref_put to turn off the clock, but
I'd prefer to leave it the way it is now.

regards
Philipp
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/