1. 09 11月, 2015 1 次提交
  2. 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
  3. 21 8月, 2015 1 次提交
  4. 08 6月, 2015 1 次提交
  5. 30 5月, 2015 1 次提交
  6. 24 5月, 2015 1 次提交
  7. 19 5月, 2015 1 次提交
  8. 12 4月, 2015 1 次提交
  9. 04 4月, 2015 1 次提交
  10. 04 3月, 2015 1 次提交
  11. 18 2月, 2015 1 次提交
  12. 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
  13. 18 12月, 2014 1 次提交
  14. 02 12月, 2014 1 次提交
  15. 29 11月, 2014 2 次提交
  16. 21 11月, 2014 1 次提交
  17. 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
  18. 10 11月, 2014 2 次提交
  19. 08 9月, 2014 1 次提交
  20. 04 8月, 2014 1 次提交
  21. 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
  22. 14 1月, 2014 1 次提交
  23. 20 12月, 2013 1 次提交
  24. 12 8月, 2013 1 次提交
  25. 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
  26. 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
  27. 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
  28. 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
  29. 10 4月, 2013 1 次提交
  30. 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
  31. 18 3月, 2013 2 次提交
    • M
      ALSA: usb-audio: Trust fields given in the quirk · 59ea586f
      Mark Hills 提交于
      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: NMark Hills <mark@xwax.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      59ea586f
    • M
      ALSA: usb-audio: Playback and MIDI support for Novation Twitch DJ controller · 5e212332
      Mark Hills 提交于
      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: NMark Hills <mark@xwax.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      5e212332
  32. 18 2月, 2013 1 次提交
  33. 11 2月, 2013 1 次提交
  34. 14 1月, 2013 2 次提交
  35. 04 1月, 2013 1 次提交