diff options
author | Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> | 2009-09-15 04:30:48 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-09-17 13:06:31 -0400 |
commit | 82a9e79ef132cbf77de58aae35c1a14237f2fcde (patch) | |
tree | 1ca6f0dc69cb7e92df48d4f05b595b032e03e206 /drivers/pci/hotplug | |
parent | 385e24917ed8eeba25dddd8e63bf3fe3d53eafc5 (diff) |
PCI: pciehp: remove hpc_ops
The struct hpc_ops seems a set of hooks to controller specific
routines. But, it is meaningless because no hotplug controller driver
follows this framework.
Acked-by: Alex Chiang <achiang@hp.com>
Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci/hotplug')
-rw-r--r-- | drivers/pci/hotplug/pciehp.h | 42 | ||||
-rw-r--r-- | drivers/pci/hotplug/pciehp_core.c | 26 | ||||
-rw-r--r-- | drivers/pci/hotplug/pciehp_ctrl.c | 75 | ||||
-rw-r--r-- | drivers/pci/hotplug/pciehp_hpc.c | 60 | ||||
-rw-r--r-- | drivers/pci/hotplug/pciehp_pci.c | 2 |
5 files changed, 87 insertions, 118 deletions
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h index b23f8ca03d82..b7054cb885cf 100644 --- a/drivers/pci/hotplug/pciehp.h +++ b/drivers/pci/hotplug/pciehp.h | |||
@@ -75,7 +75,6 @@ struct slot { | |||
75 | u8 state; | 75 | u8 state; |
76 | u32 number; | 76 | u32 number; |
77 | struct controller *ctrl; | 77 | struct controller *ctrl; |
78 | struct hpc_ops *hpc_ops; | ||
79 | struct hotplug_slot *hotplug_slot; | 78 | struct hotplug_slot *hotplug_slot; |
80 | struct delayed_work work; /* work for button event */ | 79 | struct delayed_work work; /* work for button event */ |
81 | struct mutex lock; | 80 | struct mutex lock; |
@@ -91,7 +90,6 @@ struct controller { | |||
91 | struct mutex ctrl_lock; /* controller lock */ | 90 | struct mutex ctrl_lock; /* controller lock */ |
92 | struct pcie_device *pcie; /* PCI Express port service */ | 91 | struct pcie_device *pcie; /* PCI Express port service */ |
93 | struct slot *slot; | 92 | struct slot *slot; |
94 | struct hpc_ops *hpc_ops; | ||
95 | wait_queue_head_t queue; /* sleep & wake process */ | 93 | wait_queue_head_t queue; /* sleep & wake process */ |
96 | u32 slot_cap; | 94 | u32 slot_cap; |
97 | u8 cap_base; | 95 | u8 cap_base; |
@@ -154,7 +152,7 @@ struct controller { | |||
154 | extern int pciehp_sysfs_enable_slot(struct slot *slot); | 152 | extern int pciehp_sysfs_enable_slot(struct slot *slot); |
155 | extern int pciehp_sysfs_disable_slot(struct slot *slot); | 153 | extern int pciehp_sysfs_disable_slot(struct slot *slot); |
156 | extern u8 pciehp_handle_attention_button(struct slot *p_slot); | 154 | extern u8 pciehp_handle_attention_button(struct slot *p_slot); |
157 | extern u8 pciehp_handle_switch_change(struct slot *p_slot); | 155 | extern u8 pciehp_handle_switch_change(struct slot *p_slot); |
158 | extern u8 pciehp_handle_presence_change(struct slot *p_slot); | 156 | extern u8 pciehp_handle_presence_change(struct slot *p_slot); |
159 | extern u8 pciehp_handle_power_fault(struct slot *p_slot); | 157 | extern u8 pciehp_handle_power_fault(struct slot *p_slot); |
160 | extern int pciehp_configure_device(struct slot *p_slot); | 158 | extern int pciehp_configure_device(struct slot *p_slot); |
@@ -165,32 +163,30 @@ int pcie_init_notification(struct controller *ctrl); | |||
165 | int pciehp_enable_slot(struct slot *p_slot); | 163 | int pciehp_enable_slot(struct slot *p_slot); |
166 | int pciehp_disable_slot(struct slot *p_slot); | 164 | int pciehp_disable_slot(struct slot *p_slot); |
167 | int pcie_enable_notification(struct controller *ctrl); | 165 | int pcie_enable_notification(struct controller *ctrl); |
166 | int pciehp_power_on_slot(struct slot *slot); | ||
167 | int pciehp_power_off_slot(struct slot *slot); | ||
168 | int pciehp_get_power_status(struct slot *slot, u8 *status); | ||
169 | int pciehp_get_attention_status(struct slot *slot, u8 *status); | ||
170 | |||
171 | int pciehp_set_attention_status(struct slot *slot, u8 status); | ||
172 | int pciehp_get_latch_status(struct slot *slot, u8 *status); | ||
173 | int pciehp_get_adapter_status(struct slot *slot, u8 *status); | ||
174 | int pciehp_get_max_link_speed(struct slot *slot, enum pci_bus_speed *speed); | ||
175 | int pciehp_get_max_link_width(struct slot *slot, enum pcie_link_width *val); | ||
176 | int pciehp_get_cur_link_speed(struct slot *slot, enum pci_bus_speed *speed); | ||
177 | int pciehp_get_cur_link_width(struct slot *slot, enum pcie_link_width *val); | ||
178 | int pciehp_query_power_fault(struct slot *slot); | ||
179 | void pciehp_green_led_on(struct slot *slot); | ||
180 | void pciehp_green_led_off(struct slot *slot); | ||
181 | void pciehp_green_led_blink(struct slot *slot); | ||
182 | int pciehp_check_link_status(struct controller *ctrl); | ||
183 | void pciehp_release_ctrl(struct controller *ctrl); | ||
168 | 184 | ||
169 | static inline const char *slot_name(struct slot *slot) | 185 | static inline const char *slot_name(struct slot *slot) |
170 | { | 186 | { |
171 | return hotplug_slot_name(slot->hotplug_slot); | 187 | return hotplug_slot_name(slot->hotplug_slot); |
172 | } | 188 | } |
173 | 189 | ||
174 | struct hpc_ops { | ||
175 | int (*power_on_slot)(struct slot *slot); | ||
176 | int (*power_off_slot)(struct slot *slot); | ||
177 | int (*get_power_status)(struct slot *slot, u8 *status); | ||
178 | int (*get_attention_status)(struct slot *slot, u8 *status); | ||
179 | int (*set_attention_status)(struct slot *slot, u8 status); | ||
180 | int (*get_latch_status)(struct slot *slot, u8 *status); | ||
181 | int (*get_adapter_status)(struct slot *slot, u8 *status); | ||
182 | int (*get_max_bus_speed)(struct slot *slot, enum pci_bus_speed *speed); | ||
183 | int (*get_cur_bus_speed)(struct slot *slot, enum pci_bus_speed *speed); | ||
184 | int (*get_max_lnk_width)(struct slot *slot, enum pcie_link_width *val); | ||
185 | int (*get_cur_lnk_width)(struct slot *slot, enum pcie_link_width *val); | ||
186 | int (*query_power_fault)(struct slot *slot); | ||
187 | void (*green_led_on)(struct slot *slot); | ||
188 | void (*green_led_off)(struct slot *slot); | ||
189 | void (*green_led_blink)(struct slot *slot); | ||
190 | void (*release_ctlr)(struct controller *ctrl); | ||
191 | int (*check_lnk_status)(struct controller *ctrl); | ||
192 | }; | ||
193 | |||
194 | #ifdef CONFIG_ACPI | 190 | #ifdef CONFIG_ACPI |
195 | #include <acpi/acpi.h> | 191 | #include <acpi/acpi.h> |
196 | #include <acpi/acpi_bus.h> | 192 | #include <acpi/acpi_bus.h> |
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c index f82dc036ab34..2c6d94fcf9aa 100644 --- a/drivers/pci/hotplug/pciehp_core.c +++ b/drivers/pci/hotplug/pciehp_core.c | |||
@@ -163,7 +163,7 @@ static int set_attention_status(struct hotplug_slot *hotplug_slot, u8 status) | |||
163 | hotplug_slot->info->attention_status = status; | 163 | hotplug_slot->info->attention_status = status; |
164 | 164 | ||
165 | if (ATTN_LED(slot->ctrl)) | 165 | if (ATTN_LED(slot->ctrl)) |
166 | slot->hpc_ops->set_attention_status(slot, status); | 166 | pciehp_set_attention_status(slot, status); |
167 | 167 | ||
168 | return 0; | 168 | return 0; |
169 | } | 169 | } |
@@ -198,7 +198,7 @@ static int get_power_status(struct hotplug_slot *hotplug_slot, u8 *value) | |||
198 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", | 198 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
199 | __func__, slot_name(slot)); | 199 | __func__, slot_name(slot)); |
200 | 200 | ||
201 | retval = slot->hpc_ops->get_power_status(slot, value); | 201 | retval = pciehp_get_power_status(slot, value); |
202 | if (retval < 0) | 202 | if (retval < 0) |
203 | *value = hotplug_slot->info->power_status; | 203 | *value = hotplug_slot->info->power_status; |
204 | 204 | ||
@@ -213,7 +213,7 @@ static int get_attention_status(struct hotplug_slot *hotplug_slot, u8 *value) | |||
213 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", | 213 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
214 | __func__, slot_name(slot)); | 214 | __func__, slot_name(slot)); |
215 | 215 | ||
216 | retval = slot->hpc_ops->get_attention_status(slot, value); | 216 | retval = pciehp_get_attention_status(slot, value); |
217 | if (retval < 0) | 217 | if (retval < 0) |
218 | *value = hotplug_slot->info->attention_status; | 218 | *value = hotplug_slot->info->attention_status; |
219 | 219 | ||
@@ -228,7 +228,7 @@ static int get_latch_status(struct hotplug_slot *hotplug_slot, u8 *value) | |||
228 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", | 228 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
229 | __func__, slot_name(slot)); | 229 | __func__, slot_name(slot)); |
230 | 230 | ||
231 | retval = slot->hpc_ops->get_latch_status(slot, value); | 231 | retval = pciehp_get_latch_status(slot, value); |
232 | if (retval < 0) | 232 | if (retval < 0) |
233 | *value = hotplug_slot->info->latch_status; | 233 | *value = hotplug_slot->info->latch_status; |
234 | 234 | ||
@@ -243,7 +243,7 @@ static int get_adapter_status(struct hotplug_slot *hotplug_slot, u8 *value) | |||
243 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", | 243 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
244 | __func__, slot_name(slot)); | 244 | __func__, slot_name(slot)); |
245 | 245 | ||
246 | retval = slot->hpc_ops->get_adapter_status(slot, value); | 246 | retval = pciehp_get_adapter_status(slot, value); |
247 | if (retval < 0) | 247 | if (retval < 0) |
248 | *value = hotplug_slot->info->adapter_status; | 248 | *value = hotplug_slot->info->adapter_status; |
249 | 249 | ||
@@ -259,7 +259,7 @@ static int get_max_bus_speed(struct hotplug_slot *hotplug_slot, | |||
259 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", | 259 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
260 | __func__, slot_name(slot)); | 260 | __func__, slot_name(slot)); |
261 | 261 | ||
262 | retval = slot->hpc_ops->get_max_bus_speed(slot, value); | 262 | retval = pciehp_get_max_link_speed(slot, value); |
263 | if (retval < 0) | 263 | if (retval < 0) |
264 | *value = PCI_SPEED_UNKNOWN; | 264 | *value = PCI_SPEED_UNKNOWN; |
265 | 265 | ||
@@ -274,7 +274,7 @@ static int get_cur_bus_speed(struct hotplug_slot *hotplug_slot, enum pci_bus_spe | |||
274 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", | 274 | ctrl_dbg(slot->ctrl, "%s: physical_slot = %s\n", |
275 | __func__, slot_name(slot)); | 275 | __func__, slot_name(slot)); |
276 | 276 | ||
277 | retval = slot->hpc_ops->get_cur_bus_speed(slot, value); | 277 | retval = pciehp_get_cur_link_speed(slot, value); |
278 | if (retval < 0) | 278 | if (retval < 0) |
279 | *value = PCI_SPEED_UNKNOWN; | 279 | *value = PCI_SPEED_UNKNOWN; |
280 | 280 | ||
@@ -323,14 +323,14 @@ static int pciehp_probe(struct pcie_device *dev) | |||
323 | 323 | ||
324 | /* Check if slot is occupied */ | 324 | /* Check if slot is occupied */ |
325 | slot = ctrl->slot; | 325 | slot = ctrl->slot; |
326 | slot->hpc_ops->get_adapter_status(slot, &value); | 326 | pciehp_get_adapter_status(slot, &value); |
327 | if (value) { | 327 | if (value) { |
328 | if (pciehp_force) | 328 | if (pciehp_force) |
329 | pciehp_enable_slot(slot); | 329 | pciehp_enable_slot(slot); |
330 | } else { | 330 | } else { |
331 | /* Power off slot if not occupied */ | 331 | /* Power off slot if not occupied */ |
332 | if (POWER_CTRL(ctrl)) { | 332 | if (POWER_CTRL(ctrl)) { |
333 | rc = slot->hpc_ops->power_off_slot(slot); | 333 | rc = pciehp_power_off_slot(slot); |
334 | if (rc) | 334 | if (rc) |
335 | goto err_out_free_ctrl_slot; | 335 | goto err_out_free_ctrl_slot; |
336 | } | 336 | } |
@@ -341,17 +341,17 @@ static int pciehp_probe(struct pcie_device *dev) | |||
341 | err_out_free_ctrl_slot: | 341 | err_out_free_ctrl_slot: |
342 | cleanup_slot(ctrl); | 342 | cleanup_slot(ctrl); |
343 | err_out_release_ctlr: | 343 | err_out_release_ctlr: |
344 | ctrl->hpc_ops->release_ctlr(ctrl); | 344 | pciehp_release_ctrl(ctrl); |
345 | err_out_none: | 345 | err_out_none: |
346 | return -ENODEV; | 346 | return -ENODEV; |
347 | } | 347 | } |
348 | 348 | ||
349 | static void pciehp_remove (struct pcie_device *dev) | 349 | static void pciehp_remove(struct pcie_device *dev) |
350 | { | 350 | { |
351 | struct controller *ctrl = get_service_data(dev); | 351 | struct controller *ctrl = get_service_data(dev); |
352 | 352 | ||
353 | cleanup_slot(ctrl); | 353 | cleanup_slot(ctrl); |
354 | ctrl->hpc_ops->release_ctlr(ctrl); | 354 | pciehp_release_ctrl(ctrl); |
355 | } | 355 | } |
356 | 356 | ||
357 | #ifdef CONFIG_PM | 357 | #ifdef CONFIG_PM |
@@ -375,7 +375,7 @@ static int pciehp_resume (struct pcie_device *dev) | |||
375 | slot = ctrl->slot; | 375 | slot = ctrl->slot; |
376 | 376 | ||
377 | /* Check if slot is occupied */ | 377 | /* Check if slot is occupied */ |
378 | slot->hpc_ops->get_adapter_status(slot, &status); | 378 | pciehp_get_adapter_status(slot, &status); |
379 | if (status) | 379 | if (status) |
380 | pciehp_enable_slot(slot); | 380 | pciehp_enable_slot(slot); |
381 | else | 381 | else |
diff --git a/drivers/pci/hotplug/pciehp_ctrl.c b/drivers/pci/hotplug/pciehp_ctrl.c index c3e5ca57af7c..81c322de137d 100644 --- a/drivers/pci/hotplug/pciehp_ctrl.c +++ b/drivers/pci/hotplug/pciehp_ctrl.c | |||
@@ -82,7 +82,7 @@ u8 pciehp_handle_switch_change(struct slot *p_slot) | |||
82 | /* Switch Change */ | 82 | /* Switch Change */ |
83 | ctrl_dbg(ctrl, "Switch interrupt received\n"); | 83 | ctrl_dbg(ctrl, "Switch interrupt received\n"); |
84 | 84 | ||
85 | p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); | 85 | pciehp_get_latch_status(p_slot, &getstatus); |
86 | if (getstatus) { | 86 | if (getstatus) { |
87 | /* | 87 | /* |
88 | * Switch opened | 88 | * Switch opened |
@@ -114,7 +114,7 @@ u8 pciehp_handle_presence_change(struct slot *p_slot) | |||
114 | /* Switch is open, assume a presence change | 114 | /* Switch is open, assume a presence change |
115 | * Save the presence state | 115 | * Save the presence state |
116 | */ | 116 | */ |
117 | p_slot->hpc_ops->get_adapter_status(p_slot, &presence_save); | 117 | pciehp_get_adapter_status(p_slot, &presence_save); |
118 | if (presence_save) { | 118 | if (presence_save) { |
119 | /* | 119 | /* |
120 | * Card Present | 120 | * Card Present |
@@ -143,7 +143,7 @@ u8 pciehp_handle_power_fault(struct slot *p_slot) | |||
143 | /* power fault */ | 143 | /* power fault */ |
144 | ctrl_dbg(ctrl, "Power fault interrupt received\n"); | 144 | ctrl_dbg(ctrl, "Power fault interrupt received\n"); |
145 | 145 | ||
146 | if ( !(p_slot->hpc_ops->query_power_fault(p_slot))) { | 146 | if (!pciehp_query_power_fault(p_slot)) { |
147 | /* | 147 | /* |
148 | * power fault Cleared | 148 | * power fault Cleared |
149 | */ | 149 | */ |
@@ -172,7 +172,7 @@ static void set_slot_off(struct controller *ctrl, struct slot * pslot) | |||
172 | { | 172 | { |
173 | /* turn off slot, turn on Amber LED, turn off Green LED if supported*/ | 173 | /* turn off slot, turn on Amber LED, turn off Green LED if supported*/ |
174 | if (POWER_CTRL(ctrl)) { | 174 | if (POWER_CTRL(ctrl)) { |
175 | if (pslot->hpc_ops->power_off_slot(pslot)) { | 175 | if (pciehp_power_off_slot(pslot)) { |
176 | ctrl_err(ctrl, | 176 | ctrl_err(ctrl, |
177 | "Issue of Slot Power Off command failed\n"); | 177 | "Issue of Slot Power Off command failed\n"); |
178 | return; | 178 | return; |
@@ -186,10 +186,10 @@ static void set_slot_off(struct controller *ctrl, struct slot * pslot) | |||
186 | } | 186 | } |
187 | 187 | ||
188 | if (PWR_LED(ctrl)) | 188 | if (PWR_LED(ctrl)) |
189 | pslot->hpc_ops->green_led_off(pslot); | 189 | pciehp_green_led_off(pslot); |
190 | 190 | ||
191 | if (ATTN_LED(ctrl)) { | 191 | if (ATTN_LED(ctrl)) { |
192 | if (pslot->hpc_ops->set_attention_status(pslot, 1)) { | 192 | if (pciehp_set_attention_status(pslot, 1)) { |
193 | ctrl_err(ctrl, | 193 | ctrl_err(ctrl, |
194 | "Issue of Set Attention Led command failed\n"); | 194 | "Issue of Set Attention Led command failed\n"); |
195 | return; | 195 | return; |
@@ -212,16 +212,16 @@ static int board_added(struct slot *p_slot) | |||
212 | 212 | ||
213 | if (POWER_CTRL(ctrl)) { | 213 | if (POWER_CTRL(ctrl)) { |
214 | /* Power on slot */ | 214 | /* Power on slot */ |
215 | retval = p_slot->hpc_ops->power_on_slot(p_slot); | 215 | retval = pciehp_power_on_slot(p_slot); |
216 | if (retval) | 216 | if (retval) |
217 | return retval; | 217 | return retval; |
218 | } | 218 | } |
219 | 219 | ||
220 | if (PWR_LED(ctrl)) | 220 | if (PWR_LED(ctrl)) |
221 | p_slot->hpc_ops->green_led_blink(p_slot); | 221 | pciehp_green_led_blink(p_slot); |
222 | 222 | ||
223 | /* Check link training status */ | 223 | /* Check link training status */ |
224 | retval = p_slot->hpc_ops->check_lnk_status(ctrl); | 224 | retval = pciehp_check_link_status(ctrl); |
225 | if (retval) { | 225 | if (retval) { |
226 | ctrl_err(ctrl, "Failed to check link status\n"); | 226 | ctrl_err(ctrl, "Failed to check link status\n"); |
227 | set_slot_off(ctrl, p_slot); | 227 | set_slot_off(ctrl, p_slot); |
@@ -229,7 +229,7 @@ static int board_added(struct slot *p_slot) | |||
229 | } | 229 | } |
230 | 230 | ||
231 | /* Check for a power fault */ | 231 | /* Check for a power fault */ |
232 | if (p_slot->hpc_ops->query_power_fault(p_slot)) { | 232 | if (pciehp_query_power_fault(p_slot)) { |
233 | ctrl_dbg(ctrl, "Power fault detected\n"); | 233 | ctrl_dbg(ctrl, "Power fault detected\n"); |
234 | retval = POWER_FAILURE; | 234 | retval = POWER_FAILURE; |
235 | goto err_exit; | 235 | goto err_exit; |
@@ -243,7 +243,7 @@ static int board_added(struct slot *p_slot) | |||
243 | } | 243 | } |
244 | 244 | ||
245 | if (PWR_LED(ctrl)) | 245 | if (PWR_LED(ctrl)) |
246 | p_slot->hpc_ops->green_led_on(p_slot); | 246 | pciehp_green_led_on(p_slot); |
247 | 247 | ||
248 | return 0; | 248 | return 0; |
249 | 249 | ||
@@ -267,7 +267,7 @@ static int remove_board(struct slot *p_slot) | |||
267 | 267 | ||
268 | if (POWER_CTRL(ctrl)) { | 268 | if (POWER_CTRL(ctrl)) { |
269 | /* power off slot */ | 269 | /* power off slot */ |
270 | retval = p_slot->hpc_ops->power_off_slot(p_slot); | 270 | retval = pciehp_power_off_slot(p_slot); |
271 | if (retval) { | 271 | if (retval) { |
272 | ctrl_err(ctrl, | 272 | ctrl_err(ctrl, |
273 | "Issue of Slot Disable command failed\n"); | 273 | "Issue of Slot Disable command failed\n"); |
@@ -281,9 +281,9 @@ static int remove_board(struct slot *p_slot) | |||
281 | msleep(1000); | 281 | msleep(1000); |
282 | } | 282 | } |
283 | 283 | ||
284 | /* turn off Green LED */ | ||
284 | if (PWR_LED(ctrl)) | 285 | if (PWR_LED(ctrl)) |
285 | /* turn off Green LED */ | 286 | pciehp_green_led_off(p_slot); |
286 | p_slot->hpc_ops->green_led_off(p_slot); | ||
287 | 287 | ||
288 | return 0; | 288 | return 0; |
289 | } | 289 | } |
@@ -320,9 +320,8 @@ static void pciehp_power_thread(struct work_struct *work) | |||
320 | break; | 320 | break; |
321 | case POWERON_STATE: | 321 | case POWERON_STATE: |
322 | mutex_unlock(&p_slot->lock); | 322 | mutex_unlock(&p_slot->lock); |
323 | if (pciehp_enable_slot(p_slot) && | 323 | if (pciehp_enable_slot(p_slot) && PWR_LED(p_slot->ctrl)) |
324 | PWR_LED(p_slot->ctrl)) | 324 | pciehp_green_led_off(p_slot); |
325 | p_slot->hpc_ops->green_led_off(p_slot); | ||
326 | mutex_lock(&p_slot->lock); | 325 | mutex_lock(&p_slot->lock); |
327 | p_slot->state = STATIC_STATE; | 326 | p_slot->state = STATIC_STATE; |
328 | break; | 327 | break; |
@@ -373,10 +372,10 @@ static int update_slot_info(struct slot *slot) | |||
373 | if (!info) | 372 | if (!info) |
374 | return -ENOMEM; | 373 | return -ENOMEM; |
375 | 374 | ||
376 | slot->hpc_ops->get_power_status(slot, &(info->power_status)); | 375 | pciehp_get_power_status(slot, &info->power_status); |
377 | slot->hpc_ops->get_attention_status(slot, &(info->attention_status)); | 376 | pciehp_get_attention_status(slot, &info->attention_status); |
378 | slot->hpc_ops->get_latch_status(slot, &(info->latch_status)); | 377 | pciehp_get_latch_status(slot, &info->latch_status); |
379 | slot->hpc_ops->get_adapter_status(slot, &(info->adapter_status)); | 378 | pciehp_get_adapter_status(slot, &info->adapter_status); |
380 | 379 | ||
381 | result = pci_hp_change_slot_info(slot->hotplug_slot, info); | 380 | result = pci_hp_change_slot_info(slot->hotplug_slot, info); |
382 | kfree (info); | 381 | kfree (info); |
@@ -393,7 +392,7 @@ static void handle_button_press_event(struct slot *p_slot) | |||
393 | 392 | ||
394 | switch (p_slot->state) { | 393 | switch (p_slot->state) { |
395 | case STATIC_STATE: | 394 | case STATIC_STATE: |
396 | p_slot->hpc_ops->get_power_status(p_slot, &getstatus); | 395 | pciehp_get_power_status(p_slot, &getstatus); |
397 | if (getstatus) { | 396 | if (getstatus) { |
398 | p_slot->state = BLINKINGOFF_STATE; | 397 | p_slot->state = BLINKINGOFF_STATE; |
399 | ctrl_info(ctrl, | 398 | ctrl_info(ctrl, |
@@ -407,9 +406,9 @@ static void handle_button_press_event(struct slot *p_slot) | |||
407 | } | 406 | } |
408 | /* blink green LED and turn off amber */ | 407 | /* blink green LED and turn off amber */ |
409 | if (PWR_LED(ctrl)) | 408 | if (PWR_LED(ctrl)) |
410 | p_slot->hpc_ops->green_led_blink(p_slot); | 409 | pciehp_green_led_blink(p_slot); |
411 | if (ATTN_LED(ctrl)) | 410 | if (ATTN_LED(ctrl)) |
412 | p_slot->hpc_ops->set_attention_status(p_slot, 0); | 411 | pciehp_set_attention_status(p_slot, 0); |
413 | 412 | ||
414 | schedule_delayed_work(&p_slot->work, 5*HZ); | 413 | schedule_delayed_work(&p_slot->work, 5*HZ); |
415 | break; | 414 | break; |
@@ -424,13 +423,13 @@ static void handle_button_press_event(struct slot *p_slot) | |||
424 | cancel_delayed_work(&p_slot->work); | 423 | cancel_delayed_work(&p_slot->work); |
425 | if (p_slot->state == BLINKINGOFF_STATE) { | 424 | if (p_slot->state == BLINKINGOFF_STATE) { |
426 | if (PWR_LED(ctrl)) | 425 | if (PWR_LED(ctrl)) |
427 | p_slot->hpc_ops->green_led_on(p_slot); | 426 | pciehp_green_led_on(p_slot); |
428 | } else { | 427 | } else { |
429 | if (PWR_LED(ctrl)) | 428 | if (PWR_LED(ctrl)) |
430 | p_slot->hpc_ops->green_led_off(p_slot); | 429 | pciehp_green_led_off(p_slot); |
431 | } | 430 | } |
432 | if (ATTN_LED(ctrl)) | 431 | if (ATTN_LED(ctrl)) |
433 | p_slot->hpc_ops->set_attention_status(p_slot, 0); | 432 | pciehp_set_attention_status(p_slot, 0); |
434 | ctrl_info(ctrl, "PCI slot #%s - action canceled " | 433 | ctrl_info(ctrl, "PCI slot #%s - action canceled " |
435 | "due to button press\n", slot_name(p_slot)); | 434 | "due to button press\n", slot_name(p_slot)); |
436 | p_slot->state = STATIC_STATE; | 435 | p_slot->state = STATIC_STATE; |
@@ -468,7 +467,7 @@ static void handle_surprise_event(struct slot *p_slot) | |||
468 | info->p_slot = p_slot; | 467 | info->p_slot = p_slot; |
469 | INIT_WORK(&info->work, pciehp_power_thread); | 468 | INIT_WORK(&info->work, pciehp_power_thread); |
470 | 469 | ||
471 | p_slot->hpc_ops->get_adapter_status(p_slot, &getstatus); | 470 | pciehp_get_adapter_status(p_slot, &getstatus); |
472 | if (!getstatus) | 471 | if (!getstatus) |
473 | p_slot->state = POWEROFF_STATE; | 472 | p_slot->state = POWEROFF_STATE; |
474 | else | 473 | else |
@@ -492,9 +491,9 @@ static void interrupt_event_handler(struct work_struct *work) | |||
492 | if (!POWER_CTRL(ctrl)) | 491 | if (!POWER_CTRL(ctrl)) |
493 | break; | 492 | break; |
494 | if (ATTN_LED(ctrl)) | 493 | if (ATTN_LED(ctrl)) |
495 | p_slot->hpc_ops->set_attention_status(p_slot, 1); | 494 | pciehp_set_attention_status(p_slot, 1); |
496 | if (PWR_LED(ctrl)) | 495 | if (PWR_LED(ctrl)) |
497 | p_slot->hpc_ops->green_led_off(p_slot); | 496 | pciehp_green_led_off(p_slot); |
498 | break; | 497 | break; |
499 | case INT_PRESENCE_ON: | 498 | case INT_PRESENCE_ON: |
500 | case INT_PRESENCE_OFF: | 499 | case INT_PRESENCE_OFF: |
@@ -519,13 +518,13 @@ int pciehp_enable_slot(struct slot *p_slot) | |||
519 | int rc; | 518 | int rc; |
520 | struct controller *ctrl = p_slot->ctrl; | 519 | struct controller *ctrl = p_slot->ctrl; |
521 | 520 | ||
522 | rc = p_slot->hpc_ops->get_adapter_status(p_slot, &getstatus); | 521 | rc = pciehp_get_adapter_status(p_slot, &getstatus); |
523 | if (rc || !getstatus) { | 522 | if (rc || !getstatus) { |
524 | ctrl_info(ctrl, "No adapter on slot(%s)\n", slot_name(p_slot)); | 523 | ctrl_info(ctrl, "No adapter on slot(%s)\n", slot_name(p_slot)); |
525 | return -ENODEV; | 524 | return -ENODEV; |
526 | } | 525 | } |
527 | if (MRL_SENS(p_slot->ctrl)) { | 526 | if (MRL_SENS(p_slot->ctrl)) { |
528 | rc = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); | 527 | rc = pciehp_get_latch_status(p_slot, &getstatus); |
529 | if (rc || getstatus) { | 528 | if (rc || getstatus) { |
530 | ctrl_info(ctrl, "Latch open on slot(%s)\n", | 529 | ctrl_info(ctrl, "Latch open on slot(%s)\n", |
531 | slot_name(p_slot)); | 530 | slot_name(p_slot)); |
@@ -534,7 +533,7 @@ int pciehp_enable_slot(struct slot *p_slot) | |||
534 | } | 533 | } |
535 | 534 | ||
536 | if (POWER_CTRL(p_slot->ctrl)) { | 535 | if (POWER_CTRL(p_slot->ctrl)) { |
537 | rc = p_slot->hpc_ops->get_power_status(p_slot, &getstatus); | 536 | rc = pciehp_get_power_status(p_slot, &getstatus); |
538 | if (rc || getstatus) { | 537 | if (rc || getstatus) { |
539 | ctrl_info(ctrl, "Already enabled on slot(%s)\n", | 538 | ctrl_info(ctrl, "Already enabled on slot(%s)\n", |
540 | slot_name(p_slot)); | 539 | slot_name(p_slot)); |
@@ -542,11 +541,11 @@ int pciehp_enable_slot(struct slot *p_slot) | |||
542 | } | 541 | } |
543 | } | 542 | } |
544 | 543 | ||
545 | p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); | 544 | pciehp_get_latch_status(p_slot, &getstatus); |
546 | 545 | ||
547 | rc = board_added(p_slot); | 546 | rc = board_added(p_slot); |
548 | if (rc) { | 547 | if (rc) { |
549 | p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); | 548 | pciehp_get_latch_status(p_slot, &getstatus); |
550 | } | 549 | } |
551 | 550 | ||
552 | update_slot_info(p_slot); | 551 | update_slot_info(p_slot); |
@@ -565,7 +564,7 @@ int pciehp_disable_slot(struct slot *p_slot) | |||
565 | return 1; | 564 | return 1; |
566 | 565 | ||
567 | if (!HP_SUPR_RM(p_slot->ctrl)) { | 566 | if (!HP_SUPR_RM(p_slot->ctrl)) { |
568 | ret = p_slot->hpc_ops->get_adapter_status(p_slot, &getstatus); | 567 | ret = pciehp_get_adapter_status(p_slot, &getstatus); |
569 | if (ret || !getstatus) { | 568 | if (ret || !getstatus) { |
570 | ctrl_info(ctrl, "No adapter on slot(%s)\n", | 569 | ctrl_info(ctrl, "No adapter on slot(%s)\n", |
571 | slot_name(p_slot)); | 570 | slot_name(p_slot)); |
@@ -574,7 +573,7 @@ int pciehp_disable_slot(struct slot *p_slot) | |||
574 | } | 573 | } |
575 | 574 | ||
576 | if (MRL_SENS(p_slot->ctrl)) { | 575 | if (MRL_SENS(p_slot->ctrl)) { |
577 | ret = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); | 576 | ret = pciehp_get_latch_status(p_slot, &getstatus); |
578 | if (ret || getstatus) { | 577 | if (ret || getstatus) { |
579 | ctrl_info(ctrl, "Latch open on slot(%s)\n", | 578 | ctrl_info(ctrl, "Latch open on slot(%s)\n", |
580 | slot_name(p_slot)); | 579 | slot_name(p_slot)); |
@@ -583,7 +582,7 @@ int pciehp_disable_slot(struct slot *p_slot) | |||
583 | } | 582 | } |
584 | 583 | ||
585 | if (POWER_CTRL(p_slot->ctrl)) { | 584 | if (POWER_CTRL(p_slot->ctrl)) { |
586 | ret = p_slot->hpc_ops->get_power_status(p_slot, &getstatus); | 585 | ret = pciehp_get_power_status(p_slot, &getstatus); |
587 | if (ret || !getstatus) { | 586 | if (ret || !getstatus) { |
588 | ctrl_info(ctrl, "Already disabled on slot(%s)\n", | 587 | ctrl_info(ctrl, "Already disabled on slot(%s)\n", |
589 | slot_name(p_slot)); | 588 | slot_name(p_slot)); |
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c index 3867d9c47ebd..8c34e84fc0c7 100644 --- a/drivers/pci/hotplug/pciehp_hpc.c +++ b/drivers/pci/hotplug/pciehp_hpc.c | |||
@@ -266,7 +266,7 @@ static void pcie_wait_link_active(struct controller *ctrl) | |||
266 | ctrl_dbg(ctrl, "Data Link Layer Link Active not set in 1000 msec\n"); | 266 | ctrl_dbg(ctrl, "Data Link Layer Link Active not set in 1000 msec\n"); |
267 | } | 267 | } |
268 | 268 | ||
269 | static int hpc_check_lnk_status(struct controller *ctrl) | 269 | int pciehp_check_link_status(struct controller *ctrl) |
270 | { | 270 | { |
271 | u16 lnk_status; | 271 | u16 lnk_status; |
272 | int retval = 0; | 272 | int retval = 0; |
@@ -305,7 +305,7 @@ static int hpc_check_lnk_status(struct controller *ctrl) | |||
305 | return retval; | 305 | return retval; |
306 | } | 306 | } |
307 | 307 | ||
308 | static int hpc_get_attention_status(struct slot *slot, u8 *status) | 308 | int pciehp_get_attention_status(struct slot *slot, u8 *status) |
309 | { | 309 | { |
310 | struct controller *ctrl = slot->ctrl; | 310 | struct controller *ctrl = slot->ctrl; |
311 | u16 slot_ctrl; | 311 | u16 slot_ctrl; |
@@ -344,7 +344,7 @@ static int hpc_get_attention_status(struct slot *slot, u8 *status) | |||
344 | return 0; | 344 | return 0; |
345 | } | 345 | } |
346 | 346 | ||
347 | static int hpc_get_power_status(struct slot *slot, u8 *status) | 347 | int pciehp_get_power_status(struct slot *slot, u8 *status) |
348 | { | 348 | { |
349 | struct controller *ctrl = slot->ctrl; | 349 | struct controller *ctrl = slot->ctrl; |
350 | u16 slot_ctrl; | 350 | u16 slot_ctrl; |
@@ -376,7 +376,7 @@ static int hpc_get_power_status(struct slot *slot, u8 *status) | |||
376 | return retval; | 376 | return retval; |
377 | } | 377 | } |
378 | 378 | ||
379 | static int hpc_get_latch_status(struct slot *slot, u8 *status) | 379 | int pciehp_get_latch_status(struct slot *slot, u8 *status) |
380 | { | 380 | { |
381 | struct controller *ctrl = slot->ctrl; | 381 | struct controller *ctrl = slot->ctrl; |
382 | u16 slot_status; | 382 | u16 slot_status; |
@@ -392,7 +392,7 @@ static int hpc_get_latch_status(struct slot *slot, u8 *status) | |||
392 | return 0; | 392 | return 0; |
393 | } | 393 | } |
394 | 394 | ||
395 | static int hpc_get_adapter_status(struct slot *slot, u8 *status) | 395 | int pciehp_get_adapter_status(struct slot *slot, u8 *status) |
396 | { | 396 | { |
397 | struct controller *ctrl = slot->ctrl; | 397 | struct controller *ctrl = slot->ctrl; |
398 | u16 slot_status; | 398 | u16 slot_status; |
@@ -408,7 +408,7 @@ static int hpc_get_adapter_status(struct slot *slot, u8 *status) | |||
408 | return 0; | 408 | return 0; |
409 | } | 409 | } |
410 | 410 | ||
411 | static int hpc_query_power_fault(struct slot *slot) | 411 | int pciehp_query_power_fault(struct slot *slot) |
412 | { | 412 | { |
413 | struct controller *ctrl = slot->ctrl; | 413 | struct controller *ctrl = slot->ctrl; |
414 | u16 slot_status; | 414 | u16 slot_status; |
@@ -422,7 +422,7 @@ static int hpc_query_power_fault(struct slot *slot) | |||
422 | return !!(slot_status & PCI_EXP_SLTSTA_PFD); | 422 | return !!(slot_status & PCI_EXP_SLTSTA_PFD); |
423 | } | 423 | } |
424 | 424 | ||
425 | static int hpc_set_attention_status(struct slot *slot, u8 value) | 425 | int pciehp_set_attention_status(struct slot *slot, u8 value) |
426 | { | 426 | { |
427 | struct controller *ctrl = slot->ctrl; | 427 | struct controller *ctrl = slot->ctrl; |
428 | u16 slot_cmd; | 428 | u16 slot_cmd; |
@@ -450,7 +450,7 @@ static int hpc_set_attention_status(struct slot *slot, u8 value) | |||
450 | return rc; | 450 | return rc; |
451 | } | 451 | } |
452 | 452 | ||
453 | static void hpc_set_green_led_on(struct slot *slot) | 453 | void pciehp_green_led_on(struct slot *slot) |
454 | { | 454 | { |
455 | struct controller *ctrl = slot->ctrl; | 455 | struct controller *ctrl = slot->ctrl; |
456 | u16 slot_cmd; | 456 | u16 slot_cmd; |
@@ -463,7 +463,7 @@ static void hpc_set_green_led_on(struct slot *slot) | |||
463 | __func__, ctrl->cap_base + PCI_EXP_SLTCTL, slot_cmd); | 463 | __func__, ctrl->cap_base + PCI_EXP_SLTCTL, slot_cmd); |
464 | } | 464 | } |
465 | 465 | ||
466 | static void hpc_set_green_led_off(struct slot *slot) | 466 | void pciehp_green_led_off(struct slot *slot) |
467 | { | 467 | { |
468 | struct controller *ctrl = slot->ctrl; | 468 | struct controller *ctrl = slot->ctrl; |
469 | u16 slot_cmd; | 469 | u16 slot_cmd; |
@@ -476,7 +476,7 @@ static void hpc_set_green_led_off(struct slot *slot) | |||
476 | __func__, ctrl->cap_base + PCI_EXP_SLTCTL, slot_cmd); | 476 | __func__, ctrl->cap_base + PCI_EXP_SLTCTL, slot_cmd); |
477 | } | 477 | } |
478 | 478 | ||
479 | static void hpc_set_green_led_blink(struct slot *slot) | 479 | void pciehp_green_led_blink(struct slot *slot) |
480 | { | 480 | { |
481 | struct controller *ctrl = slot->ctrl; | 481 | struct controller *ctrl = slot->ctrl; |
482 | u16 slot_cmd; | 482 | u16 slot_cmd; |
@@ -489,7 +489,7 @@ static void hpc_set_green_led_blink(struct slot *slot) | |||
489 | __func__, ctrl->cap_base + PCI_EXP_SLTCTL, slot_cmd); | 489 | __func__, ctrl->cap_base + PCI_EXP_SLTCTL, slot_cmd); |
490 | } | 490 | } |
491 | 491 | ||
492 | static int hpc_power_on_slot(struct slot * slot) | 492 | int pciehp_power_on_slot(struct slot * slot) |
493 | { | 493 | { |
494 | struct controller *ctrl = slot->ctrl; | 494 | struct controller *ctrl = slot->ctrl; |
495 | u16 slot_cmd; | 495 | u16 slot_cmd; |
@@ -568,7 +568,7 @@ static inline void pcie_unmask_bad_dllp(struct controller *ctrl) | |||
568 | pci_write_config_dword(dev, pos + PCI_ERR_COR_MASK, reg); | 568 | pci_write_config_dword(dev, pos + PCI_ERR_COR_MASK, reg); |
569 | } | 569 | } |
570 | 570 | ||
571 | static int hpc_power_off_slot(struct slot * slot) | 571 | int pciehp_power_off_slot(struct slot * slot) |
572 | { | 572 | { |
573 | struct controller *ctrl = slot->ctrl; | 573 | struct controller *ctrl = slot->ctrl; |
574 | u16 slot_cmd; | 574 | u16 slot_cmd; |
@@ -672,7 +672,7 @@ static irqreturn_t pcie_isr(int irq, void *dev_id) | |||
672 | return IRQ_HANDLED; | 672 | return IRQ_HANDLED; |
673 | } | 673 | } |
674 | 674 | ||
675 | static int hpc_get_max_lnk_speed(struct slot *slot, enum pci_bus_speed *value) | 675 | int pciehp_get_max_link_speed(struct slot *slot, enum pci_bus_speed *value) |
676 | { | 676 | { |
677 | struct controller *ctrl = slot->ctrl; | 677 | struct controller *ctrl = slot->ctrl; |
678 | enum pcie_link_speed lnk_speed; | 678 | enum pcie_link_speed lnk_speed; |
@@ -703,7 +703,7 @@ static int hpc_get_max_lnk_speed(struct slot *slot, enum pci_bus_speed *value) | |||
703 | return retval; | 703 | return retval; |
704 | } | 704 | } |
705 | 705 | ||
706 | static int hpc_get_max_lnk_width(struct slot *slot, | 706 | int pciehp_get_max_lnk_width(struct slot *slot, |
707 | enum pcie_link_width *value) | 707 | enum pcie_link_width *value) |
708 | { | 708 | { |
709 | struct controller *ctrl = slot->ctrl; | 709 | struct controller *ctrl = slot->ctrl; |
@@ -753,7 +753,7 @@ static int hpc_get_max_lnk_width(struct slot *slot, | |||
753 | return retval; | 753 | return retval; |
754 | } | 754 | } |
755 | 755 | ||
756 | static int hpc_get_cur_lnk_speed(struct slot *slot, enum pci_bus_speed *value) | 756 | int pciehp_get_cur_link_speed(struct slot *slot, enum pci_bus_speed *value) |
757 | { | 757 | { |
758 | struct controller *ctrl = slot->ctrl; | 758 | struct controller *ctrl = slot->ctrl; |
759 | enum pcie_link_speed lnk_speed = PCI_SPEED_UNKNOWN; | 759 | enum pcie_link_speed lnk_speed = PCI_SPEED_UNKNOWN; |
@@ -785,7 +785,7 @@ static int hpc_get_cur_lnk_speed(struct slot *slot, enum pci_bus_speed *value) | |||
785 | return retval; | 785 | return retval; |
786 | } | 786 | } |
787 | 787 | ||
788 | static int hpc_get_cur_lnk_width(struct slot *slot, | 788 | int pciehp_get_cur_lnk_width(struct slot *slot, |
789 | enum pcie_link_width *value) | 789 | enum pcie_link_width *value) |
790 | { | 790 | { |
791 | struct controller *ctrl = slot->ctrl; | 791 | struct controller *ctrl = slot->ctrl; |
@@ -836,30 +836,6 @@ static int hpc_get_cur_lnk_width(struct slot *slot, | |||
836 | return retval; | 836 | return retval; |
837 | } | 837 | } |
838 | 838 | ||
839 | static void pcie_release_ctrl(struct controller *ctrl); | ||
840 | static struct hpc_ops pciehp_hpc_ops = { | ||
841 | .power_on_slot = hpc_power_on_slot, | ||
842 | .power_off_slot = hpc_power_off_slot, | ||
843 | .set_attention_status = hpc_set_attention_status, | ||
844 | .get_power_status = hpc_get_power_status, | ||
845 | .get_attention_status = hpc_get_attention_status, | ||
846 | .get_latch_status = hpc_get_latch_status, | ||
847 | .get_adapter_status = hpc_get_adapter_status, | ||
848 | |||
849 | .get_max_bus_speed = hpc_get_max_lnk_speed, | ||
850 | .get_cur_bus_speed = hpc_get_cur_lnk_speed, | ||
851 | .get_max_lnk_width = hpc_get_max_lnk_width, | ||
852 | .get_cur_lnk_width = hpc_get_cur_lnk_width, | ||
853 | |||
854 | .query_power_fault = hpc_query_power_fault, | ||
855 | .green_led_on = hpc_set_green_led_on, | ||
856 | .green_led_off = hpc_set_green_led_off, | ||
857 | .green_led_blink = hpc_set_green_led_blink, | ||
858 | |||
859 | .release_ctlr = pcie_release_ctrl, | ||
860 | .check_lnk_status = hpc_check_lnk_status, | ||
861 | }; | ||
862 | |||
863 | int pcie_enable_notification(struct controller *ctrl) | 839 | int pcie_enable_notification(struct controller *ctrl) |
864 | { | 840 | { |
865 | u16 cmd, mask; | 841 | u16 cmd, mask; |
@@ -925,7 +901,6 @@ static int pcie_init_slot(struct controller *ctrl) | |||
925 | return -ENOMEM; | 901 | return -ENOMEM; |
926 | 902 | ||
927 | slot->ctrl = ctrl; | 903 | slot->ctrl = ctrl; |
928 | slot->hpc_ops = ctrl->hpc_ops; | ||
929 | slot->number = PSN(ctrl); | 904 | slot->number = PSN(ctrl); |
930 | mutex_init(&slot->lock); | 905 | mutex_init(&slot->lock); |
931 | INIT_DELAYED_WORK(&slot->work, pciehp_queue_pushbutton_work); | 906 | INIT_DELAYED_WORK(&slot->work, pciehp_queue_pushbutton_work); |
@@ -1015,7 +990,6 @@ struct controller *pcie_init(struct pcie_device *dev) | |||
1015 | } | 990 | } |
1016 | 991 | ||
1017 | ctrl->slot_cap = slot_cap; | 992 | ctrl->slot_cap = slot_cap; |
1018 | ctrl->hpc_ops = &pciehp_hpc_ops; | ||
1019 | mutex_init(&ctrl->ctrl_lock); | 993 | mutex_init(&ctrl->ctrl_lock); |
1020 | init_waitqueue_head(&ctrl->queue); | 994 | init_waitqueue_head(&ctrl->queue); |
1021 | dbg_ctrl(ctrl); | 995 | dbg_ctrl(ctrl); |
@@ -1071,7 +1045,7 @@ abort: | |||
1071 | return NULL; | 1045 | return NULL; |
1072 | } | 1046 | } |
1073 | 1047 | ||
1074 | void pcie_release_ctrl(struct controller *ctrl) | 1048 | void pciehp_release_ctrl(struct controller *ctrl) |
1075 | { | 1049 | { |
1076 | pcie_shutdown_notification(ctrl); | 1050 | pcie_shutdown_notification(ctrl); |
1077 | pcie_cleanup_slot(ctrl); | 1051 | pcie_cleanup_slot(ctrl); |
diff --git a/drivers/pci/hotplug/pciehp_pci.c b/drivers/pci/hotplug/pciehp_pci.c index 002a72d9ad71..21733108adde 100644 --- a/drivers/pci/hotplug/pciehp_pci.c +++ b/drivers/pci/hotplug/pciehp_pci.c | |||
@@ -117,7 +117,7 @@ int pciehp_unconfigure_device(struct slot *p_slot) | |||
117 | 117 | ||
118 | ctrl_dbg(ctrl, "%s: domain:bus:dev = %04x:%02x:00\n", | 118 | ctrl_dbg(ctrl, "%s: domain:bus:dev = %04x:%02x:00\n", |
119 | __func__, pci_domain_nr(parent), parent->number); | 119 | __func__, pci_domain_nr(parent), parent->number); |
120 | ret = p_slot->hpc_ops->get_adapter_status(p_slot, &presence); | 120 | ret = pciehp_get_adapter_status(p_slot, &presence); |
121 | if (ret) | 121 | if (ret) |
122 | presence = 0; | 122 | presence = 0; |
123 | 123 | ||