[PATCH v3 3/9] ALSA: hda: Introduce snd_hdac_stream_wait_drsm()
Takashi Iwai
tiwai at suse.de
Thu Oct 27 12:21:53 CEST 2022
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.
Takashi
More information about the Alsa-devel
mailing list