[lkml]   [2012]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 2/2] clkdev: Implement managed clk_get()
On Mon, Apr 02, 2012 at 06:04:43PM +0100, Russell King - ARM Linux wrote:
> On Sun, Apr 01, 2012 at 12:32:40PM +0100, Mark Brown wrote:
> > Allow clk API users to simplify their cleanup paths by providing a
> > managed version of clk_get().

> > Due to the lack of a standard struct clk to look up the device from a
> > managed clk_put() is not provided, it would be very unusual to use this
> > function so it's not a big loss.

> Err, why? The contents of struct clk has nothing to do with clk_put().
> You're doing something really wrong here.

It does for a devm_clk_put(). Normally this would end up being:

void devm_clk_put(struct clk *clk);

but the devres stuff needs us to have a struct device to get the
underlying allocation/mapping and undo it.

> Remember, there is not going to _ever_ be the situation where a struct clk
> is specific to any particular struct device - it's a 1:N mapping between
> clks and devices.

Right, absolutely - to do it as above struct clk would be allocated per
user and indirect to the actual clock implementation (which some people
were muttering about for other reasons, though I can't remember what
those were off the top of my head). Probably what would actually end up
happening is that we'd instead have a signature like:

devm_clk_put(struct device *dev, struct clk *clk);

but I didn't particularly feel like making that decision right now,
especially if we do end up going with per user allocations and can use
the more idiomatic signature.

> So, until you sort out your misunderstanding, NAK.

I think I understand just fine, thanks.

In any case, we'd only really need a devm_clk_put() if someone wants one
which is a bit of a corner case in the first place so just ignoring the
issue until that happens should be fine.
[unhandled content-type:application/pgp-signature]
 \ /
  Last update: 2012-04-02 19:37    [W:0.069 / U:1.036 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site