Commit Graph

11482 Commits

Author SHA1 Message Date
Mark Brown
ec641c4590 ASoC: Fix partial cherry pick in wm8993
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-15 11:54:00 +08:00
Mark Brown
27f478a65f ASoC: Use core pm_runtime callbacks for fsi
Now that the core holds a pm_runtime reference to the device while the
link is active there is no need for the driver to do so.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-15 02:27:00 +08:00
Mark Brown
20e757f79b ASoC: Use core pm_runtime callbacks for siu_dai
Now that the core holds a pm_runtime reference to the device while the
link is active there is no need for the driver to do so.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-15 02:26:58 +08:00
Mark Brown
45ba82d817 ASoC: Tune the accessory detection rates for WM8996
Use longer intervals when the microphone is not inserted to increase
robustness against leisurely insertion.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-14 19:35:14 +08:00
Mark Brown
d0616bbed1 ASoC: Use standard register cache sync in wm8993
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-14 17:07:51 +08:00
Mark Brown
f6a9336879 ASoC: Convert wm8993 to devm_kzalloc()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-14 17:07:47 +08:00
Mark Brown
ffbf2a363e ASoC: Use standard snd_soc_cache_sync() for WM9090
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-14 17:07:39 +08:00
Mark Brown
42f3b0109e ASoC: Remove cache default for volatile wm9081 reset register
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-14 17:06:29 +08:00
Axel Lin
8faa8c1a55 ASoC: Staticise sst_pcm_new and sst_soc_platform_drv
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by Vinod Koul <vinod.koul@linux.intel.com>
Acked-by: Lu Guanqun <guanqun.lu@intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-14 15:55:13 +08:00
Axel Lin
92f6d63bf1 ASoC: Remove unused extern declarations for sh4_hac_dai and sh7760_soc_platform
Both sh4_hac_dai and sh7760_soc_platform are changed to static
by multi-component patch and they are not used in sh7760-ac97.c now.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-14 15:54:53 +08:00
Mark Brown
0c9f110574 ASoC: Complete initialisation before registering Samsung PCM DAI
Otherwise there's a race where the DAI might get used without everything
having been set up.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Sangbeom Kim <sbkim73@samsung.com>
2011-12-14 13:53:47 +08:00
Mark Brown
8858d21891 ASoC: Staticise asoc_idma_platform
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Sangbeom Kim <sbkim73@samsung.com>
2011-12-14 13:52:43 +08:00
Mark Brown
6f8d272a44 ASoC: Fix wm8995 regmap usage
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-14 13:48:12 +08:00
Leon Romanovsky
9215aa4d96 ASoC: Rename ALC5632 MICBIAS to common name convention.
Signed-off-by: Leon Romanovsky <leon@leon.nu>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-13 14:27:19 +08:00
Axel Lin
796ba9001d ASoC: Staticise alchemy_pcm_soc_platform
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-13 12:10:33 +08:00
Axel Lin
bba59f3326 ASoC: Staticise au1xpsc_soc_platform
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-13 12:10:33 +08:00
Axel Lin
a0e17b4e3e ASoC: Staticise rx51_aux_dev
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-13 12:10:33 +08:00
Mark Brown
1dfb6efd87 ASoC: Remove rbtree register cache
All users now use regmap directly so delete the ASoC version of the code.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-13 00:20:28 +08:00
Mark Brown
cae59c7b21 ASoC: Remove WM8994 register cache
Now that the mfd is using the register map cache there's no need for the
CODEC driver to do any register cache management or any funny dances to
interact with the other drivers using the device so just remove the cache
initialisation and volatility information.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-13 00:20:11 +08:00
Mark Brown
d9a7666ff3 ASoC: Remove ASoC-specific WM8994 I/O code
Just go directly to the regmap API, saving code and making integration
that bit more direct.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-13 00:20:06 +08:00
Mark Brown
68556ca1e0 Merge branch 'mfd/wm8994' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc into for-3.3 2011-12-13 00:19:20 +08:00
Mark Brown
4de45284d3 mfd: Define some additional wm8994 registers
Add a bunch of definitions for wm8994 registers that are not currently
used by software.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
2011-12-13 00:10:06 +08:00
Axel Lin
0604ca48f1 ASoC: Add missed MODULE_LICENSE("GPL") for imx-pcm-fiq
This driver can be built as module and the file header indicates that
the driver is published under the GPL.
Thus add MODULE_LICENSE("GPL") for it.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-12 18:10:02 +08:00
Mark Brown
3628137646 ASoC: Raise Speyside audio system clock rate to 512fs
To support advanced system functionality for additional components; the
actively used clocks will remain the same for current components. Also
factor the rate out to a single #define while we're at it.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-12 12:59:11 +08:00
Mark Brown
0a105ddb35 Merge branch 'for-3.2' into for-3.3 2011-12-12 12:59:06 +08:00
Axel Lin
497d496598 ASoC: Fix hx4700 error handling to free gpios if snd_soc_register_card fails
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-12 12:58:42 +08:00
Jonathan Neuschäfer
62e4a13e60 ASoC: WM8958: correctly show firmware magic on mismatch
Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-12 12:44:02 +08:00
Mark Brown
43a9519758 Merge branch 'for-3.2' into for-3.3
Conflicts:
	sound/soc/mxs/mxs-pcm.c
2011-12-11 11:24:44 +08:00
Lothar Waßmann
7c08be84f8 ASoC: Fix an obvious copy paste error in an error message
The message was obviously copied from soc_init_codec_debugfs()

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-11 10:59:49 +08:00
Lothar Waßmann
9fd369b193 ASoC: mxs: Add appropriate MODULE_ALIAS()
Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-11 10:59:02 +08:00
Lothar Waßmann
06c8eb9a91 ASoC: mxs: Add missing MODULE_LICENSE("GPL")
The sound driver refuses to load as module, because of the missing
MODULE_LICENSE("GPL").
The file header indicates that the driver is indeed published under
the GPL.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-11 10:58:55 +08:00
Mark Brown
f04b8d6ece Merge branch 'for-3.2' into for-3.3 2011-12-11 03:01:33 +08:00
Mark Brown
37d5993c5c ASoC: Fix WM8996 24.576MHz clock operation
Record the clock after the divider as that is what all SYSCLK users see.
Without this the other clock configuration in the device comes out at
half rate.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
2011-12-11 03:01:09 +08:00
Mark Brown
3025ae45d6 ASoC: Convert wm8770 to devm_kzalloc()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-09 20:36:59 +08:00
Axel Lin
7fcadfd176 ASoC: Fix comments for disabling amplifier and PGA
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-09 20:28:28 +08:00
Mark Brown
46ce904f7d ASoC: Convert WM8900 to table based DAPM and control init
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-09 20:28:18 +08:00
Mark Brown
5a37452421 ASoC: Convert WM8804 to table based control init
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-09 20:28:17 +08:00
Mark Brown
bc9c040d36 ASoC: Make WM8770 SPI usage unconditional
The device only supports SPI.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-09 20:28:16 +08:00
Mark Brown
bf97ca9a0d ASoC: Convert WM8776 to devm_kzalloc()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-09 20:28:15 +08:00
Stephen Warren
2610ab7767 ASoC: Refactor some conditions and loop in soc_bind_dai_link()
Transform some loops from:

for_each(x) {
    if (f(x)) {
        work_on(x);
    }
}

to new structure:

for_each(x) {
    if (!f(x))
        continue;

    work_on(x);
}

This will allow future modification of f(x) with less impact to the code.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-09 12:45:54 +08:00
Stephen Warren
7b9b5e1170 ASoC: Tegra: Move DAS configuration into DAS driver
Move DAS routing setup into the DAS driver itself. This removes the need
to duplicate this in each machine driver, of which we'll soon have three.

An added advantage is that the machine drivers no longer call the Tegra20-
specific DAS functions by name, so the machine driver no longer needs to
be split up into Tegra20 and Tegra30 versions.

If individual machine drivers need a different routing setup to this
default, they can still call the DAS functions to set that up.

Long-term, DAS will be a codec driver, and user-space will be able to
control its routing, possibly within constraints that the machine driver
sets up. Configuring the DAS routing from the DAS driver is a very slight
move in that direction.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-08 12:34:07 +08:00
Axel Lin
16b24881a0 ASoC: wm8960: Use snd_soc_update_bits for read-modify-write
Use snd_soc_update_bits for read-modify-write register access instead of
open-coding it using snd_soc_read and snd_soc_write

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-08 11:37:31 +08:00
Mark Brown
4105ab846c ASoC: Rely on core enabling the wm8994 with runtime PM
No need to do this in the driver now.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-08 09:22:48 +08:00
Mark Brown
f1aac484f7 ASoC: Take a pm_runtime reference on DAPM devices that are enabled
As for PCMs take a runtime power management reference to devices that are
in a non-off bias, avoiding the need to do this in individual drivers.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-08 09:22:36 +08:00
Mark Brown
beaff340e0 ASoC: Use core pm_runtime callbacks for omap-mcpdm
Now that the core holds a pm_runtime reference to the device while the
link is active there is no need for the driver to do so.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
2011-12-08 09:22:04 +08:00
Mark Brown
06d07b6b1c ASoC: Use core pm_runtime callbacks for omap-dmic
Now that the core holds a pm_runtime reference to the device while the
link is active there is no need for the driver to do so.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
2011-12-08 09:21:51 +08:00
Mark Brown
d6652ef822 ASoC: Hold runtime PM references to components of active DAIs
Every device that implements runtime power management for DAIs is doing
it in pretty much the same way: in the startup callback they take a
runtime PM reference and then in the shutdown callback they release that
reference, keeping the device active while the DAI is active. Given the
frequency with which this is done and the obviousness of the need to keep
the device active in this period factor the code out into the core, taking
references on the device for each CPU DAI, CODEC DAI and DMA device in the
core.

As runtime PM is reference counted this shouldn't interfere with any
other reference holding by the drivers, and since (in common with the
existing implementations) we don't check for errors on enabling it
shouldn't matter if the device actually has runtime PM enabled or not.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
2011-12-08 09:21:45 +08:00
Mark Brown
bf4df93593 Merge branch 'for-3.2' into for-3.3 2011-12-08 00:15:39 +08:00
Axel Lin
209e8cf668 ASoC: Convert e800_wm9712 to use gpio_request_one()
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-08 00:14:19 +08:00
Axel Lin
8faab941be ASoC: Fix error handling in e800_init to free gpios
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-08 00:14:19 +08:00