Mark Brown [Fri, 16 Dec 2011 06:56:02 +0000 (07:56 +0100)]
ASoC: Convert wm8961 to devm_kzalloc()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Fri, 16 Dec 2011 06:55:02 +0000 (07:55 +0100)]
ASoC: Remove I2C ifdefs from wm8961 driver
The driver only supports I2C so no need to conditionalise its use.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Fri, 16 Dec 2011 06:42:58 +0000 (07:42 +0100)]
ASoC: Convert WM8960 to devm_kzalloc()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Thu, 15 Dec 2011 02:54:25 +0000 (10:54 +0800)]
ASoC: pxa: Convert e800_wm9712 to use snd_soc_register_card()
Use snd_soc_register_card() instead of creating a "soc-audio" platform device.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Thu, 15 Dec 2011 02:57:22 +0000 (10:57 +0800)]
ASoC: pxa: Convert tosa to use snd_soc_register_card()
Use snd_soc_register_card() instead of creating a "soc-audio" platform device.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Thu, 15 Dec 2011 02:55:24 +0000 (10:55 +0800)]
ASoC: pxa: Convert imote2 to use snd_soc_register_card()
Use snd_soc_register_card() instead of creating a "soc-audio" platform device.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Thu, 15 Dec 2011 02:53:29 +0000 (10:53 +0800)]
ASoC: pxa: Convert e750_wm9705 to use snd_soc_register_card()
Use snd_soc_register_card() instead of creating a "soc-audio" platform device.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Thu, 15 Dec 2011 02:52:42 +0000 (10:52 +0800)]
ASoC: pxa: Convert e740_wm9705 to use snd_soc_register_card()
Use snd_soc_register_card() instead of creating a "soc-audio" platform device.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Peter Ujfalusi [Thu, 15 Dec 2011 09:32:27 +0000 (11:32 +0200)]
ASoC: omap-mcbsp: Enable FIFO usage on OMAP4
Allow McBSP FIFO configuration from ASoC dai driver
on OMAP4 platform.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Peter Ujfalusi [Thu, 15 Dec 2011 09:32:26 +0000 (11:32 +0200)]
OMAP4: mcbsp: Enable FIFO usage
All McBSP instances on OMAP4 has 128 word long FIFO
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Sat, 17 Dec 2011 09:05:46 +0000 (10:05 +0100)]
Merge branch 'topic/asoc' of git://git./linux/kernel/git/tiwai/sound into for-3.3
Joerg Roedel [Thu, 15 Dec 2011 17:24:54 +0000 (18:24 +0100)]
ASoC: Fix compile error in sound/soc/mid-x86/sst_platform.c
The variable ret_val is used but not declared. This causes
the following compile error:
sound/soc/mid-x86/sst_platform.c: In function ‘sst_platform_open’:
sound/soc/mid-x86/sst_platform.c:274:2: error: ‘ret_val’ undeclared (first use in this function)
sound/soc/mid-x86/sst_platform.c:274:2: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [sound/soc/mid-x86/sst_platform.o] Error 1
Fix this.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Axel Lin [Wed, 14 Dec 2011 11:23:01 +0000 (19:23 +0800)]
ASoC: Staticise mfld_msic_dailink
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked by: Vinod Koul <vinod.koul@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Thu, 15 Dec 2011 03:54:00 +0000 (11:54 +0800)]
ASoC: Fix partial cherry pick in wm8993
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Sat, 3 Dec 2011 20:22:18 +0000 (20:22 +0000)]
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>
Mark Brown [Sat, 3 Dec 2011 20:21:32 +0000 (20:21 +0000)]
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>
Mark Brown [Wed, 14 Dec 2011 11:23:37 +0000 (19:23 +0800)]
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>
Mark Brown [Thu, 1 Dec 2011 17:19:44 +0000 (17:19 +0000)]
mfd: Test for jack detection when deciding if wm8994 should suspend
The jack detection on WM1811 is often required during system suspend, add
it as another check when deciding if we should suspend.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Wed, 14 Dec 2011 03:40:59 +0000 (11:40 +0800)]
ASoC: Use standard register cache sync in wm8993
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Wed, 14 Dec 2011 03:11:52 +0000 (11:11 +0800)]
ASoC: Convert wm8993 to devm_kzalloc()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Tue, 13 Dec 2011 13:04:26 +0000 (21:04 +0800)]
ASoC: Use standard snd_soc_cache_sync() for WM9090
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Tue, 13 Dec 2011 10:30:03 +0000 (18:30 +0800)]
ASoC: Remove cache default for volatile wm9081 reset register
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Tue, 13 Dec 2011 09:13:45 +0000 (17:13 +0800)]
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>
Axel Lin [Tue, 13 Dec 2011 12:23:50 +0000 (20:23 +0800)]
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>
Mark Brown [Mon, 12 Dec 2011 11:05:58 +0000 (19:05 +0800)]
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>
Mark Brown [Mon, 12 Dec 2011 14:47:25 +0000 (22:47 +0800)]
ASoC: Staticise asoc_idma_platform
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Sangbeom Kim <sbkim73@samsung.com>
Mark Brown [Wed, 14 Dec 2011 03:20:42 +0000 (11:20 +0800)]
ASoC: Fix wm8995 regmap usage
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Leon Romanovsky [Mon, 12 Dec 2011 19:43:45 +0000 (21:43 +0200)]
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>
Mark Brown [Tue, 13 Dec 2011 05:26:25 +0000 (13:26 +0800)]
Merge branch 'topic/cache' of git://git./linux/kernel/git/broonie/regmap into for-3.3
Lars-Peter Clausen [Wed, 16 Nov 2011 15:28:16 +0000 (16:28 +0100)]
regmap: Move initialization of regcache related fields to regcache_init
Move the initialization regcache related fields of the regmap struct to
regcache_init. This allows us to keep regmap and regcache code better
separated.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Tue, 13 Dec 2011 02:15:40 +0000 (10:15 +0800)]
ASoC: Staticise alchemy_pcm_soc_platform
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Tue, 13 Dec 2011 02:14:30 +0000 (10:14 +0800)]
ASoC: Staticise au1xpsc_soc_platform
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Tue, 13 Dec 2011 02:13:13 +0000 (10:13 +0800)]
ASoC: Staticise rx51_aux_dev
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Thu, 10 Nov 2011 17:39:40 +0000 (17:39 +0000)]
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>
Mark Brown [Tue, 25 Oct 2011 14:13:12 +0000 (16:13 +0200)]
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>
Mark Brown [Sun, 24 Jul 2011 11:49:52 +0000 (12:49 +0100)]
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>
Mark Brown [Mon, 12 Dec 2011 16:19:20 +0000 (00:19 +0800)]
Merge branch 'mfd/wm8994' of git://git./linux/kernel/git/broonie/misc into for-3.3
Mark Brown [Tue, 25 Oct 2011 08:19:04 +0000 (10:19 +0200)]
mfd: Convert wm8994 to use generic regmap irq_chip
Factor out the irq_chip implementation, substantially reducing the code
size for the driver.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Mon, 12 Dec 2011 16:12:48 +0000 (00:12 +0800)]
Merge branch 'topic/irq' of git://git./linux/kernel/git/broonie/regmap into wm8994-mfd
Mark Brown [Thu, 1 Dec 2011 13:55:49 +0000 (13:55 +0000)]
mfd: Mark WM1811 GPIO6 register volatile for later revisions
For later chip revisions the WM1811 GPIO6 register is always volatile so
store the device revision when initialising the driver and then check at
runtime if we're running on a newer device.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Thu, 1 Dec 2011 13:53:18 +0000 (13:53 +0000)]
mfd: Add missing mutex.h inclusion to WM8994 core.h
struct wm8994 includes a mutex so we need to include mutex.h before we
declare it. All current users rely on this being done implicitly.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Wed, 30 Nov 2011 20:16:42 +0000 (20:16 +0000)]
mfd: Add WM1811A device ID to wm8994 driver
The WM1811A is a variant of the WM1811 with pin configuration changes.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Wed, 30 Nov 2011 16:51:04 +0000 (16:51 +0000)]
mfd: Correct revision display for WM1811 revision D
As WM1811 revision C was transparent to software the revision IDs for
subsequent revisions are one less than they would normally be. Correct
for this in log messages.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Mon, 28 Nov 2011 18:48:14 +0000 (18:48 +0000)]
mfd: Constify WM8994 regulator_init_data
The driver has no need to modify the regulator_init_data so declare it
const to allow machine code to do so.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Sat, 3 Dec 2011 17:10:32 +0000 (17:10 +0000)]
mfd: Initialise WM8994 register cache after reading chip ID registers
The different devices handled by the WM8994 can be distinguished using
their ID registers so we don't need to rely on the user having registered
the device correctly. Instead do the initial regmap setup with a minimal
configuration only supporting physical I/O and then configure the cache
once we have identified the device.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Tue, 25 Oct 2011 12:23:53 +0000 (14:23 +0200)]
mfd: Enable register cache for wm8994 devices
As part of this we provide information about the registers that exist in
the device to the regmap core, drop the small amount of cache that the
core had been using and let regmap do the sync.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Mon, 12 Dec 2011 16:10:45 +0000 (00:10 +0800)]
Merge branch 'topic/cache' of git://git./linux/kernel/git/broonie/regmap into HEAD
Mark Brown [Fri, 19 Aug 2011 09:37:58 +0000 (18:37 +0900)]
mfd: Add wm8994 register access and default information
Describe the register map to the regmap core so that we can use its
diagnostic features and cache support. This is split out from the patch
using it due to the size so that the actual code change is a bit clearer.
As the various devices are supersets of each other the access maps are
built up by layering the functions on top of each other, though the
interface for specifying the register defaults isn't currently amenable
to this.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Tue, 25 Oct 2011 13:44:12 +0000 (15:44 +0200)]
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>
Mark Brown [Tue, 25 Oct 2011 11:25:43 +0000 (13:25 +0200)]
mfd: Don't hard code the reset value for WM8994 devices
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Thu, 3 Nov 2011 13:20:38 +0000 (13:20 +0000)]
mfd: Disable more pulls on WM8994
Disable more pulls by default on WM8994 for a small current saving. Since
some designs do leave SPKMODE floating provide platform data to allow that
to be left enabled.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Tue, 25 Oct 2011 11:45:40 +0000 (13:45 +0200)]
mfd: Convert wm8994 to devm_kzalloc()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Tue, 22 Nov 2011 18:22:29 +0000 (18:22 +0000)]
mfd: Add basic device tree binding for wm8994
Add a placeholder device tree binding for the wm8994 driver. At present
the binding is essentially null as none of the platform data is supported,
and at least some of that will depend on the pending regulator bindings.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Mon, 24 Oct 2011 13:05:19 +0000 (15:05 +0200)]
mfd: Remove some unused functions in wm8894-irq
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Samuel Oritz <sameo@linux.intel.com>
Axel Lin [Mon, 12 Dec 2011 08:01:15 +0000 (16:01 +0800)]
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>
Mark Brown [Sun, 11 Dec 2011 03:31:22 +0000 (11:31 +0800)]
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>
Mark Brown [Mon, 12 Dec 2011 04:59:06 +0000 (12:59 +0800)]
Merge branch 'for-3.2' into for-3.3
Axel Lin [Mon, 12 Dec 2011 03:26:00 +0000 (11:26 +0800)]
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>
Jonathan Neuschäfer [Sun, 11 Dec 2011 18:15:49 +0000 (19:15 +0100)]
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>
Mark Brown [Sun, 11 Dec 2011 03:24:44 +0000 (11:24 +0800)]
Merge branch 'for-3.2' into for-3.3
Conflicts:
sound/soc/mxs/mxs-pcm.c
Lothar Waßmann [Fri, 9 Dec 2011 13:16:29 +0000 (14:16 +0100)]
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>
Lothar Waßmann [Fri, 9 Dec 2011 13:38:12 +0000 (14:38 +0100)]
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>
Lothar Waßmann [Fri, 9 Dec 2011 13:38:11 +0000 (14:38 +0100)]
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>
Mark Brown [Sat, 10 Dec 2011 19:01:33 +0000 (03:01 +0800)]
Merge branch 'for-3.2' into for-3.3
Mark Brown [Sat, 10 Dec 2011 12:38:32 +0000 (20:38 +0800)]
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
Mark Brown [Thu, 8 Dec 2011 08:24:16 +0000 (16:24 +0800)]
ASoC: Convert wm8770 to devm_kzalloc()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Fri, 9 Dec 2011 10:43:20 +0000 (18:43 +0800)]
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>
Mark Brown [Thu, 8 Dec 2011 08:53:47 +0000 (16:53 +0800)]
ASoC: Convert WM8900 to table based DAPM and control init
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Thu, 8 Dec 2011 08:52:19 +0000 (16:52 +0800)]
ASoC: Convert WM8804 to table based control init
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Thu, 8 Dec 2011 08:46:59 +0000 (16:46 +0800)]
ASoC: Make WM8770 SPI usage unconditional
The device only supports SPI.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Thu, 8 Dec 2011 08:45:22 +0000 (16:45 +0800)]
ASoC: Convert WM8776 to devm_kzalloc()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Wed, 7 Dec 2011 20:58:27 +0000 (13:58 -0700)]
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>
Stephen Warren [Wed, 7 Dec 2011 20:58:29 +0000 (13:58 -0700)]
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>
Axel Lin [Thu, 8 Dec 2011 03:09:15 +0000 (11:09 +0800)]
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>
Mark Brown [Mon, 5 Dec 2011 15:17:36 +0000 (15:17 +0000)]
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>
Mark Brown [Mon, 5 Dec 2011 15:17:06 +0000 (15:17 +0000)]
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>
Mark Brown [Sat, 3 Dec 2011 20:20:47 +0000 (20:20 +0000)]
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>
Mark Brown [Sat, 3 Dec 2011 20:20:02 +0000 (20:20 +0000)]
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>
Mark Brown [Sat, 3 Dec 2011 20:14:31 +0000 (20:14 +0000)]
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>
Mark Brown [Wed, 7 Dec 2011 16:15:39 +0000 (00:15 +0800)]
Merge branch 'for-3.2' into for-3.3
Axel Lin [Wed, 7 Dec 2011 02:03:12 +0000 (10:03 +0800)]
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>
Axel Lin [Wed, 7 Dec 2011 02:01:30 +0000 (10:01 +0800)]
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>
Axel Lin [Wed, 7 Dec 2011 02:04:07 +0000 (10:04 +0800)]
ASoC: Convert e750_wm9705 to use gpio_request_one()
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Wed, 7 Dec 2011 10:04:10 +0000 (18:04 +0800)]
ASoC: Fix a typo in s3c24xx_simtec_tlv320aic23 driver
Fix a typo introduced by commit
e00c3f55
"ASoC: Convert Samsung directory to module_platform_driver".
This fixes the build error:
CC sound/soc/samsung/s3c24xx_simtec_tlv320aic23.o
sound/soc/samsung/s3c24xx_simtec_tlv320aic23.c: In function 'simtec_audio_tlv320aic32_driver_init':
sound/soc/samsung/s3c24xx_simtec_tlv320aic23.c:105: error: 'simtec_audio_tlv320aic32_driver' undeclared (first use in this function)
sound/soc/samsung/s3c24xx_simtec_tlv320aic23.c:105: error: (Each undeclared identifier is reported only once
sound/soc/samsung/s3c24xx_simtec_tlv320aic23.c:105: error: for each function it appears in.)
sound/soc/samsung/s3c24xx_simtec_tlv320aic23.c: In function 'simtec_audio_tlv320aic32_driver_exit':
sound/soc/samsung/s3c24xx_simtec_tlv320aic23.c:105: error: 'simtec_audio_tlv320aic32_driver' undeclared (first use in this function)
make[3]: *** [sound/soc/samsung/s3c24xx_simtec_tlv320aic23.o] Error 1
make[2]: *** [sound/soc/samsung] Error 2
make[1]: *** [sound/soc] Error 2
make: *** [sound] Error 2
I think we had better naming it with *driver, thus I change
it to simtec_audio_tlv320aic23_driver.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Wed, 7 Dec 2011 09:52:19 +0000 (17:52 +0800)]
ASoC: Include linux/module.h for smdk2443_wm9710
Include linux/module.h to fix below build error:
CC sound/soc/samsung/smdk2443_wm9710.o
sound/soc/samsung/smdk2443_wm9710.c:64: error: expected declaration specifiers or '...' before string constant
sound/soc/samsung/smdk2443_wm9710.c:64: warning: data definition has no type or storage class
sound/soc/samsung/smdk2443_wm9710.c:64: warning: type defaults to 'int' in declaration of 'MODULE_AUTHOR'
sound/soc/samsung/smdk2443_wm9710.c:64: warning: function declaration isn't a prototype
sound/soc/samsung/smdk2443_wm9710.c:65: error: expected declaration specifiers or '...' before string constant
sound/soc/samsung/smdk2443_wm9710.c:65: warning: data definition has no type or storage class
sound/soc/samsung/smdk2443_wm9710.c:65: warning: type defaults to 'int' in declaration of 'MODULE_DESCRIPTION'
sound/soc/samsung/smdk2443_wm9710.c:65: warning: function declaration isn't a prototype
sound/soc/samsung/smdk2443_wm9710.c:66: error: expected declaration specifiers or '...' before string constant
sound/soc/samsung/smdk2443_wm9710.c:66: warning: data definition has no type or storage class
sound/soc/samsung/smdk2443_wm9710.c:66: warning: type defaults to 'int' in declaration of 'MODULE_LICENSE'
sound/soc/samsung/smdk2443_wm9710.c:66: warning: function declaration isn't a prototype
make[3]: *** [sound/soc/samsung/smdk2443_wm9710.o] Error 1
make[2]: *** [sound/soc/samsung] Error 2
make[1]: *** [sound/soc] Error 2
make: *** [sound] Error 2
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Wed, 7 Dec 2011 09:44:47 +0000 (17:44 +0800)]
ASoC: Fix a typo in jive_wm8750
Fix a typo in jive_wm8750 that introduces below build error.
Also removes an unused err variable.
CC sound/soc/samsung/jive_wm8750.o
sound/soc/samsung/jive_wm8750.c: In function 'jive_wm8750_init':
sound/soc/samsung/jive_wm8750.c:104: warning: unused variable 'err'
sound/soc/samsung/jive_wm8750.c: At top level:
sound/soc/samsung/jive_wm8750.c:134: error: unknown field 'dapm_widgtets' specified in initializer
sound/soc/samsung/jive_wm8750.c:134: warning: initialization from incompatible pointer type
make[3]: *** [sound/soc/samsung/jive_wm8750.o] Error 1
make[2]: *** [sound/soc/samsung] Error 2
make[1]: *** [sound/soc] Error 2
make: *** [sound] Error 2
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Sat, 3 Dec 2011 20:30:37 +0000 (20:30 +0000)]
ASoC: Convert Samsung I2S driver to devm_kzalloc()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Sangbeom Kim <sbkim73@samsung.com>
Stephen Warren [Tue, 6 Dec 2011 21:15:41 +0000 (14:15 -0700)]
ASoC: WM8903: Add of_match_table
This allows the device to be matched against the device tree using the
compatible flag directly, as is standard, rather than falling back to
matching .id_table against the non-vendor portion of the first compatible
property value.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Tue, 6 Dec 2011 11:01:38 +0000 (11:01 +0000)]
Merge branch 'for-3.2' into for-3.3
Axel Lin [Tue, 6 Dec 2011 07:38:51 +0000 (15:38 +0800)]
ASoC: Fix build dependency for SND_SOC_JZ4740_CODEC
Currently SND_SOC_JZ4740_CODEC depends on SOC_JZ4740 but SOC_JZ4740 is not
defined in any Kconfig. Thus the codec driver will not be built when select
"Build all ASoC CODEC drivers".
(Unless it is selected by SND_JZ4740_SOC_QI_LB60).
Remove the dependency with SOC_JZ4740, then this code driver can be built when
select "Build all ASoC CODEC drivers".
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Axel Lin [Tue, 6 Dec 2011 07:19:00 +0000 (15:19 +0800)]
ASoC: Include linux/io.h for jz4740 codec
Include linux/io.h to fix below build errors:
CC sound/soc/codecs/jz4740.o
sound/soc/codecs/jz4740.c: In function 'jz4740_codec_read':
sound/soc/codecs/jz4740.c:82: error: implicit declaration of function 'readl'
sound/soc/codecs/jz4740.c: In function 'jz4740_codec_write':
sound/soc/codecs/jz4740.c:92: error: implicit declaration of function 'writel'
sound/soc/codecs/jz4740.c: In function 'jz4740_codec_probe':
sound/soc/codecs/jz4740.c:373: error: implicit declaration of function 'ioremap'
sound/soc/codecs/jz4740.c:373: warning: assignment makes pointer from integer without a cast
sound/soc/codecs/jz4740.c:393: error: implicit declaration of function 'iounmap'
make[3]: *** [sound/soc/codecs/jz4740.o] Error 1
make[2]: *** [sound/soc/codecs] Error 2
make[1]: *** [sound/soc] Error 2
make: *** [sound] Error 2
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Tue, 6 Dec 2011 10:30:24 +0000 (10:30 +0000)]
ASoC: Don't fail if we can't read the IRQ type in WM8903
If we fail to read the IRQ type from the interrupt controller don't
fail, just assume a value and solider on - we may fail later when we try
to request the IRQ but it's possible we'll succeed.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 2 Dec 2011 22:08:41 +0000 (15:08 -0700)]
ASoC: WM8903: Add device tree binding
Document the device tree binding for the WM8903 codec, and modify the
driver to extract platform data from the device tree, if present.
Based on work by John Bonesio, but significantly reworked since then.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 2 Dec 2011 22:08:40 +0000 (15:08 -0700)]
ASoC: WM8903: Get default irq_active_low from IRQ controller
If the WM8903 is hooked up to an interrupt, set the irq_active_low flag
in the default platform data based on the IRQ's IRQ_TYPE. Map IRQ_TYPE_NONE
(a lack of explicit configuration/restriction) to irq_active_low = false;
the previous default.
This code is mainly added to support device tree interrupt bindings,
although will work perfectly well in a non device tree system too.
Any interrupt controller that supports only a single IRQ_TYPE could
set each IRQ's type based on that restriction. This applies equally
with and without device tree. To cater for interrupt controllers
that don't do this, for which irqd_get_trigger_type() will return
IRQ_TYPE_NONE, the platform data irq_active_low field may be used
in systems that don't use device tree.
With device tree, every IRQ must have some IRQ_TYPE set.
Controllers that support DT and multiple IRQ_TYPEs must define the
interrupts property (as used in interrupt source nodes) such that it
defines the IRQ_TYPE to use. When the core DT setup code initializes
wm8903->irq, the interrupts property will be parsed, and as a side-
effect, set the IRQ's IRQ_TYPE for the WM8903 probe() function to read.
Controllers that support DT and a single IRQ_TYPE could arrange to
set the IRQ_TYPE somehow during their initialization, or hard-code
it during the processing of the child interrupts property.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 2 Dec 2011 22:08:39 +0000 (15:08 -0700)]
ASoC: WM8903: Remove conditionals checking pdata != NULL
The pdata pointer is now always valid. Remove any conditions that check
its validity.
This patch is mostly just removing an indentation level. One variable had
to be moved due to the removal of a scope, and one comment was split into
two. Viewing the patch with git show/diff -b will show that it's actually
very small.
Note that WM8903_MIC_BIAS_CONTROL_0 is now written unconditionally,
whereas it used to be written only if pdata was supplied. Since
defpdata.micdet_cfg = 0, this unconditional write simply echos the HW
defaults in the case where pdata is not supplied.
Based on work by John Bonesio, but significantly reworked since then.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 2 Dec 2011 22:08:37 +0000 (15:08 -0700)]
ASoC: WM8903: Fix platform data gpio_cfg confusion
wm8903_platform_data.gpio_cfg[] was intended to be interpreted as follows:
0: Don't touch this GPIO's configuration register
1..7fff: Write that value to the GPIO's configuration register
8000: Write zero to the GPIO's configuration register
other: Undefined (invalid)
The rationale is that platform data is usually global data, and a value of
zero means that the field wasn't explicitly set to anything (e.g. because
the field was new to the pdata type, and existing users weren't update to
initialize it) and hence the value zero should be ignored. 0x8000 is an
explicit way to get 0 in the register.
The code worked this way until commit
7cfe561 "ASoC: wm8903: Expose GPIOs
through gpiolib", where the behaviour was changed due to my lack of
awareness of the above rationale.
This patch reverts to the intended behaviour, and updates all in-tree users
to use the correct scheme. This also makes WM8903 consistent with other
devices that use a similar scheme.
WM8903_GPIO_NO_CONFIG is also renamed to WM8903_GPIO_CONFIG_ZERO so that
its name accurately reflects its purpose.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Cc: Olof Johansson <olof@lixom.net>
Cc: Colin Cross <ccross@android.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Tue, 6 Dec 2011 10:09:55 +0000 (10:09 +0000)]
Merge branch 'for-3.2' into for-3.3
Mark Brown [Mon, 5 Dec 2011 20:50:45 +0000 (20:50 +0000)]
ASoC: Provide a more complete DMA driver stub
Allow userspace applications to do more parameter setting by providing a
more complete stub DMA driver specifying a wildcard set of formats and
channels and essentially random values for the DMA parameters. This is
required for useful runtime operation of the dummy DMA driver until we
are able to figure out how to power up links and do hw_params() from DAPM.
Sending to stable as without this the dummy driver is not terribly
useful.
Reported-by: Kyung-Kwee Ryu <Kyung-Kwee.Ryu@wolfsonmicro.com>
Tested-by: Kyung-Kwee Ryu <Kyung-Kwee.Ryu@wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
Mark Brown [Mon, 5 Dec 2011 19:30:05 +0000 (19:30 +0000)]
Merge branch 'for-3.2' into for-3.3
Mark Brown [Mon, 5 Dec 2011 18:27:25 +0000 (18:27 +0000)]
ASoC: Remove references to corgi and spitz from machine driver document
They're not currently actively worked on, the hardware being rather
obsolete by now.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>