Thread (24 messages) 24 messages, 3 authors, 2021-09-02
STALE1854d

Revision v10 of 6 in this series.

Revisions (6)
  1. v8 [diff vs current]
  2. v9 [diff vs current]
  3. v10 current
  4. v11 [diff vs current]
  5. v12 [diff vs current]
  6. v13 [diff vs current]

[PATCH v10 2/8] opp: Allow dev_pm_opp_set_clkname() to replace released clock

From: Dmitry Osipenko <digetx@gmail.com>
Date: 2021-08-31 13:57:13
Also in: linux-pm, lkml
Subsystem: operating performance points (opp), the rest · Maintainers: Viresh Kumar, Nishanth Menon, Stephen Boyd, Linus Torvalds

The opp_table->clk is set to error once clock is released by
dev_pm_opp_put_clkname(). This doesn't allow to set clock again,
until OPP table is re-created from scratch. Check opp_table->clk
for both NULL and ERR_PTR to allow the clock's replacement.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/opp/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/opp/core.c b/drivers/opp/core.c
index dde8a5cc948c..602e502d092e 100644
--- a/drivers/opp/core.c
+++ b/drivers/opp/core.c
@@ -2146,7 +2146,7 @@ struct opp_table *dev_pm_opp_set_clkname(struct device *dev, const char *name)
 	}
 
 	/* clk shouldn't be initialized at this point */
-	if (WARN_ON(opp_table->clk)) {
+	if (WARN_ON(!IS_ERR_OR_NULL(opp_table->clk))) {
 		ret = -EBUSY;
 		goto err;
 	}
-- 
2.32.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help