ASoC: Mark WM8958 DSP2 registers readable
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 16 Mar 2011 21:05:06 +0000 (21:05 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 18 Mar 2011 10:53:25 +0000 (10:53 +0000)
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
sound/soc/codecs/wm8994.c

index 328f32831946e20a4dde2132fbdd37245d4938f3..bdd1ac75178a705761c044cf71194bb8faa00795 100644 (file)
@@ -55,6 +55,9 @@ static int wm8994_retune_mobile_base[] = {
 
 static int wm8994_readable(struct snd_soc_codec *codec, unsigned int reg)
 {
+       struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
+       struct wm8994 *control = wm8994->control_data;
+
        switch (reg) {
        case WM8994_GPIO_1:
        case WM8994_GPIO_2:
@@ -71,6 +74,15 @@ static int wm8994_readable(struct snd_soc_codec *codec, unsigned int reg)
        case WM8994_INTERRUPT_STATUS_2:
        case WM8994_INTERRUPT_RAW_STATUS_2:
                return 1;
+
+       case WM8958_DSP2_PROGRAM:
+       case WM8958_DSP2_CONFIG:
+       case WM8958_DSP2_EXECCONTROL:
+               if (control->type == WM8958)
+                       return 1;
+               else
+                       return 0;
+
        default:
                break;
        }