1. 12 Sep, 2011 1 commit
    • Pierre-Louis Bossart's avatar
      ALSA: usb: refine delay information with USB frame counter · 294c4fb8
      Pierre-Louis Bossart authored
      Existing code only updates the audio delay when URBs were
      submitted/retired. This can introduce an uncertainty of 8ms
      on the number of samples played out with the default settings,
      and a lot more when URBs convey more packets to reduce the
      interrupt rate and power consumption.
      
      This patch relies on the USB frame counter to reduce the
      uncertainty to less than 2ms worst-case. The delay information
      essentially becomes independent of the URB size and number of
      packets. This should help applications like PulseAudio which
      require accurate audio timing. Clemens Ladisch reported
      a decrease of mplayer's A-V difference from nrpacks down to at
      most 1ms.
      
      Thanks to Clemens for also pointing out that the implementation
      of frame counters varies between different HCDs. Only the
      8 lowest-bits are used to estimate the delay.
      Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      [clemens: changed debug code]
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      294c4fb8
  2. 26 Aug, 2011 1 commit
  3. 24 Aug, 2011 3 commits
  4. 19 Aug, 2011 3 commits
  5. 18 Aug, 2011 1 commit
  6. 16 Aug, 2011 1 commit
  7. 15 Aug, 2011 11 commits
  8. 14 Aug, 2011 1 commit
    • Daniel Mack's avatar
      ALSA: snd_usb_caiaq: track submitted output urbs · da6094ea
      Daniel Mack authored
      The snd_usb_caiaq driver currently assumes that output urbs are serviced
      in time and doesn't track when and whether they are given back by the
      USB core. That usually works fine, but due to temporary limitations of
      the XHCI stack, we faced that urbs were submitted more than once with
      this approach.
      
      As it's no good practice to fire and forget urbs anyway, this patch
      introduces a proper bit mask to track which requests have been submitted
      and given back.
      
      That alone however doesn't make the driver work in case the host
      controller is broken and doesn't give back urbs at all, and the output
      stream will stop once all pre-allocated output urbs are consumed. But
      it does prevent crashes of the controller stack in such cases.
      
      See http://bugzilla.kernel.org/show_bug.cgi?id=40702 for more details.
      Signed-off-by: default avatarDaniel Mack <zonque@gmail.com>
      Reported-and-tested-by: default avatarMatej Laitl <matej@laitl.cz>
      Cc: Sarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      da6094ea
  9. 12 Aug, 2011 4 commits
  10. 11 Aug, 2011 2 commits
  11. 10 Aug, 2011 5 commits
  12. 09 Aug, 2011 7 commits