diff options
| author | Alex Williamson <alex.williamson@redhat.com> | 2013-08-08 16:09:31 -0400 |
|---|---|---|
| committer | Bjorn Helgaas <bhelgaas@google.com> | 2013-08-14 16:55:04 -0400 |
| commit | 5c32b35b004f5ef70dcf62bbc42b8bed1e50b471 (patch) | |
| tree | b9d3e4959d856b639072364025b9a856de593fc1 | |
| parent | 64e8674fbe6bc848333a9b7e19f8cc019dde9eab (diff) | |
PCI: Add hotplug_slot_ops.reset_slot()
This optional callback allows hotplug controllers to perform slot
specific resets. These may be necessary in cases where a normal
secondary bus reset can interact with controller logic and expose
spurious hotplugs.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
| -rw-r--r-- | include/linux/pci_hotplug.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h index 8db71dcd6337..bd32109e607e 100644 --- a/include/linux/pci_hotplug.h +++ b/include/linux/pci_hotplug.h | |||
| @@ -63,6 +63,9 @@ enum pcie_link_width { | |||
| 63 | * @get_adapter_status: Called to get see if an adapter is present in the slot or not. | 63 | * @get_adapter_status: Called to get see if an adapter is present in the slot or not. |
| 64 | * If this field is NULL, the value passed in the struct hotplug_slot_info | 64 | * If this field is NULL, the value passed in the struct hotplug_slot_info |
| 65 | * will be used when this value is requested by a user. | 65 | * will be used when this value is requested by a user. |
| 66 | * @reset_slot: Optional interface to allow override of a bus reset for the | ||
| 67 | * slot for cases where a secondary bus reset can result in spurious | ||
| 68 | * hotplug events or where a slot can be reset independent of the bus. | ||
| 66 | * | 69 | * |
| 67 | * The table of function pointers that is passed to the hotplug pci core by a | 70 | * The table of function pointers that is passed to the hotplug pci core by a |
| 68 | * hotplug pci driver. These functions are called by the hotplug pci core when | 71 | * hotplug pci driver. These functions are called by the hotplug pci core when |
| @@ -80,6 +83,7 @@ struct hotplug_slot_ops { | |||
| 80 | int (*get_attention_status) (struct hotplug_slot *slot, u8 *value); | 83 | int (*get_attention_status) (struct hotplug_slot *slot, u8 *value); |
| 81 | int (*get_latch_status) (struct hotplug_slot *slot, u8 *value); | 84 | int (*get_latch_status) (struct hotplug_slot *slot, u8 *value); |
| 82 | int (*get_adapter_status) (struct hotplug_slot *slot, u8 *value); | 85 | int (*get_adapter_status) (struct hotplug_slot *slot, u8 *value); |
| 86 | int (*reset_slot) (struct hotplug_slot *slot, int probe); | ||
| 83 | }; | 87 | }; |
| 84 | 88 | ||
| 85 | /** | 89 | /** |
