[PATCH] ALSA: firewire-lib: support NO_PERIOD_WAKEUP in ALSA PCM runtime

Takashi Iwai tiwai at suse.de
Fri May 28 11:07:48 CEST 2021


On Thu, 27 May 2021 14:32:53 +0200,
Takashi Sakamoto wrote:
> 
> Drivers of ALSA firewire stack can process packets for IT/IR context in
> process context when the process operates ALSA PCM character device by
> calling ioctl(2) with some requests. The ioctl requests are:
> 
>  * SNDRV_PCM_IOCTL_HWSYNC
>  * SNDRV_PCM_IOCTL_SYNC_PTR
>  * SNDRV_PCM_IOCTL_REWIND
>  * SNDRV_PCM_IOCTL_FORWARD
>  * SNDRV_PCM_IOCTL_WRITEI_FRAMES
>  * SNDRV_PCM_IOCTL_READI_FRAMES
>  * SNDRV_PCM_IOCTL_WRITEN_FRAMES
>  * SNDRV_PCM_IOCTL_READN_FRAMES
> 
> This means that general application can process PCM frames apart from
> hardware IRQ invocation, even if they are programmed by either IRQ-based
> scheduling model or Timer-based scheduling model.
> 
> This commit add support for Timer-based scheduling model by allowing
> PCM runtime to suppress both process wakeup per period and scheduling
> hardware IRQ.
> 
> SNDRV_PCM_INFO_BATCH is obsoleted since ALSA IEC 61883-1/6 packet streaming
> engine can report the number of transferred PCM frames within PCM period
> boundary. The granularity equals to SYT_INTERVAL in blocking transmission.
> In non-blocking transmission, it doesn't equal to SYT_INTERVAL but doesn't
> exceed.
> 
> This patch is tested with PulseAudio, and --sched-model option of axfer
> with fix against the issue reported at:
> 
>  * https://lore.kernel.org/alsa-devel/687f9871-7484-1370-04d1-9c968e86f72b@linux.intel.com/#r
> 
> Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>

Thanks, applied.


Takashi


More information about the Alsa-devel mailing list