Stephen Warren [Fri, 6 Apr 2012 17:15:55 +0000 (11:15 -0600)]
ASoC: tegra: utils: add support for Tegra30 devices
Tegra30 has some additional clocks that need to be manipulated, names
some clocks differently, runs PLLs at different base rates, etc. The
utility code needs to handle this.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 6 Apr 2012 17:18:16 +0000 (11:18 -0600)]
ASoC: tegra: set a sensible initial clock rate
Initialize the audio clock tree appropriately for some reasonable rate.
This makes sure the PLLs etc. are actually programmed to something
reasonable when the audio driver is loaded.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 6 Apr 2012 17:14:04 +0000 (11:14 -0600)]
ASoC: tegra: use devm_ APIs in SPDIF driver
The devm_ APIs remove the need to manually clean up allocations,
thus removing some code.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 6 Apr 2012 17:12:25 +0000 (11:12 -0600)]
ASoC: tegra: sort includes, remove mach/iomap.h
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Maarten ter Huurne [Fri, 6 Apr 2012 17:16:27 +0000 (19:16 +0200)]
ASoC: JZ4740: Replaced comma operators with semicolons.
They were harmless but also unnecessary, probably a leftover from earlier code.
Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 6 Apr 2012 16:30:52 +0000 (10:30 -0600)]
ASoC: tegra: complete Tegra->Tegra20 renaming
Rename Tegra20-specific Kconfig variables, module filenames, all internal
symbol names, clocks, and platform devices, to reflect the fact the DAS
and I2S drivers are for a specific HW version.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Thu, 5 Apr 2012 21:54:53 +0000 (15:54 -0600)]
ASoC: tegra: rename Tegra20-specific driver files
Rename these files so they include a specific hardware version in their
filenames. The contents is only touched minimally so that git's rename
tracking operates correctly; renaming all symbols in the files results
in a diff so large that the rename detection fails.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Thu, 5 Apr 2012 21:05:18 +0000 (22:05 +0100)]
ASoC: wm8400: Use snd_soc_write() and snd_soc_read()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
M R Swami Reddy [Thu, 5 Apr 2012 15:24:09 +0000 (20:54 +0530)]
ASoC: lm49453: fix build warnings
sound/soc/codecs/lm49453.c: In function 'lm49453_set_dai_fmt':
sound/soc/codecs/lm49453.c:1189:4: warning: overflow in implicit
constant conversion [-Woverflow]
sound/soc/codecs/lm49453.c:1193:4: warning: overflow in implicit
constant conversion [-Woverflow]
sound/soc/codecs/lm49453.c:1197:4: warning: overflow in implicit
constant conversion [-Woverflow]
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: M R Swami Reddy <mr.swami.reddy@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Thu, 5 Apr 2012 19:14:52 +0000 (13:14 -0600)]
ASoC: tegra: make Tegra20 drivers depend on Tegra20 support
Without this, the Tegra20 drivers can be built into a kernel that's
built only for Tegra30.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Thu, 5 Apr 2012 19:13:49 +0000 (13:13 -0600)]
ASoC: tegra: drop Kconfig description for SND_SOC_TEGRA_DAS
The DAS, I2S, and SPDIF Kconfig options are intended to be selected by
the Kconfig options for ASoC machine drivers. As such, they don't need
to be user-visible themselves. Drop the description from the DAS variable
to achieve this. I2S and SPDIF already don't have a description.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Wed, 4 Apr 2012 14:58:16 +0000 (15:58 +0100)]
ASoC: codecs: Remove rtd->codec usage from CODEC drivers
In order to support CODEC<->CODEC links remove the assumption that there
is only a single CODEC on a DAI link by removing the use of the CODEC
pointer in the rtd from the CODEC drivers. They are already being passed
their DAI whenever they are passed an rtd and can get the CODEC from
there.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Wed, 4 Apr 2012 14:33:45 +0000 (15:33 +0100)]
ASoC: tlv320aic23: Remove driver-specific version number
It's never been updated since the driver was merged.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Shawn Guo [Fri, 30 Mar 2012 04:31:32 +0000 (12:31 +0800)]
ASoC: fsl: remove redundant Kconfig dependency on SND_SOC_POWERPC_DMA
Kconfig option SND_SOC_POWERPC_DMA is under menuconfig SND_POWERPC_SOC.
Since SND_POWERPC_SOC already depends on FSL_SOC, there is no need for
SND_SOC_POWERPC_DMA to do the same.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Shawn Guo [Fri, 30 Mar 2012 04:31:31 +0000 (12:31 +0800)]
ASoC: fsl: remove redundant Kconfig option SND_SOC_FSL_SSI
While commit
606d620 (ASoC: imx: merge sound/soc/imx into sound/soc/fsl)
adds SND_SOC_FSL_SSI outside "menuconfig SND_POWERPC_SOC" to make it
visible for both PowerPC and ARM/IMX, it forgot removing the one inside
"menuconfig SND_POWERPC_SOC".
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Sat, 3 Mar 2012 00:10:02 +0000 (00:10 +0000)]
ASoC: wm8994: Don't bother updating the jackdet mode needlessly
If we're not doing jackdet it's not needed.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Thu, 8 Mar 2012 15:15:46 +0000 (15:15 +0000)]
ASoC: dapm: Allow DAPM registers to be 31 bit
Supports larger register maps, not using unsigned ints for the full 32
bit as we rely on checking for negative registers.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Mark Brown [Tue, 3 Apr 2012 21:35:18 +0000 (22:35 +0100)]
ASoC: sgtl5000: Convert to module_i2c_driver()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Fabio Estevam [Tue, 3 Apr 2012 21:05:20 +0000 (18:05 -0300)]
ASoC: sgtl5000: Fix warning due to the lack of REGULATOR_CHANGE_VOLTAGE
Fix the following warning during kernel boot:
0-000a: 850 <--> 1600 mV at 1200 mV normal
0-000a: Voltage range but no REGULATOR_CHANGE_VOLTAGE
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Brian Austin [Tue, 3 Apr 2012 16:33:50 +0000 (11:33 -0500)]
ASoC: core: Initialize err for snd_soc_put_volsw_sx
sound/soc/soc-core.c: In function ‘snd_soc_put_volsw_sx’:
sound/soc/soc-core.c:2600: warning: ‘err’ may be used uninitialized in this function
Signed-off-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Brian Austin [Fri, 30 Mar 2012 15:43:55 +0000 (10:43 -0500)]
ASoC: core: Rework SOC_DOUBLE_R_SX_TLV add SOC_SINGLE_SX_TLV
Some codecs namely Cirrus Logic Codecs have a way of wrapping the dB scale around 0dB without 0dB being in the middle.
Rework of SOC_DOUBLE_R_SX_TLV to be more consistent with other asoc tlv macros.
Add single register macro : SOC_SINGLE_SX_TLV.
Use snd_soc_info_volsw for .info
Use snd_soc_get_volsw_sx, snd_soc_put_volsw_sx for single and double.
kcontrols for CS42L51 and CS42L73 are adjusted to these new TLV Macros.
The max value is determined by: (number of steps) +1 for 0dB +max from codec datasheet.
Signed-off-by: Brian Austin <brian.austin@cirrus.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
M R Swami Reddy [Mon, 2 Apr 2012 14:32:31 +0000 (20:02 +0530)]
ASoC: MAINTAINERS: Add maintainer for TI LM49453 Audio codec driver
I will be supporting the TI LM49453 audio driver and also a few new TI codec
drivers, that are currently in development and will be upstreamed shortly.
Signed-off-by: M R Swami Reddy <mr.swami.reddy@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Mon, 2 Apr 2012 13:53:13 +0000 (14:53 +0100)]
ASoC: max98095: Fix build failure
sound/soc/codecs/max98095.c: In function 'max98095_jack_detect_enable':
sound/soc/codecs/max98095.c:2229:14: error: 'struct max98095_priv' has no member named 'jack_detect_delay'
sound/soc/codecs/max98095.c:2230:18: error: 'struct max98095_priv' has no member named 'jack_detect_delay'
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
M R Swami Reddy [Fri, 30 Mar 2012 10:33:43 +0000 (16:03 +0530)]
ASoC: Support TI LM49453 Audio driver
Signed-off-by: M R Swami Reddy <mr.swami.reddy@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 30 Mar 2012 23:07:16 +0000 (17:07 -0600)]
ASoC: tegra: remove open-coded clk reference counting
clk_enable/disable() already reference count the enable calls, so there's
no need for the callers to do the same.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 30 Mar 2012 23:07:24 +0000 (17:07 -0600)]
ASoC: tegra: sort Makefile into common and per-SoC files
The DAS, I2S, and SPDIF drivers are Tegra20-specific. Group these
together so that when Tegra30-specific equivalents are added later, the
file ordering makes sense.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 30 Mar 2012 23:07:22 +0000 (17:07 -0600)]
ASoC: tegra: introduce separate Kconfig variable for DAS driver
This is mainly for symmetry with a future Tegra30 driver, where the
equivalent of the DAS (the AHUB) is useful separately from the I2S driver.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 30 Mar 2012 23:07:21 +0000 (17:07 -0600)]
ASoC: tegra: fix some checkpatch warnings
ERROR: trailing whitespace
ERROR: code indent should use tabs where possible
WARNING: please, no spaces at the start of a line
ERROR: "foo * bar" should be "foo *bar"
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 30 Mar 2012 23:07:20 +0000 (17:07 -0600)]
ASoC: tegra: fix Kconfig SND_SOC_TEGRA_ALC5632 indentation
Indent with TABs to be consistent with the rest of the file.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Fri, 30 Mar 2012 23:07:18 +0000 (17:07 -0600)]
ASoC: tegra: remove unnecessary includes
These include aren't needed, and some of the files are about to be
renamed.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Fri, 30 Mar 2012 10:21:45 +0000 (11:21 +0100)]
ASoC: wm8994: Don't bother lowering clock dividers inside idle AIFs
This increases the chances we'll manage to hit a partially configured
state on restart and the power savings are extremely small.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Shawn Guo [Thu, 29 Mar 2012 16:13:03 +0000 (00:13 +0800)]
ASoC: fsl: add audio routing for imx-sgtl5000
Add DAPM widgets and audio routing support for imx-sgtl5000 machine
driver.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Ashish Chavan [Thu, 29 Mar 2012 13:36:29 +0000 (19:06 +0530)]
ASoC: da7210: Add support for spi regmap
This patch adds support for spi regmap feature to existing da7210
driver.
Signed-off-by: Ashish Chavan <ashish.chavan@kpitcummins.com>
Signed-off-by: David Dajun Chen <dchen@diasemi.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Wed, 28 Mar 2012 19:52:24 +0000 (20:52 +0100)]
ASoC: dapm: Remove SND_SOC_DAPM_MICBIAS_E()
There are no users any more and new drivers should be using supply widgets
which fully replace it anyway.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Zeng Zhaoming <zengzm.kernel@gmail.com>
Mark Brown [Wed, 28 Mar 2012 19:51:43 +0000 (20:51 +0100)]
ASoC: sgtl5000: Convert mic bias to a supply widget
No current users and it's the last user of MICBIAS_E().
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Dong Aisheng <dong.aisheng@linaro.org>
Acked-by: Zeng Zhaoming <zengzm.kernel@gmail.com>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Mark Brown [Thu, 29 Mar 2012 13:49:27 +0000 (14:49 +0100)]
ASoC: wm8994: Don't allow reconfiguration of FLL when it provides SYSCLK
Rather than trying to work around machine drivers which try to reprogram
the FLL while it is providing SYSCLK just return an error if they try.
This will avoid audio glitches during FLL reconfiguration, or at least
move the introduction of the glitches to the machine driver.
Since disabling the source for an active SYSCLK is not supported in the
first place systems shouldn't be doing this in the first place.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Shawn Guo [Thu, 29 Mar 2012 02:53:41 +0000 (10:53 +0800)]
ASoC: fsl: enable ssi clock in probe function
For power saving, most IMX platform initilization code turns off
modules' clock, and expects driver turn on clock as needed.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
H Hartley Sweeten [Mon, 26 Mar 2012 23:00:17 +0000 (16:00 -0700)]
ASoC: ep93xx-i2s: use devm_* helpers to cleanup probe
Use the devm_* helpers to cleanup the probe routine. This also eliminates
having to carry the mem value in the private data for the remove.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Tested-by: Mika Westerberg <mika.westerberg@iki.fi>
Acked-by: Mika Westerberg <mika.westerberg@iki.fi>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
H Hartley Sweeten [Mon, 26 Mar 2012 23:00:08 +0000 (16:00 -0700)]
ASoC: ep93xx-ac97: use devm_* helpers to cleanup probe
Use the devm_* helpers to cleanup the probe routine. This also eliminates
having to carry the mem and irq values in the private data for the remove.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Tested-by: Mika Westerberg <mika.westerberg@iki.fi>
Acked-by: Mika Westerberg <mika.westerberg@iki.fi>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Shawn Guo [Wed, 28 Mar 2012 07:34:56 +0000 (15:34 +0800)]
ASoC: fsl: assign dma peripheral type according to bus topology
The dma peripheral_type for SSI should be IMX_DMATYPE_SSI_SP if the SSI
is on SPBA bus.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Tue, 20 Mar 2012 20:55:50 +0000 (14:55 -0600)]
ARM: tegra: remove tegra_pcm_device
tegra_pcm_device is no longer needed now that the Tegra ASoC code has
cleaned up its 'platform' registration. Remove it.
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Tue, 20 Mar 2012 20:55:49 +0000 (14:55 -0600)]
ASoC: tegra: register 'platform' from DAIs, get rid of pdev
Previously, the ASoC 'platform' (PCM/DMA) object was instantiated via a
platform_device. This didn't represent the hardware well, since there
was no separate hardware associated with this platform_device; it was a
virtual device with sole purpose to call snd_soc_register_platform().
This mechanism required all board files to register this device, and all
ASoC machine drivers to create and register this device when booting
using device tree.
This change removes the platform_device completely. Each Tegra DAI now
registers the ASoC 'platform' itself. Machine drivers are adjusted for
the new 'platform' name.
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Stephen Warren [Tue, 20 Mar 2012 20:55:48 +0000 (14:55 -0600)]
ASoC: tegra: fix comment indentation in ALC5632 machine
Fix comment indentation to clear checkpatch errors in a later patch.
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tomoya MORINAGA [Mon, 19 Mar 2012 11:59:28 +0000 (20:59 +0900)]
ASoC: Add LAPIS Semiconductor ML26124 driver
ML26124-01HB/ML26124-02GD is 16bit monaural audio CODEC which has high
resistance to voltage noise. On chip regulator realizes power supply rejection
ratio be over 90dB so more than 50dB is improved than ever. ML26124-01HB/
ML26124-02GD can deliver stable audio performance without being affected by noise
from the power supply circuit and peripheral components. The chip also includes
a composite video signal output, which can be applied to various portable device
requirements. The ML26124 is realized these functions into very small package
the size is only 2.56mm x 2.46mm therefore can be construct high quality sound
system easily.
ML26124-01HB is 25pin WCSP package; ML26124-02GD is 32pin WQFN package.
Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Mon, 19 Mar 2012 16:15:43 +0000 (16:15 +0000)]
ASoC: cs4270: Check that we can enable regulators on resume
It's possible that the regulator enable will fail and if it does we may
as well just give up with trying to bring the rest of the device up and
report the original error.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Timur Tabi <timur@freescale.com>
Mark Brown [Thu, 8 Mar 2012 15:06:09 +0000 (15:06 +0000)]
ASoC: dapm: Remove bodges for no-widget CODECs
Now that we're creating widgets for all DAIs there should be no more
need for the bodges we've been carrying for non-DAPM CODEC drivers so
remove them.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Timur Tabi <timur@freescale.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Shawn Guo [Fri, 16 Mar 2012 08:56:44 +0000 (16:56 +0800)]
ASoC: fsl: add imx-sgtl5000 machine driver
This is the initial imx-sgtl5000 machine driver support with only
playback dai link implemented. More features can be added on top
of it later.
It's a device tree only machine driver working with fsl_ssi driver.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Shawn Guo [Fri, 16 Mar 2012 08:56:43 +0000 (16:56 +0800)]
ASoC: fsl: let fsl_ssi work with imx pcm and machine drivers
Makes necessary changes on fsl_ssi to let it work with imx pcm and
machine drivers.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Shawn Guo [Fri, 16 Mar 2012 08:56:42 +0000 (16:56 +0800)]
ASoC: fsl: make fsl_ssi driver compilable on ARM/IMX
Provide different pair of accessors for accessing SSI registers on
PowerPC and ARM/IMX, so that fsl_ssi driver can be built on both
architectures.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Shawn Guo [Fri, 16 Mar 2012 08:56:41 +0000 (16:56 +0800)]
ASoC: fsl: remove helper fsl_asoc_get_codec_dev_name
The ASoC core now can support matching codec with device node besides
name, so we can save helper function fsl_asoc_get_codec_dev_name.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Shawn Guo [Fri, 16 Mar 2012 08:56:40 +0000 (16:56 +0800)]
ASoC: fsl: create fsl_utils to accommodate the common functions
There is some amount of code duplication between mpc8610_hpcd and
p1022_ds machine drivers, and the same code will be duplicated again
when another new machine driver is added. The patch creates fsl_utils
to accommodate the common functions to stop the code duplication.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Shawn Guo [Fri, 16 Mar 2012 08:56:39 +0000 (16:56 +0800)]
ASoC: fsl: rename imx-pcm Kconfig options and filename
Rename a couple of imx-pcm Kconfig options and filename to get them
well named and less confusing.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Shawn Guo [Fri, 16 Mar 2012 08:56:38 +0000 (16:56 +0800)]
ASoC: imx: merge sound/soc/imx into sound/soc/fsl
Freescale PowerPC and ARM/IMX families share the same SSI IP block.
The patch merges sound/soc/imx into sound/soc/fsl, so that the possible
code sharing and consolidation can happen.
This is a plain merge, except that menuconfig SND_POWERPC_SOC is added
in Kconfig for PowerPC platform as a correspondence to SND_IMX_SOC for
IMX platform.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Shawn Guo [Fri, 16 Mar 2012 08:56:37 +0000 (16:56 +0800)]
ASoC: fsl: separate SSI and DMA Kconfig options
The fsl_ssi driver will possibly be shared between Freescale PowerPC
and ARM/IMX families, so give it a separate Kconfig option. Then
fsl_ssi driver can possibly be selected independently from selecting
PowerPC DMA based PCM driver.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Tue, 6 Mar 2012 00:29:37 +0000 (00:29 +0000)]
ASoC: wm8962: Add HPF coefficient configuration support
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Tue, 21 Feb 2012 23:33:26 +0000 (23:33 +0000)]
ASoC: wm8962: Add HD Bass and VSS coefficient configuration
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Tue, 21 Feb 2012 23:25:05 +0000 (23:25 +0000)]
ASoC: wm8962: Add Dynamic Range Control support
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Tue, 21 Feb 2012 23:24:46 +0000 (23:24 +0000)]
ASoC: wm8962: Add Direct-Form 1 filter support
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Tue, 21 Feb 2012 23:21:17 +0000 (23:21 +0000)]
ASoC: wm8962: Add 3D enhancement support
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Thu, 23 Feb 2012 20:19:47 +0000 (20:19 +0000)]
ASoC: wm8962: Implement DSP2 configuration initialisation
We can simply use the register cache code to synchronise the current
configuration down to the device when bringing up the DSP.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Rhyland Klein [Thu, 15 Mar 2012 22:07:47 +0000 (15:07 -0700)]
ASoC: max98095: add jack detection
This change adds the logic to support using the jack detect mechanism built
in to the codec to detect both when a jack was inserted and what type of
jack is present.
This change also supports the use of an external mechanism for headphone
detection. If this mechanism exists, when the max98095_jack_detect function
is called, the hp_jack is simply passed NULL.
This change supports both simple headphones, powered headphones, microphones
and headsets with both headphones and a mic.
Signed-off-by: Rhyland Klein <rklein@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Philipp Zabel [Thu, 15 Mar 2012 18:16:12 +0000 (19:16 +0100)]
ASoC: pxa2xx-i2s: Add clk_prepare/clk_unprepare calls
This patch adds clk_prepare/clk_unprepare calls to the pxa2xx-i2s
driver by using the helper functions clk_prepare_enable and
clk_disable_unprepare.
Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Wed, 14 Mar 2012 21:18:39 +0000 (21:18 +0000)]
ASoC: core: Use driver core probe deferral
In version 3.4 the driver core acquired probe deferral which is a core way
of doing essentially the same thing as ASoC has been doing since forever
to make sure that all the devices needed to make up the card are present
without needing open coding in the subsystem.
Make basic use of this probe deferral mechanism for the cards, removing the
need to handle partially instantiated cards. We should be able to remove
even more code than this, though some of the checks we're currently doing
should stay since they're about things like suppressing unneeded DAPM runs
rather than deferring probes.
In order to avoid robustness issues with our teardown paths (which do need
quite a bit of TLC) add a check for aux_devs prior to attempting to set
things up, this means that we've got a reasonable idea that everything will
be there before we start. As with the removal of partial instantiation
support more work will be needed to make this work neatly.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Mark Brown [Mon, 12 Mar 2012 14:07:49 +0000 (14:07 +0000)]
ASoC: jack: Push locking for jacks down to the jack
Currently operations on jack reporting take the CODEC mutex both to protect
the current jack status and also to protect the DAPM run which is triggered
on status updates. Since the addition of a DAPM-specific lock we no longer
need to worry about locking DAPM as it has its own finer grained lock so
create a per jack lock to take care of the jack status.
This is both cleaner where the jack isn't specifically associated with a
CODEC and clearer as it's much more obvious what the lock is protecting.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Mon, 12 Mar 2012 16:34:35 +0000 (16:34 +0000)]
ASoC: wm8994: Don't lock CODEC mutex to do DAPM sync
DAPM now has a DAPM-level lock which it manages itself so we don't need
to take the CODEC mutex to call DAPM any more. Also remove a redundant
call to snd_soc_dapm_sync(), jack reporting also triggers a DAPM sync.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Mon, 30 Jan 2012 20:01:53 +0000 (20:01 +0000)]
ASoC: wm5100: Convert to devm_regmap_init_i2c()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Tue, 6 Mar 2012 23:58:22 +0000 (23:58 +0000)]
ASoC: dapm: Only lock CODEC for I/O if not using regmap
If we do use regmap then regmap will take care of things for us. We
actually already have this check at a higher level for the current
users but this makes sure we do the right thing in the future too if
we need to.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Liam Girdwood [Tue, 6 Mar 2012 18:16:19 +0000 (18:16 +0000)]
ASoC: DAPM: Make sure DAPM widget IO ops hold the component mutex
Currently not all DAPM widget IO ops are holding their component mutex
(codec or platform). Make sure this is now held for DAPM widget IO operations.
Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Liam Girdwood [Fri, 9 Mar 2012 17:20:16 +0000 (17:20 +0000)]
ASoC: dapm: Add regulator member to struct dapm_widget
Currently DAPM widgets use the private data for their regulator.
Add a regulator * for widgets to use instead of private data.
Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Liam Girdwood [Fri, 9 Mar 2012 12:02:08 +0000 (12:02 +0000)]
ASoC: dapm: Rename dapm mutex subclass to better match usage
Rename SND_SOC_DAPM_CLASS_PCM to SND_SOC_DAPM_CLASS_RUNTIME to
better match the usage and align with card mutex too.
Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Liam Girdwood [Fri, 9 Mar 2012 12:02:07 +0000 (12:02 +0000)]
ASoC: core: Rename card mutex subclass to better align with usage
Change SND_SOC_CARD_CLASS_PCM to SND_SOC_CARD_CLASS_RUNTIME to better
describe all uses for this mutex subclass and align with DAPM too.
Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Liam Girdwood [Wed, 7 Mar 2012 16:32:59 +0000 (16:32 +0000)]
ASoC: dapm: Add platform stream event support
Currently stream events are only perfomed on codec stream widgets only.
There is now a need to be able to perform stream events on platform
widgets too.
e.g. we have the ABE platform driver with several DAI links
to dummy codecs. We need to be able to perform stream events on any
of the dummy codec DAI links.
This patch also removes the snd_soc_dai * parameter since it's already
contained within the rtd * parameter.
Finally makle stream event return void since no one checks it anyway.
Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Liam Girdwood [Wed, 7 Mar 2012 11:47:41 +0000 (11:47 +0000)]
ASoC: core: Add platform DAI widget mapping
Add platform driver support for CPU DAI DAPM widgets.
Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Liam Girdwood [Wed, 7 Mar 2012 10:38:27 +0000 (10:38 +0000)]
ASoC: dapm: lock mixer & mux update power with DAPM mutex
Both snd_soc_dapm_mux_update_power() and snd_soc_dapm_mixer_update_power() can
be called internally within DAPM core (with DAPM mutex held) and externally.
Provide some wrappers so that external users of both functions do not have to
remember to hold the DAPM mutex.
Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Liam Girdwood [Wed, 7 Mar 2012 10:38:26 +0000 (10:38 +0000)]
ASoC: dapm: Use DAPM mutex for DAPM ops instead of codec mutex
It has now become necessary to use a DAPM mutex instead of the codec
mutex to lock the DAPM operations. This is due to the recent multi
component support and forth coming Dynamic PCM updates.
Currently we lock DAPM operations with the codec mutex of the calling
RTD context. However, DAPM operations can span the whole card context
and all components.
This patch updates the DAPM operations that use the codec mutex to
now use the DAPM mutex PCM subclass for all DAPM ops.
We also add a mutex subclass for DAPM init and PCM operations.
Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Liam Girdwood [Wed, 7 Mar 2012 10:38:25 +0000 (10:38 +0000)]
ASoC: core: Add card mutex locking subclasses
This is the first part of a change that is intended to improve
ASoC locking protection for DAPM and PCM operations.
This part of the series adds a mutex class for the soc_card mutex. The
SND_SOC_CARD_CLASS_INIT class is used for card initialisation only whilst the
SND_SOC_CARD_CLASS_PCM class is used for the forth coming Dynamic
PCM operations. The new mutex classes are required otherwise we will see a false
positive mutex deadlock warning between the card initialisation and the PCM
operations (something that would never deadlock in real life).
Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Sun, 4 Mar 2012 14:20:18 +0000 (14:20 +0000)]
ASoC: ak4641: Push GPIO allocation out into the I2C probe
It's more idiomatic to do this and it means we don't try to bring up the
card if the CODEC didn't manage to bind successfully.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Mark Brown [Sun, 4 Mar 2012 14:06:36 +0000 (14:06 +0000)]
ASoC: ak4641: Convert to module_i2c_driver()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Linus Torvalds [Sat, 31 Mar 2012 23:24:09 +0000 (16:24 -0700)]
Linux 3.4-rc1
Linus Torvalds [Sat, 31 Mar 2012 22:11:39 +0000 (15:11 -0700)]
Merge branch 's3-for-3.4' of git://git./linux/kernel/git/amit/virtio-console
Pull virtio S3 support patches from Amit Shah:
"Turns out S3 is not different from S4 for virtio devices: the device
is assumed to be reset, so the host and guest state are to be assumed
to be out of sync upon resume. We handle the S4 case with exactly the
same scenario, so just point the suspend/resume routines to the
freeze/restore ones.
Once that is done, we also use the PM API's macro to initialise the
sleep functions.
A couple of cleanups are included: there's no need for special thaw
processing in the balloon driver, so that's addressed in patches 1 and
2.
Testing: both S3 and S4 support have been tested using these patches
using a similar method used earlier during S4 patch development: a
guest is started with virtio-blk as the only disk, a virtio network
card, a virtio-serial port and a virtio balloon device. Ping from
guest to host, dd /dev/zero to a file on the disk, and IO from the
host on the virtio-serial port, all at once, while exercising S4 and
S3 (separately) were tested. They all continue to work fine after
resume. virtio balloon values too were tested by inflating and
deflating the balloon."
Pulling from Amit, since Rusty is off getting married (and presumably
shaving people).
* 's3-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/amit/virtio-console:
virtio-pci: switch to PM ops macro to initialise PM functions
virtio-pci: S3 support
virtio-pci: drop restore_common()
virtio: drop thaw PM operation
virtio: balloon: Allow stats update after restore from S4
Linus Torvalds [Sat, 31 Mar 2012 20:42:57 +0000 (13:42 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/viro/vfs
Pull second try at vfs part d#2 from Al Viro:
"Miklos' first series (with do_lookup() rewrite split into edible
chunks) + assorted bits and pieces.
The 'untangling of do_lookup()' series is is a splitup of what used to
be a monolithic patch from Miklos, so this series is basically "how do
I convince myself that his patch is correct (or find a hole in it)".
No holes found and I like the resulting cleanup, so in it went..."
Changes from try 1: Fix a boot problem with selinux, and commit messages
prettied up a bit.
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (24 commits)
vfs: fix out-of-date dentry_unhash() comment
vfs: split __lookup_hash
untangling do_lookup() - take __lookup_hash()-calling case out of line.
untangling do_lookup() - switch to calling __lookup_hash()
untangling do_lookup() - merge d_alloc_and_lookup() callers
untangling do_lookup() - merge failure exits in !dentry case
untangling do_lookup() - massage !dentry case towards __lookup_hash()
untangling do_lookup() - get rid of need_reval in !dentry case
untangling do_lookup() - eliminate a loop.
untangling do_lookup() - expand the area under ->i_mutex
untangling do_lookup() - isolate !dentry stuff from the rest of it.
vfs: move MAY_EXEC check from __lookup_hash()
vfs: don't revalidate just looked up dentry
vfs: fix d_need_lookup/d_revalidate order in do_lookup
ext3: move headers to fs/ext3/
migrate ext2_fs.h guts to fs/ext2/ext2.h
new helper: ext2_image_size()
get rid of pointless includes of ext2_fs.h
ext2: No longer export ext2_fs.h to user space
mtdchar: kill persistently held vfsmount
...
Linus Torvalds [Sat, 31 Mar 2012 20:35:31 +0000 (13:35 -0700)]
Merge branch 'sched-urgent-for-linus' of git://git./linux/kernel/git/tip/tip
Pull scheduler fixes from Ingo Molnar.
* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched: Fix incorrect usage of for_each_cpu_mask() in select_fallback_rq()
sched: Fix __schedule_bug() output when called from an interrupt
sched/arch: Introduce the finish_arch_post_lock_switch() scheduler callback
Linus Torvalds [Sat, 31 Mar 2012 20:34:04 +0000 (13:34 -0700)]
Merge branch 'perf-urgent-for-linus' of git://git./linux/kernel/git/tip/tip
Pull perf updates and fixes from Ingo Molnar:
"It's mostly fixes, but there's also two late items:
- preliminary GTK GUI support for perf report
- PMU raw event format descriptors in sysfs, to be parsed by tooling
The raw event format in sysfs is a new ABI. For example for the 'CPU'
PMU we have:
aldebaran:~> ll /sys/bus/event_source/devices/cpu/format/*
-r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/any
-r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/cmask
-r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/edge
-r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/event
-r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/inv
-r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/offcore_rsp
-r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/pc
-r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/umask
those lists of fields contain a specific format:
aldebaran:~> cat /sys/bus/event_source/devices/cpu/format/offcore_rsp
config1:0-63
So, those who wish to specify raw events can now use the following
event format:
-e cpu/cmask=1,event=2,umask=3
Most people will not want to specify any events (let alone raw
events), they'll just use whatever default event the tools use.
But for more obscure PMU events that have no cross-architecture
generic events the above syntax is more usable and a bit more
structured than specifying hex numbers."
* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (41 commits)
perf tools: Remove auto-generated bison/flex files
perf annotate: Fix off by one symbol hist size allocation and hit accounting
perf tools: Add missing ref-cycles event back to event parser
perf annotate: addr2line wants addresses in same format as objdump
perf probe: Finder fails to resolve function name to address
tracing: Fix ent_size in trace output
perf symbols: Handle NULL dso in dso__name_len
perf symbols: Do not include libgen.h
perf tools: Fix bug in raw sample parsing
perf tools: Fix display of first level of callchains
perf tools: Switch module.h into export.h
perf: Move mmap page data_head offset assertion out of header
perf: Fix mmap_page capabilities and docs
perf diff: Fix to work with new hists design
perf tools: Fix modifier to be applied on correct events
perf tools: Fix various casting issues for 32 bits
perf tools: Simplify event_read_id exit path
tracing: Fix ftrace stack trace entries
tracing: Move the tracing_on/off() declarations into CONFIG_TRACING
perf report: Add a simple GTK2-based 'perf report' browser
...
Linus Torvalds [Sat, 31 Mar 2012 20:32:30 +0000 (13:32 -0700)]
Merge tag 'parisc-misc' of git://git./linux/kernel/git/jejb/parisc-2.6
Pull PARISC misc updates from James Bottomley:
"This is a couple of minor updates (fixing lws futex locking and
removing some obsolete cpu_*_map calls)."
* tag 'parisc-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6:
[PARISC] remove references to cpu_*_map.
[PARISC] futex: Use same lock set as lws calls
Linus Torvalds [Sat, 31 Mar 2012 20:31:23 +0000 (13:31 -0700)]
Merge tag 'scsi-misc' of git://git./linux/kernel/git/jejb/scsi-misc-2.6
Pull SCSI updates from James Bottomley:
"This is primarily another round of driver updates (lpfc, bfa, fcoe,
ipr) plus a new ufshcd driver. There shouldn't be anything
controversial in here (The final deletion of scsi proc_ops which
caused some build breakage has been held over until the next merge
window to give us more time to stabilise it).
I'm afraid, with me moving continents at exactly the wrong time,
anything submitted after the merge window opened has been held over to
the next merge window."
* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (63 commits)
[SCSI] ipr: Driver version 2.5.3
[SCSI] ipr: Increase alignment boundary of command blocks
[SCSI] ipr: Increase max concurrent oustanding commands
[SCSI] ipr: Remove unnecessary memory barriers
[SCSI] ipr: Remove unnecessary interrupt clearing on new adapters
[SCSI] ipr: Fix target id allocation re-use problem
[SCSI] atp870u, mpt2sas, qla4xxx use pci_dev->revision
[SCSI] fcoe: Drop the rtnl_mutex before calling fcoe_ctlr_link_up
[SCSI] bfa: Update the driver version to 3.0.23.0
[SCSI] bfa: BSG and User interface fixes.
[SCSI] bfa: Fix to avoid vport delete hang on request queue full scenario.
[SCSI] bfa: Move service parameter programming logic into firmware.
[SCSI] bfa: Revised Fabric Assigned Address(FAA) feature implementation.
[SCSI] bfa: Flash controller IOC pll init fixes.
[SCSI] bfa: Serialize the IOC hw semaphore unlock logic.
[SCSI] bfa: Modify ISR to process pending completions
[SCSI] bfa: Add fc host issue lip support
[SCSI] mpt2sas: remove extraneous sas_log_info messages
[SCSI] libfc: fcoe_transport_create fails in single-CPU environment
[SCSI] fcoe: reduce contention for fcoe_rx_list lock [v2]
...
J. Bruce Fields [Wed, 15 Feb 2012 16:48:40 +0000 (11:48 -0500)]
vfs: fix out-of-date dentry_unhash() comment
64252c75a2196a0cf1e0d3777143ecfe0e3ae650 "vfs: remove dget() from
dentry_unhash()" changed the implementation but not the comment.
Cc: Sage Weil <sage@newdream.net>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Miklos Szeredi [Mon, 26 Mar 2012 10:54:24 +0000 (12:54 +0200)]
vfs: split __lookup_hash
Split __lookup_hash into two component functions:
lookup_dcache - tries cached lookup, returns whether real lookup is needed
lookup_real - calls i_op->lookup
This eliminates code duplication between d_alloc_and_lookup() and
d_inode_lookup().
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro [Fri, 30 Mar 2012 18:48:04 +0000 (14:48 -0400)]
untangling do_lookup() - take __lookup_hash()-calling case out of line.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro [Fri, 30 Mar 2012 18:41:51 +0000 (14:41 -0400)]
untangling do_lookup() - switch to calling __lookup_hash()
now we have __lookup_hash() open-coded if !dentry case;
just call the damn thing instead...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro [Fri, 30 Mar 2012 18:39:15 +0000 (14:39 -0400)]
untangling do_lookup() - merge d_alloc_and_lookup() callers
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro [Fri, 30 Mar 2012 18:37:42 +0000 (14:37 -0400)]
untangling do_lookup() - merge failure exits in !dentry case
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro [Fri, 30 Mar 2012 18:34:00 +0000 (14:34 -0400)]
untangling do_lookup() - massage !dentry case towards __lookup_hash()
Reorder if-else cases for starters...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro [Fri, 30 Mar 2012 18:18:50 +0000 (14:18 -0400)]
untangling do_lookup() - get rid of need_reval in !dentry case
Everything arriving into if (!dentry) will have need_reval = 1.
Indeed, the only way to get there with need_reval reset to 0 would
be via
if (unlikely(d_need_lookup(dentry)))
goto unlazy;
if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) {
status = d_revalidate(dentry, nd);
if (unlikely(status <= 0)) {
if (status != -ECHILD)
need_reval = 0;
goto unlazy;
...
unlazy:
/* no assignments to dentry */
if (dentry && unlikely(d_need_lookup(dentry))) {
dput(dentry);
dentry = NULL;
}
and if d_need_lookup() had already been false the first time around, it
will remain false on the second call as well.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro [Fri, 30 Mar 2012 18:13:15 +0000 (14:13 -0400)]
untangling do_lookup() - eliminate a loop.
d_lookup() *will* fail after successful d_invalidate(), if we are
holding i_mutex all along. IOW, we don't need to jump back to
l: - we know what path will be taken there and can do that (i.e.
d_alloc_and_lookup()) directly.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro [Fri, 30 Mar 2012 18:08:28 +0000 (14:08 -0400)]
untangling do_lookup() - expand the area under ->i_mutex
keep holding ->i_mutex over revalidation parts
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro [Fri, 30 Mar 2012 18:04:16 +0000 (14:04 -0400)]
untangling do_lookup() - isolate !dentry stuff from the rest of it.
Duplicate the revalidation-related parts into if (!dentry) branch.
Next step will be to pull them under i_mutex.
This and the next 8 commits are more or less a splitup of patch
by Miklos; folks, when you are working with something that convoluted,
carve your patches up into easily reviewed steps, especially when
a lot of codepaths involved are rarely hit...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Miklos Szeredi [Mon, 26 Mar 2012 10:54:21 +0000 (12:54 +0200)]
vfs: move MAY_EXEC check from __lookup_hash()
The only caller of __lookup_hash() that needs the exec permission check on
parent is lookup_one_len().
All lookup_hash() callers already checked permission in LOOKUP_PARENT walk.
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Miklos Szeredi [Mon, 26 Mar 2012 10:54:20 +0000 (12:54 +0200)]
vfs: don't revalidate just looked up dentry
__lookup_hash() calls ->lookup() if the dentry needs lookup and on success
revalidates the dentry (all under dir->i_mutex).
While this is harmless it doesn't make a lot of sense.
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Miklos Szeredi [Mon, 26 Mar 2012 10:54:19 +0000 (12:54 +0200)]
vfs: fix d_need_lookup/d_revalidate order in do_lookup
Doing revalidate on a dentry which has not yet been looked up makes no sense.
Move the d_need_lookup() check before d_revalidate().
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro [Fri, 30 Mar 2012 02:30:07 +0000 (22:30 -0400)]
ext3: move headers to fs/ext3/
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>