Re: [PATCH 3/5]add .match method for ACPI

From: Len Brown
Date: Thu Oct 28 2004 - 01:43:34 EST


Applied,

thanks,
-Len

On Wed, 2004-10-20 at 22:59, Li Shaohua wrote:
> Hi,
> The idea of the patch is from Bruno Ducrot <ducrot@xxxxxxxxxxxx>'s
> ACPI
> video extension patch. Since the video extension patch hasn't been
> merged and the ACPI PNP driver requires it, I attached it here.
>
> Thanks,
> Shaohua
>
> --- 2.6/drivers/acpi/scan.c.stg4 2004-10-18 16:49:57.926042680
> +0800
> +++ 2.6/drivers/acpi/scan.c 2004-10-18 16:57:30.572230000 +0800
> @@ -161,7 +161,7 @@ acpi_bus_get_power_flags (
> return 0;
> }
>
> -static int
> +int
> acpi_match_ids (
> struct acpi_device *device,
> char *ids)
> @@ -314,6 +314,8 @@ acpi_bus_match (
> struct acpi_device *device,
> struct acpi_driver *driver)
> {
> + if (driver && driver->ops.match)
> + return driver->ops.match(device, driver);
> return acpi_match_ids(device, driver->ids);
> }
>
> @@ -495,9 +497,6 @@ acpi_bus_find_driver (
>
> ACPI_FUNCTION_TRACE("acpi_bus_find_driver");
>
> - if (!device->flags.hardware_id &&
> !device->flags.compatible_ids)
> - goto Done;
> -
> spin_lock(&acpi_device_lock);
> list_for_each_safe(node,next,&acpi_bus_drivers) {
> struct acpi_driver * driver = container_of(node,struct
> acpi_driver,node);
> --- 2.6/include/acpi/acpi_bus.h.stg4 2004-10-18 16:50:31.522935176
> +0800
> +++ 2.6/include/acpi/acpi_bus.h 2004-10-18 16:55:11.474376088 +0800
> @@ -104,6 +104,8 @@ typedef int (*acpi_op_suspend) (struct a
> typedef int (*acpi_op_resume) (struct acpi_device *device, int
> state);
> typedef int (*acpi_op_scan) (struct acpi_device *device);
> typedef int (*acpi_op_bind) (struct acpi_device *device);
> +typedef int (*acpi_op_match) (struct acpi_device *device,
> + struct acpi_driver *driver);
>
> struct acpi_device_ops {
> acpi_op_add add;
> @@ -115,6 +117,7 @@ struct acpi_device_ops {
> acpi_op_resume resume;
> acpi_op_scan scan;
> acpi_op_bind bind;
> + acpi_op_match match;
> };
>
> struct acpi_driver {
> @@ -322,6 +325,7 @@ int acpi_bus_receive_event (struct acpi_
> int acpi_bus_register_driver (struct acpi_driver *driver);
> int acpi_bus_unregister_driver (struct acpi_driver *driver);
>
> +int acpi_match_ids (struct acpi_device *device, char *ids);
> int acpi_create_dir(struct acpi_device *);
> void acpi_remove_dir(struct acpi_device *);
>
>
>
>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/