clk: honor CLK_MUX_ROUND_CLOSEST in generic clk mux
authorJerome Brunet <jbrunet@baylibre.com>
Mon, 9 Apr 2018 13:59:20 +0000 (15:59 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Jun 2018 19:02:42 +0000 (04:02 +0900)
commit9d33f89c40e9c9ae42a69e49566a3efdc165b0dd
treeb428b8561323e95cec940ac188f2de525c85c9c9
parentdccf9862a7f5afe8c81bd52302918c33d9ba57d6
clk: honor CLK_MUX_ROUND_CLOSEST in generic clk mux

[ Upstream commit 4ad69b80e886a845f56ce0a3d10211208693d92b ]

CLK_MUX_ROUND_CLOSEST is part of the clk_mux documentation but clk_mux
directly calls __clk_mux_determine_rate(), which overrides the flag.
As result, if clk_mux is instantiated with CLK_MUX_ROUND_CLOSEST, the
flag will be ignored and the clock rounded down.

To solve this, this patch expose clk_mux_determine_rate_flags() in the
clk-provider API and uses it in the determine_rate() callback of clk_mux.

Fixes: 15a02c1f6dd7 ("clk: Add __clk_mux_determine_rate_closest")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/clk/clk-mux.c
drivers/clk/clk.c
include/linux/clk-provider.h