[PATCH] ASoC: dmic: Allow GPIO operations to sleep
Tzung-Bi Shih
tzungbi at google.com
Wed Apr 22 11:24:54 CEST 2020
On Wed, Apr 22, 2020 at 4:37 PM Mark Brown <broonie at 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.c#L41)
More information about the Alsa-devel
mailing list