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@xxxxxxxxxxxxxxx> > Cc: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx> > Cc: Brent Lu <brent.lu@xxxxxxxxx> > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Thanks Hans for reporting and fixing this, much appreciated. Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>