|
@@ -109,21 +109,17 @@ static int pcie_poll_cmd(struct controller *ctrl, int timeout)
|
|
|
struct pci_dev *pdev = ctrl_dev(ctrl);
|
|
|
u16 slot_status;
|
|
|
|
|
|
- pcie_capability_read_word(pdev, PCI_EXP_SLTSTA, &slot_status);
|
|
|
- if (slot_status & PCI_EXP_SLTSTA_CC) {
|
|
|
- pcie_capability_write_word(pdev, PCI_EXP_SLTSTA,
|
|
|
- PCI_EXP_SLTSTA_CC);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- while (timeout > 0) {
|
|
|
- msleep(10);
|
|
|
- timeout -= 10;
|
|
|
+ while (true) {
|
|
|
pcie_capability_read_word(pdev, PCI_EXP_SLTSTA, &slot_status);
|
|
|
if (slot_status & PCI_EXP_SLTSTA_CC) {
|
|
|
pcie_capability_write_word(pdev, PCI_EXP_SLTSTA,
|
|
|
PCI_EXP_SLTSTA_CC);
|
|
|
return 1;
|
|
|
}
|
|
|
+ if (timeout < 0)
|
|
|
+ break;
|
|
|
+ msleep(10);
|
|
|
+ timeout -= 10;
|
|
|
}
|
|
|
return 0; /* timeout */
|
|
|
}
|