[PATCH v3 4/4] ASoC: SOF: Intel: add .ack support for HDaudio platforms

Takashi Iwai tiwai at suse.de
Mon Oct 18 18:17:55 CEST 2021


On Mon, 18 Oct 2021 17:05:13 +0200,
Pierre-Louis Bossart wrote:
> 
> 
> 
> >> From: Ranjani Sridharan <ranjani.sridharan at linux.intel.com>
> >>
> >> When we disable rewinds, then the .ack can be used to program SPIB
> >> with the application pointer, which allows the HDaudio DMA to save
> >> power by opportunistically bursting data transfers when the path to
> >> memory is enabled (and conversely to shut it down when there are no
> >> transfer requests).
> >>
> >> The SPIB register can only be programmed with incremental values with
> >> wrap-around after the DMA RUN bits are set. For simplicity, we set the
> >> INFO_NO_REWINDS flag in the .open callback when we already need to
> >> program the SNDRV_PCM_INFO_EXPLICIT_SYNC flag.
> > 
> > Using this flag itself isn't wrong, but if we need to check only
> > appl_ptr updates, a more appropriate flag is
> > SNDRV_PCM_INFO_SYNC_APPLPTR.  This will still allow the mmap of status
> > (i.e. hwptr update) while the mmap of control is disabled for
> > appl_ptr.  SNDRV_PCM_INFO_EXPLICIT_SYNC flag disables both, instead.
> 
> I don't mind, but now we're officially out of INFO flags :-)
> 
> NO_REWINDS took the last available bit...

I mean only about the use EXPLICIT_SYNC flag.  There has been already
an info flag SYNC_APPLPTR, and this should suffice for your purpose.
In a nutshell:

EXPLICIT_SYNC = disable both control and status mmaps
SYNC_APPLPTR = disable only control mmap


Takashi


More information about the Alsa-devel mailing list