[PATCH v3 3/9] ALSA: hda: Introduce snd_hdac_stream_wait_drsm()

Takashi Iwai tiwai at suse.de
Thu Oct 27 13:05:49 CEST 2022


On Thu, 27 Oct 2022 12:29:35 +0200,
Amadeusz Sławiński wrote:
> 
> On 10/27/2022 12:21 PM, Takashi Iwai wrote:
> > On Thu, 27 Oct 2022 10:23:25 +0200,
> > Cezary Rojewski wrote:
> >> --- a/sound/hda/hdac_stream.c
> >> +++ b/sound/hda/hdac_stream.c
> >> @@ -821,6 +821,27 @@ void snd_hdac_stream_drsm_enable(struct hdac_bus *bus,
> >>   }
> >>   EXPORT_SYMBOL_GPL(snd_hdac_stream_drsm_enable);
> >>   +/*
> >> + * snd_hdac_stream_wait_drsm - wait for HW to clear RSM for a stream
> >> + * @azx_dev: HD-audio core stream to await RSM for
> >> + *
> >> + * Returns 0 on success and -ETIMEDOUT upon a timeout.
> >> + */
> >> +int snd_hdac_stream_wait_drsm(struct hdac_stream *azx_dev)
> >> +{
> >> +	struct hdac_bus *bus = azx_dev->bus;
> >> +	u32 mask, reg;
> >> +	int ret;
> >> +
> >> +	mask = 1 << azx_dev->index;
> >> +
> >> +	ret = readb_poll_timeout(bus->drsmcap + AZX_REG_DRSM_CTL, reg, !(reg & mask), 250, 2000);
> > 
> > Remember that HD-audio bus doesn't always allow readb().  Tegra
> > requires the aligned access, for example.
> > 
> 
> The readb_poll_timeout macro was updated to take care of that,
> https://lore.kernel.org/all/20221007084856.1638302-1-amadeuszx.slawinski@linux.intel.com/
> so it should be fine?

This patch doesn't use that macro...


Takashi


More information about the Alsa-devel mailing list