1. 26 Sep, 2018 1 commit
  2. 09 Mar, 2018 1 commit
  3. 27 Oct, 2016 1 commit
  4. 31 Mar, 2016 1 commit
  5. 03 Mar, 2016 1 commit
  6. 16 Nov, 2015 1 commit
    • Clemens Ladisch's avatar
      ALSA: usb-audio: prevent CH345 multiport output SysEx corruption · 1ca8b201
      Clemens Ladisch authored
      The CH345 USB MIDI chip has two output ports.  However, they are
      multiplexed through one pin, and the number of ports cannot be reduced
      even for hardware that implements only one connector, so for those
      devices, data sent to either port ends up on the same hardware output.
      This becomes a problem when both ports are used at the same time, as
      longer MIDI commands (such as SysEx messages) are likely to be
      interrupted by messages from the other port, and thus to get lost.
      
      It would not be possible for the driver to detect how many ports the
      device actually has, except that in practice, _all_ devices built with
      the CH345 have only one port.  So we can just ignore the device's
      descriptors, and hardcode one output port.
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      1ca8b201
  7. 19 Oct, 2015 2 commits
    • Ricard Wanderlof's avatar
      ALSA: USB-audio: Remove mixer entry from Zoom R16/24 quirk · 9fa5cf8c
      Ricard Wanderlof authored
      The device has no mixer (and identifies itself as such), so just skip
      the mixer definition.
      Signed-off-by: default avatarRicard Wanderlof <ricardw@axis.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      9fa5cf8c
    • Ricard Wanderlof's avatar
      ALSA: USB-audio: Add quirk for Zoom R16/24 playback · e0570446
      Ricard Wanderlof authored
      The Zoom R16/24 have a nonstandard playback format where each isochronous
      packet contains a length descriptor in the first four bytes. (Curiously,
      capture data does not contain this and requires no quirk.)
      
      The quirk involves adding the extra length descriptor whenever outgoing
      isochronous packets are generated, both in pcm.c (outgoing audio) and
      endpoint.c (silent data).
      
      In order to make the quirk as unintrusive as possible, for
      pcm.c:prepare_playback_urb(), the isochronous packet descriptors are
      initially set up in the same way no matter if the quirk is enabled or not.
      Once it is time to actually copy the data into the outgoing packet buffer
      (together with the added length descriptors) the isochronous descriptors
      are adjusted in order take the increased payload length into account.
      
      For endpoint.c:prepare_silent_urb() it makes more sense to modify the
      actual function, partly because the function is less complex to start with
      and partly because it is not as time-critical as prepare_playback_urb()
      (whose bulk is run with interrupts disabled), so the (minute) additional
      time spent in the non-quirk case is motivated by the simplicity of having
      a single function for all cases.
      
      The quirk is controlled by the new tx_length_quirk member in struct
      snd_usb_substream and struct snd_usb_audio, which is conveyed to pcm.c
      and endpoint.c from quirks.c in a similar manner to the txfr_quirk member
      in the same structs.
      
      In contrast to txfr_quirk however, the quirk is enabled directly in
      quirks.c:create_standard_audio_quirk() by checking the USB ID in that
      function. Another option would be to introduce a new
      QUIRK_AUDIO_ZOOM_INTERFACE or somesuch, which would have made the quirk
      very plain to see in the quirk table, but it was felt that the additional
      code needed to implement it this way would just make the implementation
      more complex with no real gain.
      
      Tested with a Zoom R16, both by doing capture and playback separately
      using arecord and aplay (8 channel capture and 2 channel playback,
      respectively), as well as capture and playback together using Ardour, as
      well as Audacity and Qtractor together with jackd.
      
      The R24 is reportedly compatible with the R16 when used as an audio
      interface. Both devices share the same USB ID and have the same number of
      inputs (8) and outputs (2). Therefore "R16/24" is mentioned throughout the
      patch.
      
      Regression tested using an Edirol UA-5 in both class compliant (16-bit)
      and "advanced" (24 bit, forces the use of quirks) modes.
      Signed-off-by: default avatarRicard Wanderlof <ricardw@axis.com>
      Tested-by: default avatarPanu Matilainen <pmatilai@laiskiainen.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      e0570446
  8. 16 Oct, 2015 1 commit
  9. 01 Jul, 2015 1 commit
  10. 21 Apr, 2015 1 commit
    • Takamichi Horikawa's avatar
      ALSA: usb-audio: Fix audio output on Roland SC-D70 sound module · 6d1f2f60
      Takamichi Horikawa authored
      Roland SC-D70 reports its device class as vendor specific class and
      the quirk QUIRK_AUDIO_FIXED_ENDPOINT was used for audio output.
      
      In the quirks table the sampling rate was hard-coded to 44100 Hz
      and therefore not worked when the sound module was in 48000 Hz mode.
      
      In this change the quirk is changed to QUIRK_AUDIO_STANDARD_INTERFACE
      but as the sound module reports incorrect bSubframeSize in its
      descriptors, additional change is made in format.c to detect it and
      to override it (which uses the existing code for Edirol SD-90).
      
      Tested both when the sound module was in 44100 Hz mode and 48000 Hz
      mode and both audio input and output. MIDI related part of the driver
      is not touched.
      Signed-off-by: default avatarTakamichi Horikawa <takamichiho@gmail.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      6d1f2f60
  11. 12 Mar, 2015 1 commit
  12. 08 Jan, 2015 1 commit
  13. 01 Dec, 2014 1 commit
  14. 13 Nov, 2014 1 commit
  15. 11 Nov, 2014 1 commit
    • Damien Zammit's avatar
      ALSA: usb-audio: Add duplex mode for Digidesign Mbox 1 and enable mixer · c63fcb9b
      Damien Zammit authored
      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: default avatarDamien Zammit <damien@zamaudio.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      c63fcb9b
  16. 30 Oct, 2014 2 commits
  17. 20 Oct, 2014 1 commit
  18. 10 Aug, 2014 1 commit
  19. 14 Jan, 2014 2 commits
  20. 28 Jun, 2013 1 commit
  21. 27 Jun, 2013 3 commits
    • Clemens Ladisch's avatar
      ALSA: usb-audio: add quirks for Roland QUAD/OCTO-CAPTURE · b7f33917
      Clemens Ladisch authored
      The Roland Quad/Octo-Capture devices use some unknown vendor-specific
      mechanism to switch sample rates (and to manage other controls).  To
      prevent the driver from attempting to use any other than the default
      44.1 kHz sample rate, use quirks to hide the other alternate settings.
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      b7f33917
    • Clemens Ladisch's avatar
      ALSA: usb-audio: remove superfluous Roland quirks · 8e5ced83
      Clemens Ladisch authored
      Remove all quirks that are no longer needed now that the generic Roland
      quirks can handle the vendor-specific descriptors correctly.
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      8e5ced83
    • Clemens Ladisch's avatar
      ALSA: usb-audio: add support for many Roland/Yamaha devices · aafe77cc
      Clemens Ladisch authored
      Add quirks to detect the various vendor-specific descriptors used by
      Roland and Yamaha in most of their recent USB audio and MIDI devices.
      
      Together with the previous patch, this should add audio/MIDI support for
      the following USB devices:
      - Edirol motion dive .tokyo performance package
      - Roland MC-808 Synthesizer
      - Roland BK-7m Synthesizer
      - Roland VIMA JM-5/8 Synthesizer
      - Roland SP-555 Sequencer
      - Roland V-Synth GT Synthesizer
      - Roland Music Atelier AT-75/100/300/350C/500/800/900/900C Organ
      - Edirol V-Mixer M-200i/300/380/400/480/R-1000
      - BOSS GT-10B Effects Processor
      - Roland Fantom G6/G7/G8 Keyboard
      - Cakewalk Sonar V-Studio 20/100/700 Audio Interface
      - Roland GW-8 Keyboard
      - Roland AX-Synth Keyboard
      - Roland JUNO-Di/STAGE/Gi Keyboard
      - Roland VB-99 Effects Processor
      - Cakewalk UM-2G MIDI Interface
      - Roland A-500S Keyboard
      - Roland SD-50 Synthesizer
      - Roland OCTAPAD SPD-30 Controller
      - Roland Lucina AX-09 Synthesizer
      - BOSS BR-800 Digital Recorder
      - Roland DUO/TRI-CAPTURE (EX) Audio Interface
      - BOSS RC-300 Loop Station
      - Roland JUPITER-50/80 Keyboard
      - Roland R-26 Recorder
      - Roland SPD-SX Controller
      - BOSS JS-10 Audio Player
      - Roland TD-11/15/30 Drum Module
      - Roland A-49/88 Keyboard
      - Roland INTEGRA-7 Synthesizer
      - Roland R-88 Recorder
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      aafe77cc
  22. 04 Jun, 2013 1 commit
  23. 03 Jun, 2013 1 commit
  24. 25 Apr, 2013 3 commits
  25. 18 Mar, 2013 2 commits
    • Mark Hills's avatar
      ALSA: usb-audio: Trust fields given in the quirk · 59ea586f
      Mark Hills authored
      The maxpacksize field is given in some quirks, but it gets ignored (in
      favour of wMaxPacketSize from the first endpoint.) This patch favours
      the one in the quirk.
      
      Digidesign Mbox and Mbox 2 are the only affected quirks and the devices
      are assumed to be working without this patch. So for safety against the
      values in the quirk being incorrect, remove them.
      
      The datainterval is also ignored but there are not currently any quirks
      which choose to override this.
      
      Cc: Damien Zammit <damien@zamaudio.com>
      Cc: Chris J Arges <christopherarges@gmail.com>
      Signed-off-by: default avatarMark Hills <mark@xwax.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      59ea586f
    • Mark Hills's avatar
      ALSA: usb-audio: Playback and MIDI support for Novation Twitch DJ controller · 5e212332
      Mark Hills authored
      The hardware also has a PCM capture device which is not implemented in
      this patch.
      
      It may be possible to generalise this to Saffire 6 USB support and some
      of the other Focusrite interfaces, but as I don't have access to these
      devices we should wait until capture support is working first.
      
      Capture support is not implemented because the code assumes the endpoint
      to have its own interface (instead, it shares the interface with playback)
      and some thought will be needed to lift this limitation.
      Signed-off-by: default avatarMark Hills <mark@xwax.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      5e212332
  26. 11 Feb, 2013 1 commit
  27. 31 Jan, 2013 1 commit
  28. 14 Jan, 2013 1 commit
    • Eldad Zack's avatar
      ALSA: usb-audio: correct M-Audio C400 clock source quirk · 2aad272b
      Eldad Zack authored
      Taking another look at the C400 descriptors, I see now that there is
      a clock selector (0x80) for this device.
      Right now, the clock source points to the internal clock (0x81), which
      is also valid. When the external clock source (0x82) is selected in the
      mixer, and the rates mismatch (if it's free-running it is fixed to
      48KHz), xruns will occur.
      
      Set the clock ID to the clock selector unit (0x81), which then
      allows the validation code to function correctly.
      Signed-off-by: default avatarEldad Zack <eldad@fogrefinery.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      2aad272b
  29. 04 Jan, 2013 1 commit
  30. 03 Jan, 2013 1 commit
    • Alexander Schremmer's avatar
      ALSA: usb-audio: Add support for Creative BT-D1 via usb sound quirks · 8f7f3ab1
      Alexander Schremmer authored
      Support the Creative BT-D1 Bluetooth USB audio device. Before this
      patch, Linux had trouble finding the correct USB descriptors and bailed
      out with these messages:
      
       no or invalid class specific endpoint descriptor
      
      Now it still prints these messages on hotplug:
      
       snd-usb-audio: probe of ...:1.0 failed with error -5
       snd-usb-audio: probe of ...:1.2 failed with error -5
       snd-usb-audio: probe of ...:1.3 failed with error -5
      
      But the device works correctly, including the HID support.
      
      The patch is diff'ed against 3.8-rc1 but should apply to older kernels
      as well.
      Signed-off-by: default avatarAlexander Schremmer <alex@alexanderweb.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      8f7f3ab1
  31. 19 Dec, 2012 1 commit
    • Damien Zammit's avatar
      ALSA: usb-audio: Support for Digidesign Mbox 2 USB sound card: · cb99864d
      Damien Zammit authored
      This patch is the result of a lot of trial and error, since there are no specs
      available for the device.
      
      Full duplex support is provided, i.e. playback and recording in stereo.
      The format is hardcoded at 48000Hz @ 24 bit, which is the maximum that the
      device supports.  Also, MIDI in and MIDI out both work.
      
      Users will notice that the S/PDIF light also flashes when playback or recording
      is active.  I believe this means that S/PDIF input/output is simultaneously
      activated with the analogue i/o during use.
      But this particular functionality remains untested.
      
      Note that this particular version of the patch is so far untested on the
      physical hardware because I have not compiled a full kernel with the changes.
      However, extensive testing has been done by many users of the hardware
      who believe other versions of my patch have worked since circa 2009.
      
      [Modified to make a function static by tiwai]
      Signed-off-by: default avatarDamien Zammit <damien@zamaudio.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      cb99864d
  32. 15 Dec, 2012 1 commit