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

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
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -73,14 +73,14 @@ static u8 clk_gpio_mux_get_parent(struct clk_hw *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)
{
	struct clk_gpio *clk = to_clk_gpio(hw);

	gpiod_set_value(clk->gpiod, index);
	gpiod_set_value_cansleep(clk->gpiod, index);

	return 0;
}