Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

usb: typec: mux: gpio-sbu: Allow GPIO operations to sleep

Use gpiod_set_value_cansleep() to support gpiochips which can
sleep like, e.g. I2C GPIO expanders.

Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20240409190910.4707-1-francesco@dolcini.it
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Francesco Dolcini and committed by
Greg Kroah-Hartman
3d122e6d 1a395af9

+4 -4
+4 -4
drivers/usb/typec/mux/gpio-sbu-mux.c
··· 48 48 } 49 49 50 50 if (enabled != sbu_mux->enabled) 51 - gpiod_set_value(sbu_mux->enable_gpio, enabled); 51 + gpiod_set_value_cansleep(sbu_mux->enable_gpio, enabled); 52 52 53 53 if (swapped != sbu_mux->swapped) 54 - gpiod_set_value(sbu_mux->select_gpio, swapped); 54 + gpiod_set_value_cansleep(sbu_mux->select_gpio, swapped); 55 55 56 56 sbu_mux->enabled = enabled; 57 57 sbu_mux->swapped = swapped; ··· 82 82 break; 83 83 } 84 84 85 - gpiod_set_value(sbu_mux->enable_gpio, sbu_mux->enabled); 85 + gpiod_set_value_cansleep(sbu_mux->enable_gpio, sbu_mux->enabled); 86 86 87 87 mutex_unlock(&sbu_mux->lock); 88 88 ··· 141 141 { 142 142 struct gpio_sbu_mux *sbu_mux = platform_get_drvdata(pdev); 143 143 144 - gpiod_set_value(sbu_mux->enable_gpio, 0); 144 + gpiod_set_value_cansleep(sbu_mux->enable_gpio, 0); 145 145 146 146 typec_mux_unregister(sbu_mux->mux); 147 147 typec_switch_unregister(sbu_mux->sw);