1. 15 6月, 2009 1 次提交
    • T
      ALSA: ctxfi - Fix deadlock with xfi-timer · 8dca4197
      Takashi Iwai 提交于
      The PCM x-fi native update routine can cause deadlocks when the
      trigger(START) is called while the stream is running.
      
      This patch fixes the deadlock by just postponing the pcm period update
      to the next possible wake-up.  Also it adds the flip of ti->running
      flag (just to be sure as now).
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      8dca4197
  2. 13 6月, 2009 1 次提交
    • T
      ALSA: ctxfi - Replace atc lock to mutex · 635c265f
      Takashi Iwai 提交于
      The spinlock in atc can cause a sleep in lock:
      
      Kernel failure message 1:
      BUG: sleeping function called from invalid context at mm/slub.c:1599
      in_atomic(): 0, irqs_disabled(): 1, pid: 2537, name: gstreamer-prope
      Pid: 2537, comm: gstreamer-prope Tainted: P
      2.6.29.4-167.fc11.x86_64 #1
      Call Trace:
        [<ffffffff8103ff0f>] __might_sleep+0x10b/0x110
        [<ffffffff810cd734>] __kmalloc+0x73/0x130
        [<ffffffffa0b4b142>] ? daio_rsc_init+0xaa/0x125 [snd_ctxfi]
        [<ffffffffa0b4b212>] dao_rsc_init+0x55/0x1c0 [snd_ctxfi]
        [<ffffffffa0b4b3d2>] dao_rsc_reinit+0x55/0x5d [snd_ctxfi]
        [<ffffffff813abd6c>] ? _spin_lock_irqsave+0x32/0x3b
        [<ffffffffa0b454fe>] atc_spdif_out_passthru+0x92/0x136 [snd_ctxfi]
        ...
      
      Since the lock path is no critical path, it can be gracefully
      replaced with a mutex.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      635c265f
  3. 09 6月, 2009 6 次提交
  4. 08 6月, 2009 6 次提交
  5. 06 6月, 2009 1 次提交
  6. 05 6月, 2009 7 次提交
  7. 02 6月, 2009 9 次提交
    • T
      Merge branch 'topic/ctxfi-fix' into topic/ctxfi · bd05dbd3
      Takashi Iwai 提交于
      bd05dbd3
    • T
      ALSA: ctxfi - Support SG-buffers · c76157d9
      Takashi Iwai 提交于
      Use SG-buffers instead of contiguous pages.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c76157d9
    • T
      ALSA: ctxfi - Remove PAGE_SIZE limitation · cd391e20
      Takashi Iwai 提交于
      Remove the limitation of PAGE_SIZE to be 4k by defining the own
      page size and macros for 4k.  8kb page size could be natively supported,
      but it's disabled right now for simplicity.
      
      Also, clean up using upper_32_bits() macro.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      cd391e20
    • T
      ALSA: ctxfi - Fix supported PCM formats · d2b9b96c
      Takashi Iwai 提交于
      The device seems supporting only U8, S16, S24_3LE, S32.  Other linear
      formats result in bad outputs.
      
      Also, added the support for 32bit float format, which wasn't listed
      in the original code.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      d2b9b96c
    • T
      ALSA: ctxfi - Fix PCM device naming · 8372d498
      Takashi Iwai 提交于
      PCM names for surround streams should be also fixed as well as the mixer
      element names.  Also, a bit clean up for PCM name setup.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      8372d498
    • T
      ALSA: ctxfi - Fix surround mixer names · 6585db94
      Takashi Iwai 提交于
      We usually pick up "Surround" mixer for the rear output, and "Side"
      for the extra surround.  Fix the channel mapping to follow it.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      6585db94
    • T
      ALSA: ALSA: ctxfi - Release PCM resources at each prepare call · 822fa19b
      Takashi Iwai 提交于
      The prepare callback can be called multiple times, thus it needs to
      release and acquire the resource again by itself at the second or later
      call.
      
      Simply add pcm_release_resources() at the beginning of each prepare
      callback in ctatc.c.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      822fa19b
    • T
      ALSA: ctxfi - Fix a typo in MODULE_LICENSE · 67fbf880
      Takashi Iwai 提交于
      A space has to be put between GPL and v2.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      67fbf880
    • T
      ALSA: ctxfi - Fix Oops at mmapping · 8a4259bf
      Takashi Iwai 提交于
      Replace a spinlock with a mutex protecting the vm block list at
      mmap / munmap calls, which caused Oops like below:
      
      BUG: sleeping function called from invalid context at mm/slub.c:1599
      in_atomic(): 0, irqs_disabled(): 1, pid: 32065, name: xine
      Pid: 32065, comm: xine Tainted: P           2.6.29.4-75.fc10.x86_64 #1
      Call Trace:
        [<ffffffff81040685>] __might_sleep+0x105/0x10a
        [<ffffffff810c9fae>] kmem_cache_alloc+0x32/0xe2
        [<ffffffffa08e3110>] ct_vm_map+0xfa/0x19e [snd_ctxfi]
        [<ffffffffa08e1a07>] ct_map_audio_buffer+0x4c/0x76 [snd_ctxfi]
        [<ffffffffa08e2aa5>] atc_pcm_playback_prepare+0x1d7/0x2a8 [snd_ctxfi]
        [<ffffffff8105ef3f>] ? up_read+0x9/0xb
        [<ffffffff81186b61>] ? __up_read+0x7c/0x87
        [<ffffffffa08e36a6>] ct_pcm_playback_prepare+0x39/0x60 [snd_ctxfi]
        [<ffffffffa0886bcb>] snd_pcm_do_prepare+0x16/0x28 [snd_pcm]
        [<ffffffffa08867c7>] snd_pcm_action_single+0x2d/0x5b [snd_pcm]
        [<ffffffffa08881f3>] snd_pcm_action_nonatomic+0x52/0x6a [snd_pcm]
        [<ffffffffa088a723>] snd_pcm_common_ioctl1+0x404/0xc79 [snd_pcm]
        [<ffffffff810c52c8>] ? alloc_pages_current+0xb9/0xc2
        [<ffffffff810c9402>] ? new_slab+0x1a5/0x1cb
        [<ffffffff810ab9ea>] ? vma_prio_tree_insert+0x23/0xc1
        [<ffffffffa088b411>] snd_pcm_playback_ioctl1+0x213/0x230 [snd_pcm]
        [<ffffffff810b6c20>] ? mmap_region+0x397/0x4c9
        [<ffffffffa088bd9b>] snd_pcm_playback_ioctl+0x2e/0x36 [snd_pcm]
        [<ffffffff810ddc64>] vfs_ioctl+0x2a/0x78
        [<ffffffff810de130>] do_vfs_ioctl+0x462/0x4a2
        [<ffffffff81029cef>] ? default_spin_lock_flags+0x9/0xe
        [<ffffffff81374647>] ? trace_hardirqs_off_thunk+0x3a/0x6c
        [<ffffffff810de1c5>] sys_ioctl+0x55/0x77
        [<ffffffff8101133a>] system_call_fastpath+0x16/0x1b
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      8a4259bf
  8. 27 5月, 2009 1 次提交
  9. 20 5月, 2009 1 次提交
    • T
      ALSA: ctxfi - Add depends on X86 · 3e3ee6dc
      Takashi Iwai 提交于
      The ctxfi driver requires explicitly the 4k page size, and gives a
      build error on architectures with non-4k pages.
      As a workaround, just add the kconfig dependency on X86, which is
      the only architecture ever tested.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      3e3ee6dc
  10. 14 5月, 2009 5 次提交
  11. 09 5月, 2009 2 次提交