diff options
-rw-r--r-- | drivers/clk/clk.c | 4 | ||||
-rw-r--r-- | include/linux/clk-provider.h | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index fb3c40b4fbe2..1fbcb2b107e7 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c | |||
@@ -277,6 +277,10 @@ static int clk_debug_create_one(struct clk *clk, struct dentry *pdentry) | |||
277 | if (!d) | 277 | if (!d) |
278 | goto err_out; | 278 | goto err_out; |
279 | 279 | ||
280 | if (clk->ops->debug_init) | ||
281 | if (clk->ops->debug_init(clk->hw, clk->dentry)) | ||
282 | goto err_out; | ||
283 | |||
280 | ret = 0; | 284 | ret = 0; |
281 | goto out; | 285 | goto out; |
282 | 286 | ||
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index 939533da93a7..511917416fb0 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h | |||
@@ -32,6 +32,7 @@ | |||
32 | #define CLK_GET_ACCURACY_NOCACHE BIT(8) /* do not use the cached clk accuracy */ | 32 | #define CLK_GET_ACCURACY_NOCACHE BIT(8) /* do not use the cached clk accuracy */ |
33 | 33 | ||
34 | struct clk_hw; | 34 | struct clk_hw; |
35 | struct dentry; | ||
35 | 36 | ||
36 | /** | 37 | /** |
37 | * struct clk_ops - Callback operations for hardware clocks; these are to | 38 | * struct clk_ops - Callback operations for hardware clocks; these are to |
@@ -127,6 +128,12 @@ struct clk_hw; | |||
127 | * separately via calls to .set_parent and .set_rate. | 128 | * separately via calls to .set_parent and .set_rate. |
128 | * Returns 0 on success, -EERROR otherwise. | 129 | * Returns 0 on success, -EERROR otherwise. |
129 | * | 130 | * |
131 | * @debug_init: Set up type-specific debugfs entries for this clock. This | ||
132 | * is called once, after the debugfs directory entry for this | ||
133 | * clock has been created. The dentry pointer representing that | ||
134 | * directory is provided as an argument. Called with | ||
135 | * prepare_lock held. Returns 0 on success, -EERROR otherwise. | ||
136 | * | ||
130 | * | 137 | * |
131 | * The clk_enable/clk_disable and clk_prepare/clk_unprepare pairs allow | 138 | * The clk_enable/clk_disable and clk_prepare/clk_unprepare pairs allow |
132 | * implementations to split any work between atomic (enable) and sleepable | 139 | * implementations to split any work between atomic (enable) and sleepable |
@@ -165,6 +172,7 @@ struct clk_ops { | |||
165 | unsigned long (*recalc_accuracy)(struct clk_hw *hw, | 172 | unsigned long (*recalc_accuracy)(struct clk_hw *hw, |
166 | unsigned long parent_accuracy); | 173 | unsigned long parent_accuracy); |
167 | void (*init)(struct clk_hw *hw); | 174 | void (*init)(struct clk_hw *hw); |
175 | int (*debug_init)(struct clk_hw *hw, struct dentry *dentry); | ||
168 | }; | 176 | }; |
169 | 177 | ||
170 | /** | 178 | /** |