|
@@ -473,7 +473,7 @@ static int be_mbox_notify_wait(struct be_adapter *adapter)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int be_POST_stage_get(struct be_adapter *adapter, u16 *stage)
|
|
|
+static void be_POST_stage_get(struct be_adapter *adapter, u16 *stage)
|
|
|
{
|
|
|
u32 sem;
|
|
|
u32 reg = skyhawk_chip(adapter) ? SLIPORT_SEMAPHORE_OFFSET_SH :
|
|
@@ -481,11 +481,6 @@ static int be_POST_stage_get(struct be_adapter *adapter, u16 *stage)
|
|
|
|
|
|
pci_read_config_dword(adapter->pdev, reg, &sem);
|
|
|
*stage = sem & POST_STAGE_MASK;
|
|
|
-
|
|
|
- if ((sem >> POST_ERR_SHIFT) & POST_ERR_MASK)
|
|
|
- return -1;
|
|
|
- else
|
|
|
- return 0;
|
|
|
}
|
|
|
|
|
|
int lancer_wait_ready(struct be_adapter *adapter)
|
|
@@ -579,19 +574,17 @@ int be_fw_wait_ready(struct be_adapter *adapter)
|
|
|
}
|
|
|
|
|
|
do {
|
|
|
- status = be_POST_stage_get(adapter, &stage);
|
|
|
- if (status) {
|
|
|
- dev_err(dev, "POST error; stage=0x%x\n", stage);
|
|
|
- return -1;
|
|
|
- } else if (stage != POST_STAGE_ARMFW_RDY) {
|
|
|
- if (msleep_interruptible(2000)) {
|
|
|
- dev_err(dev, "Waiting for POST aborted\n");
|
|
|
- return -EINTR;
|
|
|
- }
|
|
|
- timeout += 2;
|
|
|
- } else {
|
|
|
+ be_POST_stage_get(adapter, &stage);
|
|
|
+ if (stage == POST_STAGE_ARMFW_RDY)
|
|
|
return 0;
|
|
|
+
|
|
|
+ dev_info(dev, "Waiting for POST, %ds elapsed\n",
|
|
|
+ timeout);
|
|
|
+ if (msleep_interruptible(2000)) {
|
|
|
+ dev_err(dev, "Waiting for POST aborted\n");
|
|
|
+ return -EINTR;
|
|
|
}
|
|
|
+ timeout += 2;
|
|
|
} while (timeout < 60);
|
|
|
|
|
|
dev_err(dev, "POST timeout; stage=0x%x\n", stage);
|