23 Aug, 2011
6 commits
-
The first change is to add an of_node_put, since codec_np has previously
been allocated. The rest of the patch reorganizes the error handling code
so the only code executed is that which is needed.A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)//
@@
identifier x;
expression E1!=0,E2,E3,E4;
statement S;
iterator I;
@@(
if (...) { ... when != of_node_put(x)
when != x = E3
when != E3 = x
* return ...;
}
... when != x = E2
when != I(...,x,...) S
if (...) { ... when != x = E4
of_node_put(x); ... return ...; }
)
//Signed-off-by: Julia Lawall
Acked-by: Timur Tabi
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
dma_channel_np has been accessed at this point, so decrease its reference
count before leaving the function.A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)//
@@
identifier x;
expression E1!=0,E2,E3,E4;
statement S;
iterator I;
@@(
if (...) { ... when != of_node_put(x)
when != x = E3
when != E3 = x
* return ...;
}
... when != x = E2
when != I(...,x,...) S
if (...) { ... when != x = E4
of_node_put(x); ... return ...; }
)
//Signed-off-by: Julia Lawall
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
Introduce a new label that includes kfree and jump to that one.
A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)//
@@
identifier x;
expression E1!=0,E2,E3,E4;
statement S;
iterator I;
@@(
if (...) { ... when != kfree(x)
when != x = E3
when != E3 = x
* return ...;
}
... when != x = E2
when != I(...,x,...) S
if (...) { ... when != x = E4
kfree(x); ... return ...; }
)
//Signed-off-by: Julia Lawall
Acked-by: Alexander Sverdlin
Reviewed-by: H Hartley Sweeten
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
Adjust the goto to jump to the error handling code that includes kfree.
A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)//
@@
identifier x;
expression E1!=0,E2,E3,E4;
statement S;
iterator I;
@@(
if (...) { ... when != kfree(x)
when != x = E3
when != E3 = x
* return ...;
}
... when != x = E2
when != I(...,x,...) S
if (...) { ... when != x = E4
kfree(x); ... return ...; }
)
//Signed-off-by: Julia Lawall
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
GFP_ATOMIC is not needed here, use GFP_KERNEL instead.
Signed-off-by: Axel Lin
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
of_parse_phandle increments the reference count of np, so this should be
decremented before trying the next possibility.Since we don't actually use np, we can decrement the reference count
immediately.Reported-by: Julia Lawall
Signed-off-by: Timur Tabi
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown
22 Aug, 2011
5 commits
-
In case we have a pending completion, for example due to a problem with
the input clock which got corrected after we timed out.Signed-off-by: Mark Brown
Acked-by: Liam Girdwood -
Ensure that we don't spuriously trigger early.
Signed-off-by: Mark Brown
Acked-by: Liam Girdwood -
We get called once per DAPM context but only need to run once. When DAPM
was serialized this was a series of noops but now it can run in parallel
we need to take proper care.Signed-off-by: Mark Brown
Acked-by: Liam Girdwood -
There's no need for separate widgets for the enables (as the map already
shows).Signed-off-by: Mark Brown
Acked-by: Liam Girdwood -
Make AIFCLK supply the record paths otherwise record will not work unless
there is a simultaneous playback.Signed-off-by: Mark Brown
Acked-by: Liam Girdwood
19 Aug, 2011
1 commit
-
Fix "error: too few arguments to function 'ams_delta_set_bias_level'"
build errors in ams-delta.c that were introduced after commit d4c6005 ("ASoC:
Add context parameter to card DAPM callbacks") by adding dapm context
to ams_delta_set_bias_level calls.Signed-off-by: Jarkko Nikula
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown
17 Aug, 2011
1 commit
-
The ASoC core tries to not enforce symmetric rates when
two streams open simultaneously. It does so by checking
rtd->rate being zero. This works exactly once after booting
because it is not set to zero again when the streams close.
Fix this by setting rtd->rate when no active stream is left.[This leads to lots of warnings about not enforcing the symmetry in some
situations as there's a race in the userspace API where we know we've
got two applications but don't know what rates they want to set.
-- broonie ]Signed-off-by: Sascha Hauer
Signed-off-by: Mark Brown
15 Aug, 2011
7 commits
-
asoc cache layer can't support this kind of spi registers well.
remove cache support and read/write registers directlySigned-off-by: Scott Jiang
Signed-off-by: Mark Brown -
[This will be used by the ad193x driver to fix the fact that the
original author of the driver put a bodge for their particular chip into
a the generic ASoC register I/O abstraction layer which looked like an
obvious bug which ended up getting fixed in 3.0. Sadly there were no
comments documenting what was going on. A minimally invasive correction
to the driver is to remove the register cache support and go direct to
the hardware all the time so we're adding a new feature -- broonie]Signed-off-by: Scott Jiang
Signed-off-by: Mark Brown -
system clock is 24.576MHz instead of 12.288MHz
Signed-off-by: Scott Jiang
Signed-off-by: Mark Brown -
dac word len value should left shift before setting
Signed-off-by: Scott Jiang
Acked-by: Barry Song
Signed-off-by: Mark Brown
Cc: stable@kernel.org -
fix dac word len mask and adc tdm fmt shift value
Signed-off-by: Scott Jiang
Signed-off-by: Mark Brown
Cc: stable@kernel.org -
Signed-off-by: Axel Lin
Signed-off-by: Mark Brown -
request_any_context_irq() returns a negative value on failure.
On success, it returns either IRQC_IS_HARDIRQ or IRQC_IS_NESTED.Signed-off-by: Axel Lin
Signed-off-by: Mark Brown
Cc: stable@kernel.orG
14 Aug, 2011
3 commits
-
Add linux/types.h to fix this compilation error:
In file included from arch/arm/mach-s3c2410/include/mach/gpio-fns.h:27:0,
from arch/arm/mach-s3c2410/include/mach/gpio.h:27,
from /home/anarsoul/work/pda-linux/linux-next/arch/arm/include/asm/gpio.h:5,
from include/linux/gpio.h:18,
from sound/soc/samsung/rx1950_uda1380.c:20:
arch/arm/plat-samsung/include/plat/gpio-cfg.h:29:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s3c_gpio_pull_t’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:30:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s5p_gpio_drvstr_t’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:57:2: error: expected specifier-qualifier-list before ‘s3c_gpio_pull_t’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:148:47: error: expected declaration specifiers or ‘...’ before ‘s3c_gpio_pull_t’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:156:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s3c_gpio_getpull’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:175:24: error: expected declaration specifiers or ‘...’ before ‘s3c_gpio_pull_t’
arch/arm/plat-samsung/include/plat/gpio-cfg.h: In function ‘s3c_gpio_cfgrange_nopull’:
arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: error: ‘s3c_gpio_pull_t’ undeclared (first use in this function)
arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: note: each undeclared identifier is reported only once for each function it appears in
arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: error: expected ‘)’ before numeric constant
arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: error: too many arguments to function ‘s3c_gpio_cfgall_range’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:174:12: note: declared here
arch/arm/plat-samsung/include/plat/gpio-cfg.h: At top level:
arch/arm/plat-samsung/include/plat/gpio-cfg.h:199:26: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s5p_gpio_get_drvstr’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:210:50: error: expected declaration specifiers or ‘...’ before ‘s5p_gpio_drvstr_t’Signed-off-by: Vasily Khoruzhick
Acked-by: Jassi Brar
Signed-off-by: Mark Brown -
Add linux/types.h to fix this compilation error:
In file included from arch/arm/mach-s3c2410/include/mach/gpio-fns.h:27:0,
from arch/arm/mach-s3c2410/include/mach/gpio.h:27,
from /home/anarsoul/work/pda-linux/linux-next/arch/arm/include/asm/gpio.h:5,
from include/linux/gpio.h:18,
from sound/soc/samsung/rx1950_uda1380.c:20:
arch/arm/plat-samsung/include/plat/gpio-cfg.h:29:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s3c_gpio_pull_t’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:30:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s5p_gpio_drvstr_t’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:57:2: error: expected specifier-qualifier-list before ‘s3c_gpio_pull_t’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:148:47: error: expected declaration specifiers or ‘...’ before ‘s3c_gpio_pull_t’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:156:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s3c_gpio_getpull’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:175:24: error: expected declaration specifiers or ‘...’ before ‘s3c_gpio_pull_t’
arch/arm/plat-samsung/include/plat/gpio-cfg.h: In function ‘s3c_gpio_cfgrange_nopull’:
arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: error: ‘s3c_gpio_pull_t’ undeclared (first use in this function)
arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: note: each undeclared identifier is reported only once for each function it appears in
arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: error: expected ‘)’ before numeric constant
arch/arm/plat-samsung/include/plat/gpio-cfg.h:180:47: error: too many arguments to function ‘s3c_gpio_cfgall_range’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:174:12: note: declared here
arch/arm/plat-samsung/include/plat/gpio-cfg.h: At top level:
arch/arm/plat-samsung/include/plat/gpio-cfg.h:199:26: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘s5p_gpio_get_drvstr’
arch/arm/plat-samsung/include/plat/gpio-cfg.h:210:50: error: expected declaration specifiers or ‘...’ before ‘s5p_gpio_drvstr_t’Signed-off-by: Vasily Khoruzhick
Acked-by: Jassi Brar
Signed-off-by: Mark Brown -
When the clocking registers are not overriden some of the registers are
not writable.Signed-off-by: Mark Brown
Acked-by: Liam Girdwood
Cc: stable@kernel.org
13 Aug, 2011
1 commit
-
sound/soc/codecs/wm8750.c:784:2: warning: missing braces around initializer
sound/soc/codecs/wm8750.c:784:2: warning: (near initialization for ‘wm8750_spi_ids[2].name’)It's because struct spi_device_id.name is a char array, not a pointer,
while the driver initializes explicitly with 0.Signed-off-by: Takashi Iwai
12 Aug, 2011
2 commits
-
My gmail account got disabled and I'm not going to reopen it.
Signed-off-by: Jarkko Nikula
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
I2S in Exynos4 and S5PC110(S5PV210) has a internal dma.
It can be used low power audio mode and 2nd channel transfer.
This patch can support idma.[Reapplied after dependencies propagated through in 3.1-rc1. --broonie]
Signed-off-by: Sangbeom Kim
Acked-by: Jassi Brar
Acked-by: Liam Girdwood
Acked-by: Jassi Brar
Signed-off-by: Mark Brown
11 Aug, 2011
2 commits
-
Signed-off-by: Mark Brown
Reported-by: Stephen Rothwell -
This error would have no effect on current silicon revisions, the fall
through case has the same behaviour.Signed-off-by: Mark Brown
Acked-by: Liam Girdwood
10 Aug, 2011
1 commit
-
Signed-off-by: Mark Brown
Reported-by: Stephen Rothwell
09 Aug, 2011
7 commits
-
Signed-off-by: Mark Brown
Acked-by: Liam Girdwood -
As we had no id_table only the driver name would be matched against
meaning that WM8987 devices wouldn't be bound.Signed-off-by: Mark Brown
Acked-by: Liam Girdwood -
The I2C address is misformatted and would never match.
Signed-off-by: Mark Brown
Acked-by: Liam Girdwood
Cc: stable@kernel.org -
Without this, request_irq on subsequent device initialization fails, and
the codec cannot be used.Signed-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
Two issues were preventing module snd-soc-tegra-wm8903.ko from being
removed and re-inserted:a) The speaker-enable GPIO is hosted by the WM8903 chip. This GPIO must
be freed before snd_soc_unregister_card() is called, because that
triggers wm8903.c:wm8903_remove(), which calls gpiochip_remove(), which
then fails if any of the GPIOs are in use. To solve this, free all GPIOs
first, so the code doesn't care where they come from.b) We need to call snd_soc_jack_free_gpios() to match the call to
snd_soc_jack_add_gpios() during initialization. Without this, the
call to snd_soc_jack_add_gpios() fails during any subsequent modprobe
and initialization, since the GPIO and IRQ are already registered. In
turn, this causes the headphone state not to be monitored, so the
headphone is assumed not to be plugged in, and the audio path to it is
never enabled.Signed-off-by: Stephen Warren
Cc: stable@kernel.org
Signed-off-by: Mark Brown -
Not all PCM devices have all sub-streams. Specifically, the SPDIF driver
only supports playback and hence has no capture substream. Check whether
a substream exists before dereferencing it, when de-allocating DMA
buffers in tegra_pcm_deallocate_dma_buffer.Signed-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown
Cc: stable@kernel.org -
…ound-2.6 into for-3.1
08 Aug, 2011
4 commits
-
…oonie/sound-2.6 into fix/asoc
-
…sound-2.6.git into for-3.1
-
This closes the small race between a status being read in response to an
interrupt and clearing the interrupt, meaning that if the status changes
between those periods we might not get a reassertion of the interrupt.Signed-off-by: Mark Brown
-
For marketing reasons the part will be called WM8996. In order to avoid
user confusion rename the driver to reflect this.Signed-off-by: Mark Brown
Acked-by: Kukjin Kim
Acked-by: Liam Girdwood