Commit 2e838e7f authored by Mike Looijmans's avatar Mike Looijmans Committed by Stephen Boyd

clk: clk-gpio: Allow GPIO to sleep in set/get_parent

When changing or retrieving clock parents, the caller is in a sleepable
state (like prepare) so the GPIO operation need not be atomic. Replace
gpiod_{g|s}et_value with gpiod_{g|s}et_value_cansleep in the {g|s}et_parent
calls for the GPIO based clock mux.

This fixes a "slowpath" warning when the GPIO controller is an I2C expander
or something similar.
Signed-off-by: default avatarMike Looijmans <mike.looijmans@topic.nl>
Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent 7928b2cb
...@@ -73,14 +73,14 @@ static u8 clk_gpio_mux_get_parent(struct clk_hw *hw) ...@@ -73,14 +73,14 @@ static u8 clk_gpio_mux_get_parent(struct clk_hw *hw)
{ {
struct clk_gpio *clk = to_clk_gpio(hw); struct clk_gpio *clk = to_clk_gpio(hw);
return gpiod_get_value(clk->gpiod); return gpiod_get_value_cansleep(clk->gpiod);
} }
static int clk_gpio_mux_set_parent(struct clk_hw *hw, u8 index) static int clk_gpio_mux_set_parent(struct clk_hw *hw, u8 index)
{ {
struct clk_gpio *clk = to_clk_gpio(hw); struct clk_gpio *clk = to_clk_gpio(hw);
gpiod_set_value(clk->gpiod, index); gpiod_set_value_cansleep(clk->gpiod, index);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment