@@ -1271,6 +1271,17 @@ static int acpi_fwnode_graph_parse_endpoint(const struct fwnode_handle *fwnode,
return 0;
}
+static void *acpi_fwnode_get_match_data(const struct fwnode_handle *fwnode,
+ const struct device_driver *drv)
+{
+ struct acpi_device *adev = to_acpi_device_node(fwnode);
+
+ if (!adev)
+ return NULL;
+
+ return acpi_get_match_data(adev, drv->acpi_match_table);
+}
+
#define DECLARE_ACPI_FWNODE_OPS(ops) \
const struct fwnode_operations ops = { \
.device_is_available = acpi_fwnode_device_is_available, \
@@ -1289,6 +1300,7 @@ static int acpi_fwnode_graph_parse_endpoint(const struct fwnode_handle *fwnode,
acpi_fwnode_graph_get_remote_endpoint, \
.graph_get_port_parent = acpi_fwnode_get_parent, \
.graph_parse_endpoint = acpi_fwnode_graph_parse_endpoint, \
+ .get_match_data = acpi_fwnode_get_match_data, \
}; \
EXPORT_SYMBOL_GPL(ops)
Now that we have a get_match_data() callback as part of the firmware node, implement the ACPI specific piece for it. Signed-off-by: Sinan Kaya <okaya@codeaurora.org> --- drivers/acpi/property.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)