ASoC: SOF: intel: hda: Modify signature for hda_codec_probe_bus()
authorRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Wed, 4 Dec 2019 21:15:52 +0000 (15:15 -0600)
committerMark Brown <broonie@kernel.org>
Mon, 9 Dec 2019 18:39:16 +0000 (18:39 +0000)
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: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20191204211556.12671-10-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/intel/hda-codec.c
sound/soc/sof/intel/hda.c
sound/soc/sof/intel/hda.h

index 827f84a..65761e0 100644 (file)
@@ -80,12 +80,11 @@ EXPORT_SYMBOL(hda_codec_jack_wake_enable);
 EXPORT_SYMBOL(hda_codec_jack_check);
 
 /* 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)
        struct hdac_hda_priv *hda_priv;
-       struct snd_soc_acpi_mach_params *mach_params = NULL;
-       struct snd_sof_pdata *pdata = sdev->pdata;
 #endif
        struct hda_bus *hbus = sof_to_hbus(sdev);
        struct hdac_device *hdev;
@@ -115,10 +114,6 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address)
        if (ret < 0)
                return ret;
 
-       if (pdata->machine)
-               mach_params = (struct snd_soc_acpi_mach_params *)
-                       &pdata->machine->mach_params;
-
        if ((resp & 0xFFFF0000) == IDISP_VID_INTEL)
                hda_priv->need_display_power = true;
 
@@ -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
         * 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) {
                hdev->type = HDA_DEV_LEGACY;
                hda_codec_load_module(&hda_priv->codec);
@@ -145,7 +140,8 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address)
 }
 
 /* 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);
        int i, ret;
@@ -156,7 +152,7 @@ int hda_codec_probe_bus(struct snd_sof_dev *sdev)
                if (!(bus->codec_mask & (1 << i)))
                        continue;
 
-               ret = hda_codec_probe(sdev, i);
+               ret = hda_codec_probe(sdev, i, hda_codec_use_common_hdmi);
                if (ret < 0) {
                        dev_err(bus->dev, "error: codec #%d probe error, ret: %d\n",
                                i, ret);
index 98512a3..bfdb817 100644 (file)
@@ -476,7 +476,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev)
        }
 
        /* create codec instances */
-       hda_codec_probe_bus(sdev);
+       hda_codec_probe_bus(sdev, hda_codec_use_common_hdmi);
 
        hda_codec_i915_put(sdev);
 
index 63df888..4a6f765 100644 (file)
@@ -575,7 +575,8 @@ void sof_hda_bus_init(struct hdac_bus *bus, struct device *dev);
 /*
  * 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_check(struct snd_sof_dev *sdev);