diff options
Diffstat (limited to 'drivers/pci/hotplug/shpchp.h')
-rw-r--r-- | drivers/pci/hotplug/shpchp.h | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/pci/hotplug/shpchp.h b/drivers/pci/hotplug/shpchp.h index 6e1fb1bdc243..87db07cfebdf 100644 --- a/drivers/pci/hotplug/shpchp.h +++ b/drivers/pci/hotplug/shpchp.h | |||
@@ -46,6 +46,7 @@ | |||
46 | extern int shpchp_poll_mode; | 46 | extern int shpchp_poll_mode; |
47 | extern int shpchp_poll_time; | 47 | extern int shpchp_poll_time; |
48 | extern int shpchp_debug; | 48 | extern int shpchp_debug; |
49 | extern struct workqueue_struct *shpchp_wq; | ||
49 | 50 | ||
50 | /*#define dbg(format, arg...) do { if (shpchp_debug) printk(KERN_DEBUG "%s: " format, MY_NAME , ## arg); } while (0)*/ | 51 | /*#define dbg(format, arg...) do { if (shpchp_debug) printk(KERN_DEBUG "%s: " format, MY_NAME , ## arg); } while (0)*/ |
51 | #define dbg(format, arg...) do { if (shpchp_debug) printk("%s: " format, MY_NAME , ## arg); } while (0) | 52 | #define dbg(format, arg...) do { if (shpchp_debug) printk("%s: " format, MY_NAME , ## arg); } while (0) |
@@ -70,11 +71,13 @@ struct slot { | |||
70 | struct hotplug_slot *hotplug_slot; | 71 | struct hotplug_slot *hotplug_slot; |
71 | struct list_head slot_list; | 72 | struct list_head slot_list; |
72 | char name[SLOT_NAME_SIZE]; | 73 | char name[SLOT_NAME_SIZE]; |
74 | struct work_struct work; /* work for button event */ | ||
73 | }; | 75 | }; |
74 | 76 | ||
75 | struct event_info { | 77 | struct event_info { |
76 | u32 event_type; | 78 | u32 event_type; |
77 | u8 hp_slot; | 79 | struct slot *p_slot; |
80 | struct work_struct work; | ||
78 | }; | 81 | }; |
79 | 82 | ||
80 | struct controller { | 83 | struct controller { |
@@ -85,11 +88,9 @@ struct controller { | |||
85 | int num_slots; /* Number of slots on ctlr */ | 88 | int num_slots; /* Number of slots on ctlr */ |
86 | int slot_num_inc; /* 1 or -1 */ | 89 | int slot_num_inc; /* 1 or -1 */ |
87 | struct pci_dev *pci_dev; | 90 | struct pci_dev *pci_dev; |
88 | struct event_info event_queue[10]; | ||
89 | struct list_head slot_list; | 91 | struct list_head slot_list; |
90 | struct hpc_ops *hpc_ops; | 92 | struct hpc_ops *hpc_ops; |
91 | wait_queue_head_t queue; /* sleep & wake process */ | 93 | wait_queue_head_t queue; /* sleep & wake process */ |
92 | u8 next_event; | ||
93 | u8 bus; | 94 | u8 bus; |
94 | u8 device; | 95 | u8 device; |
95 | u8 function; | 96 | u8 function; |
@@ -180,9 +181,6 @@ struct hotplug_params { | |||
180 | /* sysfs functions for the hotplug controller info */ | 181 | /* sysfs functions for the hotplug controller info */ |
181 | extern void shpchp_create_ctrl_files (struct controller *ctrl); | 182 | extern void shpchp_create_ctrl_files (struct controller *ctrl); |
182 | 183 | ||
183 | /* controller functions */ | ||
184 | extern int shpchp_event_start_thread(void); | ||
185 | extern void shpchp_event_stop_thread(void); | ||
186 | extern int shpchp_enable_slot(struct slot *slot); | 184 | extern int shpchp_enable_slot(struct slot *slot); |
187 | extern int shpchp_disable_slot(struct slot *slot); | 185 | extern int shpchp_disable_slot(struct slot *slot); |
188 | 186 | ||
@@ -201,7 +199,8 @@ extern void get_hp_params_from_firmware(struct pci_dev *dev, | |||
201 | extern int shpchprm_get_physical_slot_number(struct controller *ctrl, | 199 | extern int shpchprm_get_physical_slot_number(struct controller *ctrl, |
202 | u32 *sun, u8 busnum, u8 devnum); | 200 | u32 *sun, u8 busnum, u8 devnum); |
203 | extern void shpchp_remove_ctrl_files(struct controller *ctrl); | 201 | extern void shpchp_remove_ctrl_files(struct controller *ctrl); |
204 | 202 | extern void cleanup_slots(struct controller *ctrl); | |
203 | extern void shpchp_pushbutton_thread(void *data); | ||
205 | 204 | ||
206 | /* Global variables */ | 205 | /* Global variables */ |
207 | extern struct list_head shpchp_ctrl_list; | 206 | extern struct list_head shpchp_ctrl_list; |