lkml.org 
[lkml]   [2021]   [Oct]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v2 1/3] ASoC: soc-acpi: add comp_ids field for machine driver matching
    From
    Date
    On 2021-10-07 3:35 PM, Brent Lu wrote:

    ...

    >
    > +static bool snd_soc_acpi_id_present(struct snd_soc_acpi_mach *machine)
    > +{
    > + struct snd_soc_acpi_codecs *comp_ids = machine->comp_ids;
    > + int i;
    > +
    > + if (machine->id[0]) {
    > + if (acpi_dev_present(machine->id, NULL, -1))
    > + return true;
    > + }
    > +
    > + if (comp_ids) {
    > + for (i = 0; i < comp_ids->num_codecs; i++) {
    > + if (acpi_dev_present(comp_ids->codecs[i], NULL, -1))
    > + return true;
    > + }
    > + }
    > +
    > + return false;
    > +}

    In cover letter you mention:
    "- can use 'comp_ids' field alone to enumerate driver"

    which leads me to an opinion that field 'id' should be removed,
    entirely. With 'comp_ids' added, 'id' is basically rendered
    optional/redundant.

    > +
    > 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.

    > + if (snd_soc_acpi_id_present(mach)) {
    > if (mach->machine_quirk) {
    > mach_alt = mach->machine_quirk(mach);
    > if (!mach_alt)
    >

    \
     
     \ /
      Last update: 2021-10-07 19:09    [W:4.303 / U:0.612 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site