Unverified Commit ec8a15d3 authored by Pierre-Louis Bossart's avatar Pierre-Louis Bossart Committed by Mark Brown
Browse files

ASoC: Intel: catpt: add dynamic selection of DSP driver

parent 8643e85a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ config SND_SOC_INTEL_CATPT
	depends on DMADEVICES && SND_DMA_SGBUF
	select DW_DMAC_CORE
	select SND_SOC_ACPI_INTEL_MATCH
	select SND_INTEL_DSP_CONFIG
	help
	  Enable support for Intel(R) Haswell and Broadwell platforms
	  with I2S codec present. This is a recommended option.
+12 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <linux/pci.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <sound/intel-dsp-config.h>
#include <sound/soc.h>
#include <sound/soc-acpi.h>
#include <sound/soc-acpi-intel-match.h>
@@ -239,9 +240,20 @@ static int catpt_acpi_probe(struct platform_device *pdev)
	const struct catpt_spec *spec;
	struct catpt_dev *cdev;
	struct device *dev = &pdev->dev;
	const struct acpi_device_id *id;
	struct resource *res;
	int ret;

	id = acpi_match_device(dev->driver->acpi_match_table, dev);
	if (!id)
		return -ENODEV;

	ret = snd_intel_acpi_dsp_driver_probe(dev, id->id);
	if (ret != SND_INTEL_DSP_DRIVER_ANY && ret != SND_INTEL_DSP_DRIVER_SST) {
		dev_dbg(dev, "CATPT ACPI driver not selected, aborting probe\n");
		return -ENODEV;
	}

	spec = device_get_match_data(dev);
	if (!spec)
		return -ENODEV;