diff --git a/sound/hda/intel-nhlt.c b/sound/hda/intel-nhlt.c index 128476aa7c61..4063da378283 100644 --- a/sound/hda/intel-nhlt.c +++ b/sound/hda/intel-nhlt.c @@ -130,6 +130,28 @@ bool intel_nhlt_has_endpoint_type(struct nhlt_acpi_table *nhlt, u8 link_type) } EXPORT_SYMBOL(intel_nhlt_has_endpoint_type); +int intel_nhlt_ssp_endpoint_mask(struct nhlt_acpi_table *nhlt, u8 device_type) +{ + struct nhlt_endpoint *epnt; + int ssp_mask = 0; + int i;
+ if (!nhlt || (device_type != NHLT_DEVICE_BT && device_type != NHLT_DEVICE_I2S))
The '!nhlt' safety is superfluous in my opinion. Kernel core API e.g.: device one assumes caller is sane in basically all cases.
Agree. I will remove this test in a follow-up optimization patch. the same pattern is used for existing dmic stuff so it's better to remove it in one shot.
+ return 0;
+ epnt = (struct nhlt_endpoint *)nhlt->desc; + for (i = 0; i < nhlt->endpoint_count; i++) { + if (epnt->linktype == NHLT_LINK_SSP && epnt->device_type == device_type) { + /* for SSP the virtual bus id is the SSP port */ + ssp_mask |= BIT(epnt->virtual_bus_id); + } + epnt = (struct nhlt_endpoint *)((u8 *)epnt + epnt->length); + }
+ return ssp_mask; +} +EXPORT_SYMBOL(intel_nhlt_ssp_endpoint_mask);
Since this is a *public* API - not direct part of any driver, really - providing kernel-doc is recommended.
there isn't a single line of kernel-doc for the entire NHLT stuff. and ahem, that includes recent additions from your team ;-)
bool intel_nhlt_has_endpoint_type(struct nhlt_acpi_table *nhlt, u8 link_type);
So agree, but let's do this in a follow-up patchset. the goal of this patchset is to help community users that don't see an audio card created, not to make NHLT support super shiny.