1. 21 11月, 2012 4 次提交
  2. 19 11月, 2012 1 次提交
  3. 17 11月, 2012 1 次提交
  4. 14 11月, 2012 1 次提交
    • T
      ALSA: usb-audio: Fix mutex deadlock at disconnection · 10e44239
      Takashi Iwai 提交于
      The recent change for USB-audio disconnection race fixes introduced a
      mutex deadlock again.  There is a circular dependency between
      chip->shutdown_rwsem and pcm->open_mutex, depicted like below, when a
      device is opened during the disconnection operation:
      
      A. snd_usb_audio_disconnect() ->
           card.c::register_mutex ->
             chip->shutdown_rwsem (write) ->
               snd_card_disconnect() ->
                 pcm.c::register_mutex ->
                   pcm->open_mutex
      
      B. snd_pcm_open() ->
           pcm->open_mutex ->
             snd_usb_pcm_open() ->
               chip->shutdown_rwsem (read)
      
      Since the chip->shutdown_rwsem protection in the case A is required
      only for turning on the chip->shutdown flag and it doesn't have to be
      taken for the whole operation, we can reduce its window in
      snd_usb_audio_disconnect().
      Reported-by: NJiri Slaby <jslaby@suse.cz>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      10e44239
  5. 13 11月, 2012 1 次提交
    • M
      ALSA: usb-audio: Add quirk for Focusrite Scarlett 18i6 · 1762a59d
      Martin Schwenke 提交于
      Probing this device currently fails in snd_usb_audio_probe() because
      the call to snd_usb_create_mixer() fails.  This is due to unknown or
      non-standard interface descriptor subtypes in parse_audio_unit():
      
        usbaudio: unit 51: unexpected type 0x09
        snd-usb-audio: probe of 1-8:1.0 failed with error -5
      
      Some people are working around this by recompiling usb-audio with the
      call to snd_usb_create_mixer() commented out.  It would be nice to
      avoid that.
      
      While the best idea would be to look into the mixer creation failure,
      a reasonable short-term solution is to use quirks to only probe the
      trouble-free interfaces.  This allows audio and MIDI interfaces to be
      used without any obvious issues.
      
      Interface 0 is the main one to ignore.  It contains lots of
      control-fu, including the unexpected interface descriptor subtypes.
      Interface 5 is for firmware updates and I'm not sure how to get
      support for this.  Interface 3 is some sort of control interface that
      I don't understand:
      
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        3
            bAlternateSetting       0
            bNumEndpoints           0
            bInterfaceClass         1 Audio
            bInterfaceSubClass      1 Control Device
            bInterfaceProtocol      0
            iInterface              0
            AudioControl Interface Descriptor:
              bLength                 9
              bDescriptorType        36
              bDescriptorSubtype      1 (HEADER)
              bcdADC               1.00
              wTotalLength            9
              bInCollection           1
              baInterfaceNr( 0)       1
      Signed-off-by: NMartin Schwenke <martin@meltin.net>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1762a59d
  6. 08 11月, 2012 1 次提交
  7. 30 10月, 2012 3 次提交
  8. 25 10月, 2012 1 次提交
  9. 23 10月, 2012 1 次提交
  10. 21 10月, 2012 2 次提交
  11. 09 10月, 2012 1 次提交
    • K
      mm: kill vma flag VM_RESERVED and mm->reserved_vm counter · 314e51b9
      Konstantin Khlebnikov 提交于
      A long time ago, in v2.4, VM_RESERVED kept swapout process off VMA,
      currently it lost original meaning but still has some effects:
      
       | effect                 | alternative flags
      -+------------------------+---------------------------------------------
      1| account as reserved_vm | VM_IO
      2| skip in core dump      | VM_IO, VM_DONTDUMP
      3| do not merge or expand | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP
      4| do not mlock           | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP
      
      This patch removes reserved_vm counter from mm_struct.  Seems like nobody
      cares about it, it does not exported into userspace directly, it only
      reduces total_vm showed in proc.
      
      Thus VM_RESERVED can be replaced with VM_IO or pair VM_DONTEXPAND | VM_DONTDUMP.
      
      remap_pfn_range() and io_remap_pfn_range() set VM_IO|VM_DONTEXPAND|VM_DONTDUMP.
      remap_vmalloc_range() set VM_DONTEXPAND | VM_DONTDUMP.
      
      [akpm@linux-foundation.org: drivers/vfio/pci/vfio_pci.c fixup]
      Signed-off-by: NKonstantin Khlebnikov <khlebnikov@openvz.org>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Carsten Otte <cotte@de.ibm.com>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: Cyrill Gorcunov <gorcunov@openvz.org>
      Cc: Eric Paris <eparis@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Morris <james.l.morris@oracle.com>
      Cc: Jason Baron <jbaron@redhat.com>
      Cc: Kentaro Takeda <takedakn@nttdata.co.jp>
      Cc: Matt Helsley <matthltc@us.ibm.com>
      Cc: Nick Piggin <npiggin@kernel.dk>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Robert Richter <robert.richter@amd.com>
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Cc: Venkatesh Pallipadi <venki@google.com>
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      314e51b9
  12. 08 10月, 2012 1 次提交
  13. 28 9月, 2012 1 次提交
  14. 20 9月, 2012 1 次提交
  15. 19 9月, 2012 4 次提交
  16. 06 9月, 2012 1 次提交
    • T
      ALSA: usb-audio: Fix bogus error messages for delay accounting · 1213a205
      Takashi Iwai 提交于
      The recent fix for the missing fine delayed time adjustment gives
      strange error messages at each start of the playback stream, such as
        delay: estimated 0, actual 352
        delay: estimated 353, actual 705
      
      These come from the sanity check in retire_playback_urb().  Before the
      stream is activated via start_endpoints(), a few silent packets have
      been already sent.  And at this point the delay account is still in
      the state as if the new packets are just queued, so the driver gets
      confused and spews the bogus error messages.
      
      For fixing the issue, we just need to check whether the received
      packet is valid, whether it's zero sized or not.
      Reported-by: NMarkus Trippelsdorf <markus@trippelsdorf.de>
      Cc: <stable@vger.kernel.org> [v3.5+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1213a205
  17. 04 9月, 2012 1 次提交
    • D
      ALSA: snd-usb: Add quirks for Playback Designs devices · 2b58fd5b
      Daniel Mack 提交于
      Playback Designs' USB devices have some hardware limitations on their
      USB interface. In particular:
      
       - They need a 20ms delay after each class compliant request as the
         hardware ACKs the USB packets before the device is actually ready
         for the next command. Sending data immediately will result in buffer
         overflows in the hardware.
       - The devices send bogus feedback data at the start of each stream
         which confuse the feedback format auto-detection.
      
      This patch introduces a new quirks hook that is called after each
      control packet and which adds a delay for all devices that match
      Playback Designs' USB VID for now.
      
      In addition, it adds a counter to snd_usb_endpoint to drop received
      packets on the floor. Another new quirks function that is called once
      an endpoint is started initializes that counter for these devices on
      their sync endpoint.
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Reported-and-tested-by: NAndreas Koch <andreas@akdesigninc.com>
      Supported-by: NDemian Martin <demianm_1@yahoo.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      2b58fd5b
  18. 03 9月, 2012 1 次提交
  19. 01 9月, 2012 4 次提交
    • D
      ALSA: snd-usb: fix cross-interface streaming devices · 2e4a263c
      Daniel Mack 提交于
      Commit 68e67f40 ("ALSA: snd-usb: move calls to usb_set_interface")
      saved us some unnecessary calls to snd_usb_set_interface() but ignored
      the fact that there is at least one device out there which operates on
      two endpoint in different interfaces simultaniously.
      
      Take care for this by catching the case where data and sync endpoints
      are located on different interfaces and calling snd_usb_set_interface()
      between the start of the two endpoints.
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Reported-by: NRobert M. Albrecht <linux@romal.de>
      Cc: stable@kernel.org [v3.5+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      2e4a263c
    • D
      ALSA: snd-usb: fix calls to next_packet_size · 245baf98
      Daniel Mack 提交于
      In order to support devices with implicit feedback streaming models,
      packet sizes are now stored with each individual urb, and the PCM
      handling code which fills the buffers purely relies on the size fields
      now.
      
      However, calling snd_usb_audio_next_packet_size() for all possible
      packets in an URB at once, prior to letting the PCM code do its job
      does in fact not lead to the same behaviour than what the old code did:
      The PCM code will break its loop once a period boundary is reached,
      consequently using up less packets that it really could.
      
      As snd_usb_audio_next_packet_size() implements a feedback mechanism to
      the endpoints phase accumulator, the number of calls to that function
      matters, and when called too often, the data rate runs out of bounds.
      
      Fix this by making the next_packet function public, and call it from the
      PCM code as before if the packet data sizes are not defined.
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Cc: stable@kernel.org [v3.5+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      245baf98
    • D
      ALSA: snd-usb: restore delay information · fbcfbf5f
      Daniel Mack 提交于
      Parts of commit 294c4fb8 ("ALSA: usb: refine delay information with USB
      frame counter") were unfortunately lost during the refactoring of the
      snd-usb driver in 3.5.
      
      This patch adds them back, restoring the correct delay information
      behaviour.
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Cc: stable@kernel.org [3.5+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      fbcfbf5f
    • P
      ALSA: snd-usb: use list_for_each_safe for endpoint resources · 03d2f44e
      Pavel Roskin 提交于
      snd_usb_endpoint_free() frees the structure that contains its argument.
      Signed-off-by: NPavel Roskin <proski@gnu.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      03d2f44e
  20. 30 8月, 2012 1 次提交
    • D
      ALSA: snd-usb: Fix URB cancellation at stream start · 015618b9
      Daniel Mack 提交于
      Commit e9ba389c ("ALSA: usb-audio: Fix scheduling-while-atomic bug in
      PCM capture stream") fixed a scheduling-while-atomic bug that happened
      when snd_usb_endpoint_start was called from the trigger callback, which
      is an atmic context. However, the patch breaks the idea of the endpoints
      reference counting, which is the reason why the driver has been
      refactored lately.
      
      Revert that commit and let snd_usb_endpoint_start() take care of the URB
      cancellation again. As this function is called from both atomic and
      non-atomic context, add a flag to denote whether the function may sleep.
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Cc: stable@kernel.org [3.5+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      015618b9
  21. 29 8月, 2012 1 次提交
  22. 16 8月, 2012 1 次提交
  23. 06 8月, 2012 1 次提交
  24. 01 8月, 2012 1 次提交
  25. 13 7月, 2012 1 次提交
  26. 06 7月, 2012 1 次提交
    • T
      ALSA: usb-audio: Fix the first PCM interface assignment · 9e9b5946
      Takashi Iwai 提交于
      In the new PCM streaming logic, the interface number is assigned to
      usb stream instance (subs->interface) after the format and rate setups
      are succeeded, but some codes are still passing subs->interface as the
      reference to helper functions.  This leads to initializing with an
      invalid iface number (-1).
      
      This patch replaces the wrong references with the ones from the target
      fmt correctly.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      9e9b5946
  27. 27 6月, 2012 1 次提交
  28. 25 6月, 2012 1 次提交