From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] clkdev: Implement managed clk_get()
Date: Mon, 2 Apr 2012 19:05:47 +0100 [thread overview]
Message-ID: <20120402180546.GJ24211@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <20120402172954.GH15197@opensource.wolfsonmicro.com>
On Mon, Apr 02, 2012 at 06:34:12PM +0100, Mark Brown wrote:
> 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.
So why can't we do:
void devm_clk_put(struct device *, struct clk *);
just like other interfaces which free up devres stuff take a struct device.
> 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.
Well that's what other subsystems do, so I see no reason to be different.
To be different would make us intentionally different from other
implementations which would be bad - and means that we're more reliant
on the underlying clk implementation.
That's bad news, especially for something that's going to end up being
used in multiple drivers (in terms of fixing the API if the underlying
implementation changes.)
Given that we're at this cross-roads already, just pass the struct device
and be done with it.
next prev parent reply other threads:[~2012-04-02 18:05 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-01 11:32 [PATCH 1/2] clk: Fix comment for end of CONFIG_COMMON_CLK section Mark Brown
2012-04-01 11:32 ` [PATCH 2/2] clkdev: Implement managed clk_get() Mark Brown
2012-04-01 15:26 ` Stephen Boyd
2012-04-01 15:34 ` Mark Brown
2012-04-02 16:48 ` Stephen Boyd
2012-04-02 16:52 ` Russell King - ARM Linux
2012-04-02 17:04 ` Stephen Boyd
2012-04-02 17:08 ` Russell King - ARM Linux
2012-04-02 17:16 ` Stephen Boyd
2012-04-02 17:21 ` Russell King - ARM Linux
2012-04-02 17:34 ` Stephen Boyd
2012-04-02 18:02 ` Russell King - ARM Linux
2012-04-02 17:16 ` Mark Brown
2012-04-02 17:30 ` Turquette, Mike
2012-04-02 17:04 ` Russell King - ARM Linux
2012-04-02 17:34 ` Mark Brown
2012-04-02 18:05 ` Russell King - ARM Linux [this message]
2012-04-01 13:02 ` [PATCH 1/2] clk: Fix comment for end of CONFIG_COMMON_CLK section Russell King - ARM Linux
2012-04-01 14:29 ` Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120402180546.GJ24211@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).