Received: by 2002:a05:6358:489b:b0:bb:da1:e618 with SMTP id x27csp6330401rwn; Tue, 13 Sep 2022 02:35:13 -0700 (PDT) X-Google-Smtp-Source: AA6agR7ukCR5A3UpKDcFkk/RcGqvjnoXcjWYy/01P0KECg44j9aLFPEO/RwXx2LcQHoXjbcdfqYz X-Received: by 2002:a05:6a00:1a49:b0:528:6ea0:14e2 with SMTP id h9-20020a056a001a4900b005286ea014e2mr31638503pfv.22.1663061712932; Tue, 13 Sep 2022 02:35:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663061712; cv=none; d=google.com; s=arc-20160816; b=ZjGfvyOFJbrW6dL+Ut8tw9Hxb08VQbOfaVfhzWtlybux7J2YEnL2kEwO/zAeRhBKEI BKH623TNr0YPLMs+PBAwSvUkyD13qzyHdzJyjeJ9vcCEAy17GaMiqr+yZxFdR398k0fu lauEdExJzyXfZgHA7SGSd3Z6rtK2XPW5SJPLoHYfo8yz69l30EL+IDXoYew1KpUpC+Fi 35YFPfW8wtwr/e7G4OpyJgDUERu759djKfZ0zlUDn9YQ07KUHctjQUu/RxmJY0+3ZX8s PkKLq1FAQByrBRMMtjko9m1eTj6YA0WY3zYsMD9tDu8izm4GxxuQvPFSVQ07nlrHF7gJ jHwA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :authenticated-by; bh=jX3CN0YDTJvdaNiGONivNUjoxEMqozE+H+/BkTaxC8A=; b=xGTKdgDxZmgMUiAO4eGt7xUnCdS7joVvh2oGmwJYHBX3z1xkXD6QZt9LuI9uSRPQLX p1cGW8V4Vu3ssMNQme1HecXJDmc/uZPowH0RHC3D8uGJOwDyvYqwWQoHqMlMjywQ1rGU lknORULL+gRxsjKKk+WYlXyC/mjLpzA76ZKRnuzA8qxqoSGCyZUTKKk4sLtr6u/Uhf0K iFM9HmwijiFMGAozAQENFk6sfNywuWGvWkMry0G3yvliT5SAMn9Af+f+cc+EREBVnHRs zACR8HhVvjd1Gvp3HI+aLvlkafIaEaV8r4Z6zZJ5J3hNyqQ8Gdz70PSXSUovqKj7tDmn W4Ng== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v12-20020a63f20c000000b0043560d14dc1si8385473pgh.604.2022.09.13.02.35.02; Tue, 13 Sep 2022 02:35:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231150AbiIMJ1C (ORCPT + 64 others); Tue, 13 Sep 2022 05:27:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58736 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231279AbiIMJ1A (ORCPT ); Tue, 13 Sep 2022 05:27:00 -0400 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 675A427FCC for ; Tue, 13 Sep 2022 02:26:59 -0700 (PDT) Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.77 with qID 28D9QWYI0005611, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36504.realtek.com.tw[172.21.6.27]) by rtits2.realtek.com.tw (8.15.2/2.81/5.90) with ESMTPS id 28D9QWYI0005611 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=FAIL); Tue, 13 Sep 2022 17:26:32 +0800 Received: from RTEXMBS04.realtek.com.tw (172.21.6.97) by RTEXH36504.realtek.com.tw (172.21.6.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.7; Tue, 13 Sep 2022 17:26:52 +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.2375.7; Tue, 13 Sep 2022 17:26:52 +0800 From: Ping-Ke Shih To: CC: , Subject: [PATCH v2 4/7] wifi: rtw89: coex: Parsing Wi-Fi firmware error message from reports Date: Tue, 13 Sep 2022 17:25:43 +0800 Message-ID: <20220913092546.43722-5-pkshih@realtek.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220913092546.43722-1-pkshih@realtek.com> References: <20220913092546.43722-1-pkshih@realtek.com> 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/13/2022 08:01: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?Q2xlYW4sIGJhc2VzOiAyMDIyLzkvMTMgpFekyCAwNjowMDowMA==?= X-KSE-BulkMessagesFiltering-Scan-Result: protection disabled X-KSE-ServerInfo: RTEXH36504.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-Antivirus-Interceptor-Info: fallback X-KSE-AntiSpam-Interceptor-Info: fallback X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Ching-Te Ku Parsing firmware error message from original version and v1 reports to show up exception counter of commands from firmware in debug message. Then, we can make sure exchange commands are correct totally. In the later version Wi-Fi firmware(v1), the report format was changed. With this update, we can yield correct report from proper struct. Signed-off-by: Ching-Te Ku Signed-off-by: Ping-Ke Shih --- drivers/net/wireless/realtek/rtw89/coex.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/coex.c b/drivers/net/wireless/realtek/rtw89/coex.c index 6fdc2c33b7c6a..66adf4eb44559 100644 --- a/drivers/net/wireless/realtek/rtw89/coex.c +++ b/drivers/net/wireless/realtek/rtw89/coex.c @@ -5963,14 +5963,24 @@ static void _show_dm_info(struct rtw89_dev *rtwdev, struct seq_file *m) static void _show_error(struct rtw89_dev *rtwdev, struct seq_file *m) { + const struct rtw89_chip_info *chip = rtwdev->chip; struct rtw89_btc *btc = &rtwdev->btc; struct rtw89_btc_btf_fwinfo *pfwinfo = &btc->fwinfo; - struct rtw89_btc_fbtc_cysta *pcysta = NULL; + struct rtw89_btc_fbtc_cysta *pcysta; + struct rtw89_btc_fbtc_cysta_v1 *pcysta_v1; + u32 except_cnt, exception_map; - pcysta = &pfwinfo->rpt_fbtc_cysta.finfo; + if (chip->chip_id == RTL8852A) { + pcysta = &pfwinfo->rpt_fbtc_cysta.finfo; + except_cnt = le32_to_cpu(pcysta->except_cnt); + exception_map = le32_to_cpu(pcysta->exception); + } else { + pcysta_v1 = &pfwinfo->rpt_fbtc_cysta.finfo_v1; + except_cnt = le32_to_cpu(pcysta_v1->except_cnt); + exception_map = le32_to_cpu(pcysta_v1->except_map); + } - if (pfwinfo->event[BTF_EVNT_BUF_OVERFLOW] == 0 && - pcysta->except_cnt == 0 && + if (pfwinfo->event[BTF_EVNT_BUF_OVERFLOW] == 0 && except_cnt == 0 && !pfwinfo->len_mismch && !pfwinfo->fver_mismch) return; @@ -5995,10 +6005,10 @@ static void _show_error(struct rtw89_dev *rtwdev, struct seq_file *m) } /* cycle statistics exceptions */ - if (pcysta->exception || pcysta->except_cnt) { + if (exception_map || except_cnt) { seq_printf(m, "exception-type: 0x%x, exception-cnt = %d", - pcysta->exception, pcysta->except_cnt); + exception_map, except_cnt); } seq_puts(m, "\n"); } -- 2.25.1