aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2014-11-11 09:09:55 -0500
committerTakashi Iwai <tiwai@suse.de>2014-11-11 09:13:00 -0500
commitc63fcb9b67777b906c4515a868afbd96bae4e799 (patch)
tree85734c3f68cb590b37fdb376f160c2b1b7b0ead5 /sound/usb
parentd497a82fb18ed4b73c08f8b5a0935f937e2ea1fb (diff)
ALSA: usb-audio: Add duplex mode for Digidesign Mbox 1 and enable mixer
This patch provides duplex support for the Digidesign Mbox 1 sound card and has been a work in progress for about a year. Users have confirmed on my website that previous versions of this patch have worked on the hardware and I have been testing extensively. It also enables the mixer control for providing clock source selector based on the previous patch. The sample rate has been hardcoded to 48kHz because it works better with the S/PDIF sync mode when the sample rate is locked. This is the highest rate that the device supports and no loss of functionality is observed by restricting the sample rate apart from the inability to selec a lower rate. Signed-off-by: Damien Zammit <damien@zamaudio.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb')
-rw-r--r--sound/usb/quirks-table.h41
1 files changed, 32 insertions, 9 deletions
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
index c657752a420c..13f44fd0e930 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
@@ -2944,7 +2944,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2944 .data = (const struct snd_usb_audio_quirk[]){ 2944 .data = (const struct snd_usb_audio_quirk[]){
2945 { 2945 {
2946 .ifnum = 0, 2946 .ifnum = 0,
2947 .type = QUIRK_IGNORE_INTERFACE, 2947 .type = QUIRK_AUDIO_STANDARD_MIXER,
2948 }, 2948 },
2949 { 2949 {
2950 .ifnum = 1, 2950 .ifnum = 1,
@@ -2955,16 +2955,40 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2955 .iface = 1, 2955 .iface = 1,
2956 .altsetting = 1, 2956 .altsetting = 1,
2957 .altset_idx = 1, 2957 .altset_idx = 1,
2958 .attributes = UAC_EP_CS_ATTR_SAMPLE_RATE, 2958 .attributes = 0x4,
2959 .endpoint = 0x02, 2959 .endpoint = 0x02,
2960 .ep_attr = 0x01, 2960 .ep_attr = USB_ENDPOINT_XFER_ISOC |
2961 .rates = SNDRV_PCM_RATE_44100 | 2961 USB_ENDPOINT_SYNC_SYNC,
2962 SNDRV_PCM_RATE_48000, 2962 .maxpacksize = 0x130,
2963 .rate_min = 44100, 2963 .rates = SNDRV_PCM_RATE_48000,
2964 .rate_min = 48000,
2964 .rate_max = 48000, 2965 .rate_max = 48000,
2965 .nr_rates = 2, 2966 .nr_rates = 1,
2966 .rate_table = (unsigned int[]) { 2967 .rate_table = (unsigned int[]) {
2967 44100, 48000 2968 48000
2969 }
2970 }
2971 },
2972 {
2973 .ifnum = 1,
2974 .type = QUIRK_AUDIO_FIXED_ENDPOINT,
2975 .data = &(const struct audioformat) {
2976 .formats = SNDRV_PCM_FMTBIT_S24_3BE,
2977 .channels = 2,
2978 .iface = 1,
2979 .altsetting = 1,
2980 .altset_idx = 1,
2981 .attributes = 0x4,
2982 .endpoint = 0x81,
2983 .ep_attr = USB_ENDPOINT_XFER_ISOC |
2984 USB_ENDPOINT_SYNC_ASYNC,
2985 .maxpacksize = 0x130,
2986 .rates = SNDRV_PCM_RATE_48000,
2987 .rate_min = 48000,
2988 .rate_max = 48000,
2989 .nr_rates = 1,
2990 .rate_table = (unsigned int[]) {
2991 48000
2968 } 2992 }
2969 } 2993 }
2970 }, 2994 },
@@ -2972,7 +2996,6 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2972 .ifnum = -1 2996 .ifnum = -1
2973 } 2997 }
2974 } 2998 }
2975
2976 } 2999 }
2977}, 3000},
2978 3001