Skip to content

Commit

Permalink
ALSA: usb-audio: USB audio quirk for Roland VG-99 advanced mode
Browse files Browse the repository at this point in the history
Without this quirk the VG-99 will work in standard mode (set under
USB on System menu page 2) giving 16 bits at 44.1 Khz audio in/out
but no midi, and is not recognised when set to advanced mode.

After applying this, I can also use the VG-99 in advanced mode: 24
24 bits audio in/out at 44.1 Khz, and midi in/out. Sysex is so far
untested.

In standard mode, the device appears with ID 0x00b3, so the
behaviour isn't affected by this quirk.

Thanks to Clemens Ladisch for simplifying and correcting my initial
attempt!

Signed-off-by: Pete Leigh <pete.leigh@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Pete Leigh authored and Takashi Iwai committed Oct 21, 2012
1 parent 999fc9f commit 7a75e74
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions sound/usb/quirks-table.h
Original file line number Diff line number Diff line change
Expand Up @@ -1456,6 +1456,40 @@ YAMAHA_DEVICE(0x7010, "UB99"),
}
}
},
{
/* Advanced mode of the Roland VG-99, with MIDI and 24-bit PCM at 44.1
* kHz. In standard mode, the device has ID 0582:00b3, and offers
* 16-bit PCM at 44.1 kHz with no MIDI.
*/
USB_DEVICE(0x0582, 0x00b2),
.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
.vendor_name = "Roland",
.product_name = "VG-99",
.ifnum = QUIRK_ANY_INTERFACE,
.type = QUIRK_COMPOSITE,
.data = (const struct snd_usb_audio_quirk[]) {
{
.ifnum = 0,
.type = QUIRK_AUDIO_STANDARD_INTERFACE
},
{
.ifnum = 1,
.type = QUIRK_AUDIO_STANDARD_INTERFACE
},
{
.ifnum = 2,
.type = QUIRK_MIDI_FIXED_ENDPOINT,
.data = & (const struct snd_usb_midi_endpoint_info) {
.out_cables = 0x0003,
.in_cables = 0x0003
}
},
{
.ifnum = -1
}
}
}
},
{
/* Roland SonicCell */
USB_DEVICE(0x0582, 0x00c2),
Expand Down

0 comments on commit 7a75e74

Please sign in to comment.