Commit 62490016 authored by Jeeja KP's avatar Jeeja KP Committed by Mark Brown

ASoC: hdac_hdmi: Use ASoC jack instead of snd_jack

Use snd_soc_jack instead of snd_jack and create the jack in machine
driver and pass the jack pointer to hdac_hdmi driver for jack
reporting.
Signed-off-by: default avatarJeeja KP <jeeja.kp@intel.com>
Acked-by: default avatarVinod Koul <vinod.koul@intel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent e0e5d3e5
...@@ -102,7 +102,7 @@ struct hdac_hdmi_pcm { ...@@ -102,7 +102,7 @@ struct hdac_hdmi_pcm {
int pcm_id; int pcm_id;
struct list_head port_list; struct list_head port_list;
struct hdac_hdmi_cvt *cvt; struct hdac_hdmi_cvt *cvt;
struct snd_jack *jack; struct snd_soc_jack *jack;
int stream_tag; int stream_tag;
int channels; int channels;
int format; int format;
...@@ -159,7 +159,8 @@ static void hdac_hdmi_jack_report(struct hdac_hdmi_pcm *pcm, ...@@ -159,7 +159,8 @@ static void hdac_hdmi_jack_report(struct hdac_hdmi_pcm *pcm,
dev_dbg(&edev->hdac.dev, dev_dbg(&edev->hdac.dev,
"jack report for pcm=%d\n", "jack report for pcm=%d\n",
pcm->pcm_id); pcm->pcm_id);
snd_jack_report(pcm->jack, SND_JACK_AVOUT); snd_soc_jack_report(pcm->jack, SND_JACK_AVOUT,
SND_JACK_AVOUT);
} }
pcm->jack_event++; pcm->jack_event++;
} else { } else {
...@@ -169,7 +170,7 @@ static void hdac_hdmi_jack_report(struct hdac_hdmi_pcm *pcm, ...@@ -169,7 +170,7 @@ static void hdac_hdmi_jack_report(struct hdac_hdmi_pcm *pcm,
* to multiple ports. * to multiple ports.
*/ */
if (pcm->jack_event == 1) if (pcm->jack_event == 1)
snd_jack_report(pcm->jack, 0); snd_soc_jack_report(pcm->jack, 0, SND_JACK_AVOUT);
if (pcm->jack_event > 0) if (pcm->jack_event > 0)
pcm->jack_event--; pcm->jack_event--;
} }
...@@ -1556,13 +1557,11 @@ static struct snd_pcm *hdac_hdmi_get_pcm_from_id(struct snd_soc_card *card, ...@@ -1556,13 +1557,11 @@ static struct snd_pcm *hdac_hdmi_get_pcm_from_id(struct snd_soc_card *card,
return NULL; return NULL;
} }
int hdac_hdmi_jack_init(struct snd_soc_dai *dai, int device) int hdac_hdmi_jack_init(struct snd_soc_dai *dai, int device,
struct snd_soc_jack *jack)
{ {
char jack_name[NAME_SIZE];
struct snd_soc_codec *codec = dai->codec; struct snd_soc_codec *codec = dai->codec;
struct hdac_ext_device *edev = snd_soc_codec_get_drvdata(codec); struct hdac_ext_device *edev = snd_soc_codec_get_drvdata(codec);
struct snd_soc_dapm_context *dapm =
snd_soc_component_get_dapm(&codec->component);
struct hdac_hdmi_priv *hdmi = edev->private_data; struct hdac_hdmi_priv *hdmi = edev->private_data;
struct hdac_hdmi_pcm *pcm; struct hdac_hdmi_pcm *pcm;
struct snd_pcm *snd_pcm; struct snd_pcm *snd_pcm;
...@@ -1578,6 +1577,7 @@ int hdac_hdmi_jack_init(struct snd_soc_dai *dai, int device) ...@@ -1578,6 +1577,7 @@ int hdac_hdmi_jack_init(struct snd_soc_dai *dai, int device)
pcm->pcm_id = device; pcm->pcm_id = device;
pcm->cvt = hdmi->dai_map[dai->id].cvt; pcm->cvt = hdmi->dai_map[dai->id].cvt;
pcm->jack_event = 0; pcm->jack_event = 0;
pcm->jack = jack;
mutex_init(&pcm->lock); mutex_init(&pcm->lock);
INIT_LIST_HEAD(&pcm->port_list); INIT_LIST_HEAD(&pcm->port_list);
snd_pcm = hdac_hdmi_get_pcm_from_id(dai->component->card, device); snd_pcm = hdac_hdmi_get_pcm_from_id(dai->component->card, device);
...@@ -1594,10 +1594,7 @@ int hdac_hdmi_jack_init(struct snd_soc_dai *dai, int device) ...@@ -1594,10 +1594,7 @@ int hdac_hdmi_jack_init(struct snd_soc_dai *dai, int device)
list_add_tail(&pcm->head, &hdmi->pcm_list); list_add_tail(&pcm->head, &hdmi->pcm_list);
sprintf(jack_name, "HDMI/DP, pcm=%d Jack", device); return 0;
return snd_jack_new(dapm->card->snd_card, jack_name,
SND_JACK_AVOUT, &pcm->jack, true, false);
} }
EXPORT_SYMBOL_GPL(hdac_hdmi_jack_init); EXPORT_SYMBOL_GPL(hdac_hdmi_jack_init);
......
#ifndef __HDAC_HDMI_H__ #ifndef __HDAC_HDMI_H__
#define __HDAC_HDMI_H__ #define __HDAC_HDMI_H__
int hdac_hdmi_jack_init(struct snd_soc_dai *dai, int pcm); int hdac_hdmi_jack_init(struct snd_soc_dai *dai, int pcm,
struct snd_soc_jack *jack);
#endif /* __HDAC_HDMI_H__ */ #endif /* __HDAC_HDMI_H__ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment