return ret;
}
-static void imx_resume_event(struct work_struct *wor)
-{
- struct imx_priv *priv = &card_priv;
- struct snd_soc_jack *jack;
- int enable, report;
-
- if (gpio_is_valid(priv->hp_gpio)) {
- jack = imx_hp_jack_gpio.jack;
-
- enable = gpio_get_value_cansleep(imx_hp_jack_gpio.gpio);
- if (imx_hp_jack_gpio.invert)
- enable = !enable;
-
- report = enable ? imx_hp_jack_gpio.report : 0;
-
- snd_soc_jack_report(jack, report, imx_hp_jack_gpio.report);
- }
-
- if (gpio_is_valid(priv->mic_gpio)) {
- jack = imx_mic_jack_gpio.jack;
-
- enable = gpio_get_value_cansleep(imx_mic_jack_gpio.gpio);
- if (imx_mic_jack_gpio.invert)
- enable = !enable;
-
- report = enable ? imx_mic_jack_gpio.report : 0;
-
- snd_soc_jack_report(jack, report, imx_mic_jack_gpio.report);
- }
-
- return;
-}
-
-static DECLARE_DELAYED_WORK(resume_jack_event, imx_resume_event);
-
static const struct snd_soc_dapm_widget imx_wm8962_dapm_widgets[] = {
SND_SOC_DAPM_HP("Headphone Jack", NULL),
static DRIVER_ATTR(microphone, S_IRUGO | S_IWUSR, show_mic, NULL);
-static int imx_wm8962_resume(struct snd_soc_card *card)
-{
- struct imx_priv *priv = &card_priv;
-
- if (gpio_is_valid(priv->hp_gpio) || gpio_is_valid(priv->mic_gpio))
- schedule_delayed_work(&resume_jack_event, msecs_to_jiffies(200));
-
- return 0;
-}
-
static int imx_wm8962_late_probe(struct snd_soc_card *card)
{
struct snd_soc_pcm_runtime *rtd;
data->card.num_dapm_widgets = ARRAY_SIZE(imx_wm8962_dapm_widgets);
data->card.late_probe = imx_wm8962_late_probe;
- data->card.resume_post = &imx_wm8962_resume;
platform_set_drvdata(pdev, &data->card);
snd_soc_card_set_drvdata(&data->card, data);