Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

ASoC: Intel: Skylake: add error logs on probe, remove dependency on NHLT



Add error logs to make probe debug easier.

Also remove hard-coded dependency on NHLT. NHLT literally stands for
NonHdaudioLinkTable and is only required for SSP/DMIC interfaces.

Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 7f981bdc
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -180,6 +180,9 @@ int skl_get_dmic_geo(struct skl *skl)
	unsigned int dmic_geo = 0;
	u8 j;

	if (!nhlt)
		return 0;

	epnt = (struct nhlt_endpoint *)nhlt->desc;

	for (j = 0; j < nhlt->endpoint_count; j++) {
+29 −12
Original line number Diff line number Diff line
@@ -1010,8 +1010,10 @@ static int skl_probe(struct pci_dev *pci,
	bus = skl_to_bus(skl);

	err = skl_first_init(bus);
	if (err < 0)
	if (err < 0) {
		dev_err(bus->dev, "skl_first_init failed with err: %d\n", err);
		goto out_free;
	}

	skl->pci_id = pci->device;

@@ -1020,26 +1022,39 @@ static int skl_probe(struct pci_dev *pci,
	skl->nhlt = skl_nhlt_init(bus->dev);

	if (skl->nhlt == NULL) {
#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC)
		dev_err(bus->dev, "no nhlt info found\n");
		err = -ENODEV;
		goto out_free;
	}
#else
		dev_warn(bus->dev, "no nhlt info found, continuing to try to enable HDaudio codec\n");
#endif
	} else {

		err = skl_nhlt_create_sysfs(skl);
	if (err < 0)
		if (err < 0) {
			dev_err(bus->dev, "skl_nhlt_create_sysfs failed with err: %d\n", err);
			goto out_nhlt_free;
		}

		skl_nhlt_update_topology_bin(skl);

	pci_set_drvdata(skl->pci, bus);

		/* create device for dsp clk */
		err = skl_clock_device_register(skl);
	if (err < 0)
		if (err < 0) {
			dev_err(bus->dev, "skl_clock_device_register failed with err: %d\n", err);
			goto out_clk_free;
		}
	}

	pci_set_drvdata(skl->pci, bus);


	err = skl_find_machine(skl, (void *)pci_id->driver_data);
	if (err < 0)
	if (err < 0) {
		dev_err(bus->dev, "skl_find_machine failed with err: %d\n", err);
		goto out_nhlt_free;
	}

	err = skl_init_dsp(skl);
	if (err < 0) {
@@ -1056,8 +1071,10 @@ static int skl_probe(struct pci_dev *pci,

	/* create device for soc dmic */
	err = skl_dmic_device_register(skl);
	if (err < 0)
	if (err < 0) {
		dev_err(bus->dev, "skl_dmic_device_register failed with err: %d\n", err);
		goto out_dsp_free;
	}

	schedule_work(&skl->probe_work);