diff mbox

clk: at91: fix clk_programmable_set_parent()

Message ID 1468828152-18389-1-git-send-email-boris.brezillon@free-electrons.com (mailing list archive)
State Accepted, archived
Delegated to: Michael Turquette
Headers show

Commit Message

Boris BREZILLON July 18, 2016, 7:49 a.m. UTC
Since commit 1bdf02326b71e ("clk: at91: make use of syscon/regmap
internally"), clk_programmable_set_parent() is always selecting the
first parent (AKA slow_clk), no matter what's passed in the 'index'
parameter.

Fix that by initializing the pckr variable to the index value.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Reported-by: Hans Verkuil <hans.verkuil@cisco.com>
Fixes: 1bdf02326b71e ("clk: at91: make use of syscon/regmap internally")
Cc: <stable@vger.kernel.org>
---
 drivers/clk/at91/clk-programmable.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Michael Turquette July 19, 2016, 12:45 a.m. UTC | #1
Quoting Boris Brezillon (2016-07-18 00:49:12)
> Since commit 1bdf02326b71e ("clk: at91: make use of syscon/regmap
> internally"), clk_programmable_set_parent() is always selecting the
> first parent (AKA slow_clk), no matter what's passed in the 'index'
> parameter.
> 
> Fix that by initializing the pckr variable to the index value.
> 
> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> Reported-by: Hans Verkuil <hans.verkuil@cisco.com>
> Fixes: 1bdf02326b71e ("clk: at91: make use of syscon/regmap internally")
> Cc: <stable@vger.kernel.org>

Applied to clk-fixes.

Regards,
Mike

> ---
>  drivers/clk/at91/clk-programmable.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/at91/clk-programmable.c b/drivers/clk/at91/clk-programmable.c
> index 10f846cc8db1..25d5906640c3 100644
> --- a/drivers/clk/at91/clk-programmable.c
> +++ b/drivers/clk/at91/clk-programmable.c
> @@ -99,7 +99,7 @@ static int clk_programmable_set_parent(struct clk_hw *hw, u8 index)
>         struct clk_programmable *prog = to_clk_programmable(hw);
>         const struct clk_programmable_layout *layout = prog->layout;
>         unsigned int mask = layout->css_mask;
> -       unsigned int pckr = 0;
> +       unsigned int pckr = index;
>  
>         if (layout->have_slck_mck)
>                 mask |= AT91_PMC_CSSMCK_MCK;
> -- 
> 2.7.4
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-clk" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/clk/at91/clk-programmable.c b/drivers/clk/at91/clk-programmable.c
index 10f846cc8db1..25d5906640c3 100644
--- a/drivers/clk/at91/clk-programmable.c
+++ b/drivers/clk/at91/clk-programmable.c
@@ -99,7 +99,7 @@  static int clk_programmable_set_parent(struct clk_hw *hw, u8 index)
 	struct clk_programmable *prog = to_clk_programmable(hw);
 	const struct clk_programmable_layout *layout = prog->layout;
 	unsigned int mask = layout->css_mask;
-	unsigned int pckr = 0;
+	unsigned int pckr = index;
 
 	if (layout->have_slck_mck)
 		mask |= AT91_PMC_CSSMCK_MCK;