[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