[PATCH 5.16 regression fix] ASoC: soc-acpi: Set mach->id field on comp_ids matches

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Thu Nov 18 17:01:29 CET 2021



On 11/18/21 9:30 AM, Hans de Goede wrote:
> Commit dac7cbd55dca ("ASoC: Intel: soc-acpi-byt: shrink tables using
> compatible IDs") and commit 959ae8215a9e ("ASoC: Intel: soc-acpi-cht:
> shrink tables using compatible IDs") simplified the match tables in
> soc-acpi-intel-byt-match.c and soc-acpi-intel-cht-match.c by merging
> identical entries using the new .comp_ids snd_soc_acpi_mach field to
> point a single entry to multiple ACPI HIDs and clearing the previously
> unique per entry .id field.
> 
> But various machine drivers from sound/soc/intel/boards rely on mach->id
> in one or more ways, e.g. some drivers contain the following snippets:
> 
> 	adev = acpi_dev_get_first_match_dev(mach->id, NULL, -1);
> 
> 	pkg_found = snd_soc_acpi_find_package_from_hid(mach->id, ...
> 
> 	if (!strncmp(snd_soc_cards[i].codec_id, mach->id, 8)) { ...
> 
> All of which are broken by the match table shrinking.
> 
> Make the snd_soc_acpi_mach.id field non const (the storage for the tables
> already is non const) and on a comps_ids match copy the matching HID to
> the id field to fix this.
> 
> Fixes: dac7cbd55dca ("ASoC: Intel: soc-acpi-byt: shrink tables using compatible IDs")
> Fixes: 959ae8215a9e ("ASoC: Intel: soc-acpi-cht: shrink tables using compatible IDs")
> Suggested-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> Cc: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> Cc: Brent Lu <brent.lu at intel.com>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>

Thanks Hans for reporting and fixing this, much appreciated.

Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>


More information about the Alsa-devel mailing list