1. 10 11月, 2014 1 次提交
    • T
      ALSA: pcm: Add snd_pcm_stop_xrun() helper · 1fb8510c
      Takashi Iwai 提交于
      Add a new helper function snd_pcm_stop_xrun() to the standard sequnce
      lock/snd_pcm_stop(XRUN)/unlock by a single call, and replace the
      existing open codes with this helper.
      
      The function checks the PCM running state to prevent setting the wrong
      state, too, for more safety.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1fb8510c
  2. 06 11月, 2014 1 次提交
  3. 31 10月, 2014 2 次提交
    • T
      ALSA: pcm: Refactoring snd_pcm_action() · aa8edd8c
      Takashi Iwai 提交于
      Just a small code refactoring to reduce more lines.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      aa8edd8c
    • T
      ALSA: pcm: Simplify snd_pcm_action_lock_irq() · e3a4bd5e
      Takashi Iwai 提交于
      The function snd_pcm_action_lock_irq() can be much simplified by
      simply wrapping snd_pcm_action() with the stream lock.  This was
      rather the original idea, but later it was open coded for
      optimization.  However, looking at the optimization part closely, one
      notices that the probability of the optimized path is quite low; in
      normal situations, the linked stream action happens only for the
      triggered substream, thus the operation becomes identical.  So the
      code simplification has a clear win, especially because we have now
      doubly codes for both atomic and non-atomic locks.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      e3a4bd5e
  4. 30 10月, 2014 1 次提交
  5. 24 10月, 2014 1 次提交
    • T
      ALSA: pcm: Avoid mmap warnings on x86 · 49d776ff
      Takashi Iwai 提交于
      On x86, using dma_mmap_coherent() for the pages allocated via
      dma_alloc_coherent() results in a warning like:
        aplay:32536 map pfn RAM range req uncached-minus for [mem 0x21d500000-0x21d51ffff], got write-back
      
      Until the issue is addressed in the core side, take back to the old
      good way in PCM code only for x86.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      49d776ff
  6. 22 10月, 2014 3 次提交
    • T
      ALSA: pcm: Disable mmap for known broken archs · 63825f3a
      Takashi Iwai 提交于
      Some architectures like PARISC is known not to support mmap properly
      with the DMA buffer, where dma_mmap_coherent() returns -EINVAL
      unconditionally.  From the API POV, we should rather drop the mmap
      support there and expose it before the user-space tries to call mmap.
      
      The patch contains again ugly ifdef's, unfortunately, as there is no
      global flag indicating this.  Once when such macro is defined, we can
      get rid of this instead.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      63825f3a
    • T
      ALSA: pcm: Remove arch-dependent mmap kludges · c37de55e
      Takashi Iwai 提交于
      Since we have consistently dma_mmap_coherent() for all architectures,
      the current ifdef and arch-specific codes in pcm core can be cleaned
      up gracefully.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c37de55e
    • T
      ALSA: pcm: Fix false lockdep warnings · dde1c652
      Takashi Iwai 提交于
      As PCM core handles the multiple linked streams in parallel, lockdep
      gets confused (partly because of weak annotations) and spews the
      false-positive warnings.  This hasn't been a problem for long time but
      the latest PCM lock path update seems to have woken up a sleeping
      dog.
      
      Here is an attempt to paper over this issue: pass the lock subclass
      just calculated from the depth in snd_pcm_action_group().  Also, a
      (possibly) wrong lock subclass set in snd_pcm_action_lock_mutex() is
      dropped, too.
      Reported-and-tested-by: NArthur Marsh <arthur.marsh@internode.on.net>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      dde1c652
  7. 18 10月, 2014 1 次提交
  8. 14 10月, 2014 1 次提交
  9. 03 9月, 2014 2 次提交
    • T
      ALSA: pcm: Uninline snd_pcm_stream_lock() and _unlock() · 7af142f7
      Takashi Iwai 提交于
      The previous commit for the non-atomic PCM ops added more codes to
      snd_pcm_stream_lock() and its variants.  Since they are inlined
      functions, it resulted in a significant code size bloat.  For reducing
      the size bloat, this patch changes the inline functions to the normal
      function calls.  The export of rwlock and rwsem are removed as well,
      since they are referred only in pcm_native.c now.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7af142f7
    • T
      ALSA: pcm: Allow nonatomic trigger operations · 257f8cce
      Takashi Iwai 提交于
      Currently, many PCM operations are performed in a critical section
      protected by spinlock, typically the trigger and pointer callbacks are
      assumed to be atomic.  This is basically because some trigger action
      (e.g. PCM stop after drain or xrun) is done in the interrupt handler.
      If a driver runs in a threaded irq, however, this doesn't have to be
      atomic.  And many devices want to handle trigger in a non-atomic
      context due to lengthy communications.
      
      This patch tries all PCM calls operational in non-atomic context.
      What it does is very simple: replaces the substream spinlock with the
      corresponding substream mutex when pcm->nonatomic flag is set.  The
      driver that wants to use the non-atomic PCM ops just needs to set the
      flag and keep the rest as is.  (Of course, it must not handle any PCM
      ops in irq context.)
      
      Note that the code doesn't check whether it's atomic-safe or not, but
      trust in 100% that the driver sets pcm->nonatomic correctly.
      
      One possible problem is the case where linked PCM substreams have
      inconsistent nonatomic states.  For avoiding this, snd_pcm_link()
      returns an error if one tries to link an inconsistent PCM substream.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      257f8cce
  10. 21 7月, 2014 1 次提交
    • T
      ALSA: pcm: Introduce protocol version field to sw_params · 58900810
      Takashi Iwai 提交于
      For controlling the new fields more strictly, add sw_params.proto
      field indicating the protocol version of the user-space.  User-space
      should fill the SNDRV_PCM_VERSION value it's built with, then kernel
      can know whether the new fields should be evaluated or not.
      
      And now tstamp_type field is evaluated only when the valid value is
      set there.  This avoids the wrong override of tstamp_type to zero,
      which is SNDRV_PCM_TSTAMP_TYPE_GETTIMEOFDAY.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      58900810
  11. 10 7月, 2014 2 次提交
  12. 14 2月, 2014 1 次提交
  13. 10 2月, 2014 2 次提交
  14. 29 10月, 2013 1 次提交
  15. 24 10月, 2013 2 次提交
  16. 29 6月, 2013 1 次提交
  17. 15 6月, 2013 1 次提交
  18. 08 5月, 2013 1 次提交
  19. 20 4月, 2013 1 次提交
  20. 12 3月, 2013 1 次提交
  21. 23 2月, 2013 1 次提交
  22. 21 11月, 2012 1 次提交
  23. 08 11月, 2012 1 次提交
  24. 30 10月, 2012 3 次提交
  25. 23 10月, 2012 1 次提交
    • P
      ALSA: core: add hooks for audio timestamps · 4eeaaeae
      Pierre-Louis Bossart 提交于
      ALSA did not provide any direct means to infer the audio time for A/V
      sync and system/audio time correlations (eg. PulseAudio).
      Applications had to track the number of samples read/written and
      add/subtract the number of samples queued in the ring buffer.  This
      accounting led to small errors, typically several samples, due to the
      two-step process.  Computing the audio time in the kernel is more
      direct, as all the information is available in the same routines.
      
      Also add new .audio_wallclock routine to enable fine-grain synchronization
      between monotonic system time and audio hardware time.
      Using the wallclock, if supported in hardware, allows for a
      much better sub-microsecond precision and a common drift tracking for
      all devices sharing the same wall clock (master clock).
      Signed-off-by: NPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      4eeaaeae
  26. 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
  27. 27 9月, 2012 1 次提交
  28. 21 5月, 2012 1 次提交
  29. 15 3月, 2012 1 次提交
    • T
      ALSA: pcm - Avoid GFP_ATOMIC in snd_pcm_link() · 1662591b
      Takashi Iwai 提交于
      GFP_ATOMIC is used in snd_pcm_link() just because the kmalloc is
      called inside a lock.  Since this function isn't too critical for
      speed and is rarely called in practice, better to allocate the chunk
      at first before spinlock and free it in error paths, so that
      GFP_KERNEL can be used.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1662591b
  30. 01 11月, 2011 1 次提交
  31. 10 10月, 2011 1 次提交