[PATCH v2 1/2] ASoC: rt1015p: move SDB control from trigger to DAPM

Tzung-Bi Shih tzungbi at google.com
Thu Dec 10 17:34:52 CET 2020


On Thu, Dec 10, 2020 at 11:40 PM Mark Brown <broonie at kernel.org> wrote:
>
> On Thu, Dec 10, 2020 at 11:36:16AM +0800, Tzung-Bi Shih wrote:
>
> > +     switch (event) {
> > +     case SND_SOC_DAPM_PRE_PMU:
> > +             gpiod_set_value(rt1015p->sdb, 1);
> > +             dev_dbg(component->dev, "set sdb to 1");
>
> Now this is in DAPM it's not in atomic context so it'd be more friendly
> to use gpiod_set_value_cansleep() so that it'll work even if the GPIO
> isn't atomic safe.

Strange, I thought I should get a warning message because of the
following statement in gpiod_set_value (but it didn't):
WARN_ON(desc->gdev->chip->can_sleep);

Also I dumped the value from gpiod_cansleep(rt1015p->sdb), it returned 0.

Is it safe to call gpiod_set_value_cansleep() even if the GPIO
controller doesn't support it?  (I guess yes, _cansleep could be just
an advice)


More information about the Alsa-devel mailing list