1. 30 1月, 2016 1 次提交
  2. 29 1月, 2016 2 次提交
  3. 26 1月, 2016 1 次提交
  4. 11 1月, 2016 1 次提交
  5. 14 12月, 2015 1 次提交
  6. 16 11月, 2015 1 次提交
    • C
      ALSA: usb-audio: prevent CH345 multiport output SysEx corruption · 1ca8b201
      Clemens Ladisch 提交于
      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: NClemens Ladisch <clemens@ladisch.de>
      Cc: stable@vger.kernel.org
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1ca8b201
  7. 09 11月, 2015 1 次提交
  8. 19 10月, 2015 1 次提交
    • R
      ALSA: USB-audio: Add quirk for Zoom R16/24 playback · e0570446
      Ricard Wanderlof 提交于
      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: NRicard Wanderlof <ricardw@axis.com>
      Tested-by: NPanu Matilainen <pmatilai@laiskiainen.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      e0570446
  9. 21 8月, 2015 1 次提交
  10. 08 6月, 2015 1 次提交
  11. 30 5月, 2015 1 次提交
  12. 24 5月, 2015 1 次提交
  13. 19 5月, 2015 1 次提交
  14. 12 4月, 2015 1 次提交
  15. 04 4月, 2015 1 次提交
  16. 04 3月, 2015 1 次提交
  17. 18 2月, 2015 1 次提交
  18. 17 2月, 2015 1 次提交
    • J
      ALSA: usb-audio: Don't attempt to get Lifecam HD-5000 sample rate · b62b9980
      Joe Turner 提交于
      Adds a quirk to disable the check that the sample rate has been set correctly, as the Lifecam does not support getting the sample rate.
      
      This means that we don't need to wait for the USB timeout when attempting to get the sample rate. Waiting for the timeout causes problems in some applications, which give up on the device acquisition process before it has had time to complete, resulting in no sound.
      
      [minor tidy up by tiwai]
      Signed-off-by: NJoe Turner <joe@oampo.co.uk>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b62b9980
  19. 18 12月, 2014 1 次提交
  20. 02 12月, 2014 1 次提交
  21. 29 11月, 2014 2 次提交
  22. 21 11月, 2014 1 次提交
  23. 16 11月, 2014 1 次提交
    • J
      ALSA: usb-audio: Add ctrl message delay quirk for Marantz/Denon devices · 6e84a8d7
      Jurgen Kramer 提交于
      This patch adds a USB control message delay quirk for a few specific Marantz/Denon
      devices. Without the delay the DACs will not work properly and produces the
      following type of messages:
      
      Nov 15 10:09:21 orwell kernel: [   91.342880] usb 3-13: clock source 41 is not valid, cannot use
      Nov 15 10:09:21 orwell kernel: [   91.343775] usb 3-13: clock source 41 is not valid, cannot use
      
      There are likely other Marantz/Denon devices using the same USB module which exhibit the
      same problems. But as this cannot be verified I limited the patch to the devices
      I could test.
      
      The following two devices are covered by this path:
      - Marantz SA-14S1
      - Marantz HD-DAC1
      Signed-off-by: NJurgen Kramer <gtmkramer@xs4all.nl>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      6e84a8d7
  24. 10 11月, 2014 2 次提交
  25. 08 9月, 2014 1 次提交
  26. 04 8月, 2014 1 次提交
  27. 26 2月, 2014 1 次提交
    • T
      ALSA: usb-audio: Use standard printk helpers · 0ba41d91
      Takashi Iwai 提交于
      Convert with dev_err() and co from snd_printk(), etc.
      As there are too deep indirections (e.g. ep->chip->dev->dev),
      a few new local macros, usb_audio_err() & co, are introduced.
      
      Also, the device numbers in some messages are dropped, as they are
      shown in the prefix automatically.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      0ba41d91
  28. 14 1月, 2014 1 次提交
  29. 20 12月, 2013 1 次提交
  30. 12 8月, 2013 1 次提交
  31. 10 7月, 2013 1 次提交
    • E
      ALSA: usb-audio: fix regression for fixed stream quirk · 42d4ab83
      Eldad Zack 提交于
      Commit 8f898e92 removed the redundant
      reads of bInterfaceProtocol from the descriptors, but introduced a
      regression to devices with quirks of type QUIRK_AUDIO_FIXED_ENDPOINT,
      since fp->protocol is not set in setup process.
      
      As a consequence, audio streams would not get initialized, as the
      following logs show:
      
      [   48.923043] setting usb interface 3:1
      [   48.923056] Creating new capture data endpoint #81
      [   48.923484] 4:3:1: cannot set freq 48000 to ep 0x81
      
      This patch sets fp->protocol in create_fixed_stream_quirk() and
      resolves the regression.
      Signed-off-by: NEldad Zack <eldad@fogrefinery.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      42d4ab83
  32. 28 6月, 2013 2 次提交
    • C
      ALSA: usb-audio: claim autodetected PCM interfaces all at once · b1ce7ba6
      Clemens Ladisch 提交于
      snd_card_register() registers all devices newly added since the last
      call.  However, the playback/capture streams are handled as one ALSA
      device, so the second /dev device will not be registered if the PCM
      streams are added in two steps.
      
      QUIRK_AUTODETECT caused the probe callback to be called once for each
      interface, which triggered this problem.  Work around this by handling
      this like the composite quirk, i.e., autodetecting all other interfaces
      that might be used for PCM or MIDI.
      Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
      b1ce7ba6
    • C
      ALSA: usb-audio: add support for many Roland/Yamaha devices · aafe77cc
      Clemens Ladisch 提交于
      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: NClemens Ladisch <clemens@ladisch.de>
      aafe77cc
  33. 18 4月, 2013 1 次提交
    • D
      ALSA: snd-usb: add quirks handler for DSD streams · 126825e7
      Daniel Mack 提交于
      Unfortunately, none of the UAC standards provides a way to identify DSD
      (Direct Stream Digital) formats. Hence, this patch adds a quirks
      handler to identify USB interfaces that are capable of handling DSD.
      
      That quirks handler can augment the already parsed formats bit-field,
      by any of the new SNDRV_PCM_FMTBIT_DSD_{U8_U16} and setting the dsd_dop
      flag in the audio format, if the driver should take care for the DOP
      byte stuffing.
      
      The only devices that are known to work with this are the ones with
      a 'Playback Designs' vendor id.
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      126825e7
  34. 13 4月, 2013 1 次提交
    • C
      ALSA: usb: Add quirk for 192KHz recording on E-Mu devices · 1539d4f8
      Calvin Owens 提交于
      When recording at 176.2KHz or 192Khz, the device adds a 32-bit length
      header to the capture packets, which obviously needs to be ignored for
      recording to work properly.
      
      Userspace expected:  L0 L1 L2 R0 R1 R2
      ...but actually got: R2 L0 L1 L2 R0 R1
      
      Also, the last byte of the length header being interpreted as L0 of
      the first sample caused spikes every 0.5ms, resulting in a loud 16KHz
      tone (about the highest 'B' on a piano) being present throughout
      captures.
      
      Tested at all sample rates on an E-Mu 0404USB, and tested for
      regressions on a generic USB headset.
      Signed-off-by: NCalvin Owens <jcalvinowens@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1539d4f8
  35. 10 4月, 2013 1 次提交
  36. 07 4月, 2013 1 次提交
    • E
      ALSA: usb-audio: fix endianness bug in snd_nativeinstruments_* · 889d6684
      Eldad Zack 提交于
      The usb_control_msg() function expects __u16 types and performs
      the endianness conversions by itself.
      However, in three places, a conversion is performed before it is
      handed over to usb_control_msg(), which leads to a double conversion
      (= no conversion):
      * snd_usb_nativeinstruments_boot_quirk()
      * snd_nativeinstruments_control_get()
      * snd_nativeinstruments_control_put()
      
      Caught by sparse:
      
      sound/usb/mixer_quirks.c:512:38: warning: incorrect type in argument 6 (different base types)
      sound/usb/mixer_quirks.c:512:38:    expected unsigned short [unsigned] [usertype] index
      sound/usb/mixer_quirks.c:512:38:    got restricted __le16 [usertype] <noident>
      sound/usb/mixer_quirks.c:543:35: warning: incorrect type in argument 5 (different base types)
      sound/usb/mixer_quirks.c:543:35:    expected unsigned short [unsigned] [usertype] value
      sound/usb/mixer_quirks.c:543:35:    got restricted __le16 [usertype] <noident>
      sound/usb/mixer_quirks.c:543:56: warning: incorrect type in argument 6 (different base types)
      sound/usb/mixer_quirks.c:543:56:    expected unsigned short [unsigned] [usertype] index
      sound/usb/mixer_quirks.c:543:56:    got restricted __le16 [usertype] <noident>
      sound/usb/quirks.c:502:35: warning: incorrect type in argument 5 (different base types)
      sound/usb/quirks.c:502:35:    expected unsigned short [unsigned] [usertype] value
      sound/usb/quirks.c:502:35:    got restricted __le16 [usertype] <noident>
      Signed-off-by: NEldad Zack <eldad@fogrefinery.com>
      Acked-by: NDaniel Mack <zonque@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      889d6684