On Mon, 18 Oct 2021 17:05:13 +0200, Pierre-Louis Bossart wrote: > > > > >> From: Ranjani Sridharan <ranjani.sridharan@xxxxxxxxxxxxxxx> > >> > >> 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