1. 04 Feb, 2010 1 commit
    • Jaroslav Kysela's avatar
      ALSA: ctxfi - fix PTP address initialization · 21956b61
      Jaroslav Kysela authored
      
      After hours of debugging, I finally found the reason why some source
      and runtime combination does not work. The PTP (page table pages)
      address must be aligned. I am not sure how much, but alignment to
      PAGE_SIZE is sufficient. Also, use ALSA's page allocation routines
      to ensure proper virtual -> physical address translation.
      
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
      21956b61
  2. 30 Oct, 2009 1 commit
  3. 02 Oct, 2009 1 commit
  4. 22 Jul, 2009 1 commit
  5. 22 Jun, 2009 2 commits
  6. 13 Jun, 2009 1 commit
    • Takashi Iwai's avatar
      ALSA: ctxfi - Replace atc lock to mutex · 635c265f
      Takashi Iwai authored
      
      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: default avatarTakashi Iwai <tiwai@suse.de>
      635c265f
  7. 09 Jun, 2009 3 commits
  8. 08 Jun, 2009 3 commits
  9. 05 Jun, 2009 2 commits
    • Takashi Iwai's avatar
      ALSA: ctxfi - Clean up / optimize · 2a36f67f
      Takashi Iwai authored
      
      - Use static tables instead of assigining each funciton pointer
      - Add __devinit* to appropriate places; pcm, mixer and timer cannot be
        marked because they are kept in the function table that lives long
      - Move create_alsa_devs function out of struct ct_atc to mark it
        __devinit
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      2a36f67f
    • Takashi Iwai's avatar
      ALSA: ctxfi - Use native timer interrupt on emu20k1 · b7bbf876
      Takashi Iwai authored
      
      emu20k1 has a native timer interrupt based on the audio clock, which
      is more accurate than the system timer (from the synchronization POV).
      This patch adds the code to handle this with multiple streams.
      
      The system timer is still used on emu20k2, and can be used also for
      emu20k1 easily by changing USE_SYSTEM_TIMER to 1 in cttimer.c.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      b7bbf876
  10. 02 Jun, 2009 5 commits
    • Takashi Iwai's avatar
      ALSA: ctxfi - Support SG-buffers · c76157d9
      Takashi Iwai authored
      
      Use SG-buffers instead of contiguous pages.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      c76157d9
    • Takashi Iwai's avatar
      ALSA: ctxfi - Fix supported PCM formats · d2b9b96c
      Takashi Iwai authored
      
      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: default avatarTakashi Iwai <tiwai@suse.de>
      d2b9b96c
    • Takashi Iwai's avatar
      ALSA: ctxfi - Fix PCM device naming · 8372d498
      Takashi Iwai authored
      
      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: default avatarTakashi Iwai <tiwai@suse.de>
      8372d498
    • Takashi Iwai's avatar
      ALSA: ALSA: ctxfi - Release PCM resources at each prepare call · 822fa19b
      Takashi Iwai authored
      
      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: default avatarTakashi Iwai <tiwai@suse.de>
      822fa19b
    • Takashi Iwai's avatar
      ALSA: ctxfi - Fix Oops at mmapping · 8a4259bf
      Takashi Iwai authored
      
      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: default avatarTakashi Iwai <tiwai@suse.de>
      8a4259bf
  11. 14 May, 2009 4 commits