18 Mar
2023
18 Mar
'23
11:59 a.m.
On Sat, Mar 18, 2023 at 09:20:05AM +0900, Takashi Sakamoto wrote:
- Failure at tasklet for URB completion
It is softIRQ context. The stream lock is not acquired. It doesn't matter to call current XRUN API.
- Failure at PCM operation called by ALSA PCM application
It is process context. The stream lock is acquired before calling driver code. When detecting any type of failure, driver code stores the state. Then .pointer callback should return SNDRV_PCM_IOCTL_HWSYNC refering to the state.
Oops. I did copy-and-paste mistake here... It should be SNDRV_PCM_POS_XRUN instead of SNDRV_PCM_IOCTL_HWSYNC...
Regards
Takashi Sakamoto