[alsa-devel] [RFC v4 4/9] ASoC: Intel: Skylake: use hda_bus instead of hdac_bus
Rakesh Ughreja
rakesh.a.ughreja at intel.com
Fri Dec 22 13:52:47 CET 2017
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 at intel.com>
---
sound/soc/intel/skylake/skl.c | 13 ++++++++++++-
sound/soc/intel/skylake/skl.h | 10 +++++++---
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
index b99c1d8..ecfe0d3 100644
--- a/sound/soc/intel/skylake/skl.c
+++ b/sound/soc/intel/skylake/skl.c
@@ -35,6 +35,7 @@
#include "skl.h"
#include "skl-sst-dsp.h"
#include "skl-sst-ipc.h"
+#include "../../../pci/hda/hda_codec.h"
static struct skl_machine_pdata skl_dmic_data;
@@ -624,7 +625,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);
return snd_hdac_ext_bus_device_init(bus, addr);
}
@@ -751,6 +752,7 @@ static int skl_create(struct pci_dev *pci,
{
struct skl *skl;
struct hdac_bus *bus;
+ struct hda_bus *hbus;
int err;
@@ -766,6 +768,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);
bus->use_posbuf = 1;
@@ -773,6 +776,14 @@ static int skl_create(struct pci_dev *pci,
INIT_WORK(&skl->probe_work, skl_probe_work);
bus->bdl_pos_adj = 0;
+ /*
+ * TODO: other parameters can be taken the way it is taken by
+ * legacy HDA driver
+ */
+ mutex_init(&hbus->prepare_mutex);
+ hbus->pci = pci;
+ hbus->mixer_assigned = -1;
+
*rskl = skl;
return 0;
diff --git a/sound/soc/intel/skylake/skl.h b/sound/soc/intel/skylake/skl.h
index f3a48a4..777508f 100644
--- a/sound/soc/intel/skylake/skl.h
+++ b/sound/soc/intel/skylake/skl.h
@@ -26,6 +26,7 @@
#include <sound/soc.h>
#include "skl-nhlt.h"
#include "skl-ssp-clk.h"
+#include "../../../pci/hda/hda_codec.h"
#define SKL_SUSPEND_DELAY 2000
@@ -63,7 +64,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 */
@@ -96,8 +97,11 @@ struct skl {
struct skl_fw_config cfg;
};
-#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 {
--
2.7.4
More information about the Alsa-devel
mailing list