Unverified Commit 00deadb5 authored by Rakesh Ughreja's avatar Rakesh Ughreja Committed by Mark Brown
Browse files

ASoC: Intel: Skylake: use hda_bus instead of hdac_bus



Use hda_bus instead of hdac_bus in the SKL ASoC platform driver to enable
reuse of legacy HDA codec drivers.

Signed-off-by: default avatarRakesh Ughreja <rakesh.a.ughreja@intel.com>
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 3d178713
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -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;
+7 −3
Original line number Diff line number Diff line
@@ -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 {