Messages in this thread | | | From | Curtis Malainey <> | Date | Wed, 6 Oct 2021 12:21:51 -0700 | Subject | Re: [PATCH 3/3] ASoC: Intel: sof_rt5682: use id_alt to enumerate rt5682s |
| |
On Wed, Oct 6, 2021 at 11:43 AM Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> wrote: > > > > On 10/6/21 1:34 PM, Curtis Malainey wrote: > >> }; > >> > >> +static struct snd_soc_acpi_codecs adl_rt5682s_hp = { > >> + .num_codecs = 1, > >> + .codecs = {"RTL5682"} > >> +}; > >> + > >> struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = { > >> { > >> .id = "10EC5682", > >> + .id_alt = &adl_rt5682s_hp, > >> .drv_name = "adl_mx98373_rt5682", > >> .machine_quirk = snd_soc_acpi_codec_list, > >> .quirk_data = &adl_max98373_amp, > >> @@ -296,6 +302,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = { > >> }, > >> { > >> .id = "10EC5682", > >> + .id_alt = &adl_rt5682s_hp, > >> .drv_name = "adl_mx98357_rt5682", > >> .machine_quirk = snd_soc_acpi_codec_list, > >> .quirk_data = &adl_max98357a_amp, > >> @@ -304,6 +311,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = { > >> }, > >> { > >> .id = "10EC5682", > >> + .id_alt = &adl_rt5682s_hp, > >> .drv_name = "adl_mx98360_rt5682", > >> .machine_quirk = snd_soc_acpi_codec_list, > >> .quirk_data = &adl_max98360a_amp, > > > > Is there any way we can collapse this and the primary id into a single > > list to avoid having 2 locations to track for the IDs? > > I was thinking about that too, but in that case we would want to have a > list of strings, rather than the address of a structure which adds one > layer of indirection. > > Something like > > .id = { "10EC5682", "RTL5682" } > > and the .num_codecs removed and some termination added. >
I don't see an issue with still using a struct since we are using the same list across multiple machines, but this makes me wonder if maybe we should refactor this into another layer, having the ids at a top structure and then the speaker matches a layer down. E.g.
struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = { { .drv_name = "adl_mx98373_rt5682", .machine_quirk = snd_soc_acpi_codec_list, .quirk_data = &adl_max98373_amp, }, { .drv_name = "adl_mx98357_rt5682", .machine_quirk = snd_soc_acpi_codec_list, .quirk_data = &adl_max98357a_amp, }, { .drv_name = "adl_mx98360_rt5682", .machine_quirk = snd_soc_acpi_codec_list, .quirk_data = &adl_max98360a_amp, } }
struct machine_driver adl_rt5682_driver_match { .id = { "10EC5682", "RTL5682" } .instances = &adl_rt5682_machines }
| |