diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/pci/hotplug/pciehp.h | 9 | ||||
-rw-r--r-- | drivers/pci/hotplug/pciehp_core.c | 33 | ||||
-rw-r--r-- | drivers/pci/hotplug/pciehp_ctrl.c | 53 | ||||
-rw-r--r-- | drivers/pci/hotplug/pciehp_hpc.c | 1 |
4 files changed, 52 insertions, 44 deletions
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h index c367978bd7fe..394f99852e6d 100644 --- a/drivers/pci/hotplug/pciehp.h +++ b/drivers/pci/hotplug/pciehp.h | |||
@@ -74,15 +74,13 @@ extern struct workqueue_struct *pciehp_wq; | |||
74 | struct slot { | 74 | struct slot { |
75 | u8 bus; | 75 | u8 bus; |
76 | u8 device; | 76 | u8 device; |
77 | u32 number; | ||
78 | u8 state; | 77 | u8 state; |
79 | struct timer_list task_event; | ||
80 | u8 hp_slot; | 78 | u8 hp_slot; |
79 | u32 number; | ||
81 | struct controller *ctrl; | 80 | struct controller *ctrl; |
82 | struct hpc_ops *hpc_ops; | 81 | struct hpc_ops *hpc_ops; |
83 | struct hotplug_slot *hotplug_slot; | 82 | struct hotplug_slot *hotplug_slot; |
84 | struct list_head slot_list; | 83 | struct list_head slot_list; |
85 | char name[SLOT_NAME_SIZE]; | ||
86 | unsigned long last_emi_toggle; | 84 | unsigned long last_emi_toggle; |
87 | struct delayed_work work; /* work for button event */ | 85 | struct delayed_work work; /* work for button event */ |
88 | struct mutex lock; | 86 | struct mutex lock; |
@@ -175,6 +173,11 @@ int pciehp_enable_slot(struct slot *p_slot); | |||
175 | int pciehp_disable_slot(struct slot *p_slot); | 173 | int pciehp_disable_slot(struct slot *p_slot); |
176 | int pcie_enable_notification(struct controller *ctrl); | 174 | int pcie_enable_notification(struct controller *ctrl); |
177 | 175 | ||
176 | static inline const char *slot_name(struct slot *slot) | ||
177 | { | ||
178 | return hotplug_slot_name(slot->hotplug_slot); | ||
179 | } | ||
180 | |||
178 | static inline struct slot *pciehp_find_slot(struct controller *ctrl, u8 device) | 181 | static inline struct slot *pciehp_find_slot(struct controller *ctrl, u8 device) |
179 | { | 182 | { |
180 | struct slot *slot; | 183 | struct slot *slot; |
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c index af89d7bd1edd..62be1b59c74b 100644 --- a/drivers/pci/hotplug/pciehp_core.c +++ b/drivers/pci/hotplug/pciehp_core.c | |||
@@ -185,7 +185,7 @@ static void release_slot(struct hotplug_slot *hotplug_slot) | |||
185 | struct slot *slot = hotplug_slot->private; | 185 | struct slot *slot = hotplug_slot->private; |
186 | 186 | ||
187 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 187 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", |
188 | __func__, hotplug_slot->name); | 188 | __func__, hotplug_slot_name(hotplug_slot)); |
189 | 189 | ||
190 | kfree(hotplug_slot->info); | 190 | kfree(hotplug_slot->info); |
191 | kfree(hotplug_slot); | 191 | kfree(hotplug_slot); |
@@ -196,6 +196,7 @@ static int init_slots(struct controller *ctrl) | |||
196 | struct slot *slot; | 196 | struct slot *slot; |
197 | struct hotplug_slot *hotplug_slot; | 197 | struct hotplug_slot *hotplug_slot; |
198 | struct hotplug_slot_info *info; | 198 | struct hotplug_slot_info *info; |
199 | char name[SLOT_NAME_SIZE]; | ||
199 | int retval = -ENOMEM; | 200 | int retval = -ENOMEM; |
200 | 201 | ||
201 | list_for_each_entry(slot, &ctrl->slot_list, slot_list) { | 202 | list_for_each_entry(slot, &ctrl->slot_list, slot_list) { |
@@ -209,15 +210,11 @@ static int init_slots(struct controller *ctrl) | |||
209 | 210 | ||
210 | /* register this slot with the hotplug pci core */ | 211 | /* register this slot with the hotplug pci core */ |
211 | hotplug_slot->info = info; | 212 | hotplug_slot->info = info; |
212 | hotplug_slot->name = slot->name; | ||
213 | hotplug_slot->private = slot; | 213 | hotplug_slot->private = slot; |
214 | hotplug_slot->release = &release_slot; | 214 | hotplug_slot->release = &release_slot; |
215 | hotplug_slot->ops = &pciehp_hotplug_slot_ops; | 215 | hotplug_slot->ops = &pciehp_hotplug_slot_ops; |
216 | get_power_status(hotplug_slot, &info->power_status); | ||
217 | get_attention_status(hotplug_slot, &info->attention_status); | ||
218 | get_latch_status(hotplug_slot, &info->latch_status); | ||
219 | get_adapter_status(hotplug_slot, &info->adapter_status); | ||
220 | slot->hotplug_slot = hotplug_slot; | 216 | slot->hotplug_slot = hotplug_slot; |
217 | snprintf(name, SLOT_NAME_SIZE, "%u", slot->number); | ||
221 | 218 | ||
222 | ctrl_dbg(ctrl, "Registering bus=%x dev=%x hp_slot=%x sun=%x " | 219 | ctrl_dbg(ctrl, "Registering bus=%x dev=%x hp_slot=%x sun=%x " |
223 | "slot_device_offset=%x\n", slot->bus, slot->device, | 220 | "slot_device_offset=%x\n", slot->bus, slot->device, |
@@ -225,12 +222,16 @@ static int init_slots(struct controller *ctrl) | |||
225 | retval = pci_hp_register(hotplug_slot, | 222 | retval = pci_hp_register(hotplug_slot, |
226 | ctrl->pci_dev->subordinate, | 223 | ctrl->pci_dev->subordinate, |
227 | slot->device, | 224 | slot->device, |
228 | slot->name); | 225 | name); |
229 | if (retval) { | 226 | if (retval) { |
230 | ctrl_err(ctrl, "pci_hp_register failed with error %d\n", | 227 | ctrl_err(ctrl, "pci_hp_register failed with error %d\n", |
231 | retval); | 228 | retval); |
232 | goto error_info; | 229 | goto error_info; |
233 | } | 230 | } |
231 | get_power_status(hotplug_slot, &info->power_status); | ||
232 | get_attention_status(hotplug_slot, &info->attention_status); | ||
233 | get_latch_status(hotplug_slot, &info->latch_status); | ||
234 | get_adapter_status(hotplug_slot, &info->adapter_status); | ||
234 | /* create additional sysfs entries */ | 235 | /* create additional sysfs entries */ |
235 | if (EMI(ctrl)) { | 236 | if (EMI(ctrl)) { |
236 | retval = sysfs_create_file(&hotplug_slot->pci_slot->kobj, | 237 | retval = sysfs_create_file(&hotplug_slot->pci_slot->kobj, |
@@ -273,7 +274,7 @@ static int set_attention_status(struct hotplug_slot *hotplug_slot, u8 status) | |||
273 | struct slot *slot = hotplug_slot->private; | 274 | struct slot *slot = hotplug_slot->private; |
274 | 275 | ||
275 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 276 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", |
276 | __func__, hotplug_slot->name); | 277 | __func__, slot_name(slot)); |
277 | 278 | ||
278 | hotplug_slot->info->attention_status = status; | 279 | hotplug_slot->info->attention_status = status; |
279 | 280 | ||
@@ -289,7 +290,7 @@ static int enable_slot(struct hotplug_slot *hotplug_slot) | |||
289 | struct slot *slot = hotplug_slot->private; | 290 | struct slot *slot = hotplug_slot->private; |
290 | 291 | ||
291 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 292 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", |
292 | __func__, hotplug_slot->name); | 293 | __func__, slot_name(slot)); |
293 | 294 | ||
294 | return pciehp_sysfs_enable_slot(slot); | 295 | return pciehp_sysfs_enable_slot(slot); |
295 | } | 296 | } |
@@ -300,7 +301,7 @@ static int disable_slot(struct hotplug_slot *hotplug_slot) | |||
300 | struct slot *slot = hotplug_slot->private; | 301 | struct slot *slot = hotplug_slot->private; |
301 | 302 | ||
302 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 303 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", |
303 | __func__, hotplug_slot->name); | 304 | __func__, slot_name(slot)); |
304 | 305 | ||
305 | return pciehp_sysfs_disable_slot(slot); | 306 | return pciehp_sysfs_disable_slot(slot); |
306 | } | 307 | } |
@@ -311,7 +312,7 @@ static int get_power_status(struct hotplug_slot *hotplug_slot, u8 *value) | |||
311 | int retval; | 312 | int retval; |
312 | 313 | ||
313 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 314 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", |
314 | __func__, hotplug_slot->name); | 315 | __func__, slot_name(slot)); |
315 | 316 | ||
316 | retval = slot->hpc_ops->get_power_status(slot, value); | 317 | retval = slot->hpc_ops->get_power_status(slot, value); |
317 | if (retval < 0) | 318 | if (retval < 0) |
@@ -326,7 +327,7 @@ static int get_attention_status(struct hotplug_slot *hotplug_slot, u8 *value) | |||
326 | int retval; | 327 | int retval; |
327 | 328 | ||
328 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 329 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", |
329 | __func__, hotplug_slot->name); | 330 | __func__, slot_name(slot)); |
330 | 331 | ||
331 | retval = slot->hpc_ops->get_attention_status(slot, value); | 332 | retval = slot->hpc_ops->get_attention_status(slot, value); |
332 | if (retval < 0) | 333 | if (retval < 0) |
@@ -341,7 +342,7 @@ static int get_latch_status(struct hotplug_slot *hotplug_slot, u8 *value) | |||
341 | int retval; | 342 | int retval; |
342 | 343 | ||
343 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 344 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", |
344 | __func__, hotplug_slot->name); | 345 | __func__, slot_name(slot)); |
345 | 346 | ||
346 | retval = slot->hpc_ops->get_latch_status(slot, value); | 347 | retval = slot->hpc_ops->get_latch_status(slot, value); |
347 | if (retval < 0) | 348 | if (retval < 0) |
@@ -356,7 +357,7 @@ static int get_adapter_status(struct hotplug_slot *hotplug_slot, u8 *value) | |||
356 | int retval; | 357 | int retval; |
357 | 358 | ||
358 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 359 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", |
359 | __func__, hotplug_slot->name); | 360 | __func__, slot_name(slot)); |
360 | 361 | ||
361 | retval = slot->hpc_ops->get_adapter_status(slot, value); | 362 | retval = slot->hpc_ops->get_adapter_status(slot, value); |
362 | if (retval < 0) | 363 | if (retval < 0) |
@@ -372,7 +373,7 @@ static int get_max_bus_speed(struct hotplug_slot *hotplug_slot, | |||
372 | int retval; | 373 | int retval; |
373 | 374 | ||
374 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 375 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", |
375 | __func__, hotplug_slot->name); | 376 | __func__, slot_name(slot)); |
376 | 377 | ||
377 | retval = slot->hpc_ops->get_max_bus_speed(slot, value); | 378 | retval = slot->hpc_ops->get_max_bus_speed(slot, value); |
378 | if (retval < 0) | 379 | if (retval < 0) |
@@ -387,7 +388,7 @@ static int get_cur_bus_speed(struct hotplug_slot *hotplug_slot, enum pci_bus_spe | |||
387 | int retval; | 388 | int retval; |
388 | 389 | ||
389 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", | 390 | ctrl_dbg(slot->ctrl, "%s - physical_slot = %s\n", |
390 | __func__, hotplug_slot->name); | 391 | __func__, slot_name(slot)); |
391 | 392 | ||
392 | retval = slot->hpc_ops->get_cur_bus_speed(slot, value); | 393 | retval = slot->hpc_ops->get_cur_bus_speed(slot, value); |
393 | if (retval < 0) | 394 | if (retval < 0) |
diff --git a/drivers/pci/hotplug/pciehp_ctrl.c b/drivers/pci/hotplug/pciehp_ctrl.c index acb7f9efd182..cce6e5f659e8 100644 --- a/drivers/pci/hotplug/pciehp_ctrl.c +++ b/drivers/pci/hotplug/pciehp_ctrl.c | |||
@@ -66,7 +66,7 @@ u8 pciehp_handle_attention_button(struct slot *p_slot) | |||
66 | /* | 66 | /* |
67 | * Button pressed - See if need to TAKE ACTION!!! | 67 | * Button pressed - See if need to TAKE ACTION!!! |
68 | */ | 68 | */ |
69 | ctrl_info(ctrl, "Button pressed on Slot(%s)\n", p_slot->name); | 69 | ctrl_info(ctrl, "Button pressed on Slot(%s)\n", slot_name(p_slot)); |
70 | event_type = INT_BUTTON_PRESS; | 70 | event_type = INT_BUTTON_PRESS; |
71 | 71 | ||
72 | queue_interrupt_event(p_slot, event_type); | 72 | queue_interrupt_event(p_slot, event_type); |
@@ -88,13 +88,13 @@ u8 pciehp_handle_switch_change(struct slot *p_slot) | |||
88 | /* | 88 | /* |
89 | * Switch opened | 89 | * Switch opened |
90 | */ | 90 | */ |
91 | ctrl_info(ctrl, "Latch open on Slot(%s)\n", p_slot->name); | 91 | ctrl_info(ctrl, "Latch open on Slot(%s)\n", slot_name(p_slot)); |
92 | event_type = INT_SWITCH_OPEN; | 92 | event_type = INT_SWITCH_OPEN; |
93 | } else { | 93 | } else { |
94 | /* | 94 | /* |
95 | * Switch closed | 95 | * Switch closed |
96 | */ | 96 | */ |
97 | ctrl_info(ctrl, "Latch close on Slot(%s)\n", p_slot->name); | 97 | ctrl_info(ctrl, "Latch close on Slot(%s)\n", slot_name(p_slot)); |
98 | event_type = INT_SWITCH_CLOSE; | 98 | event_type = INT_SWITCH_CLOSE; |
99 | } | 99 | } |
100 | 100 | ||
@@ -120,13 +120,14 @@ u8 pciehp_handle_presence_change(struct slot *p_slot) | |||
120 | /* | 120 | /* |
121 | * Card Present | 121 | * Card Present |
122 | */ | 122 | */ |
123 | ctrl_info(ctrl, "Card present on Slot(%s)\n", p_slot->name); | 123 | ctrl_info(ctrl, "Card present on Slot(%s)\n", slot_name(p_slot)); |
124 | event_type = INT_PRESENCE_ON; | 124 | event_type = INT_PRESENCE_ON; |
125 | } else { | 125 | } else { |
126 | /* | 126 | /* |
127 | * Not Present | 127 | * Not Present |
128 | */ | 128 | */ |
129 | ctrl_info(ctrl, "Card not present on Slot(%s)\n", p_slot->name); | 129 | ctrl_info(ctrl, "Card not present on Slot(%s)\n", |
130 | slot_name(p_slot)); | ||
130 | event_type = INT_PRESENCE_OFF; | 131 | event_type = INT_PRESENCE_OFF; |
131 | } | 132 | } |
132 | 133 | ||
@@ -148,13 +149,13 @@ u8 pciehp_handle_power_fault(struct slot *p_slot) | |||
148 | * power fault Cleared | 149 | * power fault Cleared |
149 | */ | 150 | */ |
150 | ctrl_info(ctrl, "Power fault cleared on Slot(%s)\n", | 151 | ctrl_info(ctrl, "Power fault cleared on Slot(%s)\n", |
151 | p_slot->name); | 152 | slot_name(p_slot)); |
152 | event_type = INT_POWER_FAULT_CLEAR; | 153 | event_type = INT_POWER_FAULT_CLEAR; |
153 | } else { | 154 | } else { |
154 | /* | 155 | /* |
155 | * power fault | 156 | * power fault |
156 | */ | 157 | */ |
157 | ctrl_info(ctrl, "Power fault on Slot(%s)\n", p_slot->name); | 158 | ctrl_info(ctrl, "Power fault on Slot(%s)\n", slot_name(p_slot)); |
158 | event_type = INT_POWER_FAULT; | 159 | event_type = INT_POWER_FAULT; |
159 | ctrl_info(ctrl, "power fault bit %x set\n", 0); | 160 | ctrl_info(ctrl, "power fault bit %x set\n", 0); |
160 | } | 161 | } |
@@ -412,12 +413,12 @@ static void handle_button_press_event(struct slot *p_slot) | |||
412 | p_slot->state = BLINKINGOFF_STATE; | 413 | p_slot->state = BLINKINGOFF_STATE; |
413 | ctrl_info(ctrl, | 414 | ctrl_info(ctrl, |
414 | "PCI slot #%s - powering off due to button " | 415 | "PCI slot #%s - powering off due to button " |
415 | "press.\n", p_slot->name); | 416 | "press.\n", slot_name(p_slot)); |
416 | } else { | 417 | } else { |
417 | p_slot->state = BLINKINGON_STATE; | 418 | p_slot->state = BLINKINGON_STATE; |
418 | ctrl_info(ctrl, | 419 | ctrl_info(ctrl, |
419 | "PCI slot #%s - powering on due to button " | 420 | "PCI slot #%s - powering on due to button " |
420 | "press.\n", p_slot->name); | 421 | "press.\n", slot_name(p_slot)); |
421 | } | 422 | } |
422 | /* blink green LED and turn off amber */ | 423 | /* blink green LED and turn off amber */ |
423 | if (PWR_LED(ctrl)) | 424 | if (PWR_LED(ctrl)) |
@@ -434,7 +435,7 @@ static void handle_button_press_event(struct slot *p_slot) | |||
434 | * press the attention again before the 5 sec. limit | 435 | * press the attention again before the 5 sec. limit |
435 | * expires to cancel hot-add or hot-remove | 436 | * expires to cancel hot-add or hot-remove |
436 | */ | 437 | */ |
437 | ctrl_info(ctrl, "Button cancel on Slot(%s)\n", p_slot->name); | 438 | ctrl_info(ctrl, "Button cancel on Slot(%s)\n", slot_name(p_slot)); |
438 | ctrl_dbg(ctrl, "%s: button cancel\n", __func__); | 439 | ctrl_dbg(ctrl, "%s: button cancel\n", __func__); |
439 | cancel_delayed_work(&p_slot->work); | 440 | cancel_delayed_work(&p_slot->work); |
440 | if (p_slot->state == BLINKINGOFF_STATE) { | 441 | if (p_slot->state == BLINKINGOFF_STATE) { |
@@ -447,7 +448,7 @@ static void handle_button_press_event(struct slot *p_slot) | |||
447 | if (ATTN_LED(ctrl)) | 448 | if (ATTN_LED(ctrl)) |
448 | p_slot->hpc_ops->set_attention_status(p_slot, 0); | 449 | p_slot->hpc_ops->set_attention_status(p_slot, 0); |
449 | ctrl_info(ctrl, "PCI slot #%s - action canceled " | 450 | ctrl_info(ctrl, "PCI slot #%s - action canceled " |
450 | "due to button press\n", p_slot->name); | 451 | "due to button press\n", slot_name(p_slot)); |
451 | p_slot->state = STATIC_STATE; | 452 | p_slot->state = STATIC_STATE; |
452 | break; | 453 | break; |
453 | case POWEROFF_STATE: | 454 | case POWEROFF_STATE: |
@@ -457,7 +458,7 @@ static void handle_button_press_event(struct slot *p_slot) | |||
457 | * this means that the previous attention button action | 458 | * this means that the previous attention button action |
458 | * to hot-add or hot-remove is undergoing | 459 | * to hot-add or hot-remove is undergoing |
459 | */ | 460 | */ |
460 | ctrl_info(ctrl, "Button ignore on Slot(%s)\n", p_slot->name); | 461 | ctrl_info(ctrl, "Button ignore on Slot(%s)\n", slot_name(p_slot)); |
461 | update_slot_info(p_slot); | 462 | update_slot_info(p_slot); |
462 | break; | 463 | break; |
463 | default: | 464 | default: |
@@ -540,7 +541,7 @@ int pciehp_enable_slot(struct slot *p_slot) | |||
540 | rc = p_slot->hpc_ops->get_adapter_status(p_slot, &getstatus); | 541 | rc = p_slot->hpc_ops->get_adapter_status(p_slot, &getstatus); |
541 | if (rc || !getstatus) { | 542 | if (rc || !getstatus) { |
542 | ctrl_info(ctrl, "%s: no adapter on slot(%s)\n", | 543 | ctrl_info(ctrl, "%s: no adapter on slot(%s)\n", |
543 | __func__, p_slot->name); | 544 | __func__, slot_name(p_slot)); |
544 | mutex_unlock(&p_slot->ctrl->crit_sect); | 545 | mutex_unlock(&p_slot->ctrl->crit_sect); |
545 | return -ENODEV; | 546 | return -ENODEV; |
546 | } | 547 | } |
@@ -548,7 +549,7 @@ int pciehp_enable_slot(struct slot *p_slot) | |||
548 | rc = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); | 549 | rc = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); |
549 | if (rc || getstatus) { | 550 | if (rc || getstatus) { |
550 | ctrl_info(ctrl, "%s: latch open on slot(%s)\n", | 551 | ctrl_info(ctrl, "%s: latch open on slot(%s)\n", |
551 | __func__, p_slot->name); | 552 | __func__, slot_name(p_slot)); |
552 | mutex_unlock(&p_slot->ctrl->crit_sect); | 553 | mutex_unlock(&p_slot->ctrl->crit_sect); |
553 | return -ENODEV; | 554 | return -ENODEV; |
554 | } | 555 | } |
@@ -558,7 +559,7 @@ int pciehp_enable_slot(struct slot *p_slot) | |||
558 | rc = p_slot->hpc_ops->get_power_status(p_slot, &getstatus); | 559 | rc = p_slot->hpc_ops->get_power_status(p_slot, &getstatus); |
559 | if (rc || getstatus) { | 560 | if (rc || getstatus) { |
560 | ctrl_info(ctrl, "%s: already enabled on slot(%s)\n", | 561 | ctrl_info(ctrl, "%s: already enabled on slot(%s)\n", |
561 | __func__, p_slot->name); | 562 | __func__, slot_name(p_slot)); |
562 | mutex_unlock(&p_slot->ctrl->crit_sect); | 563 | mutex_unlock(&p_slot->ctrl->crit_sect); |
563 | return -EINVAL; | 564 | return -EINVAL; |
564 | } | 565 | } |
@@ -594,7 +595,7 @@ int pciehp_disable_slot(struct slot *p_slot) | |||
594 | ret = p_slot->hpc_ops->get_adapter_status(p_slot, &getstatus); | 595 | ret = p_slot->hpc_ops->get_adapter_status(p_slot, &getstatus); |
595 | if (ret || !getstatus) { | 596 | if (ret || !getstatus) { |
596 | ctrl_info(ctrl, "%s: no adapter on slot(%s)\n", | 597 | ctrl_info(ctrl, "%s: no adapter on slot(%s)\n", |
597 | __func__, p_slot->name); | 598 | __func__, slot_name(p_slot)); |
598 | mutex_unlock(&p_slot->ctrl->crit_sect); | 599 | mutex_unlock(&p_slot->ctrl->crit_sect); |
599 | return -ENODEV; | 600 | return -ENODEV; |
600 | } | 601 | } |
@@ -604,7 +605,7 @@ int pciehp_disable_slot(struct slot *p_slot) | |||
604 | ret = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); | 605 | ret = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); |
605 | if (ret || getstatus) { | 606 | if (ret || getstatus) { |
606 | ctrl_info(ctrl, "%s: latch open on slot(%s)\n", | 607 | ctrl_info(ctrl, "%s: latch open on slot(%s)\n", |
607 | __func__, p_slot->name); | 608 | __func__, slot_name(p_slot)); |
608 | mutex_unlock(&p_slot->ctrl->crit_sect); | 609 | mutex_unlock(&p_slot->ctrl->crit_sect); |
609 | return -ENODEV; | 610 | return -ENODEV; |
610 | } | 611 | } |
@@ -614,7 +615,7 @@ int pciehp_disable_slot(struct slot *p_slot) | |||
614 | ret = p_slot->hpc_ops->get_power_status(p_slot, &getstatus); | 615 | ret = p_slot->hpc_ops->get_power_status(p_slot, &getstatus); |
615 | if (ret || !getstatus) { | 616 | if (ret || !getstatus) { |
616 | ctrl_info(ctrl, "%s: already disabled slot(%s)\n", | 617 | ctrl_info(ctrl, "%s: already disabled slot(%s)\n", |
617 | __func__, p_slot->name); | 618 | __func__, slot_name(p_slot)); |
618 | mutex_unlock(&p_slot->ctrl->crit_sect); | 619 | mutex_unlock(&p_slot->ctrl->crit_sect); |
619 | return -EINVAL; | 620 | return -EINVAL; |
620 | } | 621 | } |
@@ -645,14 +646,16 @@ int pciehp_sysfs_enable_slot(struct slot *p_slot) | |||
645 | break; | 646 | break; |
646 | case POWERON_STATE: | 647 | case POWERON_STATE: |
647 | ctrl_info(ctrl, "Slot %s is already in powering on state\n", | 648 | ctrl_info(ctrl, "Slot %s is already in powering on state\n", |
648 | p_slot->name); | 649 | slot_name(p_slot)); |
649 | break; | 650 | break; |
650 | case BLINKINGOFF_STATE: | 651 | case BLINKINGOFF_STATE: |
651 | case POWEROFF_STATE: | 652 | case POWEROFF_STATE: |
652 | ctrl_info(ctrl, "Already enabled on slot %s\n", p_slot->name); | 653 | ctrl_info(ctrl, "Already enabled on slot %s\n", |
654 | slot_name(p_slot)); | ||
653 | break; | 655 | break; |
654 | default: | 656 | default: |
655 | ctrl_err(ctrl, "Not a valid state on slot %s\n", p_slot->name); | 657 | ctrl_err(ctrl, "Not a valid state on slot %s\n", |
658 | slot_name(p_slot)); | ||
656 | break; | 659 | break; |
657 | } | 660 | } |
658 | mutex_unlock(&p_slot->lock); | 661 | mutex_unlock(&p_slot->lock); |
@@ -678,14 +681,16 @@ int pciehp_sysfs_disable_slot(struct slot *p_slot) | |||
678 | break; | 681 | break; |
679 | case POWEROFF_STATE: | 682 | case POWEROFF_STATE: |
680 | ctrl_info(ctrl, "Slot %s is already in powering off state\n", | 683 | ctrl_info(ctrl, "Slot %s is already in powering off state\n", |
681 | p_slot->name); | 684 | slot_name(p_slot)); |
682 | break; | 685 | break; |
683 | case BLINKINGON_STATE: | 686 | case BLINKINGON_STATE: |
684 | case POWERON_STATE: | 687 | case POWERON_STATE: |
685 | ctrl_info(ctrl, "Already disabled on slot %s\n", p_slot->name); | 688 | ctrl_info(ctrl, "Already disabled on slot %s\n", |
689 | slot_name(p_slot)); | ||
686 | break; | 690 | break; |
687 | default: | 691 | default: |
688 | ctrl_err(ctrl, "Not a valid state on slot %s\n", p_slot->name); | 692 | ctrl_err(ctrl, "Not a valid state on slot %s\n", |
693 | slot_name(p_slot)); | ||
689 | break; | 694 | break; |
690 | } | 695 | } |
691 | mutex_unlock(&p_slot->lock); | 696 | mutex_unlock(&p_slot->lock); |
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c index 8e9530c4c36d..4c74d536d45c 100644 --- a/drivers/pci/hotplug/pciehp_hpc.c +++ b/drivers/pci/hotplug/pciehp_hpc.c | |||
@@ -1061,7 +1061,6 @@ static int pcie_init_slot(struct controller *ctrl) | |||
1061 | slot->device = ctrl->slot_device_offset + slot->hp_slot; | 1061 | slot->device = ctrl->slot_device_offset + slot->hp_slot; |
1062 | slot->hpc_ops = ctrl->hpc_ops; | 1062 | slot->hpc_ops = ctrl->hpc_ops; |
1063 | slot->number = ctrl->first_slot; | 1063 | slot->number = ctrl->first_slot; |
1064 | snprintf(slot->name, SLOT_NAME_SIZE, "%d", slot->number); | ||
1065 | mutex_init(&slot->lock); | 1064 | mutex_init(&slot->lock); |
1066 | INIT_DELAYED_WORK(&slot->work, pciehp_queue_pushbutton_work); | 1065 | INIT_DELAYED_WORK(&slot->work, pciehp_queue_pushbutton_work); |
1067 | list_add(&slot->slot_list, &ctrl->slot_list); | 1066 | list_add(&slot->slot_list, &ctrl->slot_list); |