#
e13b63c4 |
|
23-Oct-2023 |
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> |
ASoC: codecs: wm8994: Handle component name prefix Use snd_soc_dapm_widget_name_cmp() helper when comparing widget names, to include also the component's name prefix. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20231023095428.166563-11-krzysztof.kozlowski@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
586685f1 |
|
08-Aug-2023 |
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
ASoC: codecs/wm*: merge DAI call back functions into ops ALSA SoC merges DAI call backs into .ops. This patch merge these into one. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87jzu59m5f.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
a350c556 |
|
08-Aug-2023 |
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
ASoC: codecs/wm*: merge DAI call back functions into ops ALSA SoC merges DAI call backs into .ops. This patch merge these into one. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87jzu59m5f.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
63d3f580 |
|
15-Mar-2023 |
Uwe Kleine-König <u.kleine-koenig@pengutronix.de> |
ASoC: codecs: wm8994: Convert to platform remove callback returning void The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do error handling by returning an error code. However the value returned is (mostly) ignored and this typically results in resource leaks. To improve here there is a quest to make the remove callback return void. In the first step of this quest all drivers are converted to .remove_new() which already returns void. Trivially convert this driver from always returning zero in the remove callback to the void returning variant. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20230315150745.67084-60-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
9529dc16 |
|
09-Dec-2022 |
Marek Szyprowski <m.szyprowski@samsung.com> |
ASoC: wm8994: Fix potential deadlock Fix this by dropping wm8994->accdet_lock while calling cancel_delayed_work_sync(&wm8994->mic_work) in wm1811_jackdet_irq(). Fixes: c0cc3f166525 ("ASoC: wm8994: Allow a delay between jack insertion and microphone detect") Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20221209091657.1183-1-m.szyprowski@samsung.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
02004449 |
|
23-Jun-2022 |
Charles Keepax <ckeepax@opensource.cirrus.com> |
ASoC: wm*: Remove now redundant non_legacy_dai_naming flag The ASoC core has now been changed to default to the non-legacy DAI naming, as such drivers using the new scheme no longer need to specify the non_legacy_dai_naming flag. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20220623125250.2355471-66-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
07695752 |
|
14-Jan-2021 |
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
ASoC: wm*: sync parameter naming (rate/sample_bits) This patch syncs naming rule. - xxx_rates; + xxx_rate; - xxx_samplebits; + xxx_sample_bits; Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87czy6olh0.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
b8161cbe |
|
10-Nov-2020 |
Zhang Qilong <zhangqilong3@huawei.com> |
ASoC: wm8994: Fix PM disable depth imbalance on error The pm_runtime_enable will increase power disable depth. Thus a pairing decrement is needed on the error handling path to keep it balanced according to context. Fixes: 57e265c8d71fb ("ASoC: wm8994: Move runtime PM init to platform device init") Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com> Reviewed-by: Richard Fitzgerald <rf@opensource.cirrus.com> Link: https://lore.kernel.org/r/20201111041326.1257558-2-zhangqilong3@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
f5a2cda4 |
|
27-Aug-2020 |
Sylwester Nawrocki <s.nawrocki@samsung.com> |
ASoC: wm8994: Ensure the device is resumed in wm89xx_mic_detect functions When the wm8958_mic_detect, wm8994_mic_detect functions get called from the machine driver, e.g. from the card's late_probe() callback, the CODEC device may be PM runtime suspended and any regmap writes have no effect. Add PM runtime calls to these functions to ensure the device registers are updated as expected. This suppresses an error during boot "wm8994-codec: ASoC: error at snd_soc_component_update_bits on wm8994-codec" caused by the regmap access error due to the cache_only flag being set. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20200827173357.31891-2-s.nawrocki@samsung.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
811c5494 |
|
27-Aug-2020 |
Sylwester Nawrocki <s.nawrocki@samsung.com> |
ASoC: wm8994: Skip setting of the WM8994_MICBIAS register for WM1811 The WM8994_MICBIAS register is not available in the WM1811 CODEC so skip initialization of that register for that device. This suppresses an error during boot: "wm8994-codec: ASoC: error at snd_soc_component_update_bits on wm8994-codec" Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20200827173357.31891-1-s.nawrocki@samsung.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
314213c1 |
|
04-Aug-2020 |
Sylwester Nawrocki <s.nawrocki@samsung.com> |
ASoC: wm8994: Prevent access to invalid VU register bits on WM1811 The ADC2 and DAC2 are not available on WM1811 device. This patch moves the ADC2, DAC2 VU bitfields to a separate array so we can skip accessing them and avoid unreadable register access on WM1811. This allows to get rid of warnings during boot like: wm8994-codec: ASoC: error at soc_component_read_no_lock on wm8994-codec: -5 Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Link: https://lore.kernel.org/r/20200804141043.11425-1-s.nawrocki@samsung.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
26d3c16e |
|
08-Jul-2020 |
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
ASoC: codecs: wm*: merge .digital_mute() into .mute_stream() snd_soc_dai_digital_mute() is internally using both mute_stream() (1) or digital_mute() (2), but the difference between these 2 are only handling direction. We can merge digital_mute() into mute_stream int snd_soc_dai_digital_mute(xxx, int direction) { ... else if (dai->driver->ops->mute_stream) (1) return dai->driver->ops->mute_stream(xxx, direction); else if (direction == SNDRV_PCM_STREAM_PLAYBACK && dai->driver->ops->digital_mute) (2) return dai->driver->ops->digital_mute(xxx); ... } Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/87v9ixwiwr.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
3e146b55 |
|
08-Jul-2020 |
Gustavo A. R. Silva <gustavoars@kernel.org> |
ASoC: codecs: Use fallthrough pseudo-keyword Replace the existing /* fall through */ comments and its variants with the new pseudo-keyword macro fallthrough[1]. [1] https://www.kernel.org/doc/html/latest/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> Link: https://lore.kernel.org/r/20200709010359.GA18971@embeddedor Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
7c4084e1 |
|
01-Jul-2020 |
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> |
ASoC: codecs: wm8994: fix kernel-doc Fix W=1 warning Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20200701181320.80848-7-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
6d75dfc3 |
|
15-Jun-2020 |
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
ASoC: codecs: wm*: rename to snd_soc_component_read() We need to use snd_soc_component_read() instead of snd_soc_component_read32() This patch renames _read32() to _read() Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87eeqf4mcl.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
e8ec193e |
|
07-Apr-2020 |
Jason Yan <yanaijie@huawei.com> |
ASoC: wm8994: remove wm1811_snd_controls and mixin_boost_tlv Fix the following gcc warning: sound/soc/codecs/wm8994.c:736:38: warning: ‘wm1811_snd_controls’ defined but not used [-Wunused-const-variable=] static const struct snd_kcontrol_new wm1811_snd_controls[] = { ^~~~~~~~~~~~~~~~~~~ Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Jason Yan <yanaijie@huawei.com> Link: https://lore.kernel.org/r/20200407082932.41511-2-yanaijie@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
001b83d3 |
|
20-Sep-2019 |
Sylwester Nawrocki <s.nawrocki@samsung.com> |
ASoC: wm8994: Add support for MCLKn clock gating As an intermediate step before covering the clocking subsystem of the CODEC entirely by the clk API add handling of external CODEC's master clocks in DAPM events when the AIFn clocks are sourced directly from MCLKn; when FLLn are used we enable/disable respective MCLKn before/after FLLn is enabled/disabled. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Link: https://lore.kernel.org/r/20190920130218.32690-5-s.nawrocki@samsung.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
419e2f50 |
|
20-Sep-2019 |
Sylwester Nawrocki <s.nawrocki@samsung.com> |
ASoC: wm8994: Add support for setting MCLK clock rate Extend the set_sysclk() handler so we also set frequency of the MCLK1, MCLK2 clocks through clk API when those clocks are specified in DT. Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Link: https://lore.kernel.org/r/20190920130218.32690-4-s.nawrocki@samsung.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
ca234719 |
|
20-Sep-2019 |
Sylwester Nawrocki <s.nawrocki@samsung.com> |
ASoC: wm8994: Do not register inapplicable controls for WM1811 In case of WM1811 device there are currently being registered controls referring to registers not existing on that device. It has been noticed when getting values of "AIF1ADC2 Volume", "AIF1DAC2 Volume" controls was failing during ALSA state restoring at boot time: "amixer: Mixer hw:0 load error: Device or resource busy" Reading some registers through I2C was failing with EBUSY error and indeed these registers were not available according to the datasheet. To fix this controls not available on WM1811 are moved to a separate array and registered only for WM8994 and WM8958. There are some further differences between WM8994 and WM1811, e.g. registers 603h, 604h, 605h, which are not covered in this patch. Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Link: https://lore.kernel.org/r/20190920130218.32690-2-s.nawrocki@samsung.com Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
d2912cb1 |
|
04-Jun-2019 |
Thomas Gleixner <tglx@linutronix.de> |
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 Based on 2 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation # extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4122 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Enrico Weigelt <info@metux.net> Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
#
ad0eaee6 |
|
06-Aug-2018 |
Gustavo A. R. Silva <gustavo@embeddedor.com> |
ASoC: wm8994: Fix missing break in switch Add missing break statement in order to prevent the code from falling through to the default case. Addresses-Coverity-ID: 115050 ("Missing break in switch") Reported-by: Valdis Kletnieks <valdis.kletnieks@vt.edu> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
|
#
2cea1542 |
|
01-Aug-2018 |
Gustavo A. R. Silva <gustavo@embeddedor.com> |
ASoC: wm8994: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Addresses-Coverity-ID: 115050 ("Missing break in switch") Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
a86854d0 |
|
12-Jun-2018 |
Kees Cook <keescook@chromium.org> |
treewide: devm_kzalloc() -> devm_kcalloc() The devm_kzalloc() function has a 2-factor argument form, devm_kcalloc(). This patch replaces cases of: devm_kzalloc(handle, a * b, gfp) with: devm_kcalloc(handle, a * b, gfp) as well as handling cases of: devm_kzalloc(handle, a * b * c, gfp) with: devm_kzalloc(handle, array3_size(a, b, c), gfp) as it's slightly less ugly than: devm_kcalloc(handle, array_size(a, b), c, gfp) This does, however, attempt to ignore constant size factors like: devm_kzalloc(handle, 4 * 1024, gfp) though any constants defined via macros get caught up in the conversion. Any factors with a sizeof() of "unsigned char", "char", and "u8" were dropped, since they're redundant. Some manual whitespace fixes were needed in this patch, as Coccinelle really liked to write "=devm_kcalloc..." instead of "= devm_kcalloc...". The Coccinelle script used for this was: // Fix redundant parens around sizeof(). @@ expression HANDLE; type TYPE; expression THING, E; @@ ( devm_kzalloc(HANDLE, - (sizeof(TYPE)) * E + sizeof(TYPE) * E , ...) | devm_kzalloc(HANDLE, - (sizeof(THING)) * E + sizeof(THING) * E , ...) ) // Drop single-byte sizes and redundant parens. @@ expression HANDLE; expression COUNT; typedef u8; typedef __u8; @@ ( devm_kzalloc(HANDLE, - sizeof(u8) * (COUNT) + COUNT , ...) | devm_kzalloc(HANDLE, - sizeof(__u8) * (COUNT) + COUNT , ...) | devm_kzalloc(HANDLE, - sizeof(char) * (COUNT) + COUNT , ...) | devm_kzalloc(HANDLE, - sizeof(unsigned char) * (COUNT) + COUNT , ...) | devm_kzalloc(HANDLE, - sizeof(u8) * COUNT + COUNT , ...) | devm_kzalloc(HANDLE, - sizeof(__u8) * COUNT + COUNT , ...) | devm_kzalloc(HANDLE, - sizeof(char) * COUNT + COUNT , ...) | devm_kzalloc(HANDLE, - sizeof(unsigned char) * COUNT + COUNT , ...) ) // 2-factor product with sizeof(type/expression) and identifier or constant. @@ expression HANDLE; type TYPE; expression THING; identifier COUNT_ID; constant COUNT_CONST; @@ ( - devm_kzalloc + devm_kcalloc (HANDLE, - sizeof(TYPE) * (COUNT_ID) + COUNT_ID, sizeof(TYPE) , ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - sizeof(TYPE) * COUNT_ID + COUNT_ID, sizeof(TYPE) , ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - sizeof(TYPE) * (COUNT_CONST) + COUNT_CONST, sizeof(TYPE) , ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - sizeof(TYPE) * COUNT_CONST + COUNT_CONST, sizeof(TYPE) , ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - sizeof(THING) * (COUNT_ID) + COUNT_ID, sizeof(THING) , ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - sizeof(THING) * COUNT_ID + COUNT_ID, sizeof(THING) , ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - sizeof(THING) * (COUNT_CONST) + COUNT_CONST, sizeof(THING) , ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - sizeof(THING) * COUNT_CONST + COUNT_CONST, sizeof(THING) , ...) ) // 2-factor product, only identifiers. @@ expression HANDLE; identifier SIZE, COUNT; @@ - devm_kzalloc + devm_kcalloc (HANDLE, - SIZE * COUNT + COUNT, SIZE , ...) // 3-factor product with 1 sizeof(type) or sizeof(expression), with // redundant parens removed. @@ expression HANDLE; expression THING; identifier STRIDE, COUNT; type TYPE; @@ ( devm_kzalloc(HANDLE, - sizeof(TYPE) * (COUNT) * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | devm_kzalloc(HANDLE, - sizeof(TYPE) * (COUNT) * STRIDE + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | devm_kzalloc(HANDLE, - sizeof(TYPE) * COUNT * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | devm_kzalloc(HANDLE, - sizeof(TYPE) * COUNT * STRIDE + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | devm_kzalloc(HANDLE, - sizeof(THING) * (COUNT) * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) | devm_kzalloc(HANDLE, - sizeof(THING) * (COUNT) * STRIDE + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) | devm_kzalloc(HANDLE, - sizeof(THING) * COUNT * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) | devm_kzalloc(HANDLE, - sizeof(THING) * COUNT * STRIDE + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) ) // 3-factor product with 2 sizeof(variable), with redundant parens removed. @@ expression HANDLE; expression THING1, THING2; identifier COUNT; type TYPE1, TYPE2; @@ ( devm_kzalloc(HANDLE, - sizeof(TYPE1) * sizeof(TYPE2) * COUNT + array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2)) , ...) | devm_kzalloc(HANDLE, - sizeof(TYPE1) * sizeof(THING2) * (COUNT) + array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2)) , ...) | devm_kzalloc(HANDLE, - sizeof(THING1) * sizeof(THING2) * COUNT + array3_size(COUNT, sizeof(THING1), sizeof(THING2)) , ...) | devm_kzalloc(HANDLE, - sizeof(THING1) * sizeof(THING2) * (COUNT) + array3_size(COUNT, sizeof(THING1), sizeof(THING2)) , ...) | devm_kzalloc(HANDLE, - sizeof(TYPE1) * sizeof(THING2) * COUNT + array3_size(COUNT, sizeof(TYPE1), sizeof(THING2)) , ...) | devm_kzalloc(HANDLE, - sizeof(TYPE1) * sizeof(THING2) * (COUNT) + array3_size(COUNT, sizeof(TYPE1), sizeof(THING2)) , ...) ) // 3-factor product, only identifiers, with redundant parens removed. @@ expression HANDLE; identifier STRIDE, SIZE, COUNT; @@ ( devm_kzalloc(HANDLE, - (COUNT) * STRIDE * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) | devm_kzalloc(HANDLE, - COUNT * (STRIDE) * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) | devm_kzalloc(HANDLE, - COUNT * STRIDE * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | devm_kzalloc(HANDLE, - (COUNT) * (STRIDE) * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) | devm_kzalloc(HANDLE, - COUNT * (STRIDE) * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | devm_kzalloc(HANDLE, - (COUNT) * STRIDE * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | devm_kzalloc(HANDLE, - (COUNT) * (STRIDE) * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | devm_kzalloc(HANDLE, - COUNT * STRIDE * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) ) // Any remaining multi-factor products, first at least 3-factor products, // when they're not all constants... @@ expression HANDLE; expression E1, E2, E3; constant C1, C2, C3; @@ ( devm_kzalloc(HANDLE, C1 * C2 * C3, ...) | devm_kzalloc(HANDLE, - (E1) * E2 * E3 + array3_size(E1, E2, E3) , ...) | devm_kzalloc(HANDLE, - (E1) * (E2) * E3 + array3_size(E1, E2, E3) , ...) | devm_kzalloc(HANDLE, - (E1) * (E2) * (E3) + array3_size(E1, E2, E3) , ...) | devm_kzalloc(HANDLE, - E1 * E2 * E3 + array3_size(E1, E2, E3) , ...) ) // And then all remaining 2 factors products when they're not all constants, // keeping sizeof() as the second factor argument. @@ expression HANDLE; expression THING, E1, E2; type TYPE; constant C1, C2, C3; @@ ( devm_kzalloc(HANDLE, sizeof(THING) * C2, ...) | devm_kzalloc(HANDLE, sizeof(TYPE) * C2, ...) | devm_kzalloc(HANDLE, C1 * C2 * C3, ...) | devm_kzalloc(HANDLE, C1 * C2, ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - sizeof(TYPE) * (E2) + E2, sizeof(TYPE) , ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - sizeof(TYPE) * E2 + E2, sizeof(TYPE) , ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - sizeof(THING) * (E2) + E2, sizeof(THING) , ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - sizeof(THING) * E2 + E2, sizeof(THING) , ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - (E1) * E2 + E1, E2 , ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - (E1) * (E2) + E1, E2 , ...) | - devm_kzalloc + devm_kcalloc (HANDLE, - E1 * E2 + E1, E2 , ...) ) Signed-off-by: Kees Cook <keescook@chromium.org>
|
#
00a6941c |
|
28-Jan-2018 |
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
ASoC: wm8993/wm8994/wm8958: replace codec to component Now we can replace Codec to Component. Let's do it. Becase wm8993/wm8994/wm8958 are using wm_hubs feature, we need to update these all related drivers in same time. Otherwise compile error/warning happen wm8993: xxx_codec_xxx() -> xxx_component_xxx() .idle_bias_off = 0 -> .idle_bias_on = 1 .ignore_pmdown_time = 0 -> .use_pmdown_time = 1 - -> .endianness = 1 - -> .non_legacy_dai_naming = 1 wm8994: xxx_codec_xxx() -> xxx_component_xxx() .idle_bias_off = 0 -> .idle_bias_on = 1 .ignore_pmdown_time = 0 -> .use_pmdown_time = 1 - -> .endianness = 1 - -> .non_legacy_dai_naming = 1 Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
5a81eb53 |
|
27-Nov-2017 |
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
ASoC: use snd_soc_component_init_regmap() on wm8994 To setup regmap, ALSA SoC has snd_soc_component_init_regmap() and .get_regmap. But these are duplicated feature. Let's use snd_soc_component_init_regmap() and remove .get_regmap Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
9d94305a |
|
08-Nov-2017 |
Gustavo A. R. Silva <garsilva@embeddedor.com> |
ASoC: wm8994: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Addresses-Coverity-ID: 402005 Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com> Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
f802d6c0 |
|
31-Aug-2016 |
Julia Lawall <Julia.Lawall@lip6.fr> |
ASoC: constify snd_soc_codec_driver structures Check for snd_soc_codec_driver structures that are only passed to snd_soc_register_codec or memcpy (2nd arg), for which the corresponding parameters are declared const. Declare as const snd_soc_codec_driver structures that have these properties. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r disable optional_qualifier@ identifier i; position p; @@ static struct snd_soc_codec_driver i@p = { ... }; @ok@ identifier r.i; expression e1,e2,e3; position p; @@ ( snd_soc_register_codec(e1,&i@p,e2,e3) | memcpy(e1,&i@p,e2) ) @bad@ position p != {r.p,ok.p}; identifier r.i; @@ i@p @depends on !bad disable optional_qualifier@ identifier r.i; @@ static +const struct snd_soc_codec_driver i = { ... }; // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
8019c0b3 |
|
29-Feb-2016 |
Takashi Iwai <tiwai@suse.de> |
ASoC: wm8994: Fix enum ctl accesses in a wrong type The DRC Mode like "AIF1DRC1 Mode" and EQ Mode like "AIF1.1 EQ Mode" in wm8994 codec driver are enum ctls, while the current driver accesses wrongly via value.integer.value[]. They have to be via value.enumerated.item[] instead. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
|
#
e134cb204 |
|
13-Aug-2015 |
Zidan Wang <zidan.wang@freescale.com> |
ASoC: wm8994: fix add dynamic path error If there don't exist dynamic sink or source widget, it will failed to add dynamic path. "AIF3ADCDAT" is snd_soc_dapm_aif_out, can't be dynamic sink widget. So change the audio route to fix this issue. Signed-off-by: Zidan Wang <zidan.wang@freescale.com> Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
8e09bac7 |
|
01-Jun-2015 |
Lars-Peter Clausen <lars@metafoo.de> |
ASoC: wm8994: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
17fc2e0a |
|
12-May-2015 |
Zidan Wang <zidan.wang@freescale.com> |
ASoC: wm8994: correct BCLK DIV 348 to 384 According to the RM of wm8958, BCLK DIV 348 doesn't exist, correct it to 384. Signed-off-by: Zidan Wang <zidan.wang@freescale.com> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
|
#
d78395ce |
|
11-May-2015 |
Fabio Estevam <fabio.estevam@freescale.com> |
ASoC: wm8994: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
f4bf8d77 |
|
27-Apr-2015 |
Lars-Peter Clausen <lars@metafoo.de> |
ASoC: Move bias level update to the core All drivers have the same line at the end of the set_bias_level callback to update the bias_level state. Move this update into snd_soc_dapm_force_bias_level() and remove them from the drivers. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
bd1204cb |
|
27-Apr-2015 |
Lars-Peter Clausen <lars@metafoo.de> |
ASoC: Route all bias level updates through the core Use the new snd_soc_codec_force_bias_level() helper function to invoke the bias_level callback of a driver instead of calling the callback by hand. Currently the effect of this is the same, but having all bias level updates go through a central place will allow us to move more of the bias level management into the DAPM core. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
12e3080c |
|
13-Jan-2015 |
Lars-Peter Clausen <lars@metafoo.de> |
ASoC: wm8995: Replace w->codec snd_soc_dapm_to_codec(w->dapm) The codec field of the snd_soc_widget struct is eventually going to be removed, use snd_soc_dapm_to_codec(w->dapm) instead. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
49d9ac38 |
|
23-Nov-2014 |
Lars-Peter Clausen <lars@metafoo.de> |
ASoC: wm8994: Cleanup manual bias level transitions Since the ASoC core now takes care of setting the bias level to SND_SOC_BIAS_OFF when removing the CODEC there is no need to do it manually anymore either. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
fabfad2f |
|
09-Nov-2014 |
Lars-Peter Clausen <lars@metafoo.de> |
ASoC: wm8958: Move DSP firmware lock to driver level The wm8958 driver uses the snd_soc_codec mutex to protect the various firmware pointers from concurrent assignment. This patch moves this lock to the driver level. This will allow us to eventually remove the snd_soc_codec mutex. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
|
#
c756e83d |
|
20-Oct-2014 |
Wolfram Sang <wsa@kernel.org> |
ASoC: codecs: drop owner assignment from platform_drivers A platform_driver does not need to set an owner, it will be populated by the driver core. Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
#
dfe8f1f3 |
|
13-Aug-2014 |
Nikesh Oswal <nikesh@opensource.wolfsonmicro.com> |
ASoC: wm8994: Demux the microphone detection IRQ Current code only allows direct routing of the WM8994 microphone detection signal to a GPIO this change adds support to demux the interrupt from the main interrupt line of the codec. Signed-off-by: Nikesh Oswal <nikesh@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
e29fe496 |
|
30-Jul-2014 |
Mark Brown <broonie@linaro.org> |
ASoC: wm8994: Convert to params_width() The CODEC doesn't care how data is laid out in memory. Signed-off-by: Mark Brown <broonie@linaro.org> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
|
#
549f66e0 |
|
20-Jun-2014 |
Sachin Kamat <sachin.kamat@samsung.com> |
ASoC: wm8994: Remove redundant OOM message Let memory subsystem handle the error logging. Signed-off-by: Sachin Kamat <sachin.kamat@samsung.com> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
b3831417 |
|
16-Jun-2014 |
Charles Keepax <ckeepax@opensource.wolfsonmicro.com> |
ASoC: wm8994: Prevent double lock of accdet_lock mutex on wm1811 wm1811_micd_stop takes the accdet_lock mutex, and is called from two places, one of which is already holding the accdet_lock. This obviously causes a lock up. This patch fixes this issue by removing the lock from wm1811_micd_stop and ensuring that it is always locked externally. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org> Cc: stable@vger.kernel.org
|
#
37d20305 |
|
14-Apr-2014 |
Lars-Peter Clausen <lars@metafoo.de> |
ASoC: wm8994: Replace usage deprecated MUX/ENUM macros SND_SOC_DAPM_VIRT_MUX, SND_SOC_DAPM_VIRT_MUX_E and SOC_DAPM_ENUM_VIRT are deprecated and merely an alias for SND_SOC_DAPM_MUX, SND_SOC_DAPM_MUX_E and SOC_DAPM_ENUM. Replace the deprecated macros so we can eventually remove their definition. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
ea53bf77 |
|
18-Mar-2014 |
Lars-Peter Clausen <lars@metafoo.de> |
ASoC: Add snd_soc_kcontrol_codec() helper function For CODEC controls snd_kcontrol_chip() currently returns a pointer to the CODEC that registered the control. With the upcoming consolidation of platform and CODEC controls this will change. Prepare for this by introducing the snd_soc_kcontrol_codec() helper function that will hide the implementation details of how the CODEC for a control can be obtained. This will allow us to change this easily in the future. The patch also updates all CODEC drivers to use the new helper function. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
7a34b1c1 |
|
02-Apr-2014 |
Xiubo Li <Li.Xiubo@freescale.com> |
ASoC: codec: fix the sparse check warnings. Some thing Likes: reproduce: make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) >> sound/soc/codecs/wm8997.c:1084:15: sparse: symbol \ 'wm8997_get_regmap' was not declared. Should it be static? Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
c0b6f59b |
|
25-Mar-2014 |
Xiubo Li <Li.Xiubo@freescale.com> |
ASoC: wm8994: Remove the set_cache_io() entirely from ASoC probe. As we can set the CODEC I/O while snd_soc_register_codec(), so the calling of set_cache_io() from CODEC ASoC probe could be removed entirely. And then we can set the CODEC I/O in the device probe instead of CODEC ASoC probe as earily as possible. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
092eba93 |
|
10-Mar-2014 |
Xiubo Li <Li.Xiubo@freescale.com> |
ASoC: io: New signature for snd_soc_codec_set_cache_io() Now that all users have been converted to regmap and the config.reg_bits and config.val_bits can be setted by each user through regmap core API. So these two params are redundant here. Since the only control type that left is SND_SOC_REGMAP, so remove it. Drop the control params and add struct regmap *regmap to simplify the code. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
86d4c9ab |
|
28-Feb-2014 |
Lars-Peter Clausen <lars@metafoo.de> |
ASoC: wm8994: Use SOC_ENUM_SINGLE_VIRT_DECL() For the upcoming consolidation for MUXs and virtual MUXs we need to mark virtual enums as such. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
babce821 |
|
18-Feb-2014 |
Charles Keepax <ckeepax@opensource.wolfsonmicro.com> |
ASoC: wm8994: Update locking around use of DAPM pin API The pin updates in this driver look like they are intended to be done atomically, update to do so. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
9a8d38db |
|
18-Feb-2014 |
Takashi Iwai <tiwai@suse.de> |
ASoC: Rename soc_enum.max field with items The name "max" in struct soc_enum is rather confusing since it actually takes the number of items. With "max", one might try to assign (nitems - 1) value. Rename the field to a more appropriate one, "items", which is also used in struct snd_ctl_elem_info, too. This patch also rewrites some code like "if (x > e->nitems - 1)" with "if (x >= e->nitems)". Not only the latter improves the readability, it also fixes a potential bug when e->items is zero. Signed-off-by: Takashi Iwai <tiwai@suse.de> Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Acked-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
e61a35b7 |
|
18-Feb-2014 |
Takashi Iwai <tiwai@suse.de> |
ASoC: wm8994: Fix the wrong number of enum items wm8994 codec driver has a few places wrongly defining the number of enum items. Use SOC_ENUM_SINGLE_DECL() macro and they are automatically fixed. Signed-off-by: Takashi Iwai <tiwai@suse.de> Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Acked-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
b888edbc |
|
21-Nov-2013 |
wangbiao <biao.wang@intel.com> |
ASoC: wm8994: Move DCS done IRQ request later once code return from request_threaded_irq, irq was setup enabled by default, but completion var dcs_done not got initialized yet, if then a dcs done irq was raised, system will got hung as the sync mechanism is invalid now. so this patch move dcs done irq request to the end of initialization of completion. Signed-off-by: wang, biao <biao.wang@intel.com> Signed-off-by: Zhang, Di <di.zhang@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
ed6a2772 |
|
05-Aug-2013 |
Mark Brown <broonie@linaro.org> |
ASoC: wm8994: Fix class W controls Commit 6e0650 (ASoC: wm8994: Use SOC_SINGLE_EXT() instead of open-coding it) went too far and converted a DAPM control to use SOC_SINGLE_EXT() which crashes. Revert that portion of the patch. Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
eee5d7f9 |
|
29-Jul-2013 |
Lars-Peter Clausen <lars@metafoo.de> |
ASoC: dapm: Add a helper to get the CODEC for DAPM kcontrol We use the same 3 lines to get the CODEC for a kcontrol in a quite a few places. This patch puts them into a common helper function. Having this encapsulated in a helper function will also make it more easier to eventually change the data layout of the kcontrol's private data. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
68defe58 |
|
18-Jul-2013 |
Mark Brown <broonie@linaro.org> |
ASoC: wm8994: Use power efficient workqueue The accessory detect debounce work is not performance sensitive so let the scheduler run it wherever is most efficient rather than in a per CPU workqueue by using the system power efficient workqueue. Signed-off-by: Mark Brown <broonie@linaro.org> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
|
#
57e265c8 |
|
01-Jul-2013 |
Mark Brown <broonie@linaro.org> |
ASoC: wm8994: Move runtime PM init to platform device init As well as being better style this allows the device to idle when there is no audio card instantaited which is probably what we want. Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
82e414fa |
|
04-Jul-2013 |
Mark Brown <broonie@linaro.org> |
ASoC: wm8994: Remove overly noisy debug logging This was committed in error. Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
6e06509c |
|
19-Jun-2013 |
Lars-Peter Clausen <lars@metafoo.de> |
ASoC: wm8994: Use SOC_SINGLE_EXT() instead of open-coding it Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
|
#
2da1c4bf |
|
30-May-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Allow debounce before MICDET identification For systems which do not have a jack detection feature allow some debounce to be specified before we perform accessory identification, improving robustness without impacting button detection responsiveness. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
2d01e39b |
|
30-May-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Remove unused variable Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
50941968 |
|
30-May-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Add digital loopback paths There is loopback control within the audio interfaces, provide control of this as there are some obscure scenarios where this could be used in production. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
7afce3f5 |
|
30-May-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Ensure microphone detection state is reset on removal Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
9e43088b |
|
29-May-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Avoid leaking pm_runtime reference on removed jack race Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
70bd3b29 |
|
29-May-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Defer declaration of open circuit microphones Provide a bit of debounce to handle pathological cases with slow input better by allowing the microphone detection to run for a bit longer. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
f7dbd399 |
|
27-May-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Ensure lambda is zeroed for WM8994 Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
287d03e9 |
|
27-May-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Remove restore of DAC enable state It's not been needed since the regmap conversion. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
7d6898be |
|
28-May-2013 |
Vinod Koul <vkoul@kernel.org> |
ASoC: wm8994: check for array index returned The array 'drc_cfg' of size 3 may use index value -22 (EINVAL) The array 'retune_mobile_cfg' of size 3 may use index value -22 (EINVAL) Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
9767a58b |
|
27-May-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Fix reporting of accessory removal on WM8958 During recent refactoring the code to report removal when MICDET reports an absent microphone was removed, causing problems for systems which rely solely on the MICDET for this functionality. Restore it. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
d3134e21 |
|
28-May-2013 |
Vinod Koul <vkoul@kernel.org> |
ASoC: wm8994: use the correct pointer to get the control value Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
435705e8 |
|
20-May-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Handle LRCLK inversion for WM8958 and WM1811A On WM8958 and WM1811A separate control of the LRCLK inversion bit is available for the DAC and ADC LRCLKs which for compatibility reasons is done in a new register bit. Since writes to each scheme have no effect on parts using the other just always write to both for simplicity. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Vinod Koul <vinod.koul@intel.com> Tested-by: Samreen Nilofer <samreen.nilofer@intel.com>
|
#
571ab6c6 |
|
15-May-2013 |
Dan Carpenter <dan.carpenter@oracle.com> |
ASoC: wm8994: missing break in wm8994_get_fll_config() Smatch complains that: sound/soc/codecs/wm8994.c:2087 wm8994_get_fll_config() warn: missing break? reassigning 'fll->k' Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
d1a0a299 |
|
10-May-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Support EFS mode for FLL Later WM8994 devices support an enhanced accuracy FLL divisor mode called EFS which allows more precise selection of fractional source to output ratios. Support this on relevant devices. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
4495e46f |
|
30-Apr-2013 |
Dan Carpenter <dan.carpenter@oracle.com> |
ASoC: wm8994: missing break in wm8994_aif3_hw_params() The missing break here means that we always return early and the function is a no-op. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
|
#
da445afe |
|
12-Mar-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Remove duplicate revision cache There's already a device revision stored in the core data structure, don't duplicate it in the CODEC driver. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
d3725761 |
|
29-Jan-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Restore AIFnCLK after reducing it for low clock rates This helps to ensure a smooth startup when we restore. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
3cf956ee |
|
20-Mar-2013 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Support constraining the maximum number of channels clocked Some systems use the audio CODEC to clock a DAI with multiple data lines in parallel, meaning that bit clocks are only required for a smaller number of channels than data is sent for. In some cases providing the extra bit clocks can take the other devices on the audio bus out of spec. Support such systems by allowing a maximum number of channels to be specified. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
7a79e94e |
|
07-Dec-2012 |
Bill Pemberton <wfp5p@virginia.edu> |
ASoC: codecs: remove __dev* attributes CONFIG_HOTPLUG is going away as an option. As result the __dev* markings will be going away. Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst, and __devexit. Signed-off-by: Bill Pemberton <wfp5p@virginia.edu> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
8afd0ef2 |
|
07-Dec-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Fix variable double use Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
98869f68 |
|
03-Dec-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Allow microphone identification callback to be overridden Allow custom accessory identification mechanisms to make use of the MICDET support in the device. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
e874de43 |
|
02-Dec-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Check jack is inserted when handling mic IRQ If we've got jack detection support then check that the jack is still inserted when handling a mic IRQ in order to avoid transient reports caused by shorts during the removal process as the two interrupts race with each other. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
63dd5452 |
|
22-Nov-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Support custom accessory identification for WM1811A Allow the user to override the accessory identification code with their own implementation if the system provides an alternative method. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
78b76dbe |
|
22-Nov-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Simplify button detection code Currently the WM8994 driver allows the WM8958 microphone detection code to be replaced in its entirety, providing a default implementation. This doesn't actually reflect the needs of users well. They generally wish to replace only the accessory identification parts of the algorithm (eg, using an external GPIO to provide the equivalent of the JACKDET support in the WM1811A). In preparation for supporting these users better refactor the existing code so that we have separate identification and button detection callbacks, selecting between them rather than using the mic_detecting flag in the existing callback. This also simplifies the code by introducing a more explicit state machine for the detecting and button states. In anticipation of future refactoring the callback is left in the signature for wm8958_mic_detect(), it will be removed at a later stage. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
f02b0de0 |
|
01-Oct-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Stop mic detection whenever we detect an open circuit Jack detection will not do anything to help us detect a microphone when there is a fault in the cable and the debounce we have is enough to avoid getting an intermediate result so halt microphone detection when we detect that one is not present. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
72222be3 |
|
28-Nov-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Use the same DCS codes for all WM1811 variants Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
|
#
d9dd4ada |
|
08-Oct-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Use pdata cached in MFD driver This is better style and facilitates implementation of device tree support for the driver. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
cd22000a |
|
24-Oct-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Lower AIFnCLK divisor when dropping to 32kHz When lowering SYSCLK to 50kHz for accessory detection also lower the AIFnCLK divisor to normalise the clocking configuration within the device. This will not disrupt audio as we cannot support active audio with such a low SYSCLK. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
ec8f53fb |
|
01-Nov-2012 |
Masanari Iida <standby24x7@gmail.com> |
ALSA: Fix typo in drivers sound Correct spelling typo in debug messages within drivers/sound Signed-off-by: Masanari Iida <standby24x7@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
#
79748cdb |
|
01-Oct-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Only enable extra BCLK cycles when required Rather than always assuming the maximum possible BCLK rate will be required generate BCLKs for stereo if either one or two channels is enabled. In order to support this we also need to ensure that only the relevant channels are enabled. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
6730049a |
|
24-Oct-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Lower AIFnCLK divisor when dropping to 32kHz When lowering SYSCLK to 50kHz for accessory detection also lower the AIFnCLK divisor to normalise the clocking configuration within the device. This will not disrupt audio as we cannot support active audio with such a low SYSCLK. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
f95be9d6 |
|
22-Aug-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Tune VMID power down sequence Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
a3a1d9d2 |
|
22-Aug-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Tune VMID power up sequence Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
c0cc3f16 |
|
28-Sep-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Allow a delay between jack insertion and microphone detect This can be used to provide some additional settling time to ensure that we don't start microphone detection while the microphone pin is connected to one of the headphone pins. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
52ca1138 |
|
23-Aug-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Update for new WM1811 variants There are some new WM1811 variants distinguished by both revision and cust_id which need slightly different handling. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
02e79476 |
|
21-Aug-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm_hubs: Allow configuration of MICBIAS power up delay via pdata Sometimes the analogue circuitry connected to the microphone needs some time to settle after power up. Allow systems to configure this delay in the platform data, the driver will then insert the required delay during power up of paths that involve the microphone. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
45a690f6 |
|
15-Aug-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Add bytes controls for DRC If DRC coefficients are not configured via platform data then add bytes controls for them instead so they can be configured by applications. This is the normal means of controlling things like this for newer systems, we maintain compatibility with platform data to avoid disruption to existing systems. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
15676937 |
|
09-Aug-2012 |
Chris Rattray <crattray@opensource.wolfsonmicro.com> |
ASoC: wm8994: Add missing dapm routes for WM8958 rev A Signed-off-by: Chris Rattray <crattray@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
d9f34df7 |
|
31-Jul-2012 |
Chris Rattray <crattray@opensource.wolfsonmicro.com> |
ASoC: wm8994: enable mic and short detect debounce. Signed-off-by: Chris Rattray <crattray@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
7435d4ee |
|
26-Jul-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Fix some indentation issues Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
99af79df |
|
25-Jul-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Ensure we get a notification on startup for jackdet Since jackdet only reports deltas it won't generate an interrupt on startup when a jack is not present. This doesn't make a difference to userspace but does mean we don't generate a notification via the internal notifier chains. Fix that by scheduling a work to poll the chip after the clock is enabled. Use an extremely large timeout since there's no urgency and we don't want to report a false negative. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
8cb8e83b |
|
25-Jul-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm_hubs: Move CODEC stored in private data into wm_hubs Further wm_hubs code will use this. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
fbfe6983 |
|
23-Jul-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Implement support for self-oscillation mode in the FLL The FLLs in the WM8994 series devices can be started without any reference being supplied, mainly for use in analogue bypass cases. Implement support for this mode. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
b8176627 |
|
24-Jul-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Hold runtime PM reference while handling mic and jack IRQs Ensures that we don't interact badly with the power management framework, especially in the cases where we're doing deferred work or we're using a direct GPIO for these signals. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
b8edf3e5 |
|
22-Jun-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Ensure there are enough BCLKs for four channels Otherwise if someone tries to use all four channels on AIF1 with the device in master mode we won't be able to clock out all the data. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
|
#
b4046d01 |
|
18-Jul-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Update micdet for irqdomain conversion The conversion of the core driver to irqdomains means that we don't need and irq_base to have working interrupts so use wm8994_request_irq() to deal with looking up the interrupt number for the micdet IRQ. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
2974d6b1 |
|
26-Jun-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Don't suspend accessory detection Leave it up to the machine driver to disable accessory detection if desired, the common pattern is to have accessory detection be a wake source. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
6cab3e1e |
|
28-May-2012 |
Jaroslav Kysela <perex@perex.cz> |
ASoC: wm8994: remove duplicate code It seems that the code duplication was added at a merge operation. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
#
bfd37bb5 |
|
04-Jun-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Apply volume updates with clocks enabled Volume updates may not be acted upon if there is no clock applied when the volume update is written. Ensure this doesn't happen by writing out registers with volume updates after we enable each of the clocks. There are more registers updated than before as previously we were relying on wm_hubs to set those for controls it manages. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
|
#
c8fdc1b5 |
|
04-Jun-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Ensure all AIFnCLK events are run from the _late variants Ensure that all the actions get taken at appropriate times by calling the _PRE and _POST events for the aifNclk_ev functions explicitly. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
|
#
656baaeb |
|
22-May-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: codecs: Refresh copyrights for Wolfson drivers Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
c7f5f238 |
|
15-May-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Fix AIF2ADC power down Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
|
#
fdfc4f3e |
|
09-May-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Use regmap directly for wm8994_mic_work Make it clearer what context we're operating in. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
e9b54de4 |
|
09-May-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Add debounce to wm8994 mic detection Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
cbd71f30 |
|
09-May-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Fix sparse warning due to use of 0 as NULL Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
c340304d |
|
26-Apr-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm_hubs: Factor out class W management Since the analogue portions of the checks for class W are the same over all the devices factor out these checks into wm_hubs and while we're at it also use wm_hubs_dac_hp_direct() to enable class W optimisations on more paths. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
af31a227 |
|
26-Apr-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm_hubs: Special case headphones for digital paths in more use cases The optimisations which we can do with caching the headphone DCS result in wm_hubs have only been enabled in cases where class W is enabled. However, there are more use cases which can benefit from the cache, especially with WM8994 series devices with their more advanced digital routing. Rather than keying off the class W information from the CODECs have a check in wm_hubs for a suitable path and use that to determine if we can deploy our headphone optimisations. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
3a334ada |
|
26-Apr-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Add trace showing wm8958_micd_set_rate() This can be helpful to users when tuning their systems. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
fcdc4de7 |
|
26-Apr-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Allow rate configuration with custom mic callback If a driver using a custom mic detection callback has provided a table of mic detection rates via platform data then use it. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
e9d9a968 |
|
26-Apr-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Tune debounce rates for jack detect mode Use a slightly larger debounce when identifying accessory type and a slightly smaller one when detecting buttons in response to user feedback from large scale testing. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
e05854dd |
|
24-Apr-2012 |
Kyung-Kwee Ryu <Kyung-Kwee.Ryu@wolfsonmicro.com> |
ASoC: wm8994: Make sure we disable FLL bypass when stopping the FLL If FLL bypass is left enabled when we disable the CODEC then the output clock will be left running which consumes a small amount of additional current. Only enable bypass when there is an output. Signed-off-by: Kyung-Kwee Ryu <Kyung-Kwee.Ryu@wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
c1a4ecd9 |
|
08-Apr-2012 |
Jesper Juhl <jj@chaosbits.net> |
ASoC: wm8994: Delete trailing whitespace from sound/soc/codecs/wm8994.c While reading through sound/soc/codecs/wm8994.c I noticed a fair amount of trailing whitespace. This patch gets rid of it. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
1a38336b |
|
12-Apr-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Improve sequencing of AIF channel enables This ensures a clean startup of the channels, without this change some use cases could result in issues in a small proportion of cases. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
|
#
8c5b842b |
|
17-Apr-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Keep AIF3 tristated when not in use Since AIF3 shares clock signals with other audio interfaces in order to ensure it doesn't drive undesirable clocks we need to tristate it. Rather than forcing the machine driver to do so have the driver do this. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
20dc24a9 |
|
04-Apr-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Implement FLL bypass support Later WM8994 class devices can bypass the FLL from BCLK. Do this automatically when the FLL input and output frequencies match up. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
34ff0f95 |
|
09-Apr-2012 |
Jesper Juhl <jj@chaosbits.net> |
ASoC: wm8994: Don't test for NULL before release_firmware() release_firmware() does its own NULL ptr testing, it's redundant to also test before calling it. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
149c53b5 |
|
02-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
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>
|
#
1947dadf |
|
30-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
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>
|
#
e413ba88 |
|
29-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
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>
|
#
ecd1732f |
|
12-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
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>
|
#
e1660585 |
|
21-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Update WM8994 DCS calibration Based on latest production information. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
|
#
22f8d055 |
|
19-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Provide VMID mode control and fix default sequence The optimal management of VMID depends on a number of factors which vary dynamically at runtime, for example the connection to a system docking station. In some circumstances it is desirable to keep VMID enabled all the time, in others it is desirable to aggressively power it up and down. Provide a callback allowing machine driver to configure either the normal power up/down mode (WM8994_VMID_MODE_NORMAL) or to maintain VMID even when idle (WM8994_VMID_MODE_FORCE). This callback, wm8994_vmid_mode(), should be called with the CODEC lock. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
6f8270cc |
|
03-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Add missing break in resume Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
c986564b |
|
12-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Prevent ABBA deadlock with CODEC and accdet mutexes Currently we can the accdet mutex from within DAPM when updating the device state which means we take accdet then the CODEC mutex but we also do the locking the other way around when responding to the jackdet IRQ. Move all the jackdet use of the CODEC mutex out of the accdet lock to avoid this. Since all the DAPM interactions depend only on a single threaded IRQ this is still serialised. The locking improvements in 3.5 allow a better solution there. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
4752a887 |
|
03-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Use audio mode for jack detection when system is active When we are out of system sleep always use audio mode for jack detection in order to avoid potential performance issues handing off between modes. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
1defde2a |
|
03-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Factor out WM1811A detection mode setting Push everything through one function for active use cases, should be no practical effect. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
28e33269 |
|
02-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
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>
|
#
afaf1591 |
|
03-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Disable JACKDET when disabling detecton Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
7d464b20 |
|
03-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Make sure we sync DAPM on WM8958 detection mode changes Normally this will have no effect as we set detection up at system startup before DAPM syncs take effect, this will only be useful if the system enables and disables detection at runtime. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
67109cbe |
|
29-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm_hubs: Disable cache of the DC servo calibration for WM1811 The WM1811 DC servo is able to run much faster than previous devices so the benefit of skipping calibration is not useful. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
b16db745 |
|
03-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Suppress noop updates of FLL K Using snd_soc_write() means we always write to the register even if it already contains the newly calculated value. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
2bc16ed8 |
|
03-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Push wm8994 private data allocation out into device probe Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
378ec0ca |
|
01-Mar-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Disable debounce of jack detection on inserted jack Don't debounce jack detection for inserted jacks, giving improved responsiveness. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
62172f4a |
|
29-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Remove stub of register access code Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
b9e67e5e |
|
28-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Make sure we don't have MICBIAS on during jackdet mode Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
462835e4 |
|
20-Jan-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
mfd/ASoC: Convert WM8994 driver to use regmap patches Early revisions of several of the WM8994 variants have register updates to improve performance. Move these over to using the regmap patch system instead of open coding them in the audio driver. Since the regmap init is done by the MFD the code is moved there. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Samuel Ortiz <sameo@linux.intel.com>
|
#
f7085641 |
|
21-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Move wm_hubs callback before we start ramping VMID Allows the generic code to set up for that. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
07fb9d9e |
|
21-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Support external capacitors on MICBIAS2 with jack detection When an external capacitor is connected to MICBIAS2 on devices with jack detection (which is not required but may be done in some systems) then the loading may mean that better performance is obtained when the microphone bias is enabled normally rather than using the low power mode. Provide platform data allowing systems to indicate if they require this. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
55a27786 |
|
21-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Actively discharge idle MICBIAS with jack detect This minimises the chance of any external capacitors that are fitted being discharged into headphones as they insert. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
29fdc360 |
|
21-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Enable headphone startup mode 1 for WM1811 and WM8958 The latest recommendation for optimal performance. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
5567d8c6 |
|
16-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Convert to use DAI widget routing rather than streams Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
|
#
65f01ef0 |
|
14-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Use slow start for VMID Improves performance on power up. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
e85b26ce |
|
11-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Actively discharge VMID when not in use Ensure we're in a known state when we restart. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
cc6d5a8c |
|
11-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: VMID management improvements Raise the ramp time to 50ms to cover corner cases, use the startup bias generator, explicitly reset the ramp circuit when complete and reorder things all of which should improve performance somewhat for systems that are sensitive to noise from VMID. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
5f2f3890 |
|
08-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm_hubs: Improve single ended line output enable performance The enable of the single ended line outputs on wm_hubs devices performs better if the output is enabled prior to starting VMID. Since inactive outputs are held at VMID anyway there is little cost to doing this for unused outputs. Add callbacks into wm_hubs and keep track of which outputs are really active so we can disable them once we're active. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
a7c4183b |
|
07-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Disable line output discharge prior to ramping VMID Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
f647e152 |
|
07-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Fix typo in VMID ramp setting The VMID ramp rate is supposed to be 0x3, not 11b. Fix that. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
|
#
87092e3c |
|
06-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Bring WM8994 accessory detection up to date Make the mechanism used for WM8994 more like that for WM1811 and WM8958: provide the logic to distinguish between headphone and headset and hard code the reporting of sensible SND_JACK values. Should integration with other detection mechanisms be required we can add appropriate callbacks (though some integrations should be able to use the subsystem ones). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
27060b3c |
|
06-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Unsuspend the device while reading GPIO statuses Otherwise we might get an error if the GPIO is configured as an input since that makes the register volatile and a suspended device can't be read from. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
5fab5174 |
|
06-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: We don't need to runtime resume by default This is the default state that the runtime PM infrastructure expects so instead just kick the runtime PM core to suspend us if we're not doing anything (as is default). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
839e5fad |
|
03-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Don't bring up to STANDBY by default In cases where we should enter STANDBY DAPM will power us up, otherwise there is no need to power up and we can remain in OFF. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
db966f8a |
|
05-Feb-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Enabling VMID should take a runtime PM reference We can enable VMID independently of the bias in some use cases so we need to ensure that the core device is powered up. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
|
#
022658be |
|
03-Feb-2012 |
Liam Girdwood <lrg@ti.com> |
ASoC: core: Add support for DAI and machine kcontrols. Currently ASoC can only add kcontrols using codec and platform component device handles. It's also desirable to add kcontrols for DAIs (i.e. McBSP) and for SoC card machine drivers too. This allows the kcontrol to have a direct handle to the parent ASoC component DAI/SoC Card/Platform/Codec device and hence easily get it's private data. This change makes snd_soc_add_controls() static and wraps it in the folowing calls (card and dai are new) :- snd_soc_add_card_controls() snd_soc_add_codec_controls() snd_soc_add_dai_controls() snd_soc_add_platform_controls() This patch also does a lot of small mechanical changes in individual codec drivers to replace snd_soc_add_controls() with snd_soc_add_codec_controls(). It also updates the McBSP DAI driver to use snd_soc_add_dai_controls(). Finally, it updates the existing machine drivers that register controls to either :- 1) Use snd_soc_add_card_controls() where no direct codec control is required. 2) Use snd_soc_add_codec_controls() where there is direct codec control. In the case of 1) above we also update the machine drivers to get the correct component data pointers from the kcontrol (rather than getting the machine pointer via the codec pointer). Signed-off-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
f959dee9 |
|
31-Jan-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm_hubs: Push check for idle_bias_off out into drivers For later wm_hubs devices we have much less need to keep the biases up even when using single ended line outputs so flag idle_bias_off for everything except the WM8993 and WM8994. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
67f97f5c |
|
31-Jan-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Remove ASoC level register cache sync Now we've switched over to regmap the ASoC level cache sync will be ineffectual and potentially harmful as there is no longer an ASoC level cache. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
7c08b51f |
|
26-Jan-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: wm8994: Report any low impedance accessory as a headphone Report any accessory with a low impedance as a headphone, previously anything other than a short or microphone would not be reported at all. The most likely reason is a microphone with incorrect polarity. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
99b0292d |
|
17-Jan-2012 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: 24 bits are significant on wm_hubs DAIs Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
1b39bf34 |
|
28-Dec-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Enable ASoC register map dump for some regmap CODECs It's still useful to be able to poke around in the register map at runtime. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
a421a0e4 |
|
29-Dec-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Remove unused label from wm8994 probe() Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
cae59c7b |
|
25-Oct-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
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>
|
#
d9a7666f |
|
23-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
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>
|
#
4105ab84 |
|
05-Dec-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
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>
|
#
87b86ade |
|
13-Aug-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Mark WM8994 ADC muxes as virtual Since they don't actually have power bits but do have events associated with them it's important that we bootstrap their state properly which making them virtual does. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
3631e8d4 |
|
02-Dec-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Add missing err label Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
84b315ee |
|
02-Dec-2011 |
Lars-Peter Clausen <lars@metafoo.de> |
ASoC: Drop unused state parameter from CODEC suspend callback The existence of this parameter is purely historical. None of the CODEC drivers uses it and we always pass in the same value anyway, so it should be safe to remove it. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
7270cebe |
|
01-Dec-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Convert WM8994 to devm_kzalloc() Still have a manual free in there for some realloc()ed memory as there's no devm version of that. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
cd1707a9 |
|
01-Dec-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Add platform data for WM8958/WM1811 microphone detection rates Allow systems to override the default microphone detection rates using platform data in case the settings are not suitable (eg, due to an unusually noisy jack). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
52ac7ab2 |
|
30-Nov-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Ensure we reconfigure WM8958 microphone detection on rate changes We don't need to rerun DAPM if the clock source is the same but we do need to adjust the microphone detection rate in case we are moving from an audio to a non-audio rate. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
af6b6fe4 |
|
30-Nov-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Implement support for WM1811A jack detection The WM1811A features an advanced low power accessory detection subsystem which allows the device to be maintained in a very low power state while the system is idle without sacrificing any accessory detection features. Implement software support for this, automatically managing the power configuration of the device depending on the detected accessory. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
157a75e6 |
|
30-Nov-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Rename WM8994 detecting flag to mic_detecting More specific and avoids confusion with a following change. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
4585790d |
|
30-Nov-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Allow more WM8958/WM1811 button levels with default handler The WM8958 and WM1811 support detecting a range of buttons. Allow the user to provide platform data enabling more of these levels without having to write a custom detection handler. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
604533de |
|
30-Nov-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Tune down active mode detection rate for WM8958 mic detection Saves a little power. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
2a8a856d |
|
23-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Don't use control_data to get struct wm8994 This will support refactoring to make use of the regmap API more directly in the core. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
a1691343 |
|
30-Nov-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Provide debug log of accessory status on WM8958 Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
b00adf76 |
|
12-Aug-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Enhance default WM8958 microphone detection Actively manage the detection rate for microphones with WM8958, providing improved power consumption and maximising the benefit from the hardware debounce. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
500fa30e |
|
29-Nov-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Put WM8958 and WM1811 MICBIAS into bypass mode when no audio When we don't have any active audio we can put the microphone biases into bypass mode to save power at the expense of performance. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
4cdf5e49 |
|
29-Nov-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Ensure SYSCLK is enabled for WM8958 accessory detection Ensure SYSCLK is enabled while running accessory detection on WM8958. It is always required so there is no sense in requiring machine drivers to individually do this. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
fc8e6e86 |
|
28-Nov-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Supply dcs_codes for newer WM1811 revisions Based on initial data. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
fc07ecd8 |
|
28-Nov-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Error out if we can't generate a LRCLK at all for WM8994 Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
5bbcc3c0 |
|
23-Nov-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Convert CODEC drivers to module_platform_driver Factors out a bit of boilerplate. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
85e7652d |
|
23-Nov-2011 |
Lars-Peter Clausen <lars@metafoo.de> |
ASoC: Constify snd_soc_dai_ops structs Commit 1ee46ebd("ASoC: Make the DAI ops constant in the DAI structure") introduced the possibility to have constant DAI ops structures, yet this is barley used in both existing drivers and also new drivers being submitted, although none of them modifies its DAI ops structure. The later is not surprising since existing drivers are often used as templates for new drivers. So this patch just constifies all existing snd_soc_dai_ops structs to eliminate the issue altogether. The patch was generated with the following coccinelle semantic patch: // <smpl> @@ identifier ops; @@ -struct snd_soc_dai_ops ops = +const struct snd_soc_dai_ops ops = { ... }; // </smpl> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
19940b3d |
|
19-Aug-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Ensure we get an impedence reported for WM8958 jack detect Occasionally we may see an accessory reported before we have a stable impedance for the accessory. If this happens then reread the status in order to ensure that the handler can take the appropriate action for the status change. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
5a3ad6bd |
|
04-Nov-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Don't use wm8994->control_data when requesting IRQs The field is no longer initialised so this will crash if running on wm8958. Reported-by: Thomas Abraham <thomas.abraham@linaro.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
8eeea521 |
|
04-Nov-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Don't use wm8994->control_data in wm8994_readable_register() The field is no longer initialised so this will crash if running on wm8958. Reported-by: Thomas Abraham <thomas.abraham@linaro.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
|
#
35024f49 |
|
19-Oct-2011 |
Axel Lin <axel.lin@gmail.com> |
ASoC: wm8994: Use SND_SOC_DAPM_AIF_OUT for AIF3 Capture Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
|
#
6473a148 |
|
17-Oct-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Update WM1811 DCS codes for latest evaluation results Evaluation of larger quantities of material has provided new DCS codes values to be applied for WM1811. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
|
#
48df93d4 |
|
11-Oct-2011 |
Axel Lin <axel.lin@gmail.com> |
ASoC: Remove impossible case from wm8994_hw_params We set hw_params callback for wm8994_aif3_dai_ops to wm8994_aif3_hw_params. Thus no need to check wm8994-aif3 in wm8994_hw_params. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
c527e6aa |
|
04-Oct-2011 |
Axel Lin <axel.lin@gmail.com> |
ASoC: wm8994: Fix setting rate_reg for wm8994-aif2 For wm8994-aif2, the rate_reg should be WM8994_AIF2_RATE. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
|
#
04f45c49 |
|
04-Oct-2011 |
Axel Lin <axel.lin@gmail.com> |
ASoC: wm8994: Slightly optimize configure_clock snd_soc_update_bits() will only write new register value if the old value is different from the new value. In additional, snd_soc_update_bits() returns 0 for no change. No need to read WM8994_CLOCKING_1 register before calling snd_soc_update_bits(). Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
81204c84 |
|
24-May-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Add WM1811 support The WM1811 is mostly register compatible with the WM8994 and WM8958, providing a high performance audio hub CODEC in a small form factor suitable for ultra compact system designs. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
60e3ee62 |
|
17-Aug-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Fix backport of WM8994 thermal warning Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
|
#
f0b182b0 |
|
15-Aug-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Implement WM8994 thermal warning and shutdown interrupt support ALSA doesn't really have good mechanisms for dealing with these so we just log them - the hardware already has automatic shutdown support. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
1ddc07d0 |
|
15-Aug-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Add WM8958 noise gate support Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
d09f3ecf |
|
14-Aug-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Disable pulls on WM8994 AIF2 when starting it Pull control is availalbe for WM8994 AIF2, generally disabled as part of the GPIO configuration in order to save power after system startup. As on newer devices in the series there is no GPIO functionality on these pins this will happen less naturally so have the driver disable the pulls as the AIF is probed. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
4b7ed83a |
|
10-Aug-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Disable WM8994 VMID for digital only paths On WM8994 class devices only the analogue portions of the CODEC require VMID so when running digital only paths we can leave VMID disabled. On some earlier devices the FLL uses VMID so we don't use DAPM reference counting alone, we maintain an internal reference count which is also enabled and disabled by the FLL startup. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
|
#
4e04adaf |
|
15-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Add VMID widget for wm_hubs devices Currently this does not actually do anything, it is being introduced in order to facilitate additional power optimisations for current generation devices. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
|
#
280ec8b7 |
|
10-Aug-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Add missing break in WM8994 probe This error would have no effect on current silicon revisions, the fall through case has the same behaviour. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
|
#
4537c4e7 |
|
31-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Support separate left and right channel dcs_codes values Some devices can have performance optimized by setting different offsets for left and right channels. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
|
#
79ef0abc |
|
31-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Implement new DC servo readback mode for late WM8994 revisions Later WM8994 devices implement a new DC servo readback mode with the register used to access the offset moved to register 0x59. Implement support for this and enable it on the appropriate devices. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
|
#
b793eb60 |
|
14-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Correct WM8994 MICBIAS supply widget hookup The WM8994 and WM8958 series of devices have two MICBIAS supplies rather than one, the current widget actually manages the microphone detection control register bit (which is managed separately by the relevant API). Fix this, hooking the relevant supplies up to the MICBIAS1 and MICBIAS2 widgets. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
|
#
7d02173c |
|
14-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Reduce power consumption for idle DAIs in WM8994 If DAIs are idle but their clocks are in use for some reason (eg, as SYSCLK or for accessory detect) then set the clock dividers to the maximum to reduce slightly the power consumption of the unclocked circuits. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
f0f5039c |
|
15-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Handle failed WM8994 FLL lock waits Try the completion before we start the FLL so that if an interrupt was delayed long enough for us to miss it we don't wait for the completion it signalled. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
b35e160a |
|
15-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Fix shift in WM8958 accessory detection default implementation Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
|
#
3b1af3f8 |
|
13-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Log WM8994 FIFO errors from the interrupt We should spot them anyway on state changes but logging them gives us better time information about when the misconfiguration happened. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
f05bdb8b |
|
13-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Don't warn on low WM8994/58 AIFnCLKs We can have valid but very low clocks in accessory detection modes. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
c7ebf932 |
|
12-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Use WM8994 FLL lock interrupt If we have interrupts then wait for the FLL lock interrupt rather than using dead reckoning when waiting for the FLL to start. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
b30ead5f |
|
12-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Hook up DC servo completion IRQ for WM8994 and WM8958 Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
b70a51ba |
|
29-Jun-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Use late enable handling for direct voice, speaker and headphone This ensures appropriate clocking for bypass paths to speaker and headphone and direct voice paths on affected revisions. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
5b739670 |
|
06-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Conditionalize the enable of WM8994 ADC TDM mode Future devices will not benefit from this. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
|
#
8e9ddf81 |
|
01-Jul-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Ensure we delay long enough for WM8994 FLL to lock when starting This delay is very conservative. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Cc: stable@kernel.org
|
#
f9acf9fe |
|
07-Jun-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Trigger wm_hubs series update startup off a separate flag Allowing the two to be used independently. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
|
#
9d03545d |
|
13-May-2011 |
Jarkko Nikula <jhnikula@gmail.com> |
ASoC: Fix wrong data type access in a few codec drivers Commit fafd217 ("ASoC: Store a list of widgets in a DAPM mux/mixer kcontrol") changed the control private data type that is passed to snd_soc_cnew when creating dapm mixer and mux controls. Commit did not update a few codec drivers that are using their own put callbacks and thus are accessing a wrong data type. Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Tested-by: Stephen Warren <swarren@nvidia.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
ca629928 |
|
11-May-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Disable WM8994/58 microphone detection over suspend It will be non-functional with the basises and clocks off anyway, if the system needs microphone detection enabled over suspend then it should be causing the CODEC to ignore suspend using the APIs for that to prevent the biases being disabled. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
|
#
baa81603 |
|
05-Apr-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Set left channel volume update bits for WM8994 Ensures that we apply volume updates that don't affect the right channel. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
25985edc |
|
30-Mar-2011 |
Lucas De Marchi <lucas.demarchi@profusion.mobi> |
Fix common misspellings Fixes generated by 'codespell' and manually reviewed. Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
|
#
31215871 |
|
17-Mar-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Add WM8958 enhanced EQ support DSP2 in the WM8958 can be used to support an upgraded EQ for use in demanding applications. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
|
#
09e10d7f |
|
16-Mar-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Add WM8958 VSS support With appropriate firmware the WM8958 can support Virtual Surround Sound or VSS, widening the stereo audio image for improved user experience. Enable support for this mode of operation when the appropriate firmware can be loaded at runtime. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
|
#
fbbf5920 |
|
11-Mar-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Support download of WM8958 MBC firmware Allow userspace to supply an update to the ROM firmware. The firmware request is non-blocking so userspace can load the firmware at its leisure without delaying startup, the driver will begin using the firmware the next time MBC is started after it has been supplied. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
|
#
af9af866 |
|
16-Mar-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Mark WM8958 DSP2 registers readable Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
c6b7b570 |
|
11-Mar-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Handle startup sequencing of WM8958 DSP2 with deferred clocking The DSP2 startup requires that the clock be enable so if we've deferred clock startup we need to defer DSP2 startup Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
f701a2e5 |
|
09-Mar-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Factor WM8958 DSP2 handling into separate file DSP2 on the WM8958 has a default ROM which provides a multi-band compressor for enhanced performance on mobile devices but can also support runtime download of alternative firmware. In preparation for more exploiting this functionality refactor the code to split the handling of DSP2 into a separate file. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
780e2806 |
|
11-Mar-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Treat WM8958 revision A as WM8994 revision D The first WM8958 revision requires similar treatment. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
7c2de633 |
|
09-Mar-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Ensure WM8958 gets all WM8994 late revision widgets Without this fix the driver won't instantiate properly on relevant devices. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Cc: stable@kernel.org
|
#
0627bd25 |
|
09-Mar-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Fix typo in late revision WM8994 DAC2R name Without this fix the driver won't instantiate properly on relevant devices. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Cc: stable@kernel.org
|
#
8959c910 |
|
28-Feb-2011 |
Dimitris Papastamos <dp@opensource.wolfsonmicro.com> |
ASoC: WM8994: Ensure MICBIAS is provided with a clock The patch 'ASoC: WM8994: Improve Playback Robustness' did not handle this case properly. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
b462c6e6 |
|
28-Feb-2011 |
Dimitris Papastamos <dp@opensource.wolfsonmicro.com> |
ASoC: WM8994: Ensure MICBIAS is provided with a clock The patch 'ASoC: WM8994: Improve Playback Robustness' did not handle this case properly. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
04d28681 |
|
01-Mar-2011 |
Dimitris Papastamos <dp@opensource.wolfsonmicro.com> |
ASoC: WM8994: Ensure late enable events are processed for the ADCs Ensure that the ADCs are provided with a clock as the previous patch "ASoC: WM8994: Improve playback robustness" did not handle this case properly. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
|
#
a3cff81a |
|
28-Feb-2011 |
Dimitris Papastamos <dp@opensource.wolfsonmicro.com> |
ASoC: WM8994: Don't disable the AIF[1|2]CLK_ENA unconditionaly Since we began using the late clock disable functionality, ensure that we don't disable the clock if any of the ADC or DAC paths are still enabled. This happens when we have simultaneous playback and recording. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
|
#
864c4bd2 |
|
21-Feb-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Simplify default WM8958 jack detection code The default WM8958 jack detection handler implements a full set of buttons and also support for video detection. Support for multi-button jacks is fairly system specific and will usually require some tuning for headsets so simplify the implementation to only report a simple short to ground button, leaving multi-button headsets to be handled by system specific code. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
48e028ec |
|
21-Feb-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Support configuration of WM8958 microphone bias analogue parameters The WM8958 has a different microphone bias architecture to WM8994 so needs different configuration to WM8994. Support this in platform data. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
9b7c525d |
|
17-Feb-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Support WM8958 direct microphone detection IRQ Allow direct routing of the WM8958 microphone detection signal to a GPIO to be used, saving the need to demux the interrupt. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
406e56c9 |
|
21-Feb-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Fix WM8958 default microphone detection argument ordering Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
4a8d929d |
|
16-Feb-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Fix missing space in WM8994 Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
c52fd021 |
|
11-Feb-2011 |
Dimitris Papastamos <dp@opensource.wolfsonmicro.com> |
ASoC: WM8994: Improve playback robustness On WM8994 revision D and earlier ensure proper playback robustness as some rare use cases can trigger issues. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
|
#
173efa09 |
|
11-Feb-2011 |
Dimitris Papastamos <dp@opensource.wolfsonmicro.com> |
ASoC: WM8994: Improve robustness in some use cases Ensure that on disabling certain registers such as AIF1DAC1L, AIF1DAC1R etc. the AIF1CLK and AIF2CLK remain enabled. Similarly when enabling those registers, AIF1CLK and AIF2CLK will remain disabled. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
|
#
6ed8f148 |
|
03-Feb-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Improve WM8994 digital power sequencing On WM8994 revision D and earlier ensure optimal sequencing with simultaneous usage of AIF1 and AIF2 by tying the signals together so if paths through both are connected the streams are started simultaneously. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Cc: stable@kernel.org
|
#
7f94de48 |
|
03-Feb-2011 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Create an AIF1ADCDAT signal widget to match AIF2 Due to the different routing for AIF1 and AIF2 we weren't using a single widget to represent the ADCDAT signal. For consistency add one. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Cc: stable@kernel.org
|
#
78b3fb46 |
|
19-Jan-2011 |
Qiao Zhou <zhouqiao@marvell.com> |
ASoC: WM8994: fix wrong value in tristate function fix wrong value in wm8994_set_tristate func. when updating reg bits, it should use "value", not "reg". Signed-off-by: Qiao Zhou <zhouqiao@marvell.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
|
#
d4754ec9 |
|
12-Jan-2011 |
Dimitris Papastamos <dp@opensource.wolfsonmicro.com> |
ASoC: Update users of readable_register()/volatile_register() Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
7116f452 |
|
29-Dec-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Yet more x86 tracepoint workarounds Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
2bbb5d66 |
|
04-Dec-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Trace Wolfson jack detection IRQs Add jack detection interrupt trace to Wolfson CODEC drivers. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
458350b3 |
|
20-Dec-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Fix WM8994/58 3D stereo control definitions Cut'n'paste in the register names. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
49db7e7b |
|
08-Dec-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Fix widgets for WM8994/58 AIF2 source control The compiler really ought to have been warning about unreferenced variables... Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
154b26aa |
|
08-Dec-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Implement WM8994/58 DAC and ADC oversampling control The oversampling rate of the DAC and ADC can be controlled to optimise for either low power consumption or maximum performance. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
146fd574 |
|
07-Dec-2010 |
Uk Kim <w0806.kim@samsung.com> |
ASoC: Add ADC high pass filter support to WM8994 Signed-off-by: Uk Kim <w0806.kim@samsung.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
b1e43d93 |
|
07-Dec-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Support WM8994 mono AIF configurations The WM8994 supports mono signals - enable this in the driver. With DSP mode an automatic data channel selector is available, activate this when in mono mode. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
4514e899 |
|
03-Dec-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: When disabling WM8994 FLL force a source selection When we disable the WM8994 FLL code path sharing means that we end up writing out a configuration. Currently this is the currently active input and output frequency (which causes snd_soc_update_bits() to suppress actual writes both immediately and in the common case where we reenable the same configuration later) but we allow machine drivers to pass through a source of zero. Since the register values written are one less than the source constants this causes corruption of other bitfields in the register. Fix this by using the most recently configured FLL source when none is provided. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Cc: stable@kernel.org
|
#
8bc3c2c2 |
|
30-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Tune performance of WM8958 revision A Update some of the default configuration for the device to improve the performance. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
131d8106 |
|
30-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Allow user-specified WM8958 multiband compressor configurations The paramters of the WM8958 multiband compressor can be tuned by the user for their system using a graphical configuration tool on the host. Allow the user to specify a set of such paramters in platform data and select between them at runtime. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
b2822a8c |
|
30-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Correct event flags for WM8958 AIF DACs We need a post notification as we need to shut down the MBC after the data stops flowing rather than before. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
39fb51a1 |
|
26-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Implement runtime PM for WM8994/58 This allows us to communicate our power management state back to the parent device, allowing it to do a full power down when the device is idle. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
2e19b0c8 |
|
26-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Enable rbtree compression for WM8994/58 register cache The WM8994 and WM8958 register map is relatively sparse so benefits from compression. The rbtree compression gives better results than LZO for both memory and CPU consumption on a map as sparse as this. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
ca9aef50 |
|
26-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Convert WM8994 to use soc-cache.c cache functions In the process we convert the driver to read registers one at a time when initialising the cache. This has the effect of working around limitations in the sizes of I2C transactions which can be done by some CPUs. Due to the sparseness of the register map the overhead from this should be minimual unless I2C transactions are very expensive to start. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
821edd2f |
|
26-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Add WM8958 microphone detection support The WM8958 contains an advanced accessory detection feature which allows detection of up to seven different impedence levels on the microphone bias output, including detection of video outputs. Since some of the more involved accessory interfaces may involve noticable interactions with external components a simple detection scheme is provided by default with the option to provide custom handling of accessory detect. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
d6addcc9 |
|
26-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Add WM8958 Multi-band compressor support The WM8958 features a multi-band compressor which can be enabled on any of the AIF inputs. The MBC allows different gains to be applied to differnt audio bands, providing an improvement in perceived loudness of the signal by avoiding overdriving the output transducers. This patch enables support for the MBC. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
c4431df0 |
|
26-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Implement support for enhanced AIF3 on WM8958 Additional audio routing options are available on the WM8958 audio interface 3. Add support for these. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
3a423157 |
|
26-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Initial WM8958 audio configuration The WM8958 is a WM8994 derivative. This patch merely ensures that some revision specific configuration for WM8994 is not enabled on WM8994, additional patches will add support for the new features introduced on the WM8958. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
24fb2b11 |
|
23-Nov-2010 |
Axel Lin <axel.lin@gmail.com> |
ASoC: wm8994 - fix memory leaks Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
eba19fdd |
|
19-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Restore WM8994 volatile and readable register operations They went AWOL during the multi-component merge. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
505fb824 |
|
21-Nov-2010 |
Jarkko Nikula <jhnikula@gmail.com> |
ASoC: Do not include soc-dapm.h There is no need to include soc-dapm.h since soc.h includes it. Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
7b306dae |
|
16-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Move WM8994 read/write access data into separate file Makes the WM8994 driver file itself substantially smaller. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
96b101ef |
|
18-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Provide ADC left/right channel source selection on WM8994 Allow the application to choose if the ADC data presented on the left and right channels is sourced from the internal left or right channel. This allows a mono recording to be presented as stereo on the external bus. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
11e713a0 |
|
16-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Fix register cache setup WM8994 for multi-component During the multi-component conversion the WM8994 register cache init got lost. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
ce6120cc |
|
05-Nov-2010 |
Liam Girdwood <lrg@slimlogic.co.uk> |
ASoC: Decouple DAPM from CODECs Decoupling Dynamic Audio Power Management (DAPM) from codec devices is required when developing ASoC further. Such as for other ASoC components to have DAPM widgets or when extending DAPM to handle cross-device paths. This patch decouples DAPM related variables from struct snd_soc_codec and moves them to new struct snd_soc_dapm_context that is used to encapsulate DAPM context of a device. ASoC core and API of DAPM functions are modified to use DAPM context instead of codec. This patch does not change current functionality and a large part of changes come because of structure and internal API changes. Core implementation is from Liam Girdwood <lrg@slimlogic.co.uk> with some minor core changes, codecs and machine driver conversions from Jarkko Nikula <jhnikula@gmail.com>. Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Cc: Nicolas Ferre <nicolas.ferre@atmel.com> Cc: Manuel Lauss <manuel.lauss@googlemail.com> Cc: Mike Frysinger <vapier.adi@gmail.com> Cc: Cliff Cai <cliff.cai@analog.com> Cc: Kevin Hilman <khilman@deeprootsystems.com> Cc: Ryan Mallon <ryan@bluewatersys.com> Cc: Timur Tabi <timur@freescale.com> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Lars-Peter Clausen <lars@metafoo.de> Cc: Arnaud Patard (Rtp) <arnaud.patard@rtp-net.org> Cc: Wan ZongShun <mcuos.com@gmail.com> Cc: Eric Miao <eric.y.miao@gmail.com> Cc: Jassi Brar <jassi.brar@samsung.com> Cc: Daniel Gloeckner <dg@emlix.com> Cc: Kuninori Morimoto <morimoto.kuninori@renesas.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
7b0f42b5 |
|
03-Nov-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Remove register write trace from WM8994 We now have trace in the ASoC core so we don't need to our own trace in the driver. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
fec6dd83 |
|
27-Oct-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Store DC offset correction for wm_hubs devices in class W mode Providing the analogue configuration of the output path remains the same the DC offset corrected by the DC servo will remain identical so we can skip the callibration, reducing the startup time for the headphone output. Implement this for the wm_hubs devices as has been done for several other CODECs. Don't do this if we have any analogue paths enabled since offsets may be being introduced by the analogue paths which could vary outside the control of the driver. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
c14c05c1 |
|
13-Oct-2010 |
Joe Perches <joe@perches.com> |
ASoC: Remove unused vol field from WM8994 access mask table Remove unused vol from struct access_mask Reduces object size ~3kb. $ size sound/soc/codecs/wm8994.o* text data bss dec hex filename 40727 4384 4480 49591 c1b7 sound/soc/codecs/wm8994.o.new 43879 4384 4480 52743 ce07 sound/soc/codecs/wm8994.o.old Signed-off-by: Joe Perches <joe@perches.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
8c7f78b3 |
|
12-Oct-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Restore DAI ID specification for WM8994 WM8994 relies on the DAIs having IDs that match the AIF numbers. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
5ab230a7 |
|
06-Sep-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Fix cut'n'paste comment in WM8994 Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
3079aed5 |
|
31-Aug-2010 |
Ian Lartey <ian@opensource.wolfsonmicro.com> |
ASoC: Added a missing 32-bit PCM format, to the wm8994 codec. Signed-off-by: Ian Lartey <ian@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
f554885f |
|
31-Aug-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Implement WM8994 DAC data source muxes Allow selection of the channel used for input to the AIFnDAC signals. This isn't integrated into DAPM since we treat the data as a single mono channel until just beyond this selection so it ends up having no visible effect on the routing. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
7d83d213 |
|
23-Aug-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Log WM8994 separate ADC LRCLKs every time we configure This makes it that little bit easier to spot the diagnostics in the logs. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
b6b05691 |
|
12-Aug-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Only tweak WM8994 chip configuration on devices up to rev D Any subsequent revisions will have these configuration changes applied by default. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
0c17b393 |
|
11-Aug-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Optimise DSP performance for WM8994 Change the chip defaults to optimise performance of some of the DSP functionality. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
f0fba2ad |
|
17-Mar-2010 |
Liam Girdwood <lrg@slimlogic.co.uk> |
ASoC: multi-component - ASoC Multi-Component Support This patch extends the ASoC API to allow sound cards to have more than one CODEC and more than one platform DMA controller. This is achieved by dividing some current ASoC structures that contain both driver data and device data into structures that only either contain device data or driver data. i.e. struct snd_soc_codec ---> struct snd_soc_codec (device data) +-> struct snd_soc_codec_driver (driver data) struct snd_soc_platform ---> struct snd_soc_platform (device data) +-> struct snd_soc_platform_driver (driver data) struct snd_soc_dai ---> struct snd_soc_dai (device data) +-> struct snd_soc_dai_driver (driver data) struct snd_soc_device ---> deleted This now allows ASoC to be more tightly aligned with the Linux driver model and also means that every ASoC codec, platform and (platform) DAI is a kernel device. ASoC component private data is now stored as device private data. The ASoC sound card struct snd_soc_card has also been updated to store lists of it's components rather than a pointer to a codec and platform. The PCM runtime struct soc_pcm_runtime now has pointers to all its components. This patch adds DAPM support for ASoC multi-component and removes struct snd_soc_socdev from DAPM core. All DAPM calls are now made on a card, codec or runtime PCM level basis rather than using snd_soc_socdev. Other notable multi-component changes:- * Stream operations now de-reference less structures. * close_delayed work() now runs on a DAI basis rather than looping all DAIs in a card. * PM suspend()/resume() operations can now handle N CODECs and Platforms per sound card. * Added soc_bind_dai_link() to bind the component devices to the sound card. * Added soc_dai_link_probe() and soc_dai_link_remove() to probe and remove DAI link components. * sysfs entries can now be registered per component per card. * snd_soc_new_pcms() functionailty rolled into dai_link_probe(). * snd_soc_register_codec() now does all the codec list and mutex init. This patch changes the probe() and remove() of the CODEC drivers as follows:- o Make CODEC driver a platform driver o Moved all struct snd_soc_codec list, mutex, etc initialiasation to core. o Removed all static codec pointers (drivers now support > 1 codec dev) o snd_soc_register_pcms() now done by core. o snd_soc_register_dai() folded into snd_soc_register_codec(). CS4270 portions: Acked-by: Timur Tabi <timur@freescale.com> Some TLV320aic23 and Cirrus platform fixes. Signed-off-by: Ryan Mallon <ryan@bluewatersys.com> TI CODEC and OMAP fixes Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Samsung platform and misc fixes :- Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Reviewed-by: Jassi Brar <jassi.brar@samsung.com> Signed-off-by: Seungwhan Youn <sw.youn@samsung.com> MPC8610 and PPC fixes. Signed-off-by: Timur Tabi <timur@freescale.com> i.MX fixes and some core fixes. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> J4740 platform fixes:- Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> CC: Tony Lindgren <tony@atomide.com> CC: Nicolas Ferre <nicolas.ferre@atmel.com> CC: Kevin Hilman <khilman@deeprootsystems.com> CC: Sascha Hauer <s.hauer@pengutronix.de> CC: Atsushi Nemoto <anemo@mba.ocn.ne.jp> CC: Kuninori Morimoto <morimoto.kuninori@renesas.com> CC: Daniel Gloeckner <dg@emlix.com> CC: Manuel Lauss <mano@roarinelk.homelinux.net> CC: Mike Frysinger <vapier.adi@gmail.com> CC: Arnaud Patard <apatard@mandriva.com> CC: Wan ZongShun <mcuos.com@gmail.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
d1ce6b20 |
|
20-Jul-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Unconditionally enable WM8994 AIF1ADC TDM mode AIF1ADC TDM mode has no effect other than causing the ADCDAT line to be tristated rather than driven low on clock cycles where there is no data to be transmitted. If the clock cycle is idle then there should be no devices using the data so tristating should have no adverse effects. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
a3257ba8 |
|
19-Jul-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Implement WM8994 AIF1ADC2 paths Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
66b47fdb |
|
07-Jul-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Implement WM8994 OPCLK support The WM8994 can output a clock derived from its internal SYSCLK, called OPCLK. The rate can be selected as a sysclk, with a division from the SYSCLK rate specified (multiplied by 10 since a division of 5.5 is supported) and the clock can be disabled by specifying a divisor of zero. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
e88ff1e6 |
|
08-Jul-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Include WM8994 GPIO and interrupt registers in codec_reg Very handy for debug. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
6a2f1ee1 |
|
10-May-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Don't restart unconfigured WM8994 FLLs If the FLL is not configured attempting to resume it will produce a warning message so skip the resume. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
fd5722e5 |
|
10-May-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Add register write logging for WM8994 Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
5e5e2bef |
|
24-Apr-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Warn on low WM8994 AIFCLK Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
7add84aa |
|
21-Apr-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Allow unspecified source when stopping WM8994 FLLs Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
ee839a21 |
|
19-Apr-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Tone down debugging for WM8994 class W It's a little verbose during path changes. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
7d48a6ac |
|
19-Apr-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Set full range of WM8994 FLL Fratio values Use all the available Fratio values when configuring the WM8994 FLL, not just 0 and 3, following more complete characterisation of the device performance. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
136ff2a2 |
|
19-Apr-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Support FLL input clock selection on WM8994 The WM8994 FLL can be clocked from one of four inputs, the two MCLKs and the LRCLK and BCLK of the AIF associated with the FLL. Allow all four inputs to be used rather than defaulting to MCLK1. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
b2c812e2 |
|
14-Apr-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Add indirection for CODEC private data One of the features of the multi CODEC work is that it embeds a struct device in the CODEC to provide diagnostics via a sysfs class rather than via the device tree, at which point it's much better to use the struct device private data rather than having two places to store it. Provide an accessor function to allow this change to be made more easily, and update all the CODEC drivers are updated. To ensure use of the accessor the private data structure member is renamed, meaning that if code developed with older an older core that still uses private_data is merged it will fail to build. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
88766984 |
|
29-Mar-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Implement interrupt based WM8994 microphone detection Support interrupt based microphone bias detection. The WM8994 has two microphone bias supplies, with detection supported on both. Detection using GPIOs together with the standard GPIO based jack framework is already supported via the platform data for the WM8994 core driver. Note that as well as the microphone bias itself the system clock and whichever AIF clock is supplying the system clock will need to be enabled for detection to function. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
d522ffbf |
|
30-Mar-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Only do WM8994 bias off transition from standby Otherwise we may try to power down multiple times when the using idle bias off and the driver is removed. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
8437f700 |
|
29-Mar-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Support second DC servo readback method for wm_hubs More recent Wolfson hubs devices add the ability to read back the DC servo calibration information from the register used to write offsets, and later still ones remove the old readback registers. Add support for the new scheme, and use it for WM8994 device revisions that support it. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
5a0e3ad6 |
|
24-Mar-2010 |
Tejun Heo <tj@kernel.org> |
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h percpu.h is included by sched.h and module.h and thus ends up being included when building most .c files. percpu.h includes slab.h which in turn includes gfp.h making everything defined by the two files universally available and complicating inclusion dependencies. percpu.h -> slab.h dependency is about to be removed. Prepare for this change by updating users of gfp and slab facilities include those headers directly instead of assuming availability. As this conversion needs to touch large number of source files, the following script is used as the basis of conversion. http://userweb.kernel.org/~tj/misc/slabh-sweep.py The script does the followings. * Scan files for gfp and slab usages and update includes such that only the necessary includes are there. ie. if only gfp is used, gfp.h, if slab is used, slab.h. * When the script inserts a new include, it looks at the include blocks and try to put the new include such that its order conforms to its surrounding. It's put in the include block which contains core kernel includes, in the same order that the rest are ordered - alphabetical, Christmas tree, rev-Xmas-tree or at the end if there doesn't seem to be any matching order. * If the script can't find a place to put a new include (mostly because the file doesn't have fitting include block), it prints out an error message indicating which .h file needs to be added to the file. The conversion was done in the following steps. 1. The initial automatic conversion of all .c files updated slightly over 4000 files, deleting around 700 includes and adding ~480 gfp.h and ~3000 slab.h inclusions. The script emitted errors for ~400 files. 2. Each error was manually checked. Some didn't need the inclusion, some needed manual addition while adding it to implementation .h or embedding .c file was more appropriate for others. This step added inclusions to around 150 files. 3. The script was run again and the output was compared to the edits from #2 to make sure no file was left behind. 4. Several build tests were done and a couple of problems were fixed. e.g. lib/decompress_*.c used malloc/free() wrappers around slab APIs requiring slab.h to be added manually. 5. The script was run on all .h files but without automatically editing them as sprinkling gfp.h and slab.h inclusions around .h files could easily lead to inclusion dependency hell. Most gfp.h inclusion directives were ignored as stuff from gfp.h was usually wildly available and often used in preprocessor macros. Each slab.h inclusion directive was examined and added manually as necessary. 6. percpu.h was updated not to include slab.h. 7. Build test were done on the following configurations and failures were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my distributed build env didn't work with gcov compiles) and a few more options had to be turned off depending on archs to make things build (like ipr on powerpc/64 which failed due to missing writeq). * x86 and x86_64 UP and SMP allmodconfig and a custom test config. * powerpc and powerpc64 SMP allmodconfig * sparc and sparc64 SMP allmodconfig * ia64 SMP allmodconfig * s390 SMP allmodconfig * alpha SMP allmodconfig * um on x86_64 SMP allmodconfig 8. percpu.h modifications were reverted so that it could be applied as a separate patch and serve as bisection point. Given the fact that I had only a couple of failures from tests on step 6, I'm fairly confident about the coverage of this conversion patch. If there is a breakage, it's likely to be something in one of the arch headers which should be easily discoverable easily on most builds of the specific arch. Signed-off-by: Tejun Heo <tj@kernel.org> Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
|
#
a8462bde |
|
24-Mar-2010 |
Dan Carpenter <error27@gmail.com> |
ASoC: wm8994: playback => capture Sparse caught that initialize "playback" two times instead of initializing "capture". Signed-off-by: Dan Carpenter <error27@gmail.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
778a76e2 |
|
22-Mar-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Implement WM8994 DAI tristate support This also adds the first DAI operation for AIF3 so fill out the ID and the ops for that too. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
|
#
07cd8ada |
|
02-Feb-2010 |
Joonyoung Shim <jy0922.shim@samsung.com> |
ASoC: Fix BCLK calculation of WM8994 This fixes BCLK calculation and removes unnecessary check code. Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
#
9e6e96a1 |
|
29-Jan-2010 |
Mark Brown <broonie@opensource.wolfsonmicro.com> |
ASoC: Add WM8994 CODEC driver The WM8994 is a highly integrated ultra-low power hi-fi audio subsystem designed for smartphones and other portable devices rich in multimedia features. It provides advanced digital mixing facilities enabling low power high quality interconnection of CPU, baseband and other audio sources through flexible digital and analogue routing, and integrates a class W headphone driver and stereo class D speaker drivers. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|