1. 14 6月, 2011 1 次提交
    • H
      ALSA: ctxfi: Add support for Creative Titanium HD · 55309216
      Harry Butterworth 提交于
      Initialise model-specific DAC and ADC parts.
      Add controls for output and mic source selection.
      Rename some mixer controls according to ControlNames.txt.
      Remove Playback switches for Line-in and IEC958-in - these
      were controlling the input mute/unmute which affected
      capture too.  Use the capture switches to control the
      input mute/unmute instead - it's less confusing.
      Initialise the WM8775 to invert the left-right clock
      to swap the left and right channels of the mic and aux
      input.
      Signed-off-by: NHarry Butterworth <heb1001@gmail.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      55309216
  2. 31 3月, 2011 1 次提交
  3. 14 3月, 2011 1 次提交
  4. 30 3月, 2010 1 次提交
    • T
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking... · 5a0e3ad6
      Tejun Heo 提交于
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
      
      percpu.h is included by sched.h and module.h and thus ends up being
      included when building most .c files.  percpu.h includes slab.h which
      in turn includes gfp.h making everything defined by the two files
      universally available and complicating inclusion dependencies.
      
      percpu.h -> slab.h dependency is about to be removed.  Prepare for
      this change by updating users of gfp and slab facilities include those
      headers directly instead of assuming availability.  As this conversion
      needs to touch large number of source files, the following script is
      used as the basis of conversion.
      
        http://userweb.kernel.org/~tj/misc/slabh-sweep.py
      
      The script does the followings.
      
      * Scan files for gfp and slab usages and update includes such that
        only the necessary includes are there.  ie. if only gfp is used,
        gfp.h, if slab is used, slab.h.
      
      * When the script inserts a new include, it looks at the include
        blocks and try to put the new include such that its order conforms
        to its surrounding.  It's put in the include block which contains
        core kernel includes, in the same order that the rest are ordered -
        alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
        doesn't seem to be any matching order.
      
      * If the script can't find a place to put a new include (mostly
        because the file doesn't have fitting include block), it prints out
        an error message indicating which .h file needs to be added to the
        file.
      
      The conversion was done in the following steps.
      
      1. The initial automatic conversion of all .c files updated slightly
         over 4000 files, deleting around 700 includes and adding ~480 gfp.h
         and ~3000 slab.h inclusions.  The script emitted errors for ~400
         files.
      
      2. Each error was manually checked.  Some didn't need the inclusion,
         some needed manual addition while adding it to implementation .h or
         embedding .c file was more appropriate for others.  This step added
         inclusions to around 150 files.
      
      3. The script was run again and the output was compared to the edits
         from #2 to make sure no file was left behind.
      
      4. Several build tests were done and a couple of problems were fixed.
         e.g. lib/decompress_*.c used malloc/free() wrappers around slab
         APIs requiring slab.h to be added manually.
      
      5. The script was run on all .h files but without automatically
         editing them as sprinkling gfp.h and slab.h inclusions around .h
         files could easily lead to inclusion dependency hell.  Most gfp.h
         inclusion directives were ignored as stuff from gfp.h was usually
         wildly available and often used in preprocessor macros.  Each
         slab.h inclusion directive was examined and added manually as
         necessary.
      
      6. percpu.h was updated not to include slab.h.
      
      7. Build test were done on the following configurations and failures
         were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
         distributed build env didn't work with gcov compiles) and a few
         more options had to be turned off depending on archs to make things
         build (like ipr on powerpc/64 which failed due to missing writeq).
      
         * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
         * powerpc and powerpc64 SMP allmodconfig
         * sparc and sparc64 SMP allmodconfig
         * ia64 SMP allmodconfig
         * s390 SMP allmodconfig
         * alpha SMP allmodconfig
         * um on x86_64 SMP allmodconfig
      
      8. percpu.h modifications were reverted so that it could be applied as
         a separate patch and serve as bisection point.
      
      Given the fact that I had only a couple of failures from tests on step
      6, I'm fairly confident about the coverage of this conversion patch.
      If there is a breakage, it's likely to be something in one of the arch
      headers which should be easily discoverable easily on most builds of
      the specific arch.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      5a0e3ad6
  5. 05 2月, 2010 1 次提交
    • J
      ALSA: ctxfi - fix PTP address initialization · 21956b61
      Jaroslav Kysela 提交于
      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: NJaroslav Kysela <perex@perex.cz>
      21956b61
  6. 14 1月, 2010 1 次提交
  7. 30 10月, 2009 1 次提交
  8. 02 10月, 2009 1 次提交
  9. 22 7月, 2009 1 次提交
  10. 22 6月, 2009 2 次提交
  11. 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
  12. 09 6月, 2009 5 次提交
  13. 08 6月, 2009 1 次提交
  14. 05 6月, 2009 2 次提交
    • T
      ALSA: ctxfi - Clean up / optimize · 2a36f67f
      Takashi Iwai 提交于
      - 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: NTakashi Iwai <tiwai@suse.de>
      2a36f67f
    • T
      ALSA: ctxfi - Use native timer interrupt on emu20k1 · b7bbf876
      Takashi Iwai 提交于
      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: NTakashi Iwai <tiwai@suse.de>
      b7bbf876
  15. 02 6月, 2009 5 次提交
    • 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 - 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: 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 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
  16. 14 5月, 2009 4 次提交