[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