|
|
|
@ -383,6 +383,8 @@ static int wm8994_get_drc_enum(struct snd_kcontrol *kcontrol, |
|
|
|
|
struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); |
|
|
|
|
int drc = wm8994_get_drc(kcontrol->id.name); |
|
|
|
|
|
|
|
|
|
if (drc < 0) |
|
|
|
|
return drc; |
|
|
|
|
ucontrol->value.enumerated.item[0] = wm8994->drc_cfg[drc]; |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
@ -488,6 +490,9 @@ static int wm8994_get_retune_mobile_enum(struct snd_kcontrol *kcontrol, |
|
|
|
|
struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); |
|
|
|
|
int block = wm8994_get_retune_mobile_block(kcontrol->id.name); |
|
|
|
|
|
|
|
|
|
if (block < 0) |
|
|
|
|
return block; |
|
|
|
|
|
|
|
|
|
ucontrol->value.enumerated.item[0] = wm8994->retune_mobile_cfg[block]; |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
@ -1031,7 +1036,7 @@ static int aif1clk_ev(struct snd_soc_dapm_widget *w, |
|
|
|
|
{ |
|
|
|
|
struct snd_soc_codec *codec = w->codec; |
|
|
|
|
struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); |
|
|
|
|
struct wm8994 *control = codec->control_data; |
|
|
|
|
struct wm8994 *control = wm8994->wm8994; |
|
|
|
|
int mask = WM8994_AIF1DAC1L_ENA | WM8994_AIF1DAC1R_ENA; |
|
|
|
|
int i; |
|
|
|
|
int dac; |
|
|
|
@ -3833,6 +3838,11 @@ static irqreturn_t wm8958_mic_irq(int irq, void *data) |
|
|
|
|
dev_dbg(codec->dev, "Ignoring removed jack\n"); |
|
|
|
|
return IRQ_HANDLED; |
|
|
|
|
} |
|
|
|
|
} else if (!(reg & WM8958_MICD_STS)) { |
|
|
|
|
snd_soc_jack_report(wm8994->micdet[0].jack, 0, |
|
|
|
|
SND_JACK_MECHANICAL | SND_JACK_HEADSET | |
|
|
|
|
wm8994->btn_mask); |
|
|
|
|
goto out; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (wm8994->mic_detecting) |
|
|
|
|