>> struct snd_soc_acpi_mach * >> snd_soc_acpi_find_machine(struct snd_soc_acpi_mach *machines) >> { >> struct snd_soc_acpi_mach *mach; >> struct snd_soc_acpi_mach *mach_alt; >> - for (mach = machines; mach->id[0]; mach++) { >> - if (acpi_dev_present(mach->id, NULL, -1)) { >> + for (mach = machines; mach->id[0] || mach->comp_ids; mach++) { > > Such loops are hard to maintain i.e. 'comp_ids' acts here like a flex > array that follows 'id'. Removal of 'id' field and streamlining code to > only use 'comp_ids' should make this loop more intuitive. Changing all the tables adds more noise IMHO. There are 15 files and about 100 ids. This patch provides an opportunity to reduce duplication, that's good, but let's leave all the existing unique table entries alone, shall we?