[alsa-devel] [PATCH 2/2] ASoC: WM8903: Fix double-applied patch
Stephen Warren
swarren at nvidia.com
Wed Feb 23 01:23:57 CET 2011
A patch named "ASoC: Actively manage WM8903 DC servo configuration" was
applied twice, with commit IDs:
1605b831ae71a4008671e43113e1151a669ed0bf
c5b6a9feaeb0fa0e39e3fc10f9bf8cc8de498739
Remove the duplicate code caused by this.
Signed-off-by: Stephen Warren <swarren at nvidia.com>
---
sound/soc/codecs/wm8903.c | 97 ---------------------------------------------
1 files changed, 0 insertions(+), 97 deletions(-)
diff --git a/sound/soc/codecs/wm8903.c b/sound/soc/codecs/wm8903.c
index 7ca2593..ae1cadf 100644
--- a/sound/soc/codecs/wm8903.c
+++ b/sound/soc/codecs/wm8903.c
@@ -373,103 +373,6 @@ static void wm8903_seq_notifier(struct snd_soc_dapm_context *dapm,
}
}
-static int wm8903_dcs_event(struct snd_soc_dapm_widget *w,
- struct snd_kcontrol *kcontrol, int event)
-{
- struct snd_soc_codec *codec = w->codec;
- struct wm8903_priv *wm8903 = snd_soc_codec_get_drvdata(codec);
-
- switch (event) {
- case SND_SOC_DAPM_POST_PMU:
- wm8903->dcs_pending |= 1 << w->shift;
- break;
- case SND_SOC_DAPM_PRE_PMD:
- snd_soc_update_bits(codec, WM8903_DC_SERVO_0,
- 1 << w->shift, 0);
- break;
- }
-
- return 0;
-}
-
-#define WM8903_DCS_MODE_WRITE_STOP 0
-#define WM8903_DCS_MODE_START_STOP 2
-
-static void wm8903_seq_notifier(struct snd_soc_dapm_context *dapm,
- enum snd_soc_dapm_type event, int subseq)
-{
- struct snd_soc_codec *codec = container_of(dapm,
- struct snd_soc_codec, dapm);
- struct wm8903_priv *wm8903 = snd_soc_codec_get_drvdata(codec);
- int dcs_mode = WM8903_DCS_MODE_WRITE_STOP;
- int i, val;
-
- /* Complete any pending DC servo starts */
- if (wm8903->dcs_pending) {
- dev_dbg(codec->dev, "Starting DC servo for %x\n",
- wm8903->dcs_pending);
-
- /* If we've no cached values then we need to do startup */
- for (i = 0; i < ARRAY_SIZE(wm8903->dcs_cache); i++) {
- if (!(wm8903->dcs_pending & (1 << i)))
- continue;
-
- if (wm8903->dcs_cache[i]) {
- dev_dbg(codec->dev,
- "Restore DC servo %d value %x\n",
- 3 - i, wm8903->dcs_cache[i]);
-
- snd_soc_write(codec, WM8903_DC_SERVO_4 + i,
- wm8903->dcs_cache[i] & 0xff);
- } else {
- dev_dbg(codec->dev,
- "Calibrate DC servo %d\n", 3 - i);
- dcs_mode = WM8903_DCS_MODE_START_STOP;
- }
- }
-
- /* Don't trust the cache for analogue */
- if (wm8903->class_w_users)
- dcs_mode = WM8903_DCS_MODE_START_STOP;
-
- snd_soc_update_bits(codec, WM8903_DC_SERVO_2,
- WM8903_DCS_MODE_MASK, dcs_mode);
-
- snd_soc_update_bits(codec, WM8903_DC_SERVO_0,
- WM8903_DCS_ENA_MASK, wm8903->dcs_pending);
-
- switch (dcs_mode) {
- case WM8903_DCS_MODE_WRITE_STOP:
- break;
-
- case WM8903_DCS_MODE_START_STOP:
- msleep(270);
-
- /* Cache the measured offsets for digital */
- if (wm8903->class_w_users)
- break;
-
- for (i = 0; i < ARRAY_SIZE(wm8903->dcs_cache); i++) {
- if (!(wm8903->dcs_pending & (1 << i)))
- continue;
-
- val = snd_soc_read(codec,
- WM8903_DC_SERVO_READBACK_1 + i);
- dev_dbg(codec->dev, "DC servo %d: %x\n",
- 3 - i, val);
- wm8903->dcs_cache[i] = val;
- }
- break;
-
- default:
- pr_warn("DCS mode %d delay not set\n", dcs_mode);
- break;
- }
-
- wm8903->dcs_pending = 0;
- }
-}
-
/*
* When used with DAC outputs only the WM8903 charge pump supports
* operation in class W mode, providing very low power consumption
--
1.7.1
More information about the Alsa-devel
mailing list