ALSA: snd-usb: properly initialize the sync endpoint
PATCH 1/1 ALSA: snd-usb: properly initialize the sync endpoint
Jeffrey Barish reported an obvious bug in the pcm part of the usb-audio driver which causes the code to not initialize the sync endpoint from configure_endpoint().
--- sound/usb/pcm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
sound/usb/pcm.c +1 -1
@@ -458,7 +458,7 @@ static int configure_endpoint(struct snd_usb_substream *subs)return ret;if (subs->sync_endpoint) - ret = snd_usb_endpoint_set_params(subs->data_endpoint, + ret = snd_usb_endpoint_set_params(subs->sync_endpoint, subs->pcm_format, subs->channels, subs->period_bytes,
Signature · 1 line
1.7.11.7
Takashi Iwai
AppliedAt Thu, 22 Nov 2012 20:27:59 +0100,
Quoted 8 lines · Daniel Mack
Jeffrey Barish reported an obvious bug in the pcm part of the usb-audio driver which causes the code to not initialize the sync endpoint from
configure_endpoint().Reported-by Jeffrey Barish <[email protected]>Signed-off-by Daniel Mack <[email protected]>Cc [email protected] [3.5+]
Thanks, applied.
Takashi
Quoted 20 lines
--- sound/usb/pcm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)sound/usb/pcm.c +1
-1@@ -458,7 +458,7 @@ static int configure_endpoint(struct snd_usb_substream *subs)return ret;if (subs->sync_endpoint) - ret = snd_usb_endpoint_set_params(subs->data_endpoint, + ret = snd_usb_endpoint_set_params(subs->sync_endpoint, subs->pcm_format, subs->channels, subs->period_bytes,Signature · 1 line
1.7.11.7
Hi Daniel, Takashi,
Quoted 7 lines · Takashi Iwai
At Thu, 22 Nov 2012 20:27:59 +0100,
Quoted 5 lines · Daniel Mack
Jeffrey Barish reported an obvious bug in the pcm part of the usb-audio driver which causes the code to not initialize the sync endpoint from
configure_endpoint().
Quoted 5 lines
Quoted 3 lines
Reported-by Jeffrey Barish <jeff_barish at earthlink.net>Signed-off-by Daniel Mack <zonque at gmail.com>Cc stable at kernel.org [3.5+]Thanks, applied.
This breaks the pcm init for the FT C400 - the reason is once again the mismatch between sync and data in terms of channels and period bytes.
I didn't notice it, since I was always opening capture and playback at the same time.
After reverting it works as expected (for capture + playback) - however, the revert is not a fix:
If I open only the playback stream from userspace (using jack with -P), it will error out and then it will refuse to open pcm even for capture. But if I first open the device for capture (using jackd with -C), stop it, then open just the playback, it works. Not surprising, since the sync ep was already set up.
Any suggestions on how to initialize the sync ep with its specific channel and period bytes paramaters?
Cheers,
Eldad
Quoted 28 lines · Eldad Zack
Quoted 7 lines · Takashi Iwai
At Thu, 22 Nov 2012 20:27:59 +0100,
Quoted 5 lines · Daniel Mack
Jeffrey Barish reported an obvious bug in the pcm part of the usb-audio driver which causes the code to not initialize the sync endpoint from
configure_endpoint().Quoted 5 lines
Quoted 3 lines
Reported-by Jeffrey Barish <jeff_barish at earthlink.net>Signed-off-by Daniel Mack <zonque at gmail.com>Cc stable at kernel.org [3.5+]Thanks, applied.
This breaks the pcm init for the FT C400 - the reason is once again the mismatch between sync and data in terms of channels and period bytes.
I didn't notice it, since I was always opening capture and playback at the same time.After reverting it works as expected (for capture + playback) - however, the revert is not a fix:
If I open only the playback stream from userspace (using jack with -P), it will error out and then it will refuse to open pcm even for capture. But if I first open the device for capture (using jackd with -C), stop it, then open just the playback, it works. Not surprising, since the sync ep was already set up.
Quoted 2 lines
Any suggestions on how to initialize the sync ep with its specific channel and period bytes paramaters?
Update: I found a solution for this - I'll post it with the C400 v4 (today or tomorrow).
Cheers,
Eldad