|
@@ -106,7 +106,7 @@ static int board_added(struct slot *p_slot)
|
|
|
|
|
|
/* Check for a power fault */
|
|
|
if (ctrl->power_fault_detected || pciehp_query_power_fault(p_slot)) {
|
|
|
- ctrl_err(ctrl, "Power fault on slot %s\n", slot_name(p_slot));
|
|
|
+ ctrl_err(ctrl, "Slot(%s): Power fault\n", slot_name(p_slot));
|
|
|
retval = -EIO;
|
|
|
goto err_exit;
|
|
|
}
|
|
@@ -120,6 +120,7 @@ static int board_added(struct slot *p_slot)
|
|
|
}
|
|
|
|
|
|
pciehp_green_led_on(p_slot);
|
|
|
+ pciehp_set_attention_status(p_slot, 0);
|
|
|
return 0;
|
|
|
|
|
|
err_exit:
|
|
@@ -253,11 +254,11 @@ static void handle_button_press_event(struct slot *p_slot)
|
|
|
pciehp_get_power_status(p_slot, &getstatus);
|
|
|
if (getstatus) {
|
|
|
p_slot->state = BLINKINGOFF_STATE;
|
|
|
- ctrl_info(ctrl, "PCI slot #%s - powering off due to button press\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Powering off due to button press\n",
|
|
|
slot_name(p_slot));
|
|
|
} else {
|
|
|
p_slot->state = BLINKINGON_STATE;
|
|
|
- ctrl_info(ctrl, "PCI slot #%s - powering on due to button press\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s) Powering on due to button press\n",
|
|
|
slot_name(p_slot));
|
|
|
}
|
|
|
/* blink green LED and turn off amber */
|
|
@@ -272,14 +273,14 @@ static void handle_button_press_event(struct slot *p_slot)
|
|
|
* press the attention again before the 5 sec. limit
|
|
|
* expires to cancel hot-add or hot-remove
|
|
|
*/
|
|
|
- ctrl_info(ctrl, "Button cancel on Slot(%s)\n", slot_name(p_slot));
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Button cancel\n", slot_name(p_slot));
|
|
|
cancel_delayed_work(&p_slot->work);
|
|
|
if (p_slot->state == BLINKINGOFF_STATE)
|
|
|
pciehp_green_led_on(p_slot);
|
|
|
else
|
|
|
pciehp_green_led_off(p_slot);
|
|
|
pciehp_set_attention_status(p_slot, 0);
|
|
|
- ctrl_info(ctrl, "PCI slot #%s - action canceled due to button press\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Action canceled due to button press\n",
|
|
|
slot_name(p_slot));
|
|
|
p_slot->state = STATIC_STATE;
|
|
|
break;
|
|
@@ -290,28 +291,16 @@ static void handle_button_press_event(struct slot *p_slot)
|
|
|
* this means that the previous attention button action
|
|
|
* to hot-add or hot-remove is undergoing
|
|
|
*/
|
|
|
- ctrl_info(ctrl, "Button ignore on Slot(%s)\n", slot_name(p_slot));
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Button ignored\n",
|
|
|
+ slot_name(p_slot));
|
|
|
break;
|
|
|
default:
|
|
|
- ctrl_warn(ctrl, "ignoring invalid state %#x\n", p_slot->state);
|
|
|
+ ctrl_err(ctrl, "Slot(%s): Ignoring invalid state %#x\n",
|
|
|
+ slot_name(p_slot), p_slot->state);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * Note: This function must be called with slot->lock held
|
|
|
- */
|
|
|
-static void handle_surprise_event(struct slot *p_slot)
|
|
|
-{
|
|
|
- u8 getstatus;
|
|
|
-
|
|
|
- pciehp_get_adapter_status(p_slot, &getstatus);
|
|
|
- if (!getstatus)
|
|
|
- pciehp_queue_power_work(p_slot, DISABLE_REQ);
|
|
|
- else
|
|
|
- pciehp_queue_power_work(p_slot, ENABLE_REQ);
|
|
|
-}
|
|
|
-
|
|
|
/*
|
|
|
* Note: This function must be called with slot->lock held
|
|
|
*/
|
|
@@ -330,31 +319,27 @@ static void handle_link_event(struct slot *p_slot, u32 event)
|
|
|
break;
|
|
|
case POWERON_STATE:
|
|
|
if (event == INT_LINK_UP) {
|
|
|
- ctrl_info(ctrl,
|
|
|
- "Link Up event ignored on slot(%s): already powering on\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Link Up event ignored; already powering on\n",
|
|
|
slot_name(p_slot));
|
|
|
} else {
|
|
|
- ctrl_info(ctrl,
|
|
|
- "Link Down event queued on slot(%s): currently getting powered on\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Link Down event queued; currently getting powered on\n",
|
|
|
slot_name(p_slot));
|
|
|
pciehp_queue_power_work(p_slot, DISABLE_REQ);
|
|
|
}
|
|
|
break;
|
|
|
case POWEROFF_STATE:
|
|
|
if (event == INT_LINK_UP) {
|
|
|
- ctrl_info(ctrl,
|
|
|
- "Link Up event queued on slot(%s): currently getting powered off\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Link Up event queued; currently getting powered off\n",
|
|
|
slot_name(p_slot));
|
|
|
pciehp_queue_power_work(p_slot, ENABLE_REQ);
|
|
|
} else {
|
|
|
- ctrl_info(ctrl,
|
|
|
- "Link Down event ignored on slot(%s): already powering off\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Link Down event ignored; already powering off\n",
|
|
|
slot_name(p_slot));
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
- ctrl_err(ctrl, "ignoring invalid state %#x on slot(%s)\n",
|
|
|
- p_slot->state, slot_name(p_slot));
|
|
|
+ ctrl_err(ctrl, "Slot(%s): Ignoring invalid state %#x\n",
|
|
|
+ slot_name(p_slot), p_slot->state);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -377,14 +362,14 @@ static void interrupt_event_handler(struct work_struct *work)
|
|
|
pciehp_green_led_off(p_slot);
|
|
|
break;
|
|
|
case INT_PRESENCE_ON:
|
|
|
- handle_surprise_event(p_slot);
|
|
|
+ pciehp_queue_power_work(p_slot, ENABLE_REQ);
|
|
|
break;
|
|
|
case INT_PRESENCE_OFF:
|
|
|
/*
|
|
|
* Regardless of surprise capability, we need to
|
|
|
* definitely remove a card that has been pulled out!
|
|
|
*/
|
|
|
- handle_surprise_event(p_slot);
|
|
|
+ pciehp_queue_power_work(p_slot, DISABLE_REQ);
|
|
|
break;
|
|
|
case INT_LINK_UP:
|
|
|
case INT_LINK_DOWN:
|
|
@@ -404,18 +389,17 @@ static void interrupt_event_handler(struct work_struct *work)
|
|
|
int pciehp_enable_slot(struct slot *p_slot)
|
|
|
{
|
|
|
u8 getstatus = 0;
|
|
|
- int rc;
|
|
|
struct controller *ctrl = p_slot->ctrl;
|
|
|
|
|
|
pciehp_get_adapter_status(p_slot, &getstatus);
|
|
|
if (!getstatus) {
|
|
|
- ctrl_info(ctrl, "No adapter on slot(%s)\n", slot_name(p_slot));
|
|
|
+ ctrl_info(ctrl, "Slot(%s): No adapter\n", slot_name(p_slot));
|
|
|
return -ENODEV;
|
|
|
}
|
|
|
if (MRL_SENS(p_slot->ctrl)) {
|
|
|
pciehp_get_latch_status(p_slot, &getstatus);
|
|
|
if (getstatus) {
|
|
|
- ctrl_info(ctrl, "Latch open on slot(%s)\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Latch open\n",
|
|
|
slot_name(p_slot));
|
|
|
return -ENODEV;
|
|
|
}
|
|
@@ -424,19 +408,13 @@ int pciehp_enable_slot(struct slot *p_slot)
|
|
|
if (POWER_CTRL(p_slot->ctrl)) {
|
|
|
pciehp_get_power_status(p_slot, &getstatus);
|
|
|
if (getstatus) {
|
|
|
- ctrl_info(ctrl, "Already enabled on slot(%s)\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Already enabled\n",
|
|
|
slot_name(p_slot));
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- pciehp_get_latch_status(p_slot, &getstatus);
|
|
|
-
|
|
|
- rc = board_added(p_slot);
|
|
|
- if (rc)
|
|
|
- pciehp_get_latch_status(p_slot, &getstatus);
|
|
|
-
|
|
|
- return rc;
|
|
|
+ return board_added(p_slot);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -453,7 +431,7 @@ int pciehp_disable_slot(struct slot *p_slot)
|
|
|
if (POWER_CTRL(p_slot->ctrl)) {
|
|
|
pciehp_get_power_status(p_slot, &getstatus);
|
|
|
if (!getstatus) {
|
|
|
- ctrl_info(ctrl, "Already disabled on slot(%s)\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Already disabled\n",
|
|
|
slot_name(p_slot));
|
|
|
return -EINVAL;
|
|
|
}
|
|
@@ -481,17 +459,17 @@ int pciehp_sysfs_enable_slot(struct slot *p_slot)
|
|
|
p_slot->state = STATIC_STATE;
|
|
|
break;
|
|
|
case POWERON_STATE:
|
|
|
- ctrl_info(ctrl, "Slot %s is already in powering on state\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Already in powering on state\n",
|
|
|
slot_name(p_slot));
|
|
|
break;
|
|
|
case BLINKINGOFF_STATE:
|
|
|
case POWEROFF_STATE:
|
|
|
- ctrl_info(ctrl, "Already enabled on slot %s\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Already enabled\n",
|
|
|
slot_name(p_slot));
|
|
|
break;
|
|
|
default:
|
|
|
- ctrl_err(ctrl, "invalid state %#x on slot %s\n",
|
|
|
- p_slot->state, slot_name(p_slot));
|
|
|
+ ctrl_err(ctrl, "Slot(%s): Invalid state %#x\n",
|
|
|
+ slot_name(p_slot), p_slot->state);
|
|
|
break;
|
|
|
}
|
|
|
mutex_unlock(&p_slot->lock);
|
|
@@ -518,17 +496,17 @@ int pciehp_sysfs_disable_slot(struct slot *p_slot)
|
|
|
p_slot->state = STATIC_STATE;
|
|
|
break;
|
|
|
case POWEROFF_STATE:
|
|
|
- ctrl_info(ctrl, "Slot %s is already in powering off state\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Already in powering off state\n",
|
|
|
slot_name(p_slot));
|
|
|
break;
|
|
|
case BLINKINGON_STATE:
|
|
|
case POWERON_STATE:
|
|
|
- ctrl_info(ctrl, "Already disabled on slot %s\n",
|
|
|
+ ctrl_info(ctrl, "Slot(%s): Already disabled\n",
|
|
|
slot_name(p_slot));
|
|
|
break;
|
|
|
default:
|
|
|
- ctrl_err(ctrl, "invalid state %#x on slot %s\n",
|
|
|
- p_slot->state, slot_name(p_slot));
|
|
|
+ ctrl_err(ctrl, "Slot(%s): Invalid state %#x\n",
|
|
|
+ slot_name(p_slot), p_slot->state);
|
|
|
break;
|
|
|
}
|
|
|
mutex_unlock(&p_slot->lock);
|