[ALSA] Fix substream selection in PCM and rawmidi
The PCM and rawmidi substreams can be selected explicitly by opening control handle and set via *_PREFER_SUBDEVICE ioctl. But, when multiple controls are opened, the driver gets confused. The patch fixes the initialization of prefer_*_subdevice and the check of multiple controls. The first set subdevice is picked up as the valid one. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
committed by
Jaroslav Kysela
parent
f03d68fe34
commit
2529bba760
@ -430,7 +430,8 @@ static int snd_rawmidi_open(struct inode *inode, struct file *file)
|
||||
kctl = snd_ctl_file(list);
|
||||
if (kctl->pid == current->pid) {
|
||||
subdevice = kctl->prefer_rawmidi_subdevice;
|
||||
break;
|
||||
if (subdevice != -1)
|
||||
break;
|
||||
}
|
||||
}
|
||||
up_read(&card->controls_rwsem);
|
||||
|
Reference in New Issue
Block a user