diff options
author | Kalle Valo <kvalo@qca.qualcomm.com> | 2013-09-01 10:02:07 +0300 |
---|---|---|
committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2013-09-03 09:49:08 +0300 |
commit | 3aebe54b1c2158bd20c361501de7785c51c65dbe (patch) | |
tree | 933569a7e7d5327d369c130900939ac1ff81b90c /drivers/net/wireless/ath/ath10k/pci.c | |
parent | a40d3e420d50156b7a43e66d5f5b40c444ebc5da (diff) | |
download | op-kernel-dev-3aebe54b1c2158bd20c361501de7785c51c65dbe.zip op-kernel-dev-3aebe54b1c2158bd20c361501de7785c51c65dbe.tar.gz |
ath10k: convert ath10k_pci_wake() to return
We should not try to access hw if wakeup fails so add
proper error checking for that. Also add the timeout lenght
to the warning message.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/pci.c')
-rw-r--r-- | drivers/net/wireless/ath/ath10k/pci.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath/ath10k/pci.c b/drivers/net/wireless/ath/ath10k/pci.c index e0cf75f..29ccd04 100644 --- a/drivers/net/wireless/ath/ath10k/pci.c +++ b/drivers/net/wireless/ath/ath10k/pci.c @@ -537,7 +537,7 @@ static void ath10k_pci_wait(struct ath10k *ar) ath10k_warn("Unable to wakeup target\n"); } -void ath10k_do_pci_wake(struct ath10k *ar) +int ath10k_do_pci_wake(struct ath10k *ar) { struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); void __iomem *pci_addr = ar_pci->mem; @@ -553,18 +553,19 @@ void ath10k_do_pci_wake(struct ath10k *ar) atomic_inc(&ar_pci->keep_awake_count); if (ar_pci->verified_awake) - return; + return 0; for (;;) { if (ath10k_pci_target_is_awake(ar)) { ar_pci->verified_awake = true; - break; + return 0; } if (tot_delay > PCIE_WAKE_TIMEOUT) { - ath10k_warn("target takes too long to wake up (awake count %d)\n", + ath10k_warn("target took longer %d us to wake up (awake count %d)\n", + PCIE_WAKE_TIMEOUT, atomic_read(&ar_pci->keep_awake_count)); - break; + return -ETIMEDOUT; } udelay(curr_delay); |