[alsa-devel] Rane SL-4 USB sound card
Tuukka Pasanen
pasanen.tuukka at gmail.com
Mon Jul 6 12:15:52 CEST 2015
Hello,
Thanks you for you reply. That did the trick almost. It only gives
sysdefault with two channels and error:
[176317.418587] usb 1-5: parse_audio_format_rates_v2(): unable to
retrieve number of sample rates (clock 5)
[176317.419156] usb 1-5: parse_audio_format_rates_v2(): unable to
retrieve number of sample rates (clock 5)
I figured out this kind of QUIRK which seems to be working (go to test
tomorrow more). I would go with first quirck as it's looking simpler but
I can't add rates to it?
{
USB_DEVICE(0x1cc5, 0x000f),
.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
.ifnum = QUIRK_ANY_INTERFACE,
.type = QUIRK_COMPOSITE,
.data = (const struct snd_usb_audio_quirk[]) {
{
.ifnum = 1,
.type = QUIRK_AUDIO_FIXED_ENDPOINT,
.data = &(const struct audioformat) {
.formats = SNDRV_PCM_FMTBIT_S24_3LE,
.channels = 4,
.iface = 1,
.altsetting = 1,
.altset_idx = 1,
.attributes = UAC_EP_CS_ATTR_SAMPLE_RATE,
.endpoint = 0x06,
.ep_attr = USB_ENDPOINT_XFER_ISOC,
.rates = SNDRV_PCM_RATE_48000 |
SNDRV_PCM_RATE_96000,
.rate_min = 48000,
.rate_max = 96000,
.nr_rates = 2,
.rate_table = (unsigned int[]) {
48000, 96000
}
}
},
{
.ifnum = 2,
.type = QUIRK_AUDIO_FIXED_ENDPOINT,
.data = &(const struct audioformat) {
.formats = SNDRV_PCM_FMTBIT_S24_3LE,
.channels = 4,
.iface = 2,
.altsetting = 1,
.altset_idx = 1,
.attributes = UAC_EP_CS_ATTR_SAMPLE_RATE,
.endpoint = 0x82,
.ep_attr = USB_ENDPOINT_XFER_ISOC,
.rates = SNDRV_PCM_RATE_48000 |
SNDRV_PCM_RATE_96000,
.rate_min = 48000,
.rate_max = 96000,
.nr_rates = 2,
.rate_table = (unsigned int[]) {
48000, 96000
}
}
},
{
.ifnum = -1,
}
}
}
},
Sincerely,
Tuukka
05.07.2015, 20:32, Clemens Ladisch kirjoitti:
> Tuukka Pasanen wrote:
>> I've been hacking to get Rane SL-4 USB audio ... to work with ALSA.
>> I have compiled kernel and tried to get USB-quirks to work with this ... it doesn't do the trick
>> If I need interface association how to do that?
> The interface association descriptor should have been provided by the firmware.
>
> Anyway, try the following quirk:
>
> {
> USB_DEVICE(0x1cc5, 0x000f),
> .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
> .ifnum = QUIRK_ANY_INTERFACE,
> .type = QUIRK_COMPOSITE,
> .data = (const struct snd_usb_audio_quirk[]) {
> {
> .ifnum = 1,
> .type = QUIRK_AUDIO_STANDARD_INTERFACE
> },
> {
> .ifnum = 2,
> .type = QUIRK_AUDIO_STANDARD_INTERFACE
> },
> {
> .ifnum = -1,
> }
> }
> }
> },
>
>
> Regards,
> Clemens
More information about the Alsa-devel
mailing list