[alsa-devel] Regression in Traktor Audio10 driver (snd-usb-audio) mixer flags
Sometime between kernels 3.13 (ubuntu 14.04) and 3.19 (15.04) there was a regression that caused the mixer elements of the Traktor Audio10 driver to stop responding to changes to True. I have an older machine still running 14.04, and if I open alsamixer I can see and interact with the 8 basic boolean switches:
numid=3,iface=MIXER,name='Direct Thru Channel A' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=4,iface=MIXER,name='Direct Thru Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=5,iface=MIXER,name='Direct Thru Channel C' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=6,iface=MIXER,name='Direct Thru Channel D' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=7,iface=MIXER,name='Phono Input Channel A' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=8,iface=MIXER,name='Phono Input Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=9,iface=MIXER,name='Phono Input Channel C' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=10,iface=MIXER,name='Phono Input Channel D' ; type=BOOLEAN,access=rw------,values=1 : values=off
or I can use amixer: amixer -c T10 cset numid=8 on
however on my newer machine, with ubuntu 15.04 and 15.10, I am unable to change the values to true. I am a member of the audio group and I have also tried with sudo, but when I try to set the value on nothing happens:
$ amixer -c T10 cset numid=8 on numid=8,iface=MIXER,name='Phono Input Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off
The fun part is, if I connect the card to my mac I can set startup conditions for these flags. I can set them to true, and when I connect to my linux machines the flags start up as true. And then, even on the newer kernel, I can turn them off! But I can't turn them back on again.
This sound card is the one I'd like to recommend officially for the Mixxx DJ project so I'd really like to get to the bottom of this issue.
thanks, Owen Williams
A Lead Developer, Mixxx.org
Sorry to bump my own thread, but I don't know how else to report bugs to ALSA (I think the bug tracker was abandoned a while back?). I'm willing to do work to diagnose and fix this problem (I'm comfortable building kernels, doing git bisect, using gdb, etc) but I need some guidance about how to start.
On Thu, 2015-12-31 at 13:26 -0500, Owen Williams wrote:
Sometime between kernels 3.13 (ubuntu 14.04) and 3.19 (15.04) there was a regression that caused the mixer elements of the Traktor Audio10 driver to stop responding to changes to True. I have an older machine still running 14.04, and if I open alsamixer I can see and interact with the 8 basic boolean switches:
numid=3,iface=MIXER,name='Direct Thru Channel A' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=4,iface=MIXER,name='Direct Thru Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=5,iface=MIXER,name='Direct Thru Channel C' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=6,iface=MIXER,name='Direct Thru Channel D' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=7,iface=MIXER,name='Phono Input Channel A' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=8,iface=MIXER,name='Phono Input Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=9,iface=MIXER,name='Phono Input Channel C' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=10,iface=MIXER,name='Phono Input Channel D' ; type=BOOLEAN,access=rw------,values=1 : values=off
or I can use amixer: amixer -c T10 cset numid=8 on
however on my newer machine, with ubuntu 15.04 and 15.10, I am unable to change the values to true. I am a member of the audio group and I have also tried with sudo, but when I try to set the value on nothing happens:
$ amixer -c T10 cset numid=8 on numid=8,iface=MIXER,name='Phono Input Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off
The fun part is, if I connect the card to my mac I can set startup conditions for these flags. I can set them to true, and when I connect to my linux machines the flags start up as true. And then, even on the newer kernel, I can turn them off! But I can't turn them back on again.
This sound card is the one I'd like to recommend officially for the Mixxx DJ project so I'd really like to get to the bottom of this issue.
thanks, Owen Williams
A Lead Developer, Mixxx.org
On Fri, 08 Jan 2016 15:18:58 +0100, Owen Williams wrote:
Sorry to bump my own thread, but I don't know how else to report bugs to ALSA (I think the bug tracker was abandoned a while back?). I'm willing to do work to diagnose and fix this problem (I'm comfortable building kernels, doing git bisect, using gdb, etc) but I need some guidance about how to start.
If the problem is easily reproducible, could you try bisection? This is the best way to spot out the cause.
thanks,
Takashi
On Thu, 2015-12-31 at 13:26 -0500, Owen Williams wrote:
Sometime between kernels 3.13 (ubuntu 14.04) and 3.19 (15.04) there was a regression that caused the mixer elements of the Traktor Audio10 driver to stop responding to changes to True. I have an older machine still running 14.04, and if I open alsamixer I can see and interact with the 8 basic boolean switches:
numid=3,iface=MIXER,name='Direct Thru Channel A' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=4,iface=MIXER,name='Direct Thru Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=5,iface=MIXER,name='Direct Thru Channel C' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=6,iface=MIXER,name='Direct Thru Channel D' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=7,iface=MIXER,name='Phono Input Channel A' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=8,iface=MIXER,name='Phono Input Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=9,iface=MIXER,name='Phono Input Channel C' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=10,iface=MIXER,name='Phono Input Channel D' ; type=BOOLEAN,access=rw------,values=1 : values=off
or I can use amixer: amixer -c T10 cset numid=8 on
however on my newer machine, with ubuntu 15.04 and 15.10, I am unable to change the values to true. I am a member of the audio group and I have also tried with sudo, but when I try to set the value on nothing happens:
$ amixer -c T10 cset numid=8 on numid=8,iface=MIXER,name='Phono Input Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off
The fun part is, if I connect the card to my mac I can set startup conditions for these flags. I can set them to true, and when I connect to my linux machines the flags start up as true. And then, even on the newer kernel, I can turn them off! But I can't turn them back on again.
This sound card is the one I'd like to recommend officially for the Mixxx DJ project so I'd really like to get to the bottom of this issue.
thanks, Owen Williams
A Lead Developer, Mixxx.org
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Unfortunately I can't narrow the problem down more specifically than the changes from Ubuntu-3.18.0-14.14 to Ubuntu-3.19.0-1.1. If I try to git bisect between those, I end up with commits that don't have the proper debian packaging information so I can't build packages. Any ideas? I see a bunch of merges for the sound subsystem in the 3.19 branch so if can figure out how to build debs I bet the problem is in there.
On Sat, 2016-01-09 at 08:42 +0100, Takashi Iwai wrote:
On Fri, 08 Jan 2016 15:18:58 +0100, Owen Williams wrote:
Sorry to bump my own thread, but I don't know how else to report bugs to ALSA (I think the bug tracker was abandoned a while back?). I'm willing to do work to diagnose and fix this problem (I'm comfortable building kernels, doing git bisect, using gdb, etc) but I need some guidance about how to start.
If the problem is easily reproducible, could you try bisection? This is the best way to spot out the cause.
thanks,
Takashi
On Thu, 2015-12-31 at 13:26 -0500, Owen Williams wrote:
Sometime between kernels 3.13 (ubuntu 14.04) and 3.19 (15.04) there was a regression that caused the mixer elements of the Traktor Audio10 driver to stop responding to changes to True. I have an older machine still running 14.04, and if I open alsamixer I can see and interact with the 8 basic boolean switches:
numid=3,iface=MIXER,name='Direct Thru Channel A' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=4,iface=MIXER,name='Direct Thru Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=5,iface=MIXER,name='Direct Thru Channel C' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=6,iface=MIXER,name='Direct Thru Channel D' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=7,iface=MIXER,name='Phono Input Channel A' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=8,iface=MIXER,name='Phono Input Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=9,iface=MIXER,name='Phono Input Channel C' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=10,iface=MIXER,name='Phono Input Channel D' ; type=BOOLEAN,access=rw------,values=1 : values=off
or I can use amixer: amixer -c T10 cset numid=8 on
however on my newer machine, with ubuntu 15.04 and 15.10, I am unable to change the values to true. I am a member of the audio group and I have also tried with sudo, but when I try to set the value on nothing happens:
$ amixer -c T10 cset numid=8 on numid=8,iface=MIXER,name='Phono Input Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off
The fun part is, if I connect the card to my mac I can set startup conditions for these flags. I can set them to true, and when I connect to my linux machines the flags start up as true. And then, even on the newer kernel, I can turn them off! But I can't turn them back on again.
This sound card is the one I'd like to recommend officially for the Mixxx DJ project so I'd really like to get to the bottom of this issue.
thanks, Owen Williams
A Lead Developer, Mixxx.org
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On Sun, 10 Jan 2016 21:20:17 +0100, Owen Williams wrote:
Unfortunately I can't narrow the problem down more specifically than the changes from Ubuntu-3.18.0-14.14 to Ubuntu-3.19.0-1.1. If I try to git bisect between those, I end up with commits that don't have the proper debian packaging information so I can't build packages. Any ideas? I see a bunch of merges for the sound subsystem in the 3.19 branch so if can figure out how to build debs I bet the problem is in there.
Well, usually you'd need to install the kernel manually without packaging. There aren't so wide spread files / directories, so it's not too hard to manage manually.
Takashi
On Sat, 2016-01-09 at 08:42 +0100, Takashi Iwai wrote:
On Fri, 08 Jan 2016 15:18:58 +0100, Owen Williams wrote:
Sorry to bump my own thread, but I don't know how else to report bugs to ALSA (I think the bug tracker was abandoned a while back?). I'm willing to do work to diagnose and fix this problem (I'm comfortable building kernels, doing git bisect, using gdb, etc) but I need some guidance about how to start.
If the problem is easily reproducible, could you try bisection? This is the best way to spot out the cause.
thanks,
Takashi
On Thu, 2015-12-31 at 13:26 -0500, Owen Williams wrote:
Sometime between kernels 3.13 (ubuntu 14.04) and 3.19 (15.04) there was a regression that caused the mixer elements of the Traktor Audio10 driver to stop responding to changes to True. I have an older machine still running 14.04, and if I open alsamixer I can see and interact with the 8 basic boolean switches:
numid=3,iface=MIXER,name='Direct Thru Channel A' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=4,iface=MIXER,name='Direct Thru Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=5,iface=MIXER,name='Direct Thru Channel C' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=6,iface=MIXER,name='Direct Thru Channel D' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=7,iface=MIXER,name='Phono Input Channel A' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=8,iface=MIXER,name='Phono Input Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=9,iface=MIXER,name='Phono Input Channel C' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=10,iface=MIXER,name='Phono Input Channel D' ; type=BOOLEAN,access=rw------,values=1 : values=off
or I can use amixer: amixer -c T10 cset numid=8 on
however on my newer machine, with ubuntu 15.04 and 15.10, I am unable to change the values to true. I am a member of the audio group and I have also tried with sudo, but when I try to set the value on nothing happens:
$ amixer -c T10 cset numid=8 on numid=8,iface=MIXER,name='Phono Input Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off
The fun part is, if I connect the card to my mac I can set startup conditions for these flags. I can set them to true, and when I connect to my linux machines the flags start up as true. And then, even on the newer kernel, I can turn them off! But I can't turn them back on again.
This sound card is the one I'd like to recommend officially for the Mixxx DJ project so I'd really like to get to the bottom of this issue.
thanks, Owen Williams
A Lead Developer, Mixxx.org
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Finally found the bad commit: SHA da6d276957ea56b9514aa5c8d885edf22f0b3e65 ALSA: usb-audio: Add resume support for Native Instruments controls
I did upgrade my firmware at some point, perhaps the newer firmware changed how this works. Happy to test whatever patches against a newer kernel (I'm on Wily, so 4.2.0-23).
Owen
On Tue, 2016-01-12 at 07:22 +0100, Takashi Iwai wrote:
On Sun, 10 Jan 2016 21:20:17 +0100, Owen Williams wrote:
Unfortunately I can't narrow the problem down more specifically than the changes from Ubuntu-3.18.0-14.14 to Ubuntu-3.19.0-1.1. If I try to git bisect between those, I end up with commits that don't have the proper debian packaging information so I can't build packages. Any ideas? I see a bunch of merges for the sound subsystem in the 3.19 branch so if can figure out how to build debs I bet the problem is in there.
Well, usually you'd need to install the kernel manually without packaging. There aren't so wide spread files / directories, so it's not too hard to manage manually.
Takashi
On Sat, 2016-01-09 at 08:42 +0100, Takashi Iwai wrote:
On Fri, 08 Jan 2016 15:18:58 +0100, Owen Williams wrote:
Sorry to bump my own thread, but I don't know how else to report bugs to ALSA (I think the bug tracker was abandoned a while back?). I'm willing to do work to diagnose and fix this problem (I'm comfortable building kernels, doing git bisect, using gdb, etc) but I need some guidance about how to start.
If the problem is easily reproducible, could you try bisection? This is the best way to spot out the cause.
thanks,
Takashi
On Thu, 2015-12-31 at 13:26 -0500, Owen Williams wrote:
Sometime between kernels 3.13 (ubuntu 14.04) and 3.19 (15.04) there was a regression that caused the mixer elements of the Traktor Audio10 driver to stop responding to changes to True. I have an older machine still running 14.04, and if I open alsamixer I can see and interact with the 8 basic boolean switches:
numid=3,iface=MIXER,name='Direct Thru Channel A' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=4,iface=MIXER,name='Direct Thru Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=5,iface=MIXER,name='Direct Thru Channel C' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=6,iface=MIXER,name='Direct Thru Channel D' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=7,iface=MIXER,name='Phono Input Channel A' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=8,iface=MIXER,name='Phono Input Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=9,iface=MIXER,name='Phono Input Channel C' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=10,iface=MIXER,name='Phono Input Channel D' ; type=BOOLEAN,access=rw------,values=1 : values=off
or I can use amixer: amixer -c T10 cset numid=8 on
however on my newer machine, with ubuntu 15.04 and 15.10, I am unable to change the values to true. I am a member of the audio group and I have also tried with sudo, but when I try to set the value on nothing happens:
$ amixer -c T10 cset numid=8 on numid=8,iface=MIXER,name='Phono Input Channel B' ; type=BOOLEAN,access=rw------,values=1 : values=off
The fun part is, if I connect the card to my mac I can set startup conditions for these flags. I can set them to true, and when I connect to my linux machines the flags start up as true. And then, even on the newer kernel, I can turn them off! But I can't turn them back on again.
This sound card is the one I'd like to recommend officially for the Mixxx DJ project so I'd really like to get to the bottom of this issue.
thanks, Owen Williams
A Lead Developer, Mixxx.org
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On Tue, 12 Jan 2016 22:24:41 +0100, Owen Williams wrote:
Finally found the bad commit: SHA da6d276957ea56b9514aa5c8d885edf22f0b3e65 ALSA: usb-audio: Add resume support for Native Instruments controls
Great, thanks for spotting out!
I did upgrade my firmware at some point, perhaps the newer firmware changed how this works. Happy to test whatever patches against a newer kernel (I'm on Wily, so 4.2.0-23).
Could you try the patch below?
Takashi
--- diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c index 0ce888dceed0..279025650568 100644 --- a/sound/usb/mixer_quirks.c +++ b/sound/usb/mixer_quirks.c @@ -793,7 +793,7 @@ static int snd_nativeinstruments_control_put(struct snd_kcontrol *kcontrol, return 0;
kcontrol->private_value &= ~(0xff << 24); - kcontrol->private_value |= newval; + kcontrol->private_value |= (unsigned int)newval << 24; err = snd_ni_update_cur_val(list); return err < 0 ? err : 1; }
Yes, that does allow me to use the mixer flags again. However I notice when I connect the device it no longer starts up with the flags in the default state I can specify when I connect the card to my mac -- is that the resume functionality that's supposed to work?
On Tue, 2016-01-12 at 23:17 +0100, Takashi Iwai wrote:
On Tue, 12 Jan 2016 22:24:41 +0100, Owen Williams wrote:
Finally found the bad commit: SHA da6d276957ea56b9514aa5c8d885edf22f0b3e65 ALSA: usb-audio: Add resume support for Native Instruments controls
Great, thanks for spotting out!
I did upgrade my firmware at some point, perhaps the newer firmware changed how this works. Happy to test whatever patches against a newer kernel (I'm on Wily, so 4.2.0-23).
Could you try the patch below?
Takashi
diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c index 0ce888dceed0..279025650568 100644 --- a/sound/usb/mixer_quirks.c +++ b/sound/usb/mixer_quirks.c @@ -793,7 +793,7 @@ static int snd_nativeinstruments_control_put(struct snd_kcontrol *kcontrol, return 0;
kcontrol->private_value &= ~(0xff << 24);
- kcontrol->private_value |= newval;
- kcontrol->private_value |= (unsigned int)newval << 24; err = snd_ni_update_cur_val(list); return err < 0 ? err : 1;
}
On Wed, 13 Jan 2016 05:23:53 +0100, Owen Williams wrote:
Yes, that does allow me to use the mixer flags again. However I notice when I connect the device it no longer starts up with the flags in the default state I can specify when I connect the card to my mac -- is that the resume functionality that's supposed to work?
This is likely by the restore via alsactl from the last saved state. It's nothing new, this should have been present before, too. But the regression also prevented this happening, so you might notice it now.
In anyway, I'm going to queue the fix to upstream tree.
thanks,
Takashi
On Tue, 2016-01-12 at 23:17 +0100, Takashi Iwai wrote:
On Tue, 12 Jan 2016 22:24:41 +0100, Owen Williams wrote:
Finally found the bad commit: SHA da6d276957ea56b9514aa5c8d885edf22f0b3e65 ALSA: usb-audio: Add resume support for Native Instruments controls
Great, thanks for spotting out!
I did upgrade my firmware at some point, perhaps the newer firmware changed how this works. Happy to test whatever patches against a newer kernel (I'm on Wily, so 4.2.0-23).
Could you try the patch below?
Takashi
diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c index 0ce888dceed0..279025650568 100644 --- a/sound/usb/mixer_quirks.c +++ b/sound/usb/mixer_quirks.c @@ -793,7 +793,7 @@ static int snd_nativeinstruments_control_put(struct snd_kcontrol *kcontrol, return 0;
kcontrol->private_value &= ~(0xff << 24);
- kcontrol->private_value |= newval;
- kcontrol->private_value |= (unsigned int)newval << 24; err = snd_ni_update_cur_val(list); return err < 0 ? err : 1;
}
Great, thanks for the fast fix. What's a good way of tracking the fix to figure out when it goes through the system and ends up in an ubuntu kernel?
Also, do you also maintain the pulseaudio configuration for this card? The current config is completely broken and I've created an alternative that works but isn't perfect.
thanks, Owen
On Wed, 2016-01-13 at 07:39 +0100, Takashi Iwai wrote:
On Wed, 13 Jan 2016 05:23:53 +0100, Owen Williams wrote:
Yes, that does allow me to use the mixer flags again. However I notice when I connect the device it no longer starts up with the flags in the default state I can specify when I connect the card to my mac -- is that the resume functionality that's supposed to work?
This is likely by the restore via alsactl from the last saved state. It's nothing new, this should have been present before, too. But the regression also prevented this happening, so you might notice it now.
In anyway, I'm going to queue the fix to upstream tree.
thanks,
Takashi
On Tue, 2016-01-12 at 23:17 +0100, Takashi Iwai wrote:
On Tue, 12 Jan 2016 22:24:41 +0100, Owen Williams wrote:
Finally found the bad commit: SHA da6d276957ea56b9514aa5c8d885edf22f0b3e65 ALSA: usb-audio: Add resume support for Native Instruments controls
Great, thanks for spotting out!
I did upgrade my firmware at some point, perhaps the newer firmware changed how this works. Happy to test whatever patches against a newer kernel (I'm on Wily, so 4.2.0-23).
Could you try the patch below?
Takashi
diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c index 0ce888dceed0..279025650568 100644 --- a/sound/usb/mixer_quirks.c +++ b/sound/usb/mixer_quirks.c @@ -793,7 +793,7 @@ static int snd_nativeinstruments_control_put(struct snd_kcontrol *kcontrol, return 0;
kcontrol->private_value &= ~(0xff << 24);
- kcontrol->private_value |= newval;
- kcontrol->private_value |= (unsigned int)newval << 24; err = snd_ni_update_cur_val(list); return err < 0 ? err : 1;
}
On Wed, 13 Jan 2016 15:58:06 +0100, Owen Williams wrote:
Great, thanks for the fast fix. What's a good way of tracking the fix to figure out when it goes through the system and ends up in an ubuntu kernel?
Better to ask Ubuntu people. I have no idea.
Also, do you also maintain the pulseaudio configuration for this card? The current config is completely broken and I've created an alternative that works but isn't perfect.
Better to ask ask PA people. PA configuration is basically independent from ALSA raw stuff.
Takashi
participants (2)
-
Owen Williams
-
Takashi Iwai