瀏覽代碼

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>
Mark Brown 13 年之前
父節點
當前提交
67109cbea1
共有 3 個文件被更改,包括 3 次插入1 次删除
  1. 1 0
      sound/soc/codecs/wm8994.c
  2. 1 1
      sound/soc/codecs/wm_hubs.c
  3. 1 0
      sound/soc/codecs/wm_hubs.h

+ 1 - 0
sound/soc/codecs/wm8994.c

@@ -3535,6 +3535,7 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
 		wm8994->hubs.dcs_readback_mode = 2;
 		wm8994->hubs.dcs_readback_mode = 2;
 		wm8994->hubs.no_series_update = 1;
 		wm8994->hubs.no_series_update = 1;
 		wm8994->hubs.hp_startup_mode = 1;
 		wm8994->hubs.hp_startup_mode = 1;
+		wm8994->hubs.no_cache_class_w = true;
 
 
 		switch (wm8994->revision) {
 		switch (wm8994->revision) {
 		case 0:
 		case 0:

+ 1 - 1
sound/soc/codecs/wm_hubs.c

@@ -207,7 +207,7 @@ static void calibrate_dc_servo(struct snd_soc_codec *codec)
 
 
 	/* Save the callibrated offset if we're in class W mode and
 	/* Save the callibrated offset if we're in class W mode and
 	 * therefore don't have any analogue signal mixed in. */
 	 * therefore don't have any analogue signal mixed in. */
-	if (hubs->class_w)
+	if (hubs->class_w && !hubs->no_cache_class_w)
 		hubs->class_w_dcs = dcs_cfg;
 		hubs->class_w_dcs = dcs_cfg;
 }
 }
 
 

+ 1 - 0
sound/soc/codecs/wm_hubs.h

@@ -30,6 +30,7 @@ struct wm_hubs_data {
 	int series_startup;
 	int series_startup;
 	int no_series_update;
 	int no_series_update;
 
 
+	bool no_cache_class_w;
 	bool class_w;
 	bool class_w;
 	u16 class_w_dcs;
 	u16 class_w_dcs;