diff options
Diffstat (limited to 'sound/soc/codecs/wm8994.c')
-rw-r--r-- | sound/soc/codecs/wm8994.c | 46 |
1 files changed, 5 insertions, 41 deletions
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c index 1436b6ce74d1..bb62f4b3d563 100644 --- a/sound/soc/codecs/wm8994.c +++ b/sound/soc/codecs/wm8994.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * wm8994.c -- WM8994 ALSA SoC Audio driver | 2 | * wm8994.c -- WM8994 ALSA SoC Audio driver |
3 | * | 3 | * |
4 | * Copyright 2009 Wolfson Microelectronics plc | 4 | * Copyright 2009-12 Wolfson Microelectronics plc |
5 | * | 5 | * |
6 | * Author: Mark Brown <broonie@opensource.wolfsonmicro.com> | 6 | * Author: Mark Brown <broonie@opensource.wolfsonmicro.com> |
7 | * | 7 | * |
@@ -2967,23 +2967,8 @@ static struct snd_soc_dai_driver wm8994_dai[] = { | |||
2967 | static int wm8994_codec_suspend(struct snd_soc_codec *codec) | 2967 | static int wm8994_codec_suspend(struct snd_soc_codec *codec) |
2968 | { | 2968 | { |
2969 | struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); | 2969 | struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); |
2970 | struct wm8994 *control = wm8994->wm8994; | ||
2971 | int i, ret; | 2970 | int i, ret; |
2972 | 2971 | ||
2973 | switch (control->type) { | ||
2974 | case WM8994: | ||
2975 | snd_soc_update_bits(codec, WM8994_MICBIAS, WM8994_MICD_ENA, 0); | ||
2976 | break; | ||
2977 | case WM1811: | ||
2978 | snd_soc_update_bits(codec, WM8994_ANTIPOP_2, | ||
2979 | WM1811_JACKDET_MODE_MASK, 0); | ||
2980 | /* Fall through */ | ||
2981 | case WM8958: | ||
2982 | snd_soc_update_bits(codec, WM8958_MIC_DETECT_1, | ||
2983 | WM8958_MICD_ENA, 0); | ||
2984 | break; | ||
2985 | } | ||
2986 | |||
2987 | for (i = 0; i < ARRAY_SIZE(wm8994->fll); i++) { | 2972 | for (i = 0; i < ARRAY_SIZE(wm8994->fll); i++) { |
2988 | memcpy(&wm8994->fll_suspend[i], &wm8994->fll[i], | 2973 | memcpy(&wm8994->fll_suspend[i], &wm8994->fll[i], |
2989 | sizeof(struct wm8994_fll_config)); | 2974 | sizeof(struct wm8994_fll_config)); |
@@ -3033,28 +3018,6 @@ static int wm8994_codec_resume(struct snd_soc_codec *codec) | |||
3033 | i + 1, ret); | 3018 | i + 1, ret); |
3034 | } | 3019 | } |
3035 | 3020 | ||
3036 | switch (control->type) { | ||
3037 | case WM8994: | ||
3038 | if (wm8994->micdet[0].jack || wm8994->micdet[1].jack) | ||
3039 | snd_soc_update_bits(codec, WM8994_MICBIAS, | ||
3040 | WM8994_MICD_ENA, WM8994_MICD_ENA); | ||
3041 | break; | ||
3042 | case WM1811: | ||
3043 | if (wm8994->jackdet && wm8994->jack_cb) { | ||
3044 | /* Restart from idle */ | ||
3045 | snd_soc_update_bits(codec, WM8994_ANTIPOP_2, | ||
3046 | WM1811_JACKDET_MODE_MASK, | ||
3047 | WM1811_JACKDET_MODE_JACK); | ||
3048 | break; | ||
3049 | } | ||
3050 | break; | ||
3051 | case WM8958: | ||
3052 | if (wm8994->jack_cb) | ||
3053 | snd_soc_update_bits(codec, WM8958_MIC_DETECT_1, | ||
3054 | WM8958_MICD_ENA, WM8958_MICD_ENA); | ||
3055 | break; | ||
3056 | } | ||
3057 | |||
3058 | return 0; | 3021 | return 0; |
3059 | } | 3022 | } |
3060 | #else | 3023 | #else |
@@ -3729,9 +3692,6 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec) | |||
3729 | 3692 | ||
3730 | if (wm8994->pdata && wm8994->pdata->micdet_irq) | 3693 | if (wm8994->pdata && wm8994->pdata->micdet_irq) |
3731 | wm8994->micdet_irq = wm8994->pdata->micdet_irq; | 3694 | wm8994->micdet_irq = wm8994->pdata->micdet_irq; |
3732 | else if (wm8994->pdata && wm8994->pdata->irq_base) | ||
3733 | wm8994->micdet_irq = wm8994->pdata->irq_base + | ||
3734 | WM8994_IRQ_MIC1_DET; | ||
3735 | 3695 | ||
3736 | pm_runtime_enable(codec->dev); | 3696 | pm_runtime_enable(codec->dev); |
3737 | pm_runtime_idle(codec->dev); | 3697 | pm_runtime_idle(codec->dev); |
@@ -3870,6 +3830,10 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec) | |||
3870 | dev_warn(codec->dev, | 3830 | dev_warn(codec->dev, |
3871 | "Failed to request Mic detect IRQ: %d\n", | 3831 | "Failed to request Mic detect IRQ: %d\n", |
3872 | ret); | 3832 | ret); |
3833 | } else { | ||
3834 | wm8994_request_irq(wm8994->wm8994, WM8994_IRQ_MIC1_DET, | ||
3835 | wm8958_mic_irq, "Mic detect", | ||
3836 | wm8994); | ||
3873 | } | 3837 | } |
3874 | } | 3838 | } |
3875 | 3839 | ||