Message ID | 20240104225512.1124519-2-u.kleine-koenig@pengutronix.de (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | [v2] clk: Add a devm variant of clk_rate_exclusive_get() | expand |
Hello Stephen, On Thu, Jan 04, 2024 at 11:55:11PM +0100, Uwe Kleine-König wrote: > This allows to simplify drivers that use clk_rate_exclusive_get() > in their probe routine as calling clk_rate_exclusive_put() is cared for > automatically. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > --- > Changes since (implicit) v1, sent with Message-Id: > 744a6371f94fe96f527eea6e52a600914e6fb6b5.1702403904.git.u.kleine-koenig@pengutronix.de: Given that I'm not the only one waiting for this change (see https://lore.kernel.org/linux-i2c/20240119072223.3986183-1-alexander.stein@ew.tq-group.com) here comes a gentil ping. It would be great to get this patch into next now the merge window is closed. Best regards Uwe
Hello, On Thu, Jan 25, 2024 at 10:44:45PM +0100, Uwe Kleine-König wrote: > On Thu, Jan 04, 2024 at 11:55:11PM +0100, Uwe Kleine-König wrote: > > This allows to simplify drivers that use clk_rate_exclusive_get() > > in their probe routine as calling clk_rate_exclusive_put() is cared for > > automatically. > > > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > > --- > > Changes since (implicit) v1, sent with Message-Id: > > 744a6371f94fe96f527eea6e52a600914e6fb6b5.1702403904.git.u.kleine-koenig@pengutronix.de: > > Given that I'm not the only one waiting for this change (see > https://lore.kernel.org/linux-i2c/20240119072223.3986183-1-alexander.stein@ew.tq-group.com) > here comes a gentil ping. It would be great to get this patch into next > now the merge window is closed. Is there a chance to get this into next and then v6.9-rc1? Best regards Uwe
Hello, On Thu, Feb 15, 2024 at 10:39:00AM +0100, Uwe Kleine-König wrote: > On Thu, Jan 25, 2024 at 10:44:45PM +0100, Uwe Kleine-König wrote: > > On Thu, Jan 04, 2024 at 11:55:11PM +0100, Uwe Kleine-König wrote: > > > This allows to simplify drivers that use clk_rate_exclusive_get() > > > in their probe routine as calling clk_rate_exclusive_put() is cared for > > > automatically. > > > > > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > > > --- > > > Changes since (implicit) v1, sent with Message-Id: > > > 744a6371f94fe96f527eea6e52a600914e6fb6b5.1702403904.git.u.kleine-koenig@pengutronix.de: > > > > Given that I'm not the only one waiting for this change (see > > https://lore.kernel.org/linux-i2c/20240119072223.3986183-1-alexander.stein@ew.tq-group.com) > > here comes a gentil ping. It would be great to get this patch into next > > now the merge window is closed. > > Is there a chance to get this into next and then v6.9-rc1? I wonder if this patch is still on someone's radar and why it wasn't applied yet. Does it need an ack by Russell before Stephen picks it up? Is it too complicated and needs more time to review? Can someone please comment what the stopper is here? Best regards Uwe
On Tue, Feb 27, 2024 at 08:38:54AM +0100, Uwe Kleine-König wrote: > Hello, > > On Thu, Feb 15, 2024 at 10:39:00AM +0100, Uwe Kleine-König wrote: > > On Thu, Jan 25, 2024 at 10:44:45PM +0100, Uwe Kleine-König wrote: > > > On Thu, Jan 04, 2024 at 11:55:11PM +0100, Uwe Kleine-König wrote: > > > > This allows to simplify drivers that use clk_rate_exclusive_get() > > > > in their probe routine as calling clk_rate_exclusive_put() is cared for > > > > automatically. > > > > > > > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > > > > --- > > > > Changes since (implicit) v1, sent with Message-Id: > > > > 744a6371f94fe96f527eea6e52a600914e6fb6b5.1702403904.git.u.kleine-koenig@pengutronix.de: > > > > > > Given that I'm not the only one waiting for this change (see > > > https://lore.kernel.org/linux-i2c/20240119072223.3986183-1-alexander.stein@ew.tq-group.com) > > > here comes a gentil ping. It would be great to get this patch into next > > > now the merge window is closed. > > > > Is there a chance to get this into next and then v6.9-rc1? > > I wonder if this patch is still on someone's radar and why it wasn't > applied yet. Does it need an ack by Russell before Stephen picks it up? > Is it too complicated and needs more time to review? Can someone please > comment what the stopper is here? Well, if it does, then the simple way to solve that is: Acked-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Thanks!
Quoting Uwe Kleine-König (2024-01-04 14:55:11) > This allows to simplify drivers that use clk_rate_exclusive_get() > in their probe routine as calling clk_rate_exclusive_put() is cared for > automatically. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > --- Applied to clk-next
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 2253c154a824..a3bc7fb90d0f 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -939,6 +939,25 @@ int clk_rate_exclusive_get(struct clk *clk) } EXPORT_SYMBOL_GPL(clk_rate_exclusive_get); +static void devm_clk_rate_exclusive_put(void *data) +{ + struct clk *clk = data; + + clk_rate_exclusive_put(clk); +} + +int devm_clk_rate_exclusive_get(struct device *dev, struct clk *clk) +{ + int ret; + + ret = clk_rate_exclusive_get(clk); + if (ret) + return ret; + + return devm_add_action_or_reset(dev, devm_clk_rate_exclusive_put, clk); +} +EXPORT_SYMBOL_GPL(devm_clk_rate_exclusive_get); + static void clk_core_unprepare(struct clk_core *core) { lockdep_assert_held(&prepare_lock); diff --git a/include/linux/clk.h b/include/linux/clk.h index 06f1b292f8a0..24c49b01c25d 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h @@ -201,6 +201,18 @@ bool clk_is_match(const struct clk *p, const struct clk *q); */ int clk_rate_exclusive_get(struct clk *clk); +/** + * devm_clk_rate_exclusive_get - devm variant of clk_rate_exclusive_get + * @dev: device the exclusivity is bound to + * @clk: clock source + * + * Calls clk_rate_exclusive_get() on @clk and registers a devm cleanup handler + * on @dev to call clk_rate_exclusive_put(). + * + * Must not be called from within atomic context. + */ +int devm_clk_rate_exclusive_get(struct device *dev, struct clk *clk); + /** * clk_rate_exclusive_put - release exclusivity over the rate control of a * producer
This allows to simplify drivers that use clk_rate_exclusive_get() in their probe routine as calling clk_rate_exclusive_put() is cared for automatically. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> --- Changes since (implicit) v1, sent with Message-Id: 744a6371f94fe96f527eea6e52a600914e6fb6b5.1702403904.git.u.kleine-koenig@pengutronix.de: - rebase to todays next - check return value of clk_rate_exclusive_get() - fix a typo in clk.h (s/cal\>/call/) drivers/clk/clk.c | 19 +++++++++++++++++++ include/linux/clk.h | 12 ++++++++++++ 2 files changed, 31 insertions(+) base-commit: d0b3c8aa5e37775cd7c3ac07b256218df0fd6678