[PATCH 3/4] wifi: mt76: mt7915: add full system reset into debugfs

Ben Greear greearb at candelatech.com
Tue Nov 8 11:15:30 PST 2022


On 11/8/22 11:02 AM, Ryder Lee wrote:
> Trigger firmware crash and enable full system recovery through debugfs.
> This also renames knob "fw_ser" to a clear-cut name "sys_recovery".
> 
> Signed-off-by: Ryder Lee <ryder.lee at mediatek.com>
> ---
>   .../wireless/mediatek/mt76/mt7915/debugfs.c   | 51 +++++++++++++++----
>   .../net/wireless/mediatek/mt76/mt7915/mac.c   |  5 ++
>   .../net/wireless/mediatek/mt76/mt7915/mcu.h   |  2 +
>   .../wireless/mediatek/mt76/mt7915/mt7915.h    |  2 +
>   .../net/wireless/mediatek/mt76/mt7915/regs.h  |  4 ++
>   5 files changed, 55 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
> index e1d15394a621..56320c5da499 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
> @@ -46,8 +46,8 @@ DEFINE_DEBUGFS_ATTRIBUTE(fops_implicit_txbf, mt7915_implicit_txbf_get,
>   
>   /* test knob of system error recovery */
>   static ssize_t
> -mt7915_fw_ser_set(struct file *file, const char __user *user_buf,
> -		  size_t count, loff_t *ppos)
> +mt7915_sys_recovery_set(struct file *file, const char __user *user_buf,
> +			size_t count, loff_t *ppos)
>   {
>   	struct mt7915_phy *phy = file->private_data;
>   	struct mt7915_dev *dev = phy->dev;
> @@ -71,8 +71,18 @@ mt7915_fw_ser_set(struct file *file, const char __user *user_buf,
>   		return -EINVAL;
>   
>   	switch (val) {
> +	/*
> +	 * 0: grab firmware current SER state.
> +	 * 1: trigger & enable system error L1 recovery.
> +	 * 2: trigger & enable system error L2 recovery.
> +	 * 3: trigger & enable system error L3 rx abort.
> +	 * 4: trigger & enable system error L3 tx abort
> +	 * 5: trigger & enable system error L3 tx disable.
> +	 * 6: trigger & enable system error L3 bf recovery.
> +	 * 7: trigger & enable system error full recovery.
> +	 * 8: trigger firmware crash.
> +	 */

[snip]

> +	/* dump firmware SER statistics */
>   	desc += scnprintf(buff + desc, bufsz - desc,
>   			  "::E  R , SER_STATUS        = 0x%08x\n",
>   			  mt76_rr(dev, MT_SWDEF_SER_STATS));
> @@ -139,15 +167,19 @@ mt7915_fw_ser_get(struct file *file, char __user *user_buf,
>   	desc += scnprintf(buff + desc, bufsz - desc,
>   			  "::E  R , SER_LMAC_WISR7_B1 = 0x%08x\n",
>   			  mt76_rr(dev, MT_SWDEF_LAMC_WISR7_BN1_STATS));
> +	desc += scnprintf(buff + desc, bufsz - desc,
> +			  "\nSYS_RESET_COUNT: WM %d, WA %d\n",
> +			  dev->recovery.wm_reset_count,
> +			  dev->recovery.wa_reset_count);

Consider printing out the text for what the various values that can be written to this
debugfs file do (ie, like the comments earlier in this patch)?

Thanks,
Ben


-- 
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc  http://www.candelatech.com




More information about the Linux-mediatek mailing list