Add a new helper clk_determine_rate_noop() that's for clocks where the rate rounding is handled by the firmware/hardware, or the clock is capable of any rate. The requested rate is passed through unchanged, and the actual rate will be learned via recalc_rate() after the rate is set.
This shared helper will be used to get rid of the driver-specific empty determine rate implementations that are present in the tree. Signed-off-by: Brian Masney <[email protected]> --- To: Michael Turquette <[email protected]> To: Stephen Boyd <[email protected]> To: Brian Masney <[email protected]> To: Abel Vesa <[email protected]> To: Peng Fan <[email protected]> To: Frank Li <[email protected]> To: Sascha Hauer <[email protected]> To: Pengutronix Kernel Team <[email protected]> To: Fabio Estevam <[email protected]> To: Anson Huang <[email protected]> To: Bjorn Andersson <[email protected]> To: Geert Uytterhoeven <[email protected]> To: Andrea della Porta <[email protected]> To: Tudor Ambarus <[email protected]> To: Krzysztof Kozlowski <[email protected]> To: Sylwester Nawrocki <[email protected]> To: Chanwoo Choi <[email protected]> To: Alim Akhtar <[email protected]> To: Sudeep Holla <[email protected]> To: Cristian Marussi <[email protected]> To: Orson Zhai <[email protected]> To: Baolin Wang <[email protected]> To: Chunyan Zhang <[email protected]> To: Chun-Kuang Hu <[email protected]> To: Philipp Zabel <[email protected]> To: Chunfeng Yun <[email protected]> To: Vinod Koul <[email protected]> To: Neil Armstrong <[email protected]> To: Matthias Brugger <[email protected]> To: AngeloGioacchino Del Regno <[email protected]> To: Ulf Hansson <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] --- drivers/clk/clk.c | 18 ++++++++++++++++++ include/linux/clk-provider.h | 1 + 2 files changed, 19 insertions(+) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 048adfa86a5d..956e147f4d4e 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -882,6 +882,24 @@ int clk_hw_determine_rate_no_reparent(struct clk_hw *hw, } EXPORT_SYMBOL_GPL(clk_hw_determine_rate_no_reparent); +/** + * clk_determine_rate_noop - clk_ops::determine_rate noop implementation + * @hw: clk to determine rate on + * @req: rate request + * + * Noop determine rate for clocks where the rate rounding is handled by the + * firmware/hardware, or the clock is capable of any rate. The requested rate is + * passed through unchanged, and the actual rate will be learned via + * recalc_rate() after the rate is set. + * + * Returns: 0 always + */ +int clk_determine_rate_noop(struct clk_hw *hw, struct clk_rate_request *req) +{ + return 0; +} +EXPORT_SYMBOL_GPL(clk_determine_rate_noop); + /*** clk api ***/ static void clk_core_rate_unprotect(struct clk_core *core) diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index b01a38fef8cf..334b9211a157 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h @@ -1431,6 +1431,7 @@ int clk_mux_determine_rate_flags(struct clk_hw *hw, unsigned long flags); int clk_hw_determine_rate_no_reparent(struct clk_hw *hw, struct clk_rate_request *req); +int clk_determine_rate_noop(struct clk_hw *hw, struct clk_rate_request *req); void clk_hw_reparent(struct clk_hw *hw, struct clk_hw *new_parent); void clk_hw_get_rate_range(struct clk_hw *hw, unsigned long *min_rate, unsigned long *max_rate); -- 2.54.0
