[alsa-devel] usb-audio: Reloop Play support (TI TUSB3200AC)

Daniel Mack zonque at gmail.com
Sat Oct 20 15:06:54 CEST 2012


On 20.10.2012 15:03, Didier 'Ptitjes' Villevalois wrote:
> I'm making some progress!! :)

Very good.

> I did not yet tried what you suggested below. But I did add that to
> quirk-table.h:
> 
> #if 1
> /* Reloop Play */
> {
> 	USB_DEVICE(0x200c, 0x100b),
> 	.bInterfaceClass = USB_CLASS_PER_INTERFACE,
> 	.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
> 		.vendor_name = "Reloop",
> 		.product_name = "Play",
> 		.ifnum = QUIRK_ANY_INTERFACE,
> 		.type = QUIRK_COMPOSITE,
> 		.data = &(const struct snd_usb_audio_quirk[]) {
> 			{
> 				.ifnum = 0,
> 				.type = QUIRK_IGNORE_INTERFACE,
> 			},
> 			{
> 				.ifnum = 1,
> 				.type = QUIRK_AUDIO_FIXED_ENDPOINT,
> 				.data = &(const struct audioformat) {
> 					.formats = SNDRV_PCM_FMTBIT_S24_LE,
> 					.channels = 4,
> 					.iface = 1,
> 					.altsetting = 1,
> 					.altset_idx = 1,
> 					.attributes = 0,
> 					.endpoint = 0x01,
> 					.ep_attr = 0x05,
> 					.rates = SNDRV_PCM_RATE_44100 |
> 						 SNDRV_PCM_RATE_48000,
> 					.rate_min = 44100,
> 					.rate_max = 48000,
> 					.nr_rates = 2,
> 					.rate_table = (unsigned int[]) {
> 						44100, 48000
> 					}
> 				}
> 			},
> 			{
> 				.ifnum = -1
> 			}
> 		}
> 	}
> },
> #endif
> 
> Did some:
> rmmod snd-usb-audio && make modules && cp -v
> sound/usb/snd-usb*.ko /lib/modules/3.5.7-mbp83+/kernel/sound/usb/
> 
> Added this to my .asoundrc:
> 
> pcm.play {
>     type plug
>     slave {
>         pcm "hw:1"
>         format S24_LE
>         channels 4
>     }
> }
> 
> And now I don't have strange sounds when plugin the card but silence.
> And I can hear a distant "Front Center" above some noise (but no noise
> in-beetween the words) when doing :

Ok, but you still need the firmware I guess? Or does this even work
after you plugged in the device under Linux?

> didier at didier-laptop ~ $ cat /proc/asound/card1/stream0 && aplay
> -Dplay /usr/share/sounds/alsa/Front_Center.wav
> Reloop Play at usb-0000:00:1a.7-1.3, full speed : USB Audio
> 
> Playback:
>   Status: Stop
>   Interface 1
>     Altset 1
>     Format: S24_LE
>     Channels: 4
>     Endpoint: 1 OUT (ADAPTIVE)
>     Rates: 44100, 48000
> Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit
> Little Endian, Rate 48000 Hz, Mono
> 
> I guess now is just finding the correct values for:
> 
> - .formats (which can any of the 24 bits formats)
> - .maxPacketSize (not clear to me what this is)
> - .ep_attr (not clear to me what a endpoint is and what are those ASYNC,
> ADAPTIVE, ISOCHRONOUS attributes are nor the hex value table)
> 
> Am I right ??

Possibly yes. You can try and blindly guess them, or really dive into
the logs and try to understand the reason.


Daniel




More information about the Alsa-devel mailing list