diff options
Diffstat (limited to 'package/kernel/mac80211/patches/328-ath10k-log-when-longer-bmi-cmds-happen.patch')
-rw-r--r-- | package/kernel/mac80211/patches/328-ath10k-log-when-longer-bmi-cmds-happen.patch | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/package/kernel/mac80211/patches/328-ath10k-log-when-longer-bmi-cmds-happen.patch b/package/kernel/mac80211/patches/328-ath10k-log-when-longer-bmi-cmds-happen.patch deleted file mode 100644 index 500f72ff98..0000000000 --- a/package/kernel/mac80211/patches/328-ath10k-log-when-longer-bmi-cmds-happen.patch +++ /dev/null @@ -1,74 +0,0 @@ -From: Ben Greear <greearb@candelatech.com> -Date: Wed, 31 May 2017 14:21:21 +0300 -Subject: [PATCH] ath10k: log when longer bmi cmds happen - -This lets one have a clue that maybe timeouts are happening -when we just aren't waiting long enough. - -Signed-off-by: Ben Greear <greearb@candelatech.com> -Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com> ---- - ---- a/drivers/net/wireless/ath/ath10k/pci.c -+++ b/drivers/net/wireless/ath/ath10k/pci.c -@@ -101,7 +101,8 @@ static int ath10k_pci_init_irq(struct at - static int ath10k_pci_deinit_irq(struct ath10k *ar); - static int ath10k_pci_request_irq(struct ath10k *ar); - static void ath10k_pci_free_irq(struct ath10k *ar); --static int ath10k_pci_bmi_wait(struct ath10k_ce_pipe *tx_pipe, -+static int ath10k_pci_bmi_wait(struct ath10k *ar, -+ struct ath10k_ce_pipe *tx_pipe, - struct ath10k_ce_pipe *rx_pipe, - struct bmi_xfer *xfer); - static int ath10k_pci_qca99x0_chip_reset(struct ath10k *ar); -@@ -1843,7 +1844,7 @@ int ath10k_pci_hif_exchange_bmi_msg(stru - if (ret) - goto err_resp; - -- ret = ath10k_pci_bmi_wait(ce_tx, ce_rx, &xfer); -+ ret = ath10k_pci_bmi_wait(ar, ce_tx, ce_rx, &xfer); - if (ret) { - u32 unused_buffer; - unsigned int unused_nbytes; -@@ -1910,23 +1911,37 @@ static void ath10k_pci_bmi_recv_data(str - xfer->rx_done = true; - } - --static int ath10k_pci_bmi_wait(struct ath10k_ce_pipe *tx_pipe, -+static int ath10k_pci_bmi_wait(struct ath10k *ar, -+ struct ath10k_ce_pipe *tx_pipe, - struct ath10k_ce_pipe *rx_pipe, - struct bmi_xfer *xfer) - { - unsigned long timeout = jiffies + BMI_COMMUNICATION_TIMEOUT_HZ; -+ unsigned long started = jiffies; -+ unsigned long dur; -+ int ret; - - while (time_before_eq(jiffies, timeout)) { - ath10k_pci_bmi_send_done(tx_pipe); - ath10k_pci_bmi_recv_data(rx_pipe); - -- if (xfer->tx_done && (xfer->rx_done == xfer->wait_for_resp)) -- return 0; -+ if (xfer->tx_done && (xfer->rx_done == xfer->wait_for_resp)) { -+ ret = 0; -+ goto out; -+ } - - schedule(); - } - -- return -ETIMEDOUT; -+ ret = -ETIMEDOUT; -+ -+out: -+ dur = jiffies - started; -+ if (dur > HZ) -+ ath10k_dbg(ar, ATH10K_DBG_BMI, -+ "bmi cmd took %lu jiffies hz %d ret %d\n", -+ dur, HZ, ret); -+ return ret; - } - - /* |