The check in snd_pcm_mmap_emul_refine() is bogus and buggy.
Since the changed access type is took back at snd_pcm_mmap_emul_refine
again, it has to check the availability of mmap at each time.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
snd_mask_none(&mask);
err = snd_pcm_hw_refine(map->gen.slave, params);
if (err < 0) {
- /* try to use RW_* */
snd_pcm_hw_params_t new = *params;
- if (!(params->rmask & (1<<SND_PCM_HW_PARAM_ACCESS)))
- return err;
+ /* try to use RW_* */
if (snd_pcm_access_mask_test(&oldmask,
SND_PCM_ACCESS_MMAP_INTERLEAVED) &&
!snd_pcm_access_mask_test(&oldmask,