clk_mux_val_to_index() is meant to be used by .get_parent(), which returns a u8, so when the value provided does not map to any valid index, it is not a good idea to return a negative error value.
Instead, return num_parents which we know is an invalid index and let CCF deal with it. Fixes: 77deb66d262f ("clk: mux: add helper function for index/value translation") Signed-off-by: Jerome Brunet <jbru...@baylibre.com> --- drivers/clk/clk-mux.c | 8 ++++---- include/linux/clk-provider.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/clk/clk-mux.c b/drivers/clk/clk-mux.c index 1628b93655ed..b64e475802cc 100644 --- a/drivers/clk/clk-mux.c +++ b/drivers/clk/clk-mux.c @@ -26,8 +26,8 @@ * parent - parent is adjustable through clk_set_parent */ -int clk_mux_val_to_index(struct clk_hw *hw, u32 *table, unsigned int flags, - unsigned int val) +u8 clk_mux_val_to_index(struct clk_hw *hw, u32 *table, unsigned int flags, + unsigned int val) { int num_parents = clk_hw_get_num_parents(hw); @@ -37,7 +37,7 @@ int clk_mux_val_to_index(struct clk_hw *hw, u32 *table, unsigned int flags, for (i = 0; i < num_parents; i++) if (table[i] == val) return i; - return -EINVAL; + return num_parents; } if (val && (flags & CLK_MUX_INDEX_BIT)) @@ -47,7 +47,7 @@ int clk_mux_val_to_index(struct clk_hw *hw, u32 *table, unsigned int flags, val--; if (val >= num_parents) - return -EINVAL; + return num_parents; return val; } diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index 60c51871b04b..fc20886ef069 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h @@ -550,8 +550,8 @@ struct clk_hw *clk_hw_register_mux_table(struct device *dev, const char *name, void __iomem *reg, u8 shift, u32 mask, u8 clk_mux_flags, u32 *table, spinlock_t *lock); -int clk_mux_val_to_index(struct clk_hw *hw, u32 *table, unsigned int flags, - unsigned int val); +u8 clk_mux_val_to_index(struct clk_hw *hw, u32 *table, unsigned int flags, + unsigned int val); unsigned int clk_mux_index_to_val(u32 *table, unsigned int flags, u8 index); void clk_unregister_mux(struct clk *clk); -- 2.19.1