Skip to content

Commit

Permalink
ath10k: Improve beacon tx status for 4.20 kernel.
Browse files Browse the repository at this point in the history
Signed-off-by: Ben Greear <greearb@candelatech.com>
  • Loading branch information
greearb committed Mar 29, 2019
1 parent be5c21a commit a2aec62
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 5 deletions.
9 changes: 8 additions & 1 deletion ath10k-4.20/debug.c
Expand Up @@ -1220,11 +1220,18 @@ static ssize_t ath10k_read_debug_level(struct file *file,
"WMI-PRINT: 0x2000\n"
"PCI-PS: 0x4000\n"
"AHB: 0x8000\n"
"SDIO: 0x10000\n"
"SDIO_DUMP: 0x20000\n"
"USB: 0x40000\n"
"USB_BULK: 0x80000\n"
"SNOC: 0x100000\n"
"QMI: 0x200000\n"
"BEACONS: 0x8000000\n"
"NO-FW-DBGLOG:0x10000000\n"
"MAC2: 0x20000000\n"
"INFO-AS-DBG: 0x40000000\n"
"FW: 0x80000000\n"
"ALL: 0xFFFFFFFF\n";
"ALL: 0xEFFFFFFF\n";
char wbuf[sizeof(buf) + 60];
sz = snprintf(wbuf, sizeof(wbuf), "Current debug level: 0x%x\n\n%s",
ath10k_debug_mask, buf);
Expand Down
1 change: 1 addition & 0 deletions ath10k-4.20/debug.h
Expand Up @@ -49,6 +49,7 @@ enum ath10k_debug_mask {
ATH10K_DBG_USB_BULK = 0x00080000,
ATH10K_DBG_SNOC = 0x00100000,
ATH10K_DBG_QMI = 0x00200000,
ATH10K_DBG_BEACON = 0x08000000, /* Print out beacon debug info */
ATH10K_DBG_NO_DBGLOG = 0x10000000, /* Don't print DBGLOG firmware hex messages in kernel logs. */
ATH10K_DBG_MAC2 = 0x20000000, /* more verbose MAC debugging */
ATH10K_DBG_INFO_AS_DBG = 0x40000000,
Expand Down
13 changes: 10 additions & 3 deletions ath10k-4.20/wmi.c
Expand Up @@ -1887,6 +1887,9 @@ static void ath10k_wmi_tx_beacon_nowait(struct ath10k_vif *arvif)
cb->paddr,
dtim_zero,
deliver_cab);
ath10k_dbg(ar, ATH10K_DBG_BEACON,
"wmi event beacon send, vdev-id: %u rv: %d\n",
arvif->vdev_id, ret);

spin_lock_bh(&ar->data_lock);

Expand Down Expand Up @@ -5987,6 +5990,7 @@ static void ath10k_wmi_event_beacon_tx(struct ath10k *ar, struct sk_buff *skb)
struct ath10k_vif *arvif;
const struct wmi_beacon_tx_event *ev;
u32 vdev_id;
u32 status;

spin_lock_bh(&ar->data_lock);

Expand All @@ -5996,10 +6000,13 @@ static void ath10k_wmi_event_beacon_tx(struct ath10k *ar, struct sk_buff *skb)
goto exit;

vdev_id = __le32_to_cpu(ev->vdev_id);
status = __le32_to_cpu(ev->tx_status);

/*ath10k_dbg(ar, ATH10K_DBG_WMI,
"wmi event beacon-tx-complete, vdev-id: %u completion-status: 0x%x\n",
vdev_id, __le32_to_cpu(ev->tx_status));*/
ath10k_dbg(ar, ATH10K_DBG_BEACON,
"wmi event beacon-tx-complete, vdev-id: %u completion-status: 0x%x (%s) tried: %d failed: %d ratecode: 0x%x rateflags: 0x%x tsFlags: 0x%x\n",
vdev_id, status,
status == 0 ? "OK" : (status == 1 ? "XRETRY" : (status == 2 ? "DROP" : "UNKNOWN")),
ev->mpdus_tried, ev->mpdus_failed, ev->tx_rate_code, ev->tx_rate_flags, ev->tsFlags);

arvif = ath10k_get_arvif(ar, vdev_id);
if (!arvif) {
Expand Down
8 changes: 7 additions & 1 deletion ath10k-4.20/wmi.h
Expand Up @@ -6232,7 +6232,13 @@ struct wmi_bcn_info {
struct wmi_beacon_tx_event {
__le32 vdev_id;
__le32 tx_status;
__le32 future[4];
u8 mpdus_tried;
u8 mpdus_failed;
u8 tx_rate_code;
u8 tx_rate_flags;
u8 tsFlags; /* WHAL_TXS_FLAG_TSF_TIME_FILTERED, etc */
u8 future8[3];
__le32 future[2];
};

struct wmi_host_swba_event {
Expand Down

0 comments on commit a2aec62

Please sign in to comment.