ASoC: Intel: Skylake: use hda_bus instead of hdac_bus
authorRakesh Ughreja <rakesh.a.ughreja@intel.com>
Wed, 22 Aug 2018 20:25:02 +0000 (15:25 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 28 Aug 2018 19:18:12 +0000 (20:18 +0100)
Use hda_bus instead of hdac_bus in the SKL ASoC platform driver to enable
reuse of legacy HDA codec drivers.

Signed-off-by: Rakesh Ughreja <rakesh.a.ughreja@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/skylake/skl.c
sound/soc/intel/skylake/skl.h

index 3b836125d1de7b575d40f5831a1cc14d35549a88..5f281d443a5332546629ed267cd4e70d2468538b 100644 (file)
@@ -33,6 +33,7 @@
 #include <sound/hda_register.h>
 #include <sound/hdaudio.h>
 #include <sound/hda_i915.h>
+#include <sound/hda_codec.h>
 #include "skl.h"
 #include "skl-sst-dsp.h"
 #include "skl-sst-ipc.h"
@@ -673,7 +674,7 @@ static int probe_codec(struct hdac_bus *bus, int addr)
        mutex_unlock(&bus->cmd_mutex);
        if (res == -1)
                return -EIO;
-       dev_dbg(bus->dev, "codec #%d probed OK\n", addr);
+       dev_dbg(bus->dev, "codec #%d probed OK: %x\n", addr, res);
 
        hdev = devm_kzalloc(&skl->pci->dev, sizeof(*hdev), GFP_KERNEL);
        if (!hdev)
@@ -816,7 +817,7 @@ static int skl_create(struct pci_dev *pci,
 {
        struct skl *skl;
        struct hdac_bus *bus;
-
+       struct hda_bus *hbus;
        int err;
 
        *rskl = NULL;
@@ -831,6 +832,7 @@ static int skl_create(struct pci_dev *pci,
                return -ENOMEM;
        }
 
+       hbus = skl_to_hbus(skl);
        bus = skl_to_bus(skl);
        snd_hdac_ext_bus_init(bus, &pci->dev, &bus_core_ops, io_ops, NULL);
        bus->use_posbuf = 1;
@@ -838,6 +840,11 @@ static int skl_create(struct pci_dev *pci,
        INIT_WORK(&skl->probe_work, skl_probe_work);
        bus->bdl_pos_adj = 0;
 
+       mutex_init(&hbus->prepare_mutex);
+       hbus->pci = pci;
+       hbus->mixer_assigned = -1;
+       hbus->modelname = "sklbus";
+
        *rskl = skl;
 
        return 0;
index 4105a9371b6425e90d1fa6cac636e7b6b5a64c00..8d48cd7c56c8358497cb1baef7275fe73e7196fc 100644 (file)
@@ -23,6 +23,7 @@
 
 #include <sound/hda_register.h>
 #include <sound/hdaudio_ext.h>
+#include <sound/hda_codec.h>
 #include <sound/soc.h>
 #include "skl-nhlt.h"
 #include "skl-ssp-clk.h"
@@ -71,7 +72,7 @@ struct skl_fw_config {
 };
 
 struct skl {
-       struct hdac_bus hbus;
+       struct hda_bus hbus;
        struct pci_dev *pci;
 
        unsigned int init_done:1; /* delayed init status */
@@ -105,8 +106,11 @@ struct skl {
        struct snd_soc_acpi_mach *mach;
 };
 
-#define skl_to_bus(s)  (&(s)->hbus)
-#define bus_to_skl(bus) container_of(bus, struct skl, hbus)
+#define skl_to_bus(s)  (&(s)->hbus.core)
+#define bus_to_skl(bus) container_of(bus, struct skl, hbus.core)
+
+#define skl_to_hbus(s) (&(s)->hbus)
+#define hbus_to_skl(hbus) container_of((hbus), struct skl, (hbus))
 
 /* to pass dai dma data */
 struct skl_dma_params {