Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp1021805pxb; Fri, 1 Oct 2021 01:24:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwCT2fiF2aOrl19e7OLIQxjnG5zsdA05VzYzwGi1D9d0AErT2u4wE/xtFjW0LSMWhmuGv+A X-Received: by 2002:a63:1f24:: with SMTP id f36mr8823646pgf.6.1633076666990; Fri, 01 Oct 2021 01:24:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633076666; cv=none; d=google.com; s=arc-20160816; b=yBq93d3eyZoKhyn4GZ1LQfNo38uzP88mpZslUYQAZ0eNDkmnC4IfsEoVuS35l85UYd L6y/tAVQ69NqHfSnZgfvBsk2libEdqJQ9LY4nZavwbZhHzVhwTPWgCz+bMoQB8XRnDT4 3/dT48m5NQ/9CgJ/EJQ+ornCUwOG1Yy6Nc+FBzKc6BZhwJAz+HvBmB7cZdtOP0qTjXWN lCXcQI+p7m9zsdEv9mLPLwOrcBzOK5dMe8HVI9SMti09X8uoCPqm4dsMZzeMEdLQvg22 ts+Y/FhsPBiF0zVin80+6vEsoRcJ93Y2dYtqXVdUs/NicVBtZUj2J3PEzuS/t+9J4tmN +Ocg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:authenticated-by; bh=q4CllChTi0K+RFwgU5edCR2C1+klGX3cNEunhbiCaso=; b=lmx7puMUeqoHchQCgZhK43kroFYNFvk+D+KS4JaZbFd27xSXIJE7AFcVFSF3St8zWC 7H0rbc2OItBjWZqU6IzuxyovcV3YlD9issmh9xBDCynhMJKNnILtzBIuRtqW7v4+/vtJ 5ClUPUKrpUGr0hiK5YXFCeUEn529izbZhCF50MEk6staR7co4cOaBnhGnHbhInoAxxsC KRWmFYA6ZiFSGpnZgy1oc3R+DkXVfTMxWcNI/GA0ZRja/m/J481m0GPV9aVFCob/0HzF JP4Sc01MMMA7t80aoZHog1UbwMBlQ6VngMU5/enmDlXSjHGtzKTCdQ0q/+pWBfADVakM 12BA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id oc9si8104920pjb.63.2021.10.01.01.24.13; Fri, 01 Oct 2021 01:24:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352701AbhJAIZB (ORCPT + 78 others); Fri, 1 Oct 2021 04:25:01 -0400 Received: from rtits2.realtek.com ([211.75.126.72]:56541 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1352645AbhJAIZB (ORCPT ); Fri, 1 Oct 2021 04:25:01 -0400 Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.73 with qID 1918N8uhC018152, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36503.realtek.com.tw[172.21.6.25]) by rtits2.realtek.com.tw (8.15.2/2.71/5.88) with ESMTPS id 1918N8uhC018152 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Fri, 1 Oct 2021 16:23:08 +0800 Received: from RTEXMBS04.realtek.com.tw (172.21.6.97) by RTEXH36503.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.14; Fri, 1 Oct 2021 16:23:08 +0800 Received: from localhost (172.21.69.188) by RTEXMBS04.realtek.com.tw (172.21.6.97) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Fri, 1 Oct 2021 16:23:08 +0800 From: Ping-Ke Shih To: , CC: , Subject: [PATCH v2] rtw88: refine fw_crash debugfs to show non-zero while triggering Date: Fri, 1 Oct 2021 16:23:01 +0800 Message-ID: <20211001082301.4805-1-pkshih@realtek.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [172.21.69.188] X-ClientProxiedBy: RTEXMBS02.realtek.com.tw (172.21.6.95) To RTEXMBS04.realtek.com.tw (172.21.6.97) X-KSE-ServerInfo: RTEXMBS04.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: trusted connection X-KSE-Antiphishing-Info: Clean X-KSE-Antiphishing-ScanningType: Deterministic X-KSE-Antiphishing-Method: None X-KSE-Antiphishing-Bases: 09/30/2021 01:34:00 X-KSE-AttachmentFiltering-Interceptor-Info: no applicable attachment filtering rules found X-KSE-Antivirus-Interceptor-Info: scan successful X-KSE-Antivirus-Info: =?big5?B?Q2xlYW4sIGJhc2VzOiAyMDIxLzkvMjkgpFWkyCAxMToyNzowMA==?= X-KSE-BulkMessagesFiltering-Scan-Result: protection disabled X-KSE-ServerInfo: RTEXH36503.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-Antivirus-Interceptor-Info: fallback X-KSE-AntiSpam-Interceptor-Info: fallback Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Zong-Zhe Yang The usage of fw_crash debugfs is to write 1 to it to trigger fw crash simulation and to read from it to check the state. When zero is read, it is supposed to mean fw crash/restart process is done. Then, some test plans can be designed for crash/restart. e.g. step 1. trigger fw crash simulation step 2. poll the state until zero is read step 3. check connection by ping test However, in certain connection cases, triggering fw crash simulation will take a while. If the state is queried too early before restart begins processing, it may mistakenly think restart process has been done. If some tests are started at this time, something unexpected might happen due to the follow-up restart process. To avoid that, let fw_crash also show non-zero when a simulation is still triggering. Signed-off-by: Zong-Zhe Yang Signed-off-by: Ping-Ke Shih --- v2: modify title and commit log to have better explanation. --- drivers/net/wireless/realtek/rtw88/debug.c | 5 ++++- drivers/net/wireless/realtek/rtw88/main.c | 1 + drivers/net/wireless/realtek/rtw88/main.h | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/realtek/rtw88/debug.c index babf7fb238cc..682b23502e6e 100644 --- a/drivers/net/wireless/realtek/rtw88/debug.c +++ b/drivers/net/wireless/realtek/rtw88/debug.c @@ -886,6 +886,7 @@ static ssize_t rtw_debugfs_set_fw_crash(struct file *filp, mutex_lock(&rtwdev->mutex); rtw_leave_lps_deep(rtwdev); + set_bit(RTW_FLAG_RESTART_TRIGGERING, rtwdev->flags); rtw_write8(rtwdev, REG_HRCV_MSG, 1); mutex_unlock(&rtwdev->mutex); @@ -897,7 +898,9 @@ static int rtw_debugfs_get_fw_crash(struct seq_file *m, void *v) struct rtw_debugfs_priv *debugfs_priv = m->private; struct rtw_dev *rtwdev = debugfs_priv->rtwdev; - seq_printf(m, "%d\n", test_bit(RTW_FLAG_RESTARTING, rtwdev->flags)); + seq_printf(m, "%d\n", + test_bit(RTW_FLAG_RESTART_TRIGGERING, rtwdev->flags) || + test_bit(RTW_FLAG_RESTARTING, rtwdev->flags)); return 0; } diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c index cee2acabb042..a0d4d6e31fb4 100644 --- a/drivers/net/wireless/realtek/rtw88/main.c +++ b/drivers/net/wireless/realtek/rtw88/main.c @@ -564,6 +564,7 @@ static void __fw_recovery_work(struct rtw_dev *rtwdev) int ret = 0; set_bit(RTW_FLAG_RESTARTING, rtwdev->flags); + clear_bit(RTW_FLAG_RESTART_TRIGGERING, rtwdev->flags); ret = rtw_fwcd_prep(rtwdev); if (ret) diff --git a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wireless/realtek/rtw88/main.h index 723316347876..bbdd535b64e7 100644 --- a/drivers/net/wireless/realtek/rtw88/main.h +++ b/drivers/net/wireless/realtek/rtw88/main.h @@ -363,6 +363,7 @@ enum rtw_flags { RTW_FLAG_BUSY_TRAFFIC, RTW_FLAG_WOWLAN, RTW_FLAG_RESTARTING, + RTW_FLAG_RESTART_TRIGGERING, NUM_OF_RTW_FLAGS, }; -- 2.25.1