Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp2206614ybh; Mon, 9 Mar 2020 00:59:31 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvMyTG00U/DTv3/7+2wkwSavmPodKLapj7YUQSj14d3SK5aKvWLMGUv0WPwxtoJ82vWE7wl X-Received: by 2002:a9d:2f26:: with SMTP id h35mr4253976otb.246.1583740771514; Mon, 09 Mar 2020 00:59:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1583740771; cv=none; d=google.com; s=arc-20160816; b=T++59QAduTd8bg6Fjp2yPMyZnB34I7UuVOuWMfSlHLA+JlLru7XhFYNlM91oxMHnIR 7stcC3UCZbFkI+Xv1Nfb/1b9IL7HSvScIH6xwTTRPwA7DXZnBNrYF1YTn3JeWOAXGOPV CtvVWONKAX/UPycze68DoVdtxakBaDoUbAjzsgNiHqi0Tqjwpk/vJ3CipQUUuE3htSVl 7EizRNuMPP8/Oy9D/RhLz9KsSuLRNTc5ux89DqAs0ocYJEWTiX2IZJsE39FF4sJMxrrI +lXTMn3Rre3KwALiHbPOA5ajyZH581l2nnkbMn/ab378THz22XfkrzOIeL3HP9lz1l7E UG5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:authenticated-by; bh=fA8NNANr9fOYp3dlnkI9981oVW9nZndrv57wHJDL8yM=; b=zwpyxcQu4wVJc9bWc4Rcoy1CkGfu8l+SeYQXixVLJuKDYpa2ZPq10OPxF5uTJMJ6Er NeGfnKu7fd+KDvmLmkHeUoKJ0hFQKuM370Ujj3kNCzrZBpRsbeDITUFBnG/LiRpvV0MZ NBOcML9SVp52j9ggVvPMn4S1KVaVmibPY0dF10QDWpmN9S25NoXjkOss1kgwkEF8mmeO SotQZCs43Bwy+yyW65W686joJe8vPCWoyL9Mnj/OkLsXr9TrE2Ppm96jL/8bo7BNKw0H kT1F0hi5HOSppVcIP/fsj3kAVEn1DaSGQMsvT5Kuy0j546NFumRNF6SkSTx/pkQbTciw KjeQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p13si6213808otk.75.2020.03.09.00.59.08; Mon, 09 Mar 2020 00:59:31 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726248AbgCIH7H (ORCPT + 99 others); Mon, 9 Mar 2020 03:59:07 -0400 Received: from rtits2.realtek.com ([211.75.126.72]:57819 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726215AbgCIH7G (ORCPT ); Mon, 9 Mar 2020 03:59:06 -0400 Authenticated-By: X-SpamFilter-By: BOX Solutions SpamTrap 5.62 with qID 0297wvsD011846, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (RTEXMB06.realtek.com.tw[172.21.6.99]) by rtits2.realtek.com.tw (8.15.2/2.57/5.78) with ESMTPS id 0297wvsD011846 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 9 Mar 2020 15:58:57 +0800 Received: from RTEXMB04.realtek.com.tw (172.21.6.97) by RTEXMB06.realtek.com.tw (172.21.6.99) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Mon, 9 Mar 2020 15:58:57 +0800 Received: from localhost.localdomain (172.21.68.128) by RTEXMB04.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.1779.2; Mon, 9 Mar 2020 15:58:57 +0800 From: To: CC: , Subject: [PATCH v2 2/2] rtw88: add a debugfs entry to enable/disable coex mechanism Date: Mon, 9 Mar 2020 15:58:52 +0800 Message-ID: <20200309075852.11454-3-yhchuang@realtek.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200309075852.11454-1-yhchuang@realtek.com> References: <20200309075852.11454-1-yhchuang@realtek.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [172.21.68.128] X-ClientProxiedBy: RTEXMB03.realtek.com.tw (172.21.6.96) To RTEXMB04.realtek.com.tw (172.21.6.97) Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Yan-Hsuan Chuang Sometimes we need to stop the coex mechanism to debug, so that we can manually control the device through various outer commands. Hence, add a new debugfs coex_enable to allow us to enable/disable the coex mechanism when driver is running. To disable coex echo 0 > /sys/kernel/debug/ieee80211/phyX/rtw88/coex_enable To enable coex echo 1 > /sys/kernel/debug/ieee80211/phyX/rtw88/coex_enable To check coex dm is enabled or not cat /sys/kernel/debug/ieee80211/phyX/rtw88/coex_enable Signed-off-by: Yan-Hsuan Chuang --- v1 -> v2 * no change drivers/net/wireless/realtek/rtw88/debug.c | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/realtek/rtw88/debug.c index b2d264270752..b00eee68b3fb 100644 --- a/drivers/net/wireless/realtek/rtw88/debug.c +++ b/drivers/net/wireless/realtek/rtw88/debug.c @@ -706,6 +706,46 @@ static int rtw_debugfs_get_coex_info(struct seq_file *m, void *v) return 0; } +static ssize_t rtw_debugfs_set_coex_enable(struct file *filp, + const char __user *buffer, + size_t count, loff_t *loff) +{ + struct seq_file *seqpriv = (struct seq_file *)filp->private_data; + struct rtw_debugfs_priv *debugfs_priv = seqpriv->private; + struct rtw_dev *rtwdev = debugfs_priv->rtwdev; + struct rtw_coex *coex = &rtwdev->coex; + char tmp[32 + 1]; + u32 enable; + int num; + + rtw_debugfs_copy_from_user(tmp, sizeof(tmp), buffer, count, 2); + + num = sscanf(tmp, "%d", &enable); + + if (num != 1) { + rtw_warn(rtwdev, "invalid arguments\n"); + return num; + } + + mutex_lock(&rtwdev->mutex); + coex->stop_dm = enable == 0; + mutex_unlock(&rtwdev->mutex); + + return count; +} + +static int rtw_debugfs_get_coex_enable(struct seq_file *m, void *v) +{ + struct rtw_debugfs_priv *debugfs_priv = m->private; + struct rtw_dev *rtwdev = debugfs_priv->rtwdev; + struct rtw_coex *coex = &rtwdev->coex; + + seq_printf(m, "coex mechanism %s\n", + coex->stop_dm ? "disabled" : "enabled"); + + return 0; +} + #define rtw_debug_impl_mac(page, addr) \ static struct rtw_debugfs_priv rtw_debug_priv_mac_ ##page = { \ .cb_read = rtw_debug_get_mac_page, \ @@ -796,6 +836,11 @@ static struct rtw_debugfs_priv rtw_debug_priv_phy_info = { .cb_read = rtw_debugfs_get_phy_info, }; +static struct rtw_debugfs_priv rtw_debug_priv_coex_enable = { + .cb_write = rtw_debugfs_set_coex_enable, + .cb_read = rtw_debugfs_get_coex_enable, +}; + static struct rtw_debugfs_priv rtw_debug_priv_coex_info = { .cb_read = rtw_debugfs_get_coex_info, }; @@ -831,6 +876,7 @@ void rtw_debugfs_init(struct rtw_dev *rtwdev) rtw_debugfs_add_rw(rsvd_page); rtw_debugfs_add_r(phy_info); rtw_debugfs_add_r(coex_info); + rtw_debugfs_add_rw(coex_enable); rtw_debugfs_add_r(mac_0); rtw_debugfs_add_r(mac_1); rtw_debugfs_add_r(mac_2); -- 2.17.1