Skip to content

Commit

Permalink
ASoC: Intel: Skylake: add error logs on probe, remove dependency on NHLT
Browse files Browse the repository at this point in the history
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: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Pierre-Louis Bossart authored and Mark Brown committed Dec 13, 2018
1 parent 7f981bd commit f231c34
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 12 deletions.
3 changes: 3 additions & 0 deletions sound/soc/intel/skylake/skl-nhlt.c
Original file line number Diff line number Diff line change
Expand Up @@ -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++) {
Expand Down
41 changes: 29 additions & 12 deletions sound/soc/intel/skylake/skl.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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)
goto out_nhlt_free;
err = skl_nhlt_create_sysfs(skl);
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);
skl_nhlt_update_topology_bin(skl);

/* create device for dsp clk */
err = skl_clock_device_register(skl);
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);

/* create device for dsp clk */
err = skl_clock_device_register(skl);
if (err < 0)
goto out_clk_free;

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) {
Expand All @@ -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);

Expand Down

0 comments on commit f231c34

Please sign in to comment.