1. 25 8月, 2008 2 次提交
  2. 15 8月, 2008 1 次提交
  3. 13 8月, 2008 1 次提交
  4. 01 8月, 2008 2 次提交
  5. 30 7月, 2008 3 次提交
    • P
      ALSA: Fix limit of 8 PCM devices in SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE · 94239690
      Pawel MOLL 提交于
      When compiled with CONFIG_SND_DYNAMIC_MINORS the ALSA core is fine
      to have more than 8 PCM devices per card, except one place - the
      SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE ioctl, which will not enumerate
      devices > 7. This patch fixes the issue, changing the devices list
      organisation.
      
      Instead of adding new device to the tail, the list is now kept always
      ordered (by card number, then device number). Thus, during enumeration,
      it is easy to discover the fact that there is no more given card's
      devices. The same limit was present in OSS emulation code. It has
      been fixed as well.
      
      Additionally the device field of struct snd_pcm is now int, instead of
      unsigned int, as there is no obvious reason for keeping it unsigned.
      This caused a lot of problems with comparing this value with other
      (almost always signed) variables. There is just one more place where
      device number is unsigned - in struct snd_pcm_info, which should be
      also sorted out in future.
      Signed-off-by: NPawel MOLL <pawel.moll@st.com>
      Signed-off-by: NJaroslav Kysela <perex@perex.cz>
      94239690
    • M
      ALSA: Build jack detection · 0d94e41a
      Mark Brown 提交于
      Since jack detection requires the input subsystem which may not be
      desired on small systems it is not built unless required by a driver
      that is being built. Drivers using jack detection should use a pattern
      like this:
      
      config SND_FOO
              tristate "..."
              ...
              select SND_JACK if INPUT=y || INPUT=SND
      
      to ensure that the jack detection API is enabled if the input subsystem
      is.  If the input subsystem is not enabled then a stub version of the
      API is provided.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Signed-off-by: NJaroslav Kysela <perex@perex.cz>
      0d94e41a
    • M
      ALSA: Add jack reporting API · e76d8cea
      Mark Brown 提交于
      Currently very few systems provide information about jack status to user
      space, even though many have hardware facilities to do detection. Those
      systems that do use an input device with the existing SW_HEADPHONE_INSERT
      switch type to do so, often independently of ALSA.
      
      This patch introduces a standard method for representing jacks to user
      space into ALSA. It allows drivers to register jacks for a sound card with
      the input subsystem, binding the input device to the card to help user
      space associate the input devices with their sound cards. The created
      input devices are named in the form "card longname jack" where jack is
      provided by the driver when allocating a jack. By default the parent for
      the input device is the sound card but this can be overridden by the
      card driver.
      
      The existing user space API with SW_HEADPHONE_INSERT is preserved.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Signed-off-by: NJaroslav Kysela <perex@perex.cz>
      e76d8cea
  6. 25 9月, 2008 2 次提交
    • T
      ALSA: remove unneeded power_mutex lock in snd_pcm_drop · 24e8fc49
      Takashi Iwai 提交于
      The power_mutex lock in snd_pcm_drop may cause a possible deadlock
      chain, and above all, it's unneeded.  Let's get rid of it.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      24e8fc49
    • T
      ALSA: fix locking in snd_pcm_open*() and snd_rawmidi_open*() · 399ccdc1
      Takashi Iwai 提交于
      The PCM and rawmidi open callbacks have a lock against card->controls_list
      but it takes a wrong one, card->controls_rwsem, instead of a right one
      card->ctl_files_rwlock.  This patch fixes them.
      
      This change also fixes automatically the potential deadlocks due to
      mm->mmap_sem in munmap and copy_from/to_user, reported by Sitsofe
      Wheeler:
      
        A: snd_ctl_elem_user_tlv(): card->controls_rwsem => mm->mmap_sem
        B: snd_pcm_open(): card->open_mutex => card->controls_rwsem
        C: munmap: mm->mmap_sem => snd_pcm_release(): card->open_mutex
      
      The patch breaks the chain.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      399ccdc1
  7. 07 8月, 2008 2 次提交
    • L
      Revert "pcm_native.c: remove unused label" · 685d87f7
      Linus Torvalds 提交于
      This reverts commit 680db013.  The label
      is actually used, but hidden behind CONFIG_SND_DEBUG and the horrible
      snd_assert() macro.
      
      That macro could probably be improved to be along the lines of
      
      	#define snd_assert(expr, args...) do { if ((void)(expr),0) { args; } } while (0)
      
      or similar to make sure that we always both evaluate 'expr' and parse
      'args', but while gcc should optimize it all away, I'm too lazy to
      really verify that.  So I'll just admit defeat and will continue to live
      with the annoying warning.
      Noted-by: NRobert P. J. Day <rpjday@crashcourse.ca>
      Signed-off-by: Linus "Grr.." Torvalds
      685d87f7
    • L
      pcm_native.c: remove unused label · 680db013
      Linus Torvalds 提交于
      This fixes the warning
      
        sound/core/pcm_native.c: In function 'snd_pcm_fasync':
        sound/core/pcm_native.c:3262: warning: label 'out' defined but not used
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      680db013
  8. 05 8月, 2008 1 次提交
  9. 25 7月, 2008 1 次提交
    • A
      PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures · 27ac792c
      Andrea Righi 提交于
      On 32-bit architectures PAGE_ALIGN() truncates 64-bit values to the 32-bit
      boundary. For example:
      
      	u64 val = PAGE_ALIGN(size);
      
      always returns a value < 4GB even if size is greater than 4GB.
      
      The problem resides in PAGE_MASK definition (from include/asm-x86/page.h for
      example):
      
      #define PAGE_SHIFT      12
      #define PAGE_SIZE       (_AC(1,UL) << PAGE_SHIFT)
      #define PAGE_MASK       (~(PAGE_SIZE-1))
      ...
      #define PAGE_ALIGN(addr)       (((addr)+PAGE_SIZE-1)&PAGE_MASK)
      
      The "~" is performed on a 32-bit value, so everything in "and" with
      PAGE_MASK greater than 4GB will be truncated to the 32-bit boundary.
      Using the ALIGN() macro seems to be the right way, because it uses
      typeof(addr) for the mask.
      
      Also move the PAGE_ALIGN() definitions out of include/asm-*/page.h in
      include/linux/mm.h.
      
      See also lkml discussion: http://lkml.org/lkml/2008/6/11/237
      
      [akpm@linux-foundation.org: fix drivers/media/video/uvc/uvc_queue.c]
      [akpm@linux-foundation.org: fix v850]
      [akpm@linux-foundation.org: fix powerpc]
      [akpm@linux-foundation.org: fix arm]
      [akpm@linux-foundation.org: fix mips]
      [akpm@linux-foundation.org: fix drivers/media/video/pvrusb2/pvrusb2-dvb.c]
      [akpm@linux-foundation.org: fix drivers/mtd/maps/uclinux.c]
      [akpm@linux-foundation.org: fix powerpc]
      Signed-off-by: NAndrea Righi <righi.andrea@gmail.com>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      27ac792c
  10. 22 7月, 2008 1 次提交
  11. 10 7月, 2008 1 次提交
  12. 03 7月, 2008 1 次提交
  13. 21 6月, 2008 1 次提交
  14. 13 6月, 2008 1 次提交
  15. 28 5月, 2008 1 次提交
    • T
      [ALSA] Improve the slots option handling · a93bbaa7
      Takashi Iwai 提交于
      Fix and improve the slots option handling.  The sound core tries to
      find the slot with the given module name first and assign if it's
      still available.  If all pre-given slots are unavailable, then try
      to find another free slot.
      
      Also, when a module name begins with '!', it means the negative match:
      the slot will be given for any modules but that one.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      a93bbaa7
  16. 27 5月, 2008 2 次提交
  17. 21 5月, 2008 1 次提交
    • G
      SOUND: fix race in device_create · 5d99a8b8
      Greg Kroah-Hartman 提交于
      There is a race from when a device is created with device_create() and
      then the drvdata is set with a call to dev_set_drvdata() in which a
      sysfs file could be open, yet the drvdata will be NULL, causing all
      sorts of bad things to happen.
      
      This patch fixes the problem by using the new function,
      device_create_drvdata().
      
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Cc: Jaroslav Kysela <perex@perex.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      5d99a8b8
  18. 19 5月, 2008 1 次提交
  19. 29 4月, 2008 2 次提交
  20. 24 4月, 2008 8 次提交
  21. 15 2月, 2008 1 次提交
  22. 06 2月, 2008 1 次提交
  23. 01 2月, 2008 3 次提交