ALSA: hda: intel-nhlt: Print errors in intel_nhlt_ssp_device_type()

Do not fail silently when the intel_nhlt_ssp_device_type() fails as it can
be for two reasons:
The NHLT table is missing or the SSP instance is missing from the table.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://patch.msgid.link/20250508181446.25323-1-peter.ujfalusi@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Peter Ujfalusi 2025-05-08 21:14:46 +03:00 committed by Takashi Iwai
parent 7f3ef3ab81
commit 2a6794a9de

View File

@ -350,8 +350,11 @@ int intel_nhlt_ssp_device_type(struct device *dev, struct nhlt_acpi_table *nhlt,
struct nhlt_endpoint *epnt;
int i;
if (!nhlt)
if (!nhlt) {
dev_err(dev, "%s: NHLT table is missing (query for SSP%d)\n",
__func__, virtual_bus_id);
return -EINVAL;
}
epnt = (struct nhlt_endpoint *)nhlt->desc;
for (i = 0; i < nhlt->endpoint_count; i++) {
@ -366,6 +369,20 @@ int intel_nhlt_ssp_device_type(struct device *dev, struct nhlt_acpi_table *nhlt,
epnt = (struct nhlt_endpoint *)((u8 *)epnt + epnt->length);
}
dev_err(dev, "%s: No match for SSP%d in NHLT table\n", __func__,
virtual_bus_id);
dev_dbg(dev, "Available endpoints:\n");
epnt = (struct nhlt_endpoint *)nhlt->desc;
for (i = 0; i < nhlt->endpoint_count; i++) {
dev_dbg(dev,
"%d: link_type: %d, vbus_id: %d, dir: %d, dev_type: %d\n",
i, epnt->linktype, epnt->virtual_bus_id,
epnt->direction, epnt->device_type);
epnt = (struct nhlt_endpoint *)((u8 *)epnt + epnt->length);
}
return -EINVAL;
}
EXPORT_SYMBOL(intel_nhlt_ssp_device_type);