1. 24 11月, 2010 1 次提交
    • K
      ALSA: support module on-demand loading for seq and timer · 03cfe6f5
      Kay Sievers 提交于
      If CONFIG_SND_DYNAMIC_MINORS is used, assign /dev/snd/seq and
      /dev/snd/timer the usual static minors, and export specific
      module aliases to generate udev module on-demand loading
      instructions:
      
        $ cat /lib/modules/2.6.33.4-smp/modules.devname
        # Device nodes to trigger on-demand module loading.
        microcode cpu/microcode c10:184
        fuse fuse c10:229
        ppp_generic ppp c108:0
        tun net/tun c10:200
        uinput uinput c10:223
        dm_mod mapper/control c10:236
        snd_timer snd/timer c116:33
        snd_seq snd/seq c116:1
      
      The last two lines instruct udev to create device nodes, even
      when the modules are not loaded at that time.
      
      As soon as userspace accesses any of these nodes, the in-kernel
      module-loader will load the module, and the device can be used.
      
      The header file minor calculation needed to be simplified to
      make __stringify() (supports only two indirections) in
      the MODULE_ALIAS macro work.
      
      This is part of systemd's effort to get rid of unconditional
      module load instructions and needless init scripts.
      
      Cc: Lennart Poettering <lennart@poettering.net>
      Signed-off-by: NKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      03cfe6f5
  2. 22 11月, 2010 1 次提交
    • C
      ALSA: pcm: support for period wakeup disabling · ab69a490
      Clemens Ladisch 提交于
      This patch allows to disable period interrupts which are
      not needed when the application relies on a system timer
      to wake-up and refill the ring buffer. The behavior of
      the driver is left unchanged, and interrupts are only
      disabled if the application requests this configuration.
      The behavior in case of underruns is slightly different,
      instead of being detected during the period interrupts the
      underruns are detected when the application calls
      snd_pcm_update_avail, which in turns forces a refresh of the
      hw pointer and shows the buffer is empty.
      
      More specifically this patch makes a lot of sense when
      PulseAudio relies on timer-based scheduling to access audio
      devices such as HDAudio or Intel SST. Disabling interrupts
      removes two unwanted wake-ups due to period elapsed events
      in low-power playback modes. It also simplifies PulseAudio
      voice modules used for speech calls.
      
      To quote Lennart "This patch looks very interesting and
      desirable. This is something have long been waiting for."
      
      Support for this in hardware drivers is optional.
      Signed-off-by: NPierre-Louis Bossart <pierre-louis.bossart@intel.com>
      Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      ab69a490
  3. 23 10月, 2010 1 次提交
    • K
      driver core: remove CONFIG_SYSFS_DEPRECATED_V2 but keep it for block devices · 39aba963
      Kay Sievers 提交于
      This patch removes the old CONFIG_SYSFS_DEPRECATED_V2 config option,
      but it keeps the logic around to handle block devices in the old manner
      as some people like to run new kernel versions on old (pre 2007/2008)
      distros.
      Signed-off-by: NKay Sievers <kay.sievers@vrfy.org>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Stephen Hemminger <shemminger@vyatta.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: "James E.J. Bottomley" <James.Bottomley@suse.de>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jaroslav Kysela <perex@perex.cz>
      Cc: Takashi Iwai <tiwai@suse.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      39aba963
  4. 19 10月, 2010 1 次提交
  5. 18 10月, 2010 1 次提交
  6. 17 10月, 2010 2 次提交
  7. 13 10月, 2010 1 次提交
    • M
      ASoC: don't register AC97 devices twice · 0562f788
      Mika Westerberg 提交于
      With generic AC97 ASoC glue driver (codec/ac97.c), we get following warning when
      the device is registered (slightly stripped the backtrace):
      
      kobject (c5a863e8): tried to init an initialized object, something is seriously
                          wrong.
      [<c00254fc>] (unwind_backtrace+0x0/0xec)
      [<c014fad0>] (kobject_init+0x38/0x70)
      [<c0171e94>] (device_initialize+0x20/0x70)
      [<c017267c>] (device_register+0xc/0x18)
      [<bf20db70>] (snd_soc_instantiate_cards+0x924/0xacc [snd_soc_core])
      [<bf20e0d0>] (snd_soc_register_platform+0x16c/0x198 [snd_soc_core])
      [<c0175304>] (platform_drv_probe+0x18/0x1c)
      [<c0174454>] (driver_probe_device+0xb0/0x16c)
      [<c017456c>] (__driver_attach+0x5c/0x7c)
      [<c0173cec>] (bus_for_each_dev+0x48/0x78)
      [<c0173600>] (bus_add_driver+0x98/0x214)
      [<c0174834>] (driver_register+0xa4/0x130)
      [<c001f410>] (do_one_initcall+0xd0/0x1a4)
      [<c0062ddc>] (sys_init_module+0x12b0/0x1454)
      
      This happens because the generic AC97 glue driver creates its codec->ac97 via
      calling snd_ac97_mixer(). snd_ac97_mixer() provides own version of
      snd_device.register which handles the device registration when
      snd_card_register() is called.
      
      To avoid registering the AC97 device twice, we add a new flag to the
      snd_soc_codec: ac97_created which tells whether the AC97 device was created by
      SoC subsystem.
      Signed-off-by: NMika Westerberg <mika.westerberg@iki.fi>
      Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      0562f788
  8. 08 10月, 2010 1 次提交
  9. 03 10月, 2010 1 次提交
  10. 01 10月, 2010 1 次提交
  11. 29 9月, 2010 1 次提交
  12. 07 9月, 2010 1 次提交
  13. 06 9月, 2010 1 次提交
  14. 31 8月, 2010 2 次提交
  15. 19 8月, 2010 1 次提交
  16. 18 8月, 2010 2 次提交
  17. 15 8月, 2010 1 次提交
  18. 12 8月, 2010 1 次提交
    • L
      ASoC: multi-component - ASoC Multi-Component Support · f0fba2ad
      Liam Girdwood 提交于
      This patch extends the ASoC API to allow sound cards to have more than one
      CODEC and more than one platform DMA controller. This is achieved by dividing
      some current ASoC structures that contain both driver data and device data into
      structures that only either contain device data or driver data. i.e.
      
       struct snd_soc_codec    --->  struct snd_soc_codec (device data)
                                +->  struct snd_soc_codec_driver (driver data)
      
       struct snd_soc_platform --->  struct snd_soc_platform (device data)
                                +->  struct snd_soc_platform_driver (driver data)
      
       struct snd_soc_dai      --->  struct snd_soc_dai (device data)
                                +->  struct snd_soc_dai_driver (driver data)
      
       struct snd_soc_device   --->  deleted
      
      This now allows ASoC to be more tightly aligned with the Linux driver model and
      also means that every ASoC codec, platform and (platform) DAI is a kernel
      device. ASoC component private data is now stored as device private data.
      
      The ASoC sound card struct snd_soc_card has also been updated to store lists
      of it's components rather than a pointer to a codec and platform. The PCM
      runtime struct soc_pcm_runtime now has pointers to all its components.
      
      This patch adds DAPM support for ASoC multi-component and removes struct
      snd_soc_socdev from DAPM core. All DAPM calls are now made on a card, codec
      or runtime PCM level basis rather than using snd_soc_socdev.
      
      Other notable multi-component changes:-
      
       * Stream operations now de-reference less structures.
       * close_delayed work() now runs on a DAI basis rather than looping all DAIs
         in a card.
       * PM suspend()/resume() operations can now handle N CODECs and Platforms
         per sound card.
       * Added soc_bind_dai_link() to bind the component devices to the sound card.
       * Added soc_dai_link_probe() and soc_dai_link_remove() to probe and remove
         DAI link components.
       * sysfs entries can now be registered per component per card.
       * snd_soc_new_pcms() functionailty rolled into dai_link_probe().
       * snd_soc_register_codec() now does all the codec list and mutex init.
      
      This patch changes the probe() and remove() of the CODEC drivers as follows:-
      
       o Make CODEC driver a platform driver
       o Moved all struct snd_soc_codec list, mutex, etc initialiasation to core.
       o Removed all static codec pointers (drivers now support > 1 codec dev)
       o snd_soc_register_pcms() now done by core.
       o snd_soc_register_dai() folded into snd_soc_register_codec().
      
      CS4270 portions:
      Acked-by: NTimur Tabi <timur@freescale.com>
      
      Some TLV320aic23 and Cirrus platform fixes.
      Signed-off-by: NRyan Mallon <ryan@bluewatersys.com>
      
      TI CODEC and OMAP fixes
      Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@nokia.com>
      Signed-off-by: NJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
      Signed-off-by: NJarkko Nikula <jhnikula@gmail.com>
      
      Samsung platform and misc fixes :-
      Signed-off-by: NChanwoo Choi <cw00.choi@samsung.com>
      Signed-off-by: NJoonyoung Shim <jy0922.shim@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Reviewed-by: NJassi Brar <jassi.brar@samsung.com>
      Signed-off-by: NSeungwhan Youn <sw.youn@samsung.com>
      
      MPC8610 and PPC fixes.
      Signed-off-by: NTimur Tabi <timur@freescale.com>
      
      i.MX fixes and some core fixes.
      Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
      
      J4740 platform fixes:-
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      
      CC: Tony Lindgren <tony@atomide.com>
      CC: Nicolas Ferre <nicolas.ferre@atmel.com>
      CC: Kevin Hilman <khilman@deeprootsystems.com>
      CC: Sascha Hauer <s.hauer@pengutronix.de>
      CC: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
      CC: Kuninori Morimoto <morimoto.kuninori@renesas.com>
      CC: Daniel Gloeckner <dg@emlix.com>
      CC: Manuel Lauss <mano@roarinelk.homelinux.net>
      CC: Mike Frysinger <vapier.adi@gmail.com>
      CC: Arnaud Patard <apatard@mandriva.com>
      CC: Wan ZongShun <mcuos.com@gmail.com>
      Acked-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      f0fba2ad
  19. 05 8月, 2010 1 次提交
    • M
      ASoC: Add initial WM8962 CODEC driver · 9a76f1ff
      Mark Brown 提交于
      The WM8962 is a low power, high performance stereo CODEC designed for
      portable digital audio applications.
      
      This initial driver release supports the key audio paths of the WM8962.
      Extended functionality, such as microphone detection, digital microphones
      and the advanced DSP signal enhancements provided by the device are not
      yet supported.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      9a76f1ff
  20. 30 7月, 2010 1 次提交
  21. 29 7月, 2010 2 次提交
  22. 19 7月, 2010 1 次提交
  23. 18 7月, 2010 1 次提交
  24. 13 7月, 2010 2 次提交
  25. 28 6月, 2010 1 次提交
    • D
      ALSA: pcm_lib: avoid timing jitter in snd_pcm_read/write() · 5daeba34
      David Dillow 提交于
      When using poll() to wait for the next period -- or avail_min samples --
      one gets a consistent delay for each system call that is usually just a
      little short of the selected period time. However, When using
      snd_pcm_read/write(), one gets a jittery delay that alternates between
      less than a millisecond and approximately two period times. This is
      caused by snd_pcm_lib_{read,write}1() transferring any available samples
      to the user's buffer and adjusting the application pointer prior to
      sleeping to the end of the current period. When the next period
      interrupt occurs, there is then less than avail_min samples remaining to
      be transferred in the period, so we end up sleeping until a second
      period occurs.
      
      This is solved by using runtime->twake as the number of samples needed
      for a wakeup in addition to selecting the proper wait queue to wake in
      snd_pcm_update_state(). This requires twake to be non-zero when used
      by snd_pcm_lib_{read,write}1() even if avail_min is zero.
      Signed-off-by: NDave Dillow <dave@thedillows.org>
      Signed-off-by: NJaroslav Kysela <perex@perex.cz>
      5daeba34
  26. 25 6月, 2010 1 次提交
  27. 31 5月, 2010 2 次提交
  28. 17 5月, 2010 1 次提交
  29. 12 5月, 2010 1 次提交
  30. 11 5月, 2010 2 次提交
    • P
      ASoC: core: Fix for the volume limiting when invert is in use · d11bb4a9
      Peter Ujfalusi 提交于
      If the register for the volume needs invert, than the inversion
      need to be done from the chip maximum, and not from the platform
      dependent limit.
      Introduce soc_mixer_control.platform_max value, which initially
      equals to chip maximum.
      The snd_soc_limit_volume function only modify the platform_max,
      all volsw_info call returns this as well.
      The .max value holds the chip default (maximum), and it is used
      for the inversion, if it is needed.
      
      Additional check in the volsw_info call has been added to check
      the validity of the platform_max in case, when custom macros
      used by codec drivers are not initializing it correctly.
      Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@nokia.com>
      Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      d11bb4a9
    • M
      PM QOS update · ed77134b
      Mark Gross 提交于
      This patch changes the string based list management to a handle base
      implementation to help with the hot path use of pm-qos, it also renames
      much of the API to use "request" as opposed to "requirement" that was
      used in the initial implementation.  I did this because request more
      accurately represents what it actually does.
      
      Also, I added a string based ABI for users wanting to use a string
      interface.  So if the user writes 0xDDDDDDDD formatted hex it will be
      accepted by the interface.  (someone asked me for it and I don't think
      it hurts anything.)
      
      This patch updates some documentation input I got from Randy.
      Signed-off-by: Nmarkgross <mgross@linux.intel.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      ed77134b
  31. 10 5月, 2010 3 次提交