Commit 80acdd4f authored by Ranjani Sridharan's avatar Ranjani Sridharan Committed by Mark Brown

ASoC: SOF: intel: hda: Modify signature for hda_codec_probe_bus()

The machine driver selection for HDA platforms will be
consolidated and moved out of the SOF DSP
probe callback. In preparation for that, modify the
signature for hda_codec_probe_bus() to pass the
hda_codec_use_common_hdmi as a variable while probing the
HDA codecs.
Signed-off-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20191204211556.12671-10-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent ee1e79b7
...@@ -80,12 +80,11 @@ EXPORT_SYMBOL(hda_codec_jack_wake_enable); ...@@ -80,12 +80,11 @@ EXPORT_SYMBOL(hda_codec_jack_wake_enable);
EXPORT_SYMBOL(hda_codec_jack_check); EXPORT_SYMBOL(hda_codec_jack_check);
/* probe individual codec */ /* probe individual codec */
static int hda_codec_probe(struct snd_sof_dev *sdev, int address) static int hda_codec_probe(struct snd_sof_dev *sdev, int address,
bool hda_codec_use_common_hdmi)
{ {
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC) #if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC)
struct hdac_hda_priv *hda_priv; struct hdac_hda_priv *hda_priv;
struct snd_soc_acpi_mach_params *mach_params = NULL;
struct snd_sof_pdata *pdata = sdev->pdata;
#endif #endif
struct hda_bus *hbus = sof_to_hbus(sdev); struct hda_bus *hbus = sof_to_hbus(sdev);
struct hdac_device *hdev; struct hdac_device *hdev;
...@@ -115,10 +114,6 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address) ...@@ -115,10 +114,6 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address)
if (ret < 0) if (ret < 0)
return ret; return ret;
if (pdata->machine)
mach_params = (struct snd_soc_acpi_mach_params *)
&pdata->machine->mach_params;
if ((resp & 0xFFFF0000) == IDISP_VID_INTEL) if ((resp & 0xFFFF0000) == IDISP_VID_INTEL)
hda_priv->need_display_power = true; hda_priv->need_display_power = true;
...@@ -126,7 +121,7 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address) ...@@ -126,7 +121,7 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address)
* if common HDMI codec driver is not used, codec load * if common HDMI codec driver is not used, codec load
* is skipped here and hdac_hdmi is used instead * is skipped here and hdac_hdmi is used instead
*/ */
if ((mach_params && mach_params->common_hdmi_codec_drv) || if (hda_codec_use_common_hdmi ||
(resp & 0xFFFF0000) != IDISP_VID_INTEL) { (resp & 0xFFFF0000) != IDISP_VID_INTEL) {
hdev->type = HDA_DEV_LEGACY; hdev->type = HDA_DEV_LEGACY;
hda_codec_load_module(&hda_priv->codec); hda_codec_load_module(&hda_priv->codec);
...@@ -145,7 +140,8 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address) ...@@ -145,7 +140,8 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address)
} }
/* Codec initialization */ /* Codec initialization */
int hda_codec_probe_bus(struct snd_sof_dev *sdev) int hda_codec_probe_bus(struct snd_sof_dev *sdev,
bool hda_codec_use_common_hdmi)
{ {
struct hdac_bus *bus = sof_to_bus(sdev); struct hdac_bus *bus = sof_to_bus(sdev);
int i, ret; int i, ret;
...@@ -156,7 +152,7 @@ int hda_codec_probe_bus(struct snd_sof_dev *sdev) ...@@ -156,7 +152,7 @@ int hda_codec_probe_bus(struct snd_sof_dev *sdev)
if (!(bus->codec_mask & (1 << i))) if (!(bus->codec_mask & (1 << i)))
continue; continue;
ret = hda_codec_probe(sdev, i); ret = hda_codec_probe(sdev, i, hda_codec_use_common_hdmi);
if (ret < 0) { if (ret < 0) {
dev_err(bus->dev, "error: codec #%d probe error, ret: %d\n", dev_err(bus->dev, "error: codec #%d probe error, ret: %d\n",
i, ret); i, ret);
......
...@@ -476,7 +476,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev) ...@@ -476,7 +476,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev)
} }
/* create codec instances */ /* create codec instances */
hda_codec_probe_bus(sdev); hda_codec_probe_bus(sdev, hda_codec_use_common_hdmi);
hda_codec_i915_put(sdev); hda_codec_i915_put(sdev);
......
...@@ -575,7 +575,8 @@ void sof_hda_bus_init(struct hdac_bus *bus, struct device *dev); ...@@ -575,7 +575,8 @@ void sof_hda_bus_init(struct hdac_bus *bus, struct device *dev);
/* /*
* HDA Codec operations. * HDA Codec operations.
*/ */
int hda_codec_probe_bus(struct snd_sof_dev *sdev); int hda_codec_probe_bus(struct snd_sof_dev *sdev,
bool hda_codec_use_common_hdmi);
void hda_codec_jack_wake_enable(struct snd_sof_dev *sdev); void hda_codec_jack_wake_enable(struct snd_sof_dev *sdev);
void hda_codec_jack_check(struct snd_sof_dev *sdev); void hda_codec_jack_check(struct snd_sof_dev *sdev);
......
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