[PATCH v4 3/4] wifi: ath11k: factory test mode support
Kalle Valo
kvalo at kernel.org
Thu Jun 1 03:23:29 PDT 2023
Raj Kumar Bhagat <quic_rajkbhag at quicinc.com> writes:
> From: Govindaraj Saminathan <quic_gsaminat at quicinc.com>
>
> Add support to process factory test mode commands(FTM) for calibration.
> By default firmware start with NORMAL mode and to process the FTM commands
> firmware needs to be restarted in FTM mode using module parameter ftm_mode.
> The pre-request is all the radios should be down before starting the test.
>
> When start command ATH11K_TM_CMD_TESTMODE_START is received, ar state
> is set to Test Mode. If the FTM command or event length is greater
> than 256 bytes, it will be broken down into multiple segments and
> encoded with TLV header if it is segmented commands, else it is sent
> to firmware as it is.
>
> On receiving UTF event from firmware, if it is segmented event, the driver
> will wait until it receives all the segments and notify the complete
> data to user application. In case the segmented sequence are missed or
> lost from the firmware, driver will skip the already received partial data.
>
> In case of unsegmented UTF event from firmware, driver notifies the
> data to the user application as it comes. Applications handles
> the data further.
>
> Command to boot in ftm mode:
>
> insmod ath11k ftm_mode=1
>
> Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
>
> Signed-off-by: Govindaraj Saminathan <quic_gsaminat at quicinc.com>
> Co-developed-by: Sowmiya Sree Elavalagan <quic_ssreeela at quicinc.com>
> Signed-off-by: Sowmiya Sree Elavalagan <quic_ssreeela at quicinc.com>
> Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag at quicinc.com>
> Signed-off-by: Kalle Valo <quic_kvalo at quicinc.com>
[...]
> --- a/drivers/net/wireless/ath/ath11k/testmode.h
> +++ b/drivers/net/wireless/ath/ath11k/testmode.h
> @@ -8,11 +8,16 @@
>
> #ifdef CONFIG_NL80211_TESTMODE
>
> +void ath11k_tm_wmi_event(struct ath11k_base *ab, u32 cmd_id, struct sk_buff *skb);
> int ath11k_tm_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
> void *data, int len);
>
> #else
>
> +void ath11k_tm_wmi_event(struct ath11k_base *ab, u32 cmd_id, struct sk_buff *skb)
> +{
> +}
> +
This introduced an warning and to fix it I changed it to static inline function.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
More information about the ath11k
mailing list