[alsa-devel] [PATCH - ALSA: usbaudio: Add basic support for M-AudioAdd basic support for M-Audio Fast Track Ultra series

Takashi Iwai tiwai at suse.de
Thu Mar 25 12:37:33 CET 2010


At Thu, 25 Mar 2010 11:29:14 +0100,
Felix Homann wrote:
> 
> This adds basic support for M-Audio's Fast Track Ultra series of USB audio interfaces. It is a refactored version of
> the patch Clemens Ladisch posted some time ago. Neither playback nor capturing work properly at 44100 Hz (don't know why).
> The other sampling rates work properly. There's no support for the DSP mixer, yet.
> 
> Kind regards,
> 
> Felix
> 
> Signed-off-by: Felix Homann <fexpop at web.de>

Thanks, applied now (with a fix of summary and comments).


Takashi

> 
> diff --git a/usb/endpoint.c b/usb/endpoint.c
> index b1309cd..7b84b61 100644
> --- a/usb/endpoint.c
> +++ b/usb/endpoint.c
> @@ -317,6 +317,8 @@ int snd_usb_parse_audio_endpoints(struct snd_usb_audio *chip, int iface_no)
>  			break;
>  		case USB_ID(0x041e, 0x3020): /* Creative SB Audigy 2 NX */
>  		case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */
> +		case USB_ID(0x0763, 0x2080): /* M-Audio Fast Track Ultra 8 */
> +		case USB_ID(0x0763, 0x2081): /* M-Audio Fast Track Ultra 8R */
>  			/* doesn't set the sample rate attribute, but supports it */
>  			fp->attributes |= UAC_EP_CS_ATTR_SAMPLE_RATE;
>  			break;
> diff --git a/usb/quirks-table.h b/usb/quirks-table.h
> index 81c5f8a..91ddef3 100644
> --- a/usb/quirks-table.h
> +++ b/usb/quirks-table.h
> @@ -1826,6 +1826,60 @@ YAMAHA_DEVICE(0x7010, "UB99"),
>  		}
>  	}
>  },
> +{
> +	USB_DEVICE(0x0763, 0x2080),
> +	.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
> +		/* .vendor_name = "M-Audio", */
> +		/* .product_name = "Fast Track Ultra 8", */
> +		.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_STANDARD_INTERFACE
> +			},
> +			{
> +				.ifnum = 2,
> +				.type = QUIRK_AUDIO_STANDARD_INTERFACE
> +			},
> +			/* interface 3 (MIDI) is standard compliant */
> +			{
> +				.ifnum = -1
> +			}
> +		}
> +	}
> +},
> +{
> +	USB_DEVICE(0x0763, 0x2081),
> +	.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
> +		/* .vendor_name = "M-Audio", */
> +		/* .product_name = "Fast Track Ultra 8R", */
> +		.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_STANDARD_INTERFACE
> +			},
> +			{
> +				.ifnum = 2,
> +				.type = QUIRK_AUDIO_STANDARD_INTERFACE
> +			},
> +			/* interface 3 (MIDI) is standard compliant */
> +			{
> +				.ifnum = -1
> +			}
> +		}
> +	}
> +},
>  
>  /* Casio devices */
>  {
> diff --git a/usb/urb.c b/usb/urb.c
> index ad50d43..e2b7c47 100644
> --- a/usb/urb.c
> +++ b/usb/urb.c
> @@ -918,6 +918,11 @@ void snd_usb_init_substream(struct snd_usb_stream *as,
>  		case USB_ID(0x041e, 0x3f0a): /* E-Mu Tracker Pre */
>  			subs->ops.retire_sync = retire_playback_sync_urb_hs_emu;
>  			break;
> +		case USB_ID(0x0763, 0x2080): /* M-Audio Fast Track Ultra 8  */
> +		case USB_ID(0x0763, 0x2081): /* M-Audio Fast Track Ultra 8R */
> +			subs->ops.prepare_sync = prepare_playback_sync_urb;
> +			subs->ops.retire_sync = retire_playback_sync_urb;
> +			break;
>  		}
>  	}
>  
> -- 
> 1.7.0.3
> 


More information about the Alsa-devel mailing list