[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