[PATCH 05/20] ASoC: SOF: Intel: hda: report SSP link mask to machine driver
Cezary Rojewski
cezary.rojewski at intel.com
Wed Mar 9 17:59:17 CET 2022
On 2022-03-08 8:25 PM, Pierre-Louis Bossart wrote:
> For devices designed for Windows, the SSP information should be listed
> in the NHLT, and when present can be used to set quirks automatically
> in the machine driver.
>
> The NHLT information exposes BT and analog audio connections
> separately, for now we are only interested in the analog audio parts.
>
> The use of dev_info() for the SSP mask is intentional so that we can
> immediately flag devices with an ES8336 codec. Since NHLT is not used
> for recent Chromebooks these messages should be rare.
...
> +static int check_nhlt_ssp_mask(struct snd_sof_dev *sdev)
> +{
> + struct nhlt_acpi_table *nhlt;
> + int ssp_mask = 0;
> +
> + nhlt = intel_nhlt_init(sdev->dev);
> + if (!nhlt)
> + return ssp_mask;
> +
> + if (intel_nhlt_has_endpoint_type(nhlt, NHLT_LINK_SSP)) {
> + ssp_mask = intel_nhlt_ssp_endpoint_mask(nhlt, NHLT_DEVICE_I2S);
> + if (ssp_mask)
> + dev_info(sdev->dev, "NHLT_DEVICE_I2S detected, ssp_mask %#x\n", ssp_mask);
> + }
> + intel_nhlt_free(nhlt);
NHLT "toggling" found in this function looks weird. Why not cache NHLT
pointer i.e.: get it once and put when driver is no longer required?
Initializing and freeing NHLT (AKA get/put ACPI table) every time a
request is made does not look like an optimal solution.
> + return ssp_mask;
> +}
> +
More information about the Alsa-devel
mailing list