On Wed, Apr 22, 2020 at 4:37 PM Mark Brown broonie@kernel.org wrote:
If there is a power GPIO provided we control it from DAPM context so there is no problem with a sleeping GPIO, use the _cansleep() version of the API to allow this.
Compared gpiod_set_value_cansleep() vs. gpiod_set_value().
gpiod_set_value_cansleep() + might_sleep_if(extra_checks);
gpiod_set_value() + /* Should be using gpiod_set_value_cansleep() */ + WARN_ON(desc->gdev->chip->can_sleep);
And the extra_checks is: #ifdef DEBUG #define extra_checks 1 #else #define extra_checks 0 #endif
Looks like it only changes behavior when DEBUG.
Wondering about: - Did you get any warning message to inspire you to use _cansleep() version? - Does that imply in any _can sleep_ context, it is more encouraged to call _cansleep() version? (e.g. https://elixir.bootlin.com/linux/v5.7-rc2/source/sound/soc/codecs/max98357a....)