Michal Kazior <michal.kazior@xxxxxxxxx> writes: > On 25 March 2014 10:15, Kalle Valo <kvalo@xxxxxxxxxxxxxxxx> wrote: >> ath10k_pci_wait_for_target_init() did really follow the style used elsewhere in >> ath10k. Use ath10k_pci_read/write() wrappers, simplify the while loop and >> improve warning messages. >> >> Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx> >> --- >> drivers/net/wireless/ath/ath10k/pci.c | 33 ++++++++++++++++++++------------- >> 1 file changed, 20 insertions(+), 13 deletions(-) >> >> diff --git a/drivers/net/wireless/ath/ath10k/pci.c b/drivers/net/wireless/ath/ath10k/pci.c >> index 9d242d801d9d..0425c76daf3f 100644 >> --- a/drivers/net/wireless/ath/ath10k/pci.c >> +++ b/drivers/net/wireless/ath/ath10k/pci.c >> @@ -2385,30 +2385,37 @@ static int ath10k_pci_deinit_irq(struct ath10k *ar) >> static int ath10k_pci_wait_for_target_init(struct ath10k *ar) >> { >> struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); >> - int wait_limit = 300; /* 3 sec */ >> + const int wait = 3000; /* ms */ > > We probably should have a #define for this. Yeah, I'll change that. >> - while (wait_limit-- && >> - !(ioread32(ar_pci->mem + FW_INDICATOR_ADDRESS) & >> - FW_IND_INITIALIZED)) { >> + timeout = jiffies + msecs_to_jiffies(wait); >> + >> + do { >> + val = ath10k_pci_read32(ar, FW_INDICATOR_ADDRESS); >> + if (val == FW_IND_INITIALIZED) >> + break; >> + > > It might be worth to add: > > if (val == 0xFFFFFFFF) > return -EIO; What does receiving 0xFFFFFFFF mean here? PCI bus kaput? Do we really want to stop trying after receiving that? What harm would it cause to keep on trying? We would return an error anyway after the timeout, right? >> + } while (time_before(jiffies, timeout)); >> >> - if (wait_limit < 0) { >> - ath10k_err("target stalled\n"); >> - ret = -EIO; >> + if (val != FW_IND_INITIALIZED) { >> + ath10k_err("failed to receive initialized event from target after %d ms: %d\n", >> + wait, val); > > `val` is u32 so it shouldn't be %d. %08x makes most sense I guess. I'll change it. Thanks for the review! -- Kalle Valo -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html