7 Oct
2013
7 Oct
'13
12:34 p.m.
At Sun, 6 Oct 2013 22:31:14 +0200, Eldad Zack wrote:
On some devices, if the endpoint for the other direction is in use, setting one interface will shutdown the other (in use) endpoint. This patch moves all of the alternate setting operations for pcm ops to one function which checks if we can do so.
If current alternate is 0, it is safe to set.
Is this check needed for all devices?
The combination of playback and capture streams in snd_usb_substream is casual, just depending on the enumeration. It doesn't always mean that these are coupled. For non-implicit-fb devices, won't this result in a false positive?
Also...
+static int subs_set_interface(struct snd_usb_substream *subs, int ifnum,
int altsetting)
+{
- struct snd_usb_substream *other_subs;
- int err;
- snd_printdd(KERN_DEBUG "%s: Requested set interface %d alts %d\n",
__func__, ifnum, altsetting);
- if (subs == NULL)
return usb_set_interface(subs->dev, ifnum, altsetting);
It must lead to Oops.
thanks,
Takashi