The original PCM open mode was lost by the change of default non-blocking
open. The patch fix the restoration of the original open mode.
mmap_emulation, sync_ptr_ioctl);
if (err < 0)
return err;
- if (nonblock && ! (mode & SND_PCM_NONBLOCK))
+ if (nonblock && ! (mode & SND_PCM_NONBLOCK)) {
/* revert to blocking mode for read/write access */
snd_pcm_hw_nonblock(*pcmp, 0);
+ (*pcmp)->mode = mode;
+ }
hw = (*pcmp)->private_data;
if (format != SND_PCM_FORMAT_UNKNOWN)