Jelajahi Sumber

ACPI / hotplug: Add .fixup() callback to struct acpi_hotplug_context

In order for the ACPI dock station code to be able to use the
callbacks pointed to by the ACPI device objects' hotplug contexts
add a .fixup() callback pointer to struct acpi_hotplug_context.
That callback will be useful to handle PCI devices located in
dock stations.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Rafael J. Wysocki 11 tahun lalu
induk
melakukan
59b42fa01f
2 mengubah file dengan 5 tambahan dan 2 penghapusan
  1. 1 1
      drivers/pci/hotplug/acpiphp_glue.c
  2. 4 1
      include/acpi/acpi_bus.h

+ 1 - 1
drivers/pci/hotplug/acpiphp_glue.c

@@ -80,7 +80,7 @@ static struct acpiphp_context *acpiphp_init_context(struct acpi_device *adev)
 		return NULL;
 
 	context->refcount = 1;
-	acpi_set_hp_context(adev, &context->hp, acpiphp_hotplug_event);
+	acpi_set_hp_context(adev, &context->hp, acpiphp_hotplug_event, NULL);
 	return context;
 }
 

+ 4 - 1
include/acpi/acpi_bus.h

@@ -144,6 +144,7 @@ struct acpi_scan_handler {
 struct acpi_hotplug_context {
 	struct acpi_device *self;
 	int (*event)(struct acpi_device *, u32);
+	void (*fixup)(struct acpi_device *);
 };
 
 /*
@@ -366,10 +367,12 @@ static inline void acpi_set_device_status(struct acpi_device *adev, u32 sta)
 
 static inline void acpi_set_hp_context(struct acpi_device *adev,
 				       struct acpi_hotplug_context *hp,
-				       int (*event)(struct acpi_device *, u32))
+				       int (*event)(struct acpi_device *, u32),
+				       void (*fixup)(struct acpi_device *))
 {
 	hp->self = adev;
 	hp->event = event;
+	hp->fixup = fixup;
 	adev->hp = hp;
 }