On Thu, Aug 25, 2022 at 6:41 PM Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > > In case we have an ACPI driver, check its ID table for matching, > This allows to use some generic device property APIs in such > drivers. No new provisions for ACPI drivers, please. > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > --- > drivers/acpi/bus.c | 20 ++++++++++++++++++-- > 1 file changed, 18 insertions(+), 2 deletions(-) > > diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c > index 3c0f2d050d47..17c98e826bde 100644 > --- a/drivers/acpi/bus.c > +++ b/drivers/acpi/bus.c > @@ -1049,14 +1049,30 @@ static const void *acpi_of_device_get_match_data(const struct device *dev) > return match->data; > } > > +static const struct acpi_device_id *acpi_device_get_ids(const struct device *dev) > +{ > + if (dev->driver->acpi_match_table) > + return dev->driver->acpi_match_table; > + > + if (dev_is_acpi(dev)) { > + struct acpi_driver *drv = to_acpi_driver(dev->driver); > + > + if (drv->ids) > + return drv->ids; > + } > + > + return NULL; > +} > + > const void *acpi_device_get_match_data(const struct device *dev) > { > + const struct acpi_device_id *ids = acpi_device_get_ids(dev); > const struct acpi_device_id *match; > > - if (!dev->driver->acpi_match_table) > + if (!ids) > return acpi_of_device_get_match_data(dev); > > - match = acpi_match_device(dev->driver->acpi_match_table, dev); > + match = acpi_match_device(ids, dev); > if (!match) > return NULL; > > -- > 2.35.1 >