pciehp: cleanup pcie_poll_cmd
Cleanup pcie_poll_cmd(): check the slot status once before entering our completion test loop and convert the loop to a simpler while() block. Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
parent
b30dd56d1c
commit
820943b6fc
|
@ -252,20 +252,23 @@ static inline int pcie_poll_cmd(struct controller *ctrl)
|
|||
u16 slot_status;
|
||||
int timeout = 1000;
|
||||
|
||||
if (!pciehp_readw(ctrl, SLOTSTATUS, &slot_status))
|
||||
if (slot_status & CMD_COMPLETED)
|
||||
goto completed;
|
||||
for (timeout = 1000; timeout > 0; timeout -= 100) {
|
||||
if (!pciehp_readw(ctrl, SLOTSTATUS, &slot_status)) {
|
||||
if (slot_status & CMD_COMPLETED) {
|
||||
pciehp_writew(ctrl, SLOTSTATUS, CMD_COMPLETED);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
while (timeout > 1000) {
|
||||
msleep(100);
|
||||
if (!pciehp_readw(ctrl, SLOTSTATUS, &slot_status))
|
||||
if (slot_status & CMD_COMPLETED)
|
||||
goto completed;
|
||||
timeout -= 100;
|
||||
if (!pciehp_readw(ctrl, SLOTSTATUS, &slot_status)) {
|
||||
if (slot_status & CMD_COMPLETED) {
|
||||
pciehp_writew(ctrl, SLOTSTATUS, CMD_COMPLETED);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0; /* timeout */
|
||||
|
||||
completed:
|
||||
pciehp_writew(ctrl, SLOTSTATUS, CMD_COMPLETED);
|
||||
return timeout;
|
||||
}
|
||||
|
||||
static inline void pcie_wait_cmd(struct controller *ctrl, int poll)
|
||||
|
|
Loading…
Reference in New Issue