Received: by 2002:ab2:6857:0:b0:1ef:ffd0:ce49 with SMTP id l23csp2614939lqp; Mon, 25 Mar 2024 04:37:46 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCU2McH1WF2+DACs819ApOPX1ulG0RLmbwSLwbHrRZQzg6BIIOFDtaDiBCcjJknDR8Ag9Rf/puD23LgjW1cDivyZ5KgsIgDazPLgdVT6lQ== X-Google-Smtp-Source: AGHT+IF66cEkRcM732CnFf/4J/5IIZ7MBFqbMDfIhVXMwSrBGVt5fJn05wejIoHwhYBYQgF9JxQB X-Received: by 2002:a05:6808:3189:b0:3c3:d0e6:7b25 with SMTP id cd9-20020a056808318900b003c3d0e67b25mr2455163oib.34.1711366666082; Mon, 25 Mar 2024 04:37:46 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711366666; cv=pass; d=google.com; s=arc-20160816; b=O+7/MYI8oxg85cUVRG2on5Uz/gkBuAADALvVaeylTeXaVC70PyaE0ru52g0eEExIZN b6oCYizVsW25QhueBaSqdrVrGtRHsF1PXZExAKtDq4brcNWPEx+9pVy2ZvbwgF8JEl2W LQqkCvrnHdddpwIa/xFqR6/ODsIViRdnNaaxjcRlXIDSOIFu0r2QdM7j+/J6nD1Il1LX uZBFkDCrxcYWnCmpzjpSC1X6tAWJcMLg28FtteoAS3Sc+tHWvZfRo6uguXxxzgO0yBiL 08Vf9ppqAC6clcwn/Lp1tSYQTwosvYRIMhebLCUuA78R5KUmhhEOmDBhL+A2ZiB80Hw8 lrEQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=+8GNODrkde4Hf2kqlfZ/1nzgyuP/elYzYJYiS0aL/Vg=; fh=RfApuWMrCBQYs6j8reEIHEe4vQngvgoyYVaRxNjhx6g=; b=ZdWZCOFHJHWwM2XvlqKV0I3uj3dFB2exU6Fyun+ImuLMUkQiwfY67GyRbvkPfHS2JI 9pm2mmLF0Aad1ZsE+fbnHMWdKd/SUeJI4ByFZbJaa3ixiLfK6fWT/rXFM7BE4bpTSMgR Qwf//Y9f/fKSJPShi5H+8ysu3z+LOyZXcbpxejgoMkRCn3ib868RDUvWZ4hOu86iYHkG FxDRhUzGCdoJ8wHUMDcw7to5vtK8XeYpYYoS1KMBBNcPnmf2JKabC+pNkR8i1GORP5bg VfGLVFtiKsnZWhB5uhT4zJbOI1+5THwfvWg28s5M3TO1p8iC4tGZ8ql8bu9uRyx/ZQYI F1JA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WwTxFUxJ; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115663-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115663-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id d6-20020a05622a100600b004315e0b8960si970410qte.168.2024.03.25.04.37.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Mar 2024 04:37:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-115663-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WwTxFUxJ; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115663-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115663-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id C85501C34F16 for ; Mon, 25 Mar 2024 11:37:45 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9F6EB353BD2; Mon, 25 Mar 2024 02:52:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WwTxFUxJ" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F0B202092FD; Sun, 24 Mar 2024 23:06:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321563; cv=none; b=lAl9nVThztLmXNDYRXZJPCEvCTTpS1v9OMQASZF7QS05x9W01Nif4TlcYFl/eKdc8o8lsuggTioWuvXZLv5SaGRQwC8MG9rDtWnGuJhhRi/SNvJiIA6ZyjznH9KQ0cxE3B0e4SLRNXNBZhsSq4AEtSGjEEKQrVX0DCgyzZK6tiA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321563; c=relaxed/simple; bh=2as4bBo5Q9U5cUurpFOJDy4sVzMO8/WedLyf9JYhGBY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fn1HGlf2LTSnr/1EUNyiZBsw8ml6qjO2b04c7nx7TOvkhvMwdyWsQ1IBxw3UJ/N4NyvbCwVQJO8kyr7fWe0EQQQj9KH7p11kuv7deWZt2jWGFitELkWUm4BG1nKZJfZ97M65YFEyJvVbp5/9duVf3imTuu2DXOitm8Vqkb1ImVc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WwTxFUxJ; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2560AC433F1; Sun, 24 Mar 2024 23:06:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321561; bh=2as4bBo5Q9U5cUurpFOJDy4sVzMO8/WedLyf9JYhGBY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WwTxFUxJpqWcxZFT+ZVA5nM9IFUydG8Hm1usWn7jpNzLYZ2gmkReCAMefp5XpeyEV 6JWyz84ZKfWSluAxd7hun6qpIQv9/1/DA2qhllWcX2CM1g7xqTKc1KRY2ZH75BDEf1 QM98iMOgvxrvovw+RyjvAbiYQdDXvJaeT+aJnn3n62ziEe3nfxY5D17l/aSwc8qe3E o0nJYZPxaRltBFVomZvo/sViMpOwiQptUgGQqf+8WXG25EodMzU95fN7ITS7C7GISF 2PQz6lyOMZhDDrvYKRIXUj1JGubP9ViMsppICAZ2MVO56Hrav1LYzmYd3D4K1XiRq7 Yvq34O3+94VnQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Bitterblue Smith , Ping-Ke Shih , Kalle Valo , Sasha Levin Subject: [PATCH 6.6 290/638] wifi: rtw88: 8821c: Fix beacon loss and disconnect Date: Sun, 24 Mar 2024 18:55:27 -0400 Message-ID: <20240324230116.1348576-291-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Bitterblue Smith [ Upstream commit e1dfa21427baeb813f9a2f9ceab6b7d32c3ca425 ] Tenda U9 V2.0, which contains RTL8811CU, is practically unusable because of frequent disconnections: Feb 23 14:46:45 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-BEACON-LOSS Feb 23 14:46:46 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-DISCONNECTED bssid=90:55:de:__:__:__ reason=4 locally_generated=1 Feb 23 14:46:52 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-CONNECTED - Connection to 90:55:de:__:__:__ completed [id=0 id_str=] Feb 23 14:46:54 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-BEACON-LOSS Feb 23 14:46:55 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-DISCONNECTED bssid=90:55:de:__:__:__ reason=4 locally_generated=1 Feb 23 14:47:01 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-CONNECTED - Connection to 90:55:de:__:__:__ completed [id=0 id_str=] Feb 23 14:47:04 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-BEACON-LOSS Feb 23 14:47:05 ideapad2 wpa_supplicant[427]: wlp3s0f3u2: CTRL-EVENT-DISCONNECTED bssid=90:55:de:__:__:__ reason=4 locally_generated=1 This is caused by a mistake in the chip initialisation. This version of the chip requires loading an extra AGC table right after the main one, but the extra table is being loaded at the wrong time, in rtw_chip_board_info_setup(). Move the extra AGC table loading to the right place, in rtw_phy_load_tables(). The rtw_chip_board_info_setup() can only do "software" things, and rtw_phy_load_tables() can really do IO. Fixes: 5d6651fe8583 ("rtw88: 8821c: support RFE type2 wifi NIC") Signed-off-by: Bitterblue Smith Acked-by: Ping-Ke Shih Signed-off-by: Kalle Valo Link: https://msgid.link/276c31d8-b9a8-4e54-a3ac-09b74657aff7@gmail.com Signed-off-by: Sasha Levin --- drivers/net/wireless/realtek/rtw88/main.c | 2 -- drivers/net/wireless/realtek/rtw88/phy.c | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c index 4a33d2e47f33f..63673005c2fb1 100644 --- a/drivers/net/wireless/realtek/rtw88/main.c +++ b/drivers/net/wireless/realtek/rtw88/main.c @@ -2027,8 +2027,6 @@ static int rtw_chip_board_info_setup(struct rtw_dev *rtwdev) rtw_phy_setup_phy_cond(rtwdev, hal->pkg_type); rtw_phy_init_tx_power(rtwdev); - if (rfe_def->agc_btg_tbl) - rtw_load_table(rtwdev, rfe_def->agc_btg_tbl); rtw_load_table(rtwdev, rfe_def->phy_pg_tbl); rtw_load_table(rtwdev, rfe_def->txpwr_lmt_tbl); rtw_phy_tx_power_by_rate_config(hal); diff --git a/drivers/net/wireless/realtek/rtw88/phy.c b/drivers/net/wireless/realtek/rtw88/phy.c index 128e75a81bf3c..37ef80c9091db 100644 --- a/drivers/net/wireless/realtek/rtw88/phy.c +++ b/drivers/net/wireless/realtek/rtw88/phy.c @@ -1761,12 +1761,15 @@ static void rtw_load_rfk_table(struct rtw_dev *rtwdev) void rtw_phy_load_tables(struct rtw_dev *rtwdev) { + const struct rtw_rfe_def *rfe_def = rtw_get_rfe_def(rtwdev); const struct rtw_chip_info *chip = rtwdev->chip; u8 rf_path; rtw_load_table(rtwdev, chip->mac_tbl); rtw_load_table(rtwdev, chip->bb_tbl); rtw_load_table(rtwdev, chip->agc_tbl); + if (rfe_def->agc_btg_tbl) + rtw_load_table(rtwdev, rfe_def->agc_btg_tbl); rtw_load_rfk_table(rtwdev); for (rf_path = 0; rf_path < rtwdev->hal.rf_path_num; rf_path++) { -- 2.43.0