[alsa-devel] [WIP PATCH] Scarlett mixer interface for 6i6, 18i6, 18i8 and 18i20.
Tobias Hoffmann
smilingthax at googlemail.com
Mon Oct 13 12:58:21 CEST 2014
One more thing:
On 07/10/14 17:16, David Henningsson wrote:
> + /* initialize sampling rate to 48000 */
> + err = set_ctl_urb2(mixer->chip, UAC2_CS_CUR, 0x0100, 0x29, "\x80\xbb\x00\x00", 4);
> + if (err< 0)
> + return err;
> +
There have been two reports of users that had to replace the
set_ctl_urb2 line with:
char buffer[4] = { '\x80', '\xbb', '\x00', '\x00' };
err = set_ctl_urb2(mixer->chip, UAC2_CS_CUR, 0x0100, 0x29, buffer, 4);
otherwise they would get a kernel oops, e.g.:
BUG: unable to handle kernel paging request at ffffffffa0b43440
IP: [<ffffffff8136f3c2>] memcpy+0x12/0x110
...
Call Trace:
[<ffffffffa0b311d2>] ? snd_usb_ctl_msg+0xc2/0x160 [snd_usb_audio]
[<ffffffffa0b3b7aa>] set_ctl_urb2+0xaa/0x100 [snd_usb_audio]
[<ffffffffa0b3c9fa>] scarlett_mixer_controls+0x28a/0x4c0
[snd_usb_audio]
...
I'm not sure, why this happen, and why only for very few users.
Maybe it has to do with a particular compiler, or some kernel config
setting that places the bytes "somewhere else" when they are passed as
string?
Tobias
More information about the Alsa-devel
mailing list