summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Ripard <maxime@cerno.tech>2022-10-26 15:46:58 +0200
committerStephen Boyd <sboyd@kernel.org>2022-12-07 13:54:01 -0800
commitef13f8b64728c4b4d28639bbcf30fe1314b18482 (patch)
tree3f320c1b78ae80dc2550048ae64d7bdf3bfe955f
parent9abf2313adc1ca1b6180c508c25f22f9395cc780 (diff)
clk: Store clk_core for clk_rate_request
The struct clk_rate_request is meant to store the context around a rate request such as the parent, boundaries, and so on. However, it doesn't store the clock the rate request is submitted to, which makes debugging difficult. Let's add a pointer to the relevant clk_core instance in order to improve the debugging of rate requests in a subsequent patch. Signed-off-by: Maxime Ripard <maxime@cerno.tech> Link: https://lore.kernel.org/r/20221018-clk-rate-request-tracing-v2-1-5170b363c413@cerno.tech Signed-off-by: Stephen Boyd <sboyd@kernel.org>
-rw-r--r--drivers/clk/clk.c1
-rw-r--r--include/linux/clk-provider.h2
2 files changed, 3 insertions, 0 deletions
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index c3c3f8c07258..042e32acce0b 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -1464,6 +1464,7 @@ static void clk_core_init_rate_req(struct clk_core * const core,
memset(req, 0, sizeof(*req));
+ req->core = core;
req->rate = rate;
clk_core_get_boundaries(core, &req->min_rate, &req->max_rate);
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index 267cd06b54a0..842e72a5348f 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -44,6 +44,7 @@ struct dentry;
*
* Should be initialized by calling clk_hw_init_rate_request().
*
+ * @core: Pointer to the struct clk_core affected by this request
* @rate: Requested clock rate. This field will be adjusted by
* clock drivers according to hardware capabilities.
* @min_rate: Minimum rate imposed by clk users.
@@ -55,6 +56,7 @@ struct dentry;
*
*/
struct clk_rate_request {
+ struct clk_core *core;
unsigned long rate;
unsigned long min_rate;
unsigned long max_rate;