From patchwork Fri Mar 17 07:09:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Koba Ko X-Patchwork-Id: 1758107 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=oXAdEz8M; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4PdFjb6lQ9z2470 for ; Fri, 17 Mar 2023 18:13:55 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1pd4HZ-0005lA-Vn; Fri, 17 Mar 2023 07:13:45 +0000 Received: from smtp-relay-internal-1.internal ([10.131.114.114] helo=smtp-relay-internal-1.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1pd4E7-0005Fc-BO for kernel-team@lists.ubuntu.com; Fri, 17 Mar 2023 07:10:11 +0000 Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id 474643F04C for ; Fri, 17 Mar 2023 07:10:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1679037009; bh=erHw7AdlvBOEjxZnX7PNT1+eDAkXB/LG1xIVkTHLxoc=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oXAdEz8M3UvuqTU6HihXYdQ17BROu+wa3+ICy40exEzdPaA8g9ae7t+6JHQT+YSUD S11/Pj3Fk+KiZ3faxXmlBWwvpE7pTWxuhYLcigL6PxNKjtUv1k6M3EBOzKMeK9Q7nN XduB+u9QQnQqYJ5nowlG/8dNc+ziF4CtNhcBA6HcevY+2dW64+zVCcxHul4GrNd2mj q7bpwo+OmDIJq7/AUtmBAgEk2rxik2XB9+MjtFu3l7ZpdXtZ9Cq5m+gePvCCrIl9zC i+jyj93Ts66JqHJH/cNqANh9CYsdSmNmZjpUxy31PIZCMdnV3fRkt7p3W8sUUJzNVs qxLW6+KwTMTmQ== Received: by mail-pl1-f200.google.com with SMTP id q9-20020a170902dac900b001a18ceff5ebso2315525plx.4 for ; Fri, 17 Mar 2023 00:10:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679037007; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=erHw7AdlvBOEjxZnX7PNT1+eDAkXB/LG1xIVkTHLxoc=; b=Ixtxag7YeX5tqEFNlaxrBBROkqFznTAi4UAYGYvoXtCgD2VkTQ/OHL9scyEMy2qxez bDOIn1oT2XHV0eeSlINsiBizyWj5u1WXce2xDs4e4kaZA6DJLra7PF5RK4nkNnbp1xlO 8WxlOQpwXGRwOAi0N0NW0jU1UhtzAwea/4Qr7a3eYNyBg8NZEaQHr58vbz4DZfBjkFne fLsdVOGw9DUQNCp0VO1zx1PFlr55VLyTTgAVS9fAiavpiDEsZLN2GeiJR+RgfECFJ6qR qkUsepu9zBqhRYC1PaOxH6uHU9b2JvLWl+7R6M7pWvxgpuCfGaznmzE1NXf0BjLy5fTj 3Kzg== X-Gm-Message-State: AO0yUKU43NV9x80inZbZTipQk4Pv4l0fj0ZzxklKps0yS7TrwS4oqCm9 +xWHAOx06Q6r1iNNBfeYAwVlZEEWuPY45JE6nJ9Sx5D9+Ie1t1FUvVZn9dZwbAEKfMf4a+8s9L8 FHZcLO5NYndiHBrkxQN8FSJVHeX9TGw3GHkQPsqXAA4AfIl8eh0hpEDs= X-Received: by 2002:aa7:9e1b:0:b0:5a8:ad6c:cd43 with SMTP id y27-20020aa79e1b000000b005a8ad6ccd43mr6806766pfq.31.1679037007218; Fri, 17 Mar 2023 00:10:07 -0700 (PDT) X-Google-Smtp-Source: AK7set+/OFWgA8NZD5987SMxVEECQFUNl4q2aHJ5gL8rDrcO843uIqr8IIYKtJVD6Je8JBVufuUYmg== X-Received: by 2002:aa7:9e1b:0:b0:5a8:ad6c:cd43 with SMTP id y27-20020aa79e1b000000b005a8ad6ccd43mr6806750pfq.31.1679037006921; Fri, 17 Mar 2023 00:10:06 -0700 (PDT) Received: from canonical.com ([2001:67c:1560:8007::aac:c177]) by smtp.gmail.com with ESMTPSA id s14-20020a62e70e000000b00625ddb1f4c5sm824596pfh.114.2023.03.17.00.10.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Mar 2023 00:10:06 -0700 (PDT) From: Koba Ko To: kernel-team@lists.ubuntu.com Subject: [PATCH 1/2][SRU][U/L] wifi: rtw89: 8852be: enable CLKREQ of PCI capability Date: Fri, 17 Mar 2023 15:09:50 +0800 Message-Id: <20230317070951.32287-2-koba.ko@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230317070951.32287-1-koba.ko@canonical.com> References: <20230317070951.32287-1-koba.ko@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Chin-Yen Lee BugLink: https://bugs.launchpad.net/bugs/2012019 Enable CLKREQ to reduce power consumption for 8852BE. Signed-off-by: Chin-Yen Lee Signed-off-by: Ping-Ke Shih Signed-off-by: Kalle Valo Link: https://lore.kernel.org/r/20230126112715.5811-1-pkshih@realtek.com (cherry picked from commit 3712888e3dba5df2b4f3fb3ba87e20bac6afc7c0 wireless-next) Signed-off-by: Koba Ko --- drivers/net/wireless/realtek/rtw89/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c index 0ea734c81b4f0..ec8bb5f10482e 100644 --- a/drivers/net/wireless/realtek/rtw89/pci.c +++ b/drivers/net/wireless/realtek/rtw89/pci.c @@ -3398,7 +3398,7 @@ static void rtw89_pci_clkreq_set(struct rtw89_dev *rtwdev, bool enable) if (ret) rtw89_err(rtwdev, "failed to set CLKREQ Delay\n"); - if (chip_id == RTL8852A) { + if (chip_id == RTL8852A || chip_id == RTL8852B) { if (enable) ret = rtw89_pci_config_byte_set(rtwdev, RTW89_PCIE_L1_CTRL, From patchwork Fri Mar 17 07:09:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Koba Ko X-Patchwork-Id: 1758106 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=Qze33R9+; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4PdFdb1kqXz2470 for ; Fri, 17 Mar 2023 18:10:27 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1pd4EF-0005Id-D0; Fri, 17 Mar 2023 07:10:19 +0000 Received: from smtp-relay-internal-1.internal ([10.131.114.114] helo=smtp-relay-internal-1.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1pd4EC-0005HS-Ob for kernel-team@lists.ubuntu.com; Fri, 17 Mar 2023 07:10:16 +0000 Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id 3B4E63F04C for ; Fri, 17 Mar 2023 07:10:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1679037016; bh=eUP6UvLY1FCOOerVOkvlennMtATBGKR/era4HX1NQjc=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Qze33R9+GPB5sxHqPZuonfJ98TsUtH9K+PD60o/PWxpOvHOb+iKE6iO51jfe94eaT zKNEzxyom9SBS+6KeCyvSvhkduaUshtIfEBRccHdbogYcOrnu8pRQ1J2uQhNrsxdHE qnydI42oxiEeWDA6DrO7X4vgGMWMDJFnyuWMKhVdB047WsOtraEU/7zIRprJLEgEPO AFjNLVsT9F5mYprU9NnBTW1b7djtt6n4St6d6ZKgw6q7ap4olZPSaCWvuoS4Alxp4z 8Q/ianQxA3nxzkvm4l6qwRs7kS1N/To/S5SG32VIZAhEFNqmcF2Qhup/210FCqDfPd vgQ0ImYHN0r9g== Received: by mail-pl1-f200.google.com with SMTP id q9-20020a170902dac900b001a18ceff5ebso2315730plx.4 for ; Fri, 17 Mar 2023 00:10:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679037015; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eUP6UvLY1FCOOerVOkvlennMtATBGKR/era4HX1NQjc=; b=ds9OPakZ6sJB9W+5CRdVTgboB242TuV6sG+xy49C3pn6zVlOp7K5wvQ8KUNguw04/f XTpAqU8ywASW1og3FVK4H15bryS0e8yz5YWeeyIHAq2tc9esYOYAGYCvOu9Be1T5k7Dp 3UuUZlDbWif7KKaFX+21bQ5JBVIK4wV5lAh8M/v7CjEEZNVfNMKkFgVyer2y1MuDJvmp pZlQ2ZPCJDTS5kZe+SXl93yVPEdre8ak6d1Gpv7NOM9ONChogCZ8j0pwBOG61hqMteZU sCIqKLLTw0Q/WWNeYm6naPJy503rJJKlXoMD4+wvEIX3F4QVm8hc3Hk7+GnmKehMGfRa tRhg== X-Gm-Message-State: AO0yUKUu44w21LSVcPzZIhTITEDRhOWN3vSfPk8YE5ermi3Hs0ZbHyGO LNchx3nOJhXqXU8aKGZBnxiFKQwlxskApNeYD4ElgNO0hqS6PTgrPYL5MYUlOUirLfKrQjyo50C QmnoiOfk9DBHP4IkbFWz9C3unQgCIwvzFAp+c8hp1NHSv8WWAVt0XiXc= X-Received: by 2002:a17:902:d10c:b0:19c:a9bc:ce57 with SMTP id w12-20020a170902d10c00b0019ca9bcce57mr4962925plw.64.1679037015083; Fri, 17 Mar 2023 00:10:15 -0700 (PDT) X-Google-Smtp-Source: AK7set8uyDXd5yDS4wljrQ4fEiVIIpwuZyepnpXVcV8RiyAWKe5yqL3j2gvYlcnCW4UXTAAHuun2yg== X-Received: by 2002:a17:902:d10c:b0:19c:a9bc:ce57 with SMTP id w12-20020a170902d10c00b0019ca9bcce57mr4962906plw.64.1679037014666; Fri, 17 Mar 2023 00:10:14 -0700 (PDT) Received: from canonical.com ([2001:67c:1560:8007::aac:c177]) by smtp.gmail.com with ESMTPSA id v15-20020a1709028d8f00b001a055028d1asm847597plo.1.2023.03.17.00.10.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Mar 2023 00:10:14 -0700 (PDT) From: Koba Ko To: kernel-team@lists.ubuntu.com Subject: [PATCH 2/2][SRU][U/L] wifi: rtw89: release RX standby timer of beamformee CSI to save power Date: Fri, 17 Mar 2023 15:09:51 +0800 Message-Id: <20230317070951.32287-3-koba.ko@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230317070951.32287-1-koba.ko@canonical.com> References: <20230317070951.32287-1-koba.ko@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Ping-Ke Shih BugLink: https://bugs.launchpad.net/bugs/2012019 Originally, we keep RX standby timer to handle beamformee CSI, but this spends power and causes system not entering power save mode. To improve power consumption, release the timer if throughput becomes low. Signed-off-by: Ping-Ke Shih Signed-off-by: Kalle Valo Link: https://lore.kernel.org/r/20230307141848.26403-1-pkshih@realtek.com (cherry picked from commit 8a66293e73a520a42a7653d2ca32074ba323ff56 wireless-next) Signed-off-by: Koba Ko --- drivers/net/wireless/realtek/rtw89/core.h | 1 + drivers/net/wireless/realtek/rtw89/mac.c | 35 +++++++++++++++++++++-- drivers/net/wireless/realtek/rtw89/reg.h | 2 ++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h index 2badb96d2ae35..d9cc1005351e8 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -2990,6 +2990,7 @@ enum rtw89_flags { RTW89_FLAG_RUNNING, RTW89_FLAG_BFEE_MON, RTW89_FLAG_BFEE_EN, + RTW89_FLAG_BFEE_TIMER_KEEP, RTW89_FLAG_NAPI_RUNNING, RTW89_FLAG_LEISURE_PS, RTW89_FLAG_LOW_POWER_MODE, diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c index cf9a0a3120a79..769451f62746b 100644 --- a/drivers/net/wireless/realtek/rtw89/mac.c +++ b/drivers/net/wireless/realtek/rtw89/mac.c @@ -4882,6 +4882,24 @@ u16 rtw89_mac_get_plt_cnt(struct rtw89_dev *rtwdev, u8 band) return cnt; } +static void rtw89_mac_bfee_standby_timer(struct rtw89_dev *rtwdev, u8 mac_idx, + bool keep) +{ + u32 reg; + + rtw89_debug(rtwdev, RTW89_DBG_BF, "set bfee standby_timer to %d\n", keep); + reg = rtw89_mac_reg_by_idx(R_AX_BFMEE_RESP_OPTION, mac_idx); + if (keep) { + set_bit(RTW89_FLAG_BFEE_TIMER_KEEP, rtwdev->flags); + rtw89_write32_mask(rtwdev, reg, B_AX_BFMEE_BFRP_RX_STANDBY_TIMER_MASK, + BFRP_RX_STANDBY_TIMER_KEEP); + } else { + clear_bit(RTW89_FLAG_BFEE_TIMER_KEEP, rtwdev->flags); + rtw89_write32_mask(rtwdev, reg, B_AX_BFMEE_BFRP_RX_STANDBY_TIMER_MASK, + BFRP_RX_STANDBY_TIMER_RELEASE); + } +} + static void rtw89_mac_bfee_ctrl(struct rtw89_dev *rtwdev, u8 mac_idx, bool en) { u32 reg; @@ -4918,9 +4936,9 @@ static int rtw89_mac_init_bfee(struct rtw89_dev *rtwdev, u8 mac_idx) rtw89_write32(rtwdev, reg, CSI_RRSC_BMAP); reg = rtw89_mac_reg_by_idx(R_AX_BFMEE_RESP_OPTION, mac_idx); - val32 = FIELD_PREP(B_AX_BFMEE_BFRP_RX_STANDBY_TIMER_MASK, BFRP_RX_STANDBY_TIMER); - val32 |= FIELD_PREP(B_AX_BFMEE_NDP_RX_STANDBY_TIMER_MASK, NDP_RX_STANDBY_TIMER); + val32 = FIELD_PREP(B_AX_BFMEE_NDP_RX_STANDBY_TIMER_MASK, NDP_RX_STANDBY_TIMER); rtw89_write32(rtwdev, reg, val32); + rtw89_mac_bfee_standby_timer(rtwdev, mac_idx, true); rtw89_mac_bfee_ctrl(rtwdev, mac_idx, true); reg = rtw89_mac_reg_by_idx(R_AX_TRXPTCL_RESP_CSI_CTRL_0, mac_idx); @@ -5132,6 +5150,19 @@ void _rtw89_mac_bf_monitor_track(struct rtw89_dev *rtwdev) struct rtw89_vif *rtwvif; bool en = stats->tx_tfc_lv <= stats->rx_tfc_lv; bool old = test_bit(RTW89_FLAG_BFEE_EN, rtwdev->flags); + bool keep_timer = true; + bool old_keep_timer; + + old_keep_timer = test_bit(RTW89_FLAG_BFEE_TIMER_KEEP, rtwdev->flags); + + if (stats->tx_tfc_lv <= RTW89_TFC_LOW && stats->rx_tfc_lv <= RTW89_TFC_LOW) + keep_timer = false; + + if (keep_timer != old_keep_timer) { + rtw89_for_each_rtwvif(rtwdev, rtwvif) + rtw89_mac_bfee_standby_timer(rtwdev, rtwvif->mac_idx, + keep_timer); + } if (en == old) return; diff --git a/drivers/net/wireless/realtek/rtw89/reg.h b/drivers/net/wireless/realtek/rtw89/reg.h index ca6f6c3e63095..b9925c01089dc 100644 --- a/drivers/net/wireless/realtek/rtw89/reg.h +++ b/drivers/net/wireless/realtek/rtw89/reg.h @@ -3053,6 +3053,8 @@ #define R_AX_BFMEE_RESP_OPTION_C1 0xED80 #define B_AX_BFMEE_NDP_RX_STANDBY_TIMER_MASK GENMASK(31, 24) #define B_AX_BFMEE_BFRP_RX_STANDBY_TIMER_MASK GENMASK(23, 20) +#define BFRP_RX_STANDBY_TIMER_KEEP 0x0 +#define BFRP_RX_STANDBY_TIMER_RELEASE 0x1 #define B_AX_MU_BFRPTSEG_SEL_MASK GENMASK(18, 17) #define B_AX_BFMEE_NDP_RXSTDBY_SEL BIT(16) #define BFRP_RX_STANDBY_TIMER 0x0