diff options
| author | Thomas Hellström <thomas.hellstrom@linux.intel.com> | 2024-04-12 15:14:25 +0200 |
|---|---|---|
| committer | Thomas Hellström <thomas.hellstrom@linux.intel.com> | 2024-04-12 15:14:25 +0200 |
| commit | 79790b6818e96c58fe2bffee1b418c16e64e7b80 (patch) | |
| tree | 1b1f34807410ae05c17658c768f45f951e9420bc /include/linux/clk.h | |
| parent | 12f4b58a37f48a049893f1ae04b3fbb9b5088e8c (diff) | |
| parent | 6e1f415e7129f7cd4c2394af83b35cdcdd40baf7 (diff) | |
Merge drm/drm-next into drm-xe-next
Backmerging drm-next in order to get up-to-date and in particular
to access commit 9ca5facd0400f610f3f7f71aeb7fc0b949a48c67.
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Diffstat (limited to 'include/linux/clk.h')
| -rw-r--r-- | include/linux/clk.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/linux/clk.h b/include/linux/clk.h index 06f1b292f8a0..00623f4de5e1 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h @@ -202,6 +202,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 * @clk: clock source @@ -479,6 +491,22 @@ int __must_check devm_clk_bulk_get_all(struct device *dev, struct clk_bulk_data **clks); /** + * devm_clk_bulk_get_all_enable - Get and enable all clocks of the consumer (managed) + * @dev: device for clock "consumer" + * @clks: pointer to the clk_bulk_data table of consumer + * + * Returns success (0) or negative errno. + * + * This helper function allows drivers to get all clocks of the + * consumer and enables them in one operation with management. + * The clks will automatically be disabled and freed when the device + * is unbound. + */ + +int __must_check devm_clk_bulk_get_all_enable(struct device *dev, + struct clk_bulk_data **clks); + +/** * devm_clk_get - lookup and obtain a managed reference to a clock producer. * @dev: device for clock "consumer" * @id: clock consumer ID @@ -968,6 +996,12 @@ static inline int __must_check devm_clk_bulk_get_all(struct device *dev, return 0; } +static inline int __must_check devm_clk_bulk_get_all_enable(struct device *dev, + struct clk_bulk_data **clks) +{ + return 0; +} + static inline struct clk *devm_get_clk_from_child(struct device *dev, struct device_node *np, const char *con_id) { |
