Loading drivers/net/wireless/ath/ath.h +1 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ enum ath_bus_type { }; struct reg_dmn_pair_mapping { u16 regDmnEnum; u16 reg_domain; u16 reg_5ghz_ctl; u16 reg_2ghz_ctl; }; Loading drivers/net/wireless/ath/ath10k/core.c +31 −5 Original line number Diff line number Diff line Loading @@ -55,8 +55,7 @@ static void ath10k_send_suspend_complete(struct ath10k *ar) { ath10k_dbg(ATH10K_DBG_BOOT, "boot suspend complete\n"); ar->is_target_paused = true; wake_up(&ar->event_queue); complete(&ar->target_suspend); } static int ath10k_init_connect_htc(struct ath10k *ar) Loading Loading @@ -470,9 +469,13 @@ static int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name) if (index == ie_len) break; if (data[index] & (1 << bit)) if (data[index] & (1 << bit)) { ath10k_dbg(ATH10K_DBG_BOOT, "Enabling feature bit: %i\n", i); __set_bit(i, ar->fw_features); } } ath10k_dbg_dump(ATH10K_DBG_BOOT, "features", "", ar->fw_features, Loading Loading @@ -699,6 +702,7 @@ struct ath10k *ath10k_core_create(void *hif_priv, struct device *dev, init_completion(&ar->scan.started); init_completion(&ar->scan.completed); init_completion(&ar->scan.on_channel); init_completion(&ar->target_suspend); init_completion(&ar->install_key_done); init_completion(&ar->vdev_setup_done); Loading @@ -722,8 +726,6 @@ struct ath10k *ath10k_core_create(void *hif_priv, struct device *dev, INIT_WORK(&ar->wmi_mgmt_tx_work, ath10k_mgmt_over_wmi_tx_work); skb_queue_head_init(&ar->wmi_mgmt_tx_queue); init_waitqueue_head(&ar->event_queue); INIT_WORK(&ar->restart_work, ath10k_core_restart); return ar; Loading Loading @@ -856,10 +858,34 @@ int ath10k_core_start(struct ath10k *ar) } EXPORT_SYMBOL(ath10k_core_start); int ath10k_wait_for_suspend(struct ath10k *ar, u32 suspend_opt) { int ret; reinit_completion(&ar->target_suspend); ret = ath10k_wmi_pdev_suspend_target(ar, suspend_opt); if (ret) { ath10k_warn("could not suspend target (%d)\n", ret); return ret; } ret = wait_for_completion_timeout(&ar->target_suspend, 1 * HZ); if (ret == 0) { ath10k_warn("suspend timed out - target pause event never came\n"); return -ETIMEDOUT; } return 0; } void ath10k_core_stop(struct ath10k *ar) { lockdep_assert_held(&ar->conf_mutex); /* try to suspend target */ ath10k_wait_for_suspend(ar, WMI_PDEV_SUSPEND_AND_DISABLE_INTR); ath10k_debug_stop(ar); ath10k_htc_stop(&ar->htc); ath10k_htt_detach(&ar->htt); Loading drivers/net/wireless/ath/ath10k/core.h +41 −6 Original line number Diff line number Diff line Loading @@ -46,6 +46,18 @@ #define ATH10K_MAX_NUM_MGMT_PENDING 128 /* number of failed packets */ #define ATH10K_KICKOUT_THRESHOLD 50 /* * Use insanely high numbers to make sure that the firmware implementation * won't start, we have the same functionality already in hostapd. Unit * is seconds. */ #define ATH10K_KEEPALIVE_MIN_IDLE 3747 #define ATH10K_KEEPALIVE_MAX_IDLE 3895 #define ATH10K_KEEPALIVE_MAX_UNRESPONSIVE 3900 struct ath10k; struct ath10k_skb_cb { Loading @@ -61,6 +73,11 @@ struct ath10k_skb_cb { u8 frag_len; u8 pad_len; } __packed htt; struct { bool dtim_zero; bool deliver_cab; } bcn; } __packed; static inline struct ath10k_skb_cb *ATH10K_SKB_CB(struct sk_buff *skb) Loading Loading @@ -211,6 +228,18 @@ struct ath10k_peer { struct ieee80211_key_conf *keys[WMI_MAX_KEY_INDEX + 1]; }; struct ath10k_sta { struct ath10k_vif *arvif; /* the following are protected by ar->data_lock */ u32 changed; /* IEEE80211_RC_* */ u32 bw; u32 nss; u32 smps; struct work_struct update_wk; }; #define ATH10K_VDEV_SETUP_TIMEOUT_HZ (5*HZ) struct ath10k_vif { Loading @@ -222,10 +251,17 @@ struct ath10k_vif { u32 beacon_interval; u32 dtim_period; struct sk_buff *beacon; /* protected by data_lock */ bool beacon_sent; struct ath10k *ar; struct ieee80211_vif *vif; bool is_started; bool is_up; u32 aid; u8 bssid[ETH_ALEN]; struct work_struct wep_key_work; struct ieee80211_key_conf *wep_keys[WMI_MAX_KEY_INDEX + 1]; u8 def_wep_key_idx; Loading @@ -235,7 +271,6 @@ struct ath10k_vif { union { struct { u8 bssid[ETH_ALEN]; u32 uapsd; } sta; struct { Loading @@ -249,9 +284,6 @@ struct ath10k_vif { u32 noa_len; u8 *noa_data; } ap; struct { u8 bssid[ETH_ALEN]; } ibss; } u; u8 fixed_rate; Loading Loading @@ -355,8 +387,7 @@ struct ath10k { const struct ath10k_hif_ops *ops; } hif; wait_queue_head_t event_queue; bool is_target_paused; struct completion target_suspend; struct ath10k_bmi bmi; struct ath10k_wmi wmi; Loading Loading @@ -412,6 +443,9 @@ struct ath10k { /* valid during scan; needed for mgmt rx during scan */ struct ieee80211_channel *scan_channel; /* current operating channel definition */ struct cfg80211_chan_def chandef; int free_vdev_map; int monitor_vdev_id; bool monitor_enabled; Loading Loading @@ -470,6 +504,7 @@ struct ath10k *ath10k_core_create(void *hif_priv, struct device *dev, void ath10k_core_destroy(struct ath10k *ar); int ath10k_core_start(struct ath10k *ar); int ath10k_wait_for_suspend(struct ath10k *ar, u32 suspend_opt); void ath10k_core_stop(struct ath10k *ar); int ath10k_core_register(struct ath10k *ar, u32 chip_id); void ath10k_core_unregister(struct ath10k *ar); Loading drivers/net/wireless/ath/ath10k/htt_rx.c +22 −13 Original line number Diff line number Diff line Loading @@ -324,7 +324,7 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt, msdu->len + skb_tailroom(msdu), DMA_FROM_DEVICE); ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "htt rx: ", ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "htt rx pop: ", msdu->data, msdu->len + skb_tailroom(msdu)); rx_desc = (struct htt_rx_desc *)msdu->data; Loading Loading @@ -417,8 +417,8 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt, next->len + skb_tailroom(next), DMA_FROM_DEVICE); ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "htt rx: ", next->data, ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "htt rx chained: ", next->data, next->len + skb_tailroom(next)); skb_trim(next, 0); Loading @@ -430,12 +430,6 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt, msdu_chaining = 1; } if (msdu_len > 0) { /* This may suggest FW bug? */ ath10k_warn("htt rx msdu len not consumed (%d)\n", msdu_len); } last_msdu = __le32_to_cpu(rx_desc->msdu_end.info0) & RX_MSDU_END_INFO0_LAST_MSDU; Loading Loading @@ -751,7 +745,7 @@ static void ath10k_htt_rx_msdu(struct ath10k_htt *htt, struct htt_rx_info *info) /* This shouldn't happen. If it does than it may be a FW bug. */ if (skb->next) { ath10k_warn("received chained non A-MSDU frame\n"); ath10k_warn("htt rx received chained non A-MSDU frame\n"); ath10k_htt_rx_free_msdu_chain(skb->next); skb->next = NULL; } Loading Loading @@ -937,6 +931,8 @@ static void ath10k_htt_rx_handler(struct ath10k_htt *htt, } if (ath10k_htt_rx_has_decrypt_err(msdu_head)) { ath10k_dbg(ATH10K_DBG_HTT, "htt rx dropping due to decrypt-err\n"); ath10k_htt_rx_free_msdu_chain(msdu_head); continue; } Loading @@ -945,12 +941,14 @@ static void ath10k_htt_rx_handler(struct ath10k_htt *htt, /* Skip mgmt frames while we handle this in WMI */ if (status == HTT_RX_IND_MPDU_STATUS_MGMT_CTRL) { ath10k_dbg(ATH10K_DBG_HTT, "htt rx mgmt ctrl\n"); ath10k_htt_rx_free_msdu_chain(msdu_head); continue; } if (status != HTT_RX_IND_MPDU_STATUS_OK && status != HTT_RX_IND_MPDU_STATUS_TKIP_MIC_ERR && status != HTT_RX_IND_MPDU_STATUS_ERR_INV_PEER && !htt->ar->monitor_enabled) { ath10k_dbg(ATH10K_DBG_HTT, "htt rx ignoring frame w/ status %d\n", Loading @@ -960,6 +958,8 @@ static void ath10k_htt_rx_handler(struct ath10k_htt *htt, } if (test_bit(ATH10K_CAC_RUNNING, &htt->ar->dev_flags)) { ath10k_dbg(ATH10K_DBG_HTT, "htt rx CAC running\n"); ath10k_htt_rx_free_msdu_chain(msdu_head); continue; } Loading @@ -967,7 +967,7 @@ static void ath10k_htt_rx_handler(struct ath10k_htt *htt, /* FIXME: we do not support chaining yet. * this needs investigation */ if (msdu_chaining) { ath10k_warn("msdu_chaining is true\n"); ath10k_warn("htt rx msdu_chaining is true\n"); ath10k_htt_rx_free_msdu_chain(msdu_head); continue; } Loading @@ -975,6 +975,15 @@ static void ath10k_htt_rx_handler(struct ath10k_htt *htt, info.skb = msdu_head; info.fcs_err = ath10k_htt_rx_has_fcs_err(msdu_head); info.mic_err = ath10k_htt_rx_has_mic_err(msdu_head); if (info.fcs_err) ath10k_dbg(ATH10K_DBG_HTT, "htt rx has FCS err\n"); if (info.mic_err) ath10k_dbg(ATH10K_DBG_HTT, "htt rx has MIC err\n"); info.signal = ATH10K_DEFAULT_NOISE_FLOOR; info.signal += rx->ppdu.combined_rssi; Loading Loading @@ -1095,7 +1104,7 @@ static void ath10k_htt_rx_frag_handler(struct ath10k_htt *htt, skb_trim(info.skb, info.skb->len - trim); ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "htt frag mpdu: ", ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "htt rx frag mpdu: ", info.skb->data, info.skb->len); ath10k_process_rx(htt->ar, &info); Loading @@ -1116,7 +1125,7 @@ void ath10k_htt_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb) if (!IS_ALIGNED((unsigned long)skb->data, 4)) ath10k_warn("unaligned htt message, expect trouble\n"); ath10k_dbg(ATH10K_DBG_HTT, "HTT RX, msg_type: 0x%0X\n", ath10k_dbg(ATH10K_DBG_HTT, "htt rx, msg_type: 0x%0X\n", resp->hdr.msg_type); switch (resp->hdr.msg_type) { case HTT_T2H_MSG_TYPE_VERSION_CONF: { Loading drivers/net/wireless/ath/ath10k/htt_tx.c +2 −2 Original line number Diff line number Diff line Loading @@ -460,9 +460,9 @@ int ath10k_htt_tx(struct ath10k_htt *htt, struct sk_buff *msdu) DMA_TO_DEVICE); } ath10k_dbg(ATH10K_DBG_HTT, "msdu 0x%llx\n", ath10k_dbg(ATH10K_DBG_HTT, "tx-msdu 0x%llx\n", (unsigned long long) ATH10K_SKB_CB(msdu)->paddr); ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "msdu: ", ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "tx-msdu: ", msdu->data, msdu->len); skb_put(txdesc, desc_len); Loading Loading
drivers/net/wireless/ath/ath.h +1 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ enum ath_bus_type { }; struct reg_dmn_pair_mapping { u16 regDmnEnum; u16 reg_domain; u16 reg_5ghz_ctl; u16 reg_2ghz_ctl; }; Loading
drivers/net/wireless/ath/ath10k/core.c +31 −5 Original line number Diff line number Diff line Loading @@ -55,8 +55,7 @@ static void ath10k_send_suspend_complete(struct ath10k *ar) { ath10k_dbg(ATH10K_DBG_BOOT, "boot suspend complete\n"); ar->is_target_paused = true; wake_up(&ar->event_queue); complete(&ar->target_suspend); } static int ath10k_init_connect_htc(struct ath10k *ar) Loading Loading @@ -470,9 +469,13 @@ static int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name) if (index == ie_len) break; if (data[index] & (1 << bit)) if (data[index] & (1 << bit)) { ath10k_dbg(ATH10K_DBG_BOOT, "Enabling feature bit: %i\n", i); __set_bit(i, ar->fw_features); } } ath10k_dbg_dump(ATH10K_DBG_BOOT, "features", "", ar->fw_features, Loading Loading @@ -699,6 +702,7 @@ struct ath10k *ath10k_core_create(void *hif_priv, struct device *dev, init_completion(&ar->scan.started); init_completion(&ar->scan.completed); init_completion(&ar->scan.on_channel); init_completion(&ar->target_suspend); init_completion(&ar->install_key_done); init_completion(&ar->vdev_setup_done); Loading @@ -722,8 +726,6 @@ struct ath10k *ath10k_core_create(void *hif_priv, struct device *dev, INIT_WORK(&ar->wmi_mgmt_tx_work, ath10k_mgmt_over_wmi_tx_work); skb_queue_head_init(&ar->wmi_mgmt_tx_queue); init_waitqueue_head(&ar->event_queue); INIT_WORK(&ar->restart_work, ath10k_core_restart); return ar; Loading Loading @@ -856,10 +858,34 @@ int ath10k_core_start(struct ath10k *ar) } EXPORT_SYMBOL(ath10k_core_start); int ath10k_wait_for_suspend(struct ath10k *ar, u32 suspend_opt) { int ret; reinit_completion(&ar->target_suspend); ret = ath10k_wmi_pdev_suspend_target(ar, suspend_opt); if (ret) { ath10k_warn("could not suspend target (%d)\n", ret); return ret; } ret = wait_for_completion_timeout(&ar->target_suspend, 1 * HZ); if (ret == 0) { ath10k_warn("suspend timed out - target pause event never came\n"); return -ETIMEDOUT; } return 0; } void ath10k_core_stop(struct ath10k *ar) { lockdep_assert_held(&ar->conf_mutex); /* try to suspend target */ ath10k_wait_for_suspend(ar, WMI_PDEV_SUSPEND_AND_DISABLE_INTR); ath10k_debug_stop(ar); ath10k_htc_stop(&ar->htc); ath10k_htt_detach(&ar->htt); Loading
drivers/net/wireless/ath/ath10k/core.h +41 −6 Original line number Diff line number Diff line Loading @@ -46,6 +46,18 @@ #define ATH10K_MAX_NUM_MGMT_PENDING 128 /* number of failed packets */ #define ATH10K_KICKOUT_THRESHOLD 50 /* * Use insanely high numbers to make sure that the firmware implementation * won't start, we have the same functionality already in hostapd. Unit * is seconds. */ #define ATH10K_KEEPALIVE_MIN_IDLE 3747 #define ATH10K_KEEPALIVE_MAX_IDLE 3895 #define ATH10K_KEEPALIVE_MAX_UNRESPONSIVE 3900 struct ath10k; struct ath10k_skb_cb { Loading @@ -61,6 +73,11 @@ struct ath10k_skb_cb { u8 frag_len; u8 pad_len; } __packed htt; struct { bool dtim_zero; bool deliver_cab; } bcn; } __packed; static inline struct ath10k_skb_cb *ATH10K_SKB_CB(struct sk_buff *skb) Loading Loading @@ -211,6 +228,18 @@ struct ath10k_peer { struct ieee80211_key_conf *keys[WMI_MAX_KEY_INDEX + 1]; }; struct ath10k_sta { struct ath10k_vif *arvif; /* the following are protected by ar->data_lock */ u32 changed; /* IEEE80211_RC_* */ u32 bw; u32 nss; u32 smps; struct work_struct update_wk; }; #define ATH10K_VDEV_SETUP_TIMEOUT_HZ (5*HZ) struct ath10k_vif { Loading @@ -222,10 +251,17 @@ struct ath10k_vif { u32 beacon_interval; u32 dtim_period; struct sk_buff *beacon; /* protected by data_lock */ bool beacon_sent; struct ath10k *ar; struct ieee80211_vif *vif; bool is_started; bool is_up; u32 aid; u8 bssid[ETH_ALEN]; struct work_struct wep_key_work; struct ieee80211_key_conf *wep_keys[WMI_MAX_KEY_INDEX + 1]; u8 def_wep_key_idx; Loading @@ -235,7 +271,6 @@ struct ath10k_vif { union { struct { u8 bssid[ETH_ALEN]; u32 uapsd; } sta; struct { Loading @@ -249,9 +284,6 @@ struct ath10k_vif { u32 noa_len; u8 *noa_data; } ap; struct { u8 bssid[ETH_ALEN]; } ibss; } u; u8 fixed_rate; Loading Loading @@ -355,8 +387,7 @@ struct ath10k { const struct ath10k_hif_ops *ops; } hif; wait_queue_head_t event_queue; bool is_target_paused; struct completion target_suspend; struct ath10k_bmi bmi; struct ath10k_wmi wmi; Loading Loading @@ -412,6 +443,9 @@ struct ath10k { /* valid during scan; needed for mgmt rx during scan */ struct ieee80211_channel *scan_channel; /* current operating channel definition */ struct cfg80211_chan_def chandef; int free_vdev_map; int monitor_vdev_id; bool monitor_enabled; Loading Loading @@ -470,6 +504,7 @@ struct ath10k *ath10k_core_create(void *hif_priv, struct device *dev, void ath10k_core_destroy(struct ath10k *ar); int ath10k_core_start(struct ath10k *ar); int ath10k_wait_for_suspend(struct ath10k *ar, u32 suspend_opt); void ath10k_core_stop(struct ath10k *ar); int ath10k_core_register(struct ath10k *ar, u32 chip_id); void ath10k_core_unregister(struct ath10k *ar); Loading
drivers/net/wireless/ath/ath10k/htt_rx.c +22 −13 Original line number Diff line number Diff line Loading @@ -324,7 +324,7 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt, msdu->len + skb_tailroom(msdu), DMA_FROM_DEVICE); ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "htt rx: ", ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "htt rx pop: ", msdu->data, msdu->len + skb_tailroom(msdu)); rx_desc = (struct htt_rx_desc *)msdu->data; Loading Loading @@ -417,8 +417,8 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt, next->len + skb_tailroom(next), DMA_FROM_DEVICE); ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "htt rx: ", next->data, ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "htt rx chained: ", next->data, next->len + skb_tailroom(next)); skb_trim(next, 0); Loading @@ -430,12 +430,6 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt, msdu_chaining = 1; } if (msdu_len > 0) { /* This may suggest FW bug? */ ath10k_warn("htt rx msdu len not consumed (%d)\n", msdu_len); } last_msdu = __le32_to_cpu(rx_desc->msdu_end.info0) & RX_MSDU_END_INFO0_LAST_MSDU; Loading Loading @@ -751,7 +745,7 @@ static void ath10k_htt_rx_msdu(struct ath10k_htt *htt, struct htt_rx_info *info) /* This shouldn't happen. If it does than it may be a FW bug. */ if (skb->next) { ath10k_warn("received chained non A-MSDU frame\n"); ath10k_warn("htt rx received chained non A-MSDU frame\n"); ath10k_htt_rx_free_msdu_chain(skb->next); skb->next = NULL; } Loading Loading @@ -937,6 +931,8 @@ static void ath10k_htt_rx_handler(struct ath10k_htt *htt, } if (ath10k_htt_rx_has_decrypt_err(msdu_head)) { ath10k_dbg(ATH10K_DBG_HTT, "htt rx dropping due to decrypt-err\n"); ath10k_htt_rx_free_msdu_chain(msdu_head); continue; } Loading @@ -945,12 +941,14 @@ static void ath10k_htt_rx_handler(struct ath10k_htt *htt, /* Skip mgmt frames while we handle this in WMI */ if (status == HTT_RX_IND_MPDU_STATUS_MGMT_CTRL) { ath10k_dbg(ATH10K_DBG_HTT, "htt rx mgmt ctrl\n"); ath10k_htt_rx_free_msdu_chain(msdu_head); continue; } if (status != HTT_RX_IND_MPDU_STATUS_OK && status != HTT_RX_IND_MPDU_STATUS_TKIP_MIC_ERR && status != HTT_RX_IND_MPDU_STATUS_ERR_INV_PEER && !htt->ar->monitor_enabled) { ath10k_dbg(ATH10K_DBG_HTT, "htt rx ignoring frame w/ status %d\n", Loading @@ -960,6 +958,8 @@ static void ath10k_htt_rx_handler(struct ath10k_htt *htt, } if (test_bit(ATH10K_CAC_RUNNING, &htt->ar->dev_flags)) { ath10k_dbg(ATH10K_DBG_HTT, "htt rx CAC running\n"); ath10k_htt_rx_free_msdu_chain(msdu_head); continue; } Loading @@ -967,7 +967,7 @@ static void ath10k_htt_rx_handler(struct ath10k_htt *htt, /* FIXME: we do not support chaining yet. * this needs investigation */ if (msdu_chaining) { ath10k_warn("msdu_chaining is true\n"); ath10k_warn("htt rx msdu_chaining is true\n"); ath10k_htt_rx_free_msdu_chain(msdu_head); continue; } Loading @@ -975,6 +975,15 @@ static void ath10k_htt_rx_handler(struct ath10k_htt *htt, info.skb = msdu_head; info.fcs_err = ath10k_htt_rx_has_fcs_err(msdu_head); info.mic_err = ath10k_htt_rx_has_mic_err(msdu_head); if (info.fcs_err) ath10k_dbg(ATH10K_DBG_HTT, "htt rx has FCS err\n"); if (info.mic_err) ath10k_dbg(ATH10K_DBG_HTT, "htt rx has MIC err\n"); info.signal = ATH10K_DEFAULT_NOISE_FLOOR; info.signal += rx->ppdu.combined_rssi; Loading Loading @@ -1095,7 +1104,7 @@ static void ath10k_htt_rx_frag_handler(struct ath10k_htt *htt, skb_trim(info.skb, info.skb->len - trim); ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "htt frag mpdu: ", ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "htt rx frag mpdu: ", info.skb->data, info.skb->len); ath10k_process_rx(htt->ar, &info); Loading @@ -1116,7 +1125,7 @@ void ath10k_htt_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb) if (!IS_ALIGNED((unsigned long)skb->data, 4)) ath10k_warn("unaligned htt message, expect trouble\n"); ath10k_dbg(ATH10K_DBG_HTT, "HTT RX, msg_type: 0x%0X\n", ath10k_dbg(ATH10K_DBG_HTT, "htt rx, msg_type: 0x%0X\n", resp->hdr.msg_type); switch (resp->hdr.msg_type) { case HTT_T2H_MSG_TYPE_VERSION_CONF: { Loading
drivers/net/wireless/ath/ath10k/htt_tx.c +2 −2 Original line number Diff line number Diff line Loading @@ -460,9 +460,9 @@ int ath10k_htt_tx(struct ath10k_htt *htt, struct sk_buff *msdu) DMA_TO_DEVICE); } ath10k_dbg(ATH10K_DBG_HTT, "msdu 0x%llx\n", ath10k_dbg(ATH10K_DBG_HTT, "tx-msdu 0x%llx\n", (unsigned long long) ATH10K_SKB_CB(msdu)->paddr); ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "msdu: ", ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "tx-msdu: ", msdu->data, msdu->len); skb_put(txdesc, desc_len); Loading