diff options
| -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); |
