ath11k: add WMI calls to manually add/del/pause/resume TWT dialogs
PATCH v7 1/2 ath11k: add WMI calls to manually add/del/pause/resume TWT dialogs
From: John Crispin <[email protected]>
These calls are used for debugging and will be required for WFA certification tests.
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.5.0.1-01179-QCAHKSWPL_SILICONZ-1
---
Changes in V7
* Only rebased
Changes in V6
* new function ath11k_wmi_twt_add_dialog_event_status()
* re-added WMI_TAG_TWT_ADD_DIALOG_COMPLETE_EVENT in wmi_tlv_policies which was missed in V5.
Changes in V5
* Setting and resetting of twt_enabled in WMI functions
* ath11k_dbg() instead of ath11k_info() in ath11k_wmi_twt_add_dialog_event()
* Made WMI error messages more readable
drivers/net/wireless/ath/ath11k/core.h | 1 + drivers/net/wireless/ath/ath11k/wmi.c | 247 ++++++++++++++++++++++++- drivers/net/wireless/ath/ath11k/wmi.h | 114 ++++++++++++ 3 files changed, 358 insertions(+), 4 deletions(-)
drivers/net/wireless/ath/ath11k/core.h +1 -0
@@ -603,6 +603,7 @@ struct ath11k {struct completion finish_11d_ch_list;bool pending_11d;bool regdom_set_by_user; +u8 twt_enabled; };struct ath11k_band_cap {
drivers/net/wireless/ath/ath11k/wmi.c +243 -4
288 lines not on this page · raw message
drivers/net/wireless/ath/ath11k/wmi.h +114 -0
126 lines not on this page · raw message
Signature · 7 lines
2.31.1 -- ath11k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath11k
PATCH v7 2/2 ath11k: add debugfs for TWT debug calls
From: John Crispin <[email protected]>
New debugfs files to manually add/delete/pause/resume TWT dialogs for test/debug purposes.
The debugfs files expect the following parameters
(1) Add dialog
echo '<Peer_MAC> <Dialog_ID> <Wake_Interval_Usec> <Wake_Interval_Mantis>
<Wake_Duration_Usec> <First_SP_Offset> <TWT_Command> <1:Broadcast /0:Individual> <1:Triggered / 0:Untriggered> <1:Unannounced /0:Announced> <1:Protected / 0:Unprotected>' > /sys/kernel/debug/ieee80211/phyX/netdev:wlanX/twt/add_dialog
Example (Non-triggered and un-announced):
echo '00:03:7F:20:13:52 1 102400 100 30720 20480 4 0 0 1 0' >
/sys/kernel/debug/ieee80211/phy0/netdev:wlan0/twt/add_dialog
(2) Delete dialog
echo '<Peer_MAC> <Dialog_ID>' >
/sys/kernel/debug/ieee80211/phyX/netdev:wlanX/twt/del_dialog
(3) Pause dialog
echo '<Peer_MAC> <Dialog_ID>' >
/sys/kernel/debug/ieee80211/phyX/netdev:wlanX/twt/pause_dialog
(4) Resume dialog
echo '<Peer_MAC> <Dialog_ID> <SP_Offset_Usec> <Next_TWT_Size>' >
/sys/kernel/debug/ieee80211/phyX/netdev:wlanX/twt/resume_dialog
Example:
echo '00:03:7F:20:13:52 1 2000000 3' >
/sys/kernel/debug/ieee80211/phy0/netdev:wlan0/twt/resume_dialog
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.5.0.1-01179-QCAHKSWPL_SILICONZ-1
---
Changes in V7
* Only rebased
Changes in V6
* Moved all functions from debug.c to debugfs.c
* ath11k_debugfs_add_interface() returns int instead of void
Changes in V5
* TWT directory created during ath11k_mac_op_add_interface() instead of during TWT enable command.
* File write operation check for twt_enabled.
* Used CONFIG_ATH11K_DEBUGFS instead of CONFIG_MAC80211_DEBUGFS.
* Example commands in commit description.
drivers/net/wireless/ath/ath11k/core.h | 3 + drivers/net/wireless/ath/ath11k/debugfs.c | 222 ++++++++++++++++++++++ drivers/net/wireless/ath/ath11k/debugfs.h | 14 +- drivers/net/wireless/ath/ath11k/mac.c | 7 + 4 files changed, 245 insertions(+), 1 deletion(-)
drivers/net/wireless/ath/ath11k/core.h +3 -0
@@ -263,6 +263,9 @@ struct ath11k_vif {bool bcca_zero_sent;bool do_not_send_tmpl;struct ieee80211_chanctx_conf chanctx; +#ifdef CONFIG_ATH11K_DEBUGFS +struct dentry *debugfs_twt; +#endif /* CONFIG_ATH11K_DEBUGFS */ };struct ath11k_vif_iter {
drivers/net/wireless/ath/ath11k/debugfs.c +222 -0
225 lines not on this page · raw message
drivers/net/wireless/ath/ath11k/debugfs.h +13 -1
@@ -151,6 +151,9 @@ static inline int ath11k_debugfs_rx_filter(struct ath11k *ar) return ar->debug.rx_filter; } +int ath11k_debugfs_add_interface (struct ath11k_vif *arvif); +void ath11k_debugfs_remove_interface (struct ath11k_vif *arvif); +#else static inline int ath11k_debugfs_soc_create (struct ath11k_base *ab) {
@@ -224,6 +227,15 @@ static inline int ath11k_debugfs_get_fw_stats(struct ath11k *ar,return 0 ; } -#endif /* CONFIG_MAC80211_DEBUGFS*/ +static inline int ath11k_debugfs_add_interface (struct ath11k_vif *arvif) +{ +return 0 ; +} + +static inline void ath11k_debugfs_remove_interface (struct ath11k_vif *arvif) +{ +} + +#endif /* CONFIG_ATH11K_DEBUGFS*/ #endif /* _ATH11K_DEBUGFS_H_ */
drivers/net/wireless/ath/ath11k/mac.c +7 -0
@@ -6341,6 +6341,10 @@ static int ath11k_mac_op_add_interface(struct ieee80211_hw *hw, } } + ret =ath11k_debugfs_add_interface (arvif); +if (ret) + goto err_peer_del; +mutex_unlock (&ar->conf_mutex);return 0 ;
@@ -6375,6 +6379,7 @@ static int ath11k_mac_op_add_interface(struct ieee80211_hw *hw,spin_unlock_bh (&ar->data_lock); err: +ath11k_debugfs_remove_interface (arvif);mutex_unlock (&ar->conf_mutex);return ret;
@@ -6473,6 +6478,8 @@ static void ath11k_mac_op_remove_interface(struct ieee80211_hw *hw,/* Recalc txpower for remaining vdev */ ath11k_mac_txpower_recalc (ar); +ath11k_debugfs_remove_interface (arvif); +/* TODO: recal traffic pause state based on the available vdevs */ mutex_unlock (&ar->conf_mutex);
Signature · 7 lines
2.31.1 -- ath11k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath11k
Quoted 8 lines · Aloka Dixit
From: John Crispin <[email protected]>
These calls are used for debugging and will be required for WFA certification tests.
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.5.0.1-01179-QCAHKSWPL_SILICONZ-1
Signed-off-by John Crispin <[email protected]>Signed-off-by Aloka Dixit <[email protected]>
Fails to apply, please rebase.
error: patch failed: drivers/net/wireless/ath/ath11k/core.h:603
error: drivers/net/wireless/ath/ath11k/core.h: patch does not apply stg import: Diff does not apply cleanly
2 patches set to Changes Requested.
12711826 [V7,1/2] ath11k: add WMI calls to manually add/del/pause/resume TWT dialogs 12711825 [V7,2/2] ath11k: add debugfs for TWT debug calls
Signature · 3 lines
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches