linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kalle Valo <kvalo@kernel.org>
To: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
Cc: <ath11k@lists.infradead.org>, <linux-wireless@vger.kernel.org>,
	Govindaraj Saminathan <quic_gsaminat@quicinc.com>,
	Sowmiya Sree Elavalagan <quic_ssreeela@quicinc.com>
Subject: Re: [PATCH 1/2] wifi: ath11k: factory test mode support
Date: Mon, 13 Mar 2023 11:53:01 +0200	[thread overview]
Message-ID: <87mt4hnfk2.fsf@kernel.org> (raw)
In-Reply-To: <20230213130854.2473-2-quic_rajkbhag@quicinc.com> (Raj Kumar Bhagat's message of "Mon, 13 Feb 2023 18:38:53 +0530")

Raj Kumar Bhagat <quic_rajkbhag@quicinc.com> writes:

> From: Govindaraj Saminathan <quic_gsaminat@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@quicinc.com>
> Co-developed-by: Sowmiya Sree Elavalagan <quic_ssreeela@quicinc.com>
> Signed-off-by: Sowmiya Sree Elavalagan <quic_ssreeela@quicinc.com>
> Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>

[...]

> --- a/drivers/net/wireless/ath/ath11k/core.c
> +++ b/drivers/net/wireless/ath/ath11k/core.c
> @@ -1,7 +1,7 @@
>  // SPDX-License-Identifier: BSD-3-Clause-Clear
>  /*
>   * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
> - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
> + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
>   */
>  
>  #include <linux/module.h>
> @@ -32,6 +32,10 @@ module_param_named(frame_mode, ath11k_frame_mode, uint, 0644);
>  MODULE_PARM_DESC(frame_mode,
>  		 "Datapath frame mode (0: raw, 1: native wifi (default), 2: ethernet)");
>  
> +unsigned int ath11k_ftm_mode;
> +module_param_named(ftm_mode, ath11k_ftm_mode, uint, 0444);
> +MODULE_PARM_DESC(ftm_mode, "Boots up in factory test mode");

I changed this to bool as there's only two values, true or false.

> @@ -1362,6 +1366,11 @@ static int ath11k_core_soc_create(struct ath11k_base *ab)
>  {
>  	int ret;
>  
> +	if (ath11k_ftm_mode) {
> +		ab->fw_mode = ATH11K_FIRMWARE_MODE_FTM;
> +		ath11k_info(ab, "Booting in ftm mode\n");
> +	}

I changed this to:

"Booting in factory test mode\n"

> @@ -1822,6 +1832,10 @@ static void ath11k_core_post_reconfigure_recovery(struct ath11k_base *ab)
>  			ath11k_warn(ab,
>  				    "device is wedged, will not restart radio %d\n", i);
>  			break;
> +		case ATH11K_STATE_TM:
> +			ath11k_warn(ab, "fw mode reset done radio %d\n", i);
> +			break;

What is this warning supposed to tell the user? Should it be a debug
message instead?

> @@ -530,6 +531,7 @@ enum ath11k_state {
>  	ATH11K_STATE_RESTARTING,
>  	ATH11K_STATE_RESTARTED,
>  	ATH11K_STATE_WEDGED,
> +	ATH11K_STATE_TM,

For consistency I renamed this to ATH11K_STATE_FTM.

> --- a/drivers/net/wireless/ath/ath11k/debug.h
> +++ b/drivers/net/wireless/ath/ath11k/debug.h
> @@ -1,6 +1,7 @@
>  /* SPDX-License-Identifier: BSD-3-Clause-Clear */
>  /*
>   * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
> + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
>   */
>  
>  #ifndef _ATH11K_DEBUG_H_
> @@ -33,6 +34,7 @@ __printf(2, 3) void ath11k_err(struct ath11k_base *ab, const char *fmt, ...);
>  __printf(2, 3) void ath11k_warn(struct ath11k_base *ab, const char *fmt, ...);
>  
>  extern unsigned int ath11k_debug_mask;
> +extern unsigned int ath11k_ftm_mode;

As the variable is is in core.c I moved this to core.h.

> @@ -5838,6 +5841,11 @@ static int ath11k_mac_op_start(struct ieee80211_hw *hw)
>  	struct ath11k_pdev *pdev = ar->pdev;
>  	int ret;
>  
> +	if (ath11k_ftm_mode) {
> +		ath11k_err(ab, "fail to start mac operations in ftm mode\n");

I changed this to:

ath11k_warn(ab, "mac operations not supported in factory test mode\n");

> +		return -EWOULDBLOCK;

EWOULDBLOCK is defined as EAGAIN, so it doesn't look approriate here. I
changed it to EOPNOTSUPP.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

  parent reply	other threads:[~2023-03-13  9:53 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-13 13:08 [PATCH 0/2] ath11k: factory test mode support Raj Kumar Bhagat
2023-02-13 13:08 ` [PATCH 1/2] wifi: " Raj Kumar Bhagat
2023-02-27 13:03   ` Kalle Valo
2023-03-13  9:53   ` Kalle Valo [this message]
2023-04-20  9:54     ` Raj Kumar Bhagat
2023-03-13 12:17   ` Kalle Valo
2023-04-20 10:02     ` Raj Kumar Bhagat
2023-02-13 13:08 ` [PATCH 2/2] wifi: ath11k: Allow ath11k to boot without caldata in ftm mode Raj Kumar Bhagat
2023-02-16 14:56 ` [PATCH 0/2] ath11k: factory test mode support Vasanthakumar Thiagarajan
2023-03-13 12:21 ` Kalle Valo
2023-03-28  4:46   ` Raj Kumar Bhagat
2023-05-12  9:05     ` Kalle Valo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87mt4hnfk2.fsf@kernel.org \
    --to=kvalo@kernel.org \
    --cc=ath11k@lists.infradead.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=quic_gsaminat@quicinc.com \
    --cc=quic_rajkbhag@quicinc.com \
    --cc=quic_ssreeela@quicinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).