On 6/16/2024 10:29 PM, Aaradhana Sahu wrote: > Add support to process factory test mode commands(FTM) for calibration. > By default firmware start with MISSION 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. > > All ath12k test mode interface related commands specified in enum > ath_tm_cmd. > > When start command ATH_TM_CMD_TESTMODE_START is received, ar state > is set to test Mode and FTM daemon sends test mode command to wifi > driver via cfg80211. Wifi driver sends these command to firmware as > wmi events. If it is segmented commands it will be broken down into > multiple segments and encoded with TLV header else it is sent to > firmware as it is. > > Firmware response via UTF events, wifi driver creates skb and send > to cfg80211, cfg80211 sends firmware response to FTM daemon via > netlink message. > > Command to boot in ftm mode > insmod ath12k ftm_mode=1 > > Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.1.1-00210-QCAHKSWPL_SILICONZ-1 > > Signed-off-by: Aaradhana Sahu <quic_aarasahu@xxxxxxxxxxx> > --- ... > 11 files changed, 560 insertions(+), 8 deletions(-) > create mode 100644 drivers/net/wireless/ath/ath12k/testmode.c ... > + ftm_cmd->seg_hdr.segmentinfo = le32_encode_bits(num_segments, > + ATH12K_FTM_SEGHDR_TOTAL_SEGMENTS) | > + le32_encode_bits(segnumber, > + ATH12K_FTM_SEGHDR_CURRENT_SEQ); ath12k-check warns: drivers/net/wireless/ath/ath12k/testmode.c:265: line length of 99 exceeds 90 columns drivers/net/wireless/ath/ath12k/testmode.c:267: line length of 95 exceeds 90 columns suggest splitting the first line at the = ftm_cmd->seg_hdr.segmentinfo = le32_encode_bits(num_segments, ATH12K_FTM_SEGHDR_TOTAL_SEGMENTS) | le32_encode_bits(segnumber, ATH12K_FTM_SEGHDR_CURRENT_SEQ);