aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/scan.c3
-rw-r--r--include/acpi/acpi_bus.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index df6e4c924b35..e44438f7917b 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -1977,6 +1977,9 @@ static bool acpi_scan_handler_matching(struct acpi_scan_handler *handler,
1977{ 1977{
1978 const struct acpi_device_id *devid; 1978 const struct acpi_device_id *devid;
1979 1979
1980 if (handler->match)
1981 return handler->match(idstr, matchid);
1982
1980 for (devid = handler->ids; devid->id[0]; devid++) 1983 for (devid = handler->ids; devid->id[0]; devid++)
1981 if (!strcmp((char *)devid->id, idstr)) { 1984 if (!strcmp((char *)devid->id, idstr)) {
1982 if (matchid) 1985 if (matchid)
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 7417a16c8d86..c241c7594bbc 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -131,6 +131,7 @@ static inline struct acpi_hotplug_profile *to_acpi_hotplug_profile(
131struct acpi_scan_handler { 131struct acpi_scan_handler {
132 const struct acpi_device_id *ids; 132 const struct acpi_device_id *ids;
133 struct list_head list_node; 133 struct list_head list_node;
134 bool (*match)(char *idstr, const struct acpi_device_id **matchid);
134 int (*attach)(struct acpi_device *dev, const struct acpi_device_id *id); 135 int (*attach)(struct acpi_device *dev, const struct acpi_device_id *id);
135 void (*detach)(struct acpi_device *dev); 136 void (*detach)(struct acpi_device *dev);
136 void (*bind)(struct device *phys_dev); 137 void (*bind)(struct device *phys_dev);