1. 26 Sep, 2011 1 commit
  2. 23 Sep, 2011 1 commit
    • Thomas Pfaff's avatar
      ALSA: usb-audio - clear chip->probing on error exit · 362e4e49
      Thomas Pfaff authored
      
      
      The Terratec Aureon 5.1 USB sound card support is broken since kernel
      2.6.39.
      2.6.39 introduced power management support for USB sound cards that added
      a probing flag in struct snd_usb_audio.
      
      During the probe of the card it gives following error message :
      
      usb 7-2: new full speed USB device number 2 using uhci_hcd
      cannot find UAC_HEADER
      snd-usb-audio: probe of 7-2:1.3 failed with error -5
      input: USB Audio as
      /devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.3/input/input6
      generic-usb 0003:0CCD:0028.0001: input: USB HID v1.00 Device [USB Audio]
      on usb-0000:00:1d.1-2/input3
      
      I can not comment about that "cannot find UAC_HEADER" error, but until
      2.6.38 the card worked anyway.
      With 2.6.39 chip->probing remains 1 on error exit, and any later ioctl
      stops in snd_usb_autoresume with -ENODEV.
      Signed-off-by: default avatarThomas Pfaff <tpfaff@gmx.net>
      Cc: <stable@kernel.org> [2.6.39+]
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      362e4e49
  3. 08 Jul, 2011 1 commit
  4. 25 May, 2011 2 commits
  5. 21 Mar, 2011 1 commit
  6. 11 Mar, 2011 2 commits
  7. 23 Feb, 2011 1 commit
    • Takashi Iwai's avatar
      ALSA: usb-audio: fix oops due to cleanup race when disconnecting · 382225e6
      Takashi Iwai authored
      When a USB audio device is disconnected, snd_usb_audio_disconnect()
      kills all audio URBs.  At the same time, the application, after being
      notified of the disconnection, might close the device, in which case
      ALSA calls the .hw_free callback, which should free the URBs too.
      
      Commit de1b8b93
      
       "[ALSA] Fix hang-up at disconnection of usb-audio"
      prevented snd_usb_hw_free() from freeing the URBs to avoid a hang that
      resulted from this race, but this introduced another race because the
      URB callbacks could now be executed after snd_usb_hw_free() has
      returned, and try to access already freed data.
      
      Fix the first race by introducing a mutex to serialize the disconnect
      callback and all PCM callbacks that manage URBs (hw_free and hw_params).
      Reported-and-tested-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@intel.com>
      Cc: <stable@kernel.org>
      [CL: also serialize hw_params callback]
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      382225e6
  8. 08 Sep, 2010 1 commit
  9. 03 Sep, 2010 1 commit
    • Clemens Ladisch's avatar
      ALSA: usb-audio: fix detection of vendor-specific device protocol settings · a2acad82
      Clemens Ladisch authored
      
      
      The Audio Class v2 support code in 2.6.35 added checks for the
      bInterfaceProtocol field.  However, there are devices (usually those
      detected by vendor-specific quirks) that do not have one of the
      predefined values in this field, which made the driver reject them.
      
      To fix this regression, restore the old behaviour, i.e., assume that
      a device with an unknown bInterfaceProtocol field (other than
      UAC_VERSION_2) has more or less UAC-v1-compatible descriptors.
      
      [compile warning fixes by tiwai]
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      Cc: Daniel Mack <daniel@caiaq.de>
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      a2acad82
  10. 02 Sep, 2010 1 commit
    • Daniel Mack's avatar
      ALSA: usb-audio: Assume first control interface is for audio · 7b6717e1
      Daniel Mack authored
      
      
      For devices with more than one control interface, let's assume the first
      one contains the audio controls. Unfortunately, there is no field in any
      of the descriptors to tell us whether a control interface is for audio
      or MIDI controls, so a better check is not easy to implement.
      
      On a composite device with audio and MIDI functions, for example, the
      code currently overwrites chip->ctrl_intf, causing operations on the
      control interface to fail if they are issued after the device probe.
      Signed-off-by: default avatarDaniel Mack <daniel@caiaq.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7b6717e1
  11. 14 Aug, 2010 1 commit
    • Paul Zimmerman's avatar
      ALSA: usb: USB3 SuperSpeed sound support · 4f4e8f69
      Paul Zimmerman authored
      
      
      This is V2 of the patch, after feedback from Clemens and Daniel.
      
      This patch adds SuperSpeed support to the USB drivers under sound/. It adds
      tests for USB_SPEED_SUPER to the appropriate places that check for the USB
      speed.
      
      This patch has been tested with our SS USB3 device emulating a set of Yamaha
      speakers and a Logitech microphone, but with the descriptors modified to add
      USB3 support. It has also been tested with the real speakers and microphone,
      to make sure that USB2 devices still work.
      Signed-off-by: default avatarPaul Zimmerman <paulz@synopsys.com>
      Cc: Clemens Ladisch <clemens@ladisch.de>
      Cc: Daniel Mack <daniel@caiaq.de>
      Cc: Greg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      4f4e8f69
  12. 23 Jun, 2010 1 commit
  13. 31 May, 2010 1 commit
    • Daniel Mack's avatar
      ALSA: usb-audio: parse clock topology of UAC2 devices · 79f920fb
      Daniel Mack authored
      
      
      Audio devices which comply to the UAC2 standard can export complex clock
      topologies in its descriptors and set up links between them.
      
      The entities that are defined are
      
       - clock sources, which define the end-leafs.
       - clock selectors, which act as switch to select one out of many
         possible clocks sources.
       - clock multipliers, which have an input clock source, and act as clock
         source again. They can be used to derive one clock from another.
      
      All sample rate changes, clock validity queries and the like must go to
      clock source elements, while clock selectors and multipliers can be used
      as terminal clock source.
      
      The following patch adds a parser for these elements and functions to
      iterate over the tree and find the leaf nodes (clock sources).
      
      The samplerate set functions were moved to the new clock.c file.
      Signed-off-by: default avatarDaniel Mack <daniel@caiaq.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      79f920fb
  14. 22 Mar, 2010 1 commit
  15. 12 Mar, 2010 2 commits
  16. 05 Mar, 2010 1 commit
    • Daniel Mack's avatar
      ALSA: usb-audio: refactor code · e5779998
      Daniel Mack authored
      
      
      Clean up the usb audio driver by factoring out a lot of functions to
      separate files. Code for procfs, quirks, urbs, format parsers etc all
      got a new home now.
      
      Moved almost all special quirk handling to quirks.c and introduced new
      generic functions to handle them, so the exceptions do not pollute the
      whole driver.
      
      Renamed usbaudio.c to card.c because this is what it actually does now.
      Renamed usbmidi.c to midi.c for namespace clarity.
      Removed more things from usbaudio.h.
      
      The non-standard drivers were adopted accordingly.
      Signed-off-by: default avatarDaniel Mack <daniel@caiaq.de>
      Cc: Clemens Ladisch <clemens@ladisch.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      e5779998