From patchwork Tue Feb 4 18:36:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bitterblue Smith X-Patchwork-Id: 862095 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 87F96217F53 for ; Tue, 4 Feb 2025 18:37:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738694222; cv=none; b=TcvhBHE/fDJw7aMtmsN8sPqd9mg2+sVus1N4HvYlvyOYRoR9g3sS89C1cSAtPnRem8/ouuuzgzVVKkmq4SH46y0TpTYe0S0tXAGQJ2Fo0+VfJ+VwzXRC2jNvlUCBCsSvjrJTH8a/folNyQ+dYvs859l7VEaX23NI2hHfkZ5xK+c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738694222; c=relaxed/simple; bh=zi7VfPwdiah/6OHuVN652JFehCKRXYhwDYtlU3t1vkA=; h=Message-ID:Date:MIME-Version:Subject:From:To:Cc:References: In-Reply-To:Content-Type; b=kA3mKhjES8zBmZJABq2wHpbxGeShn5JL2yyJNifXv1bXZjecrxipUB1sOcX9uoDxlN6IQmJLbWlrTSVl5hefyZZk6CNW07shMuQwqS2nVzpFcTXKiO8EMiwJBNs7/u5XSfdIOL+xXLkdzzYblVm7jDKuFhdCwmeVGs2ixuC2W8M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Vsp3mc9E; arc=none smtp.client-ip=209.85.218.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Vsp3mc9E" Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-ab68a4ab074so720334166b.0 for ; Tue, 04 Feb 2025 10:37:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738694219; x=1739299019; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=SfZ+8udk5apdH5a/livDU4AwIo1+sDU7dep3IDErhIY=; b=Vsp3mc9EStLOAqQ3IMl9J1Dt1yHW+oBd1YX7EtDOAeI9sfcViDnB9CJSQMepQui5C9 It9Qh3MN5d9a+AY6qZrE0p568iOZBot42hDhgGDYJvL12xM53z+EzQCbfbHPixQA7k/r WziMmhT/kSXXib3kkYSwdAxKzKs0tdTsVmQwoQbDyNeqPdceVDDzCbtTmmqlV7BnE0Ji F+5JcTWY8fzvM4NWMDyFb0YPmV1YzKGva5OMJRw6mIPZRyUJPFRsS93PJp+xIv2Scsn2 dYo8eAjcP7Mjf3FFLtv0n2ScvYQhM7axSJ0HD66ZGWkCTIHqD0sxpJMXjGBm7icqPgyN nxww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738694219; x=1739299019; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=SfZ+8udk5apdH5a/livDU4AwIo1+sDU7dep3IDErhIY=; b=IK4TOt6AAE3pCVIBON3JQSV6mbG3k6o/I/8JJ375D3Y+6UrpadA4VoWnB1M2NYfyaB BxzUJYgRqeGj0C+isklhGgaY9NiM1eEd9AfEVMPJsuEV3fXQXQjYRQb7xZVY1226bOmh 74LjYBELVHyZeCrzDBVcnhRK2vXNa9+hk4Az/ObFtGy7ETRf+BNA0iM5IJumiSO08jLK zaijPPd824O7Wxb4SaWhvY3CkK49tBXtE1UigFcnqx202nTpdcTAGlJoksuTKLngzEse lFn+je/U+jYagWBPNVX2OytWeYfXcvPctB3oOh3ED+X/ZRV3xiXRwFhnqItFG53zcmDq o0qg== X-Gm-Message-State: AOJu0YwQMy9gR+BXD4TOqQMcml0tRFon1mq38VrBK7NexIM2f8WqvKAC k/uJruWbUCUMno9HPU2NkVaixV5BteSuqyzctx8QVagFJenl6gDh0xcy7w== X-Gm-Gg: ASbGncvmX4trOspWIxQOYX2JdGgiqUOa3hzQ+h31P3xg1aJutnYQzo2Xtntb2cYzuEK c1Fv1OrYKR/vQgTFusRTAq8ijyEmxVL6iU5xp0R4dvflSv/coRKzhJn7ZcgEA4/Vixvbh2PI4A9 5im2B44kcrGnbSoGYTX53x0m/V7mEXrcYyIxJgrEQCGT8KdDRoJPmo+oBbs4+fP7d2AtknrxF8Z 5Yp9lF1pCwDkIP1SMKd+wjpHRox1wd3IKTpDZFrs2IsU47N8fMQc3MgphQ+GjAu9DEKFcp1MQa1 fOZd+zGuKKiHYeytqzxA77k6 X-Google-Smtp-Source: AGHT+IH+0bzYEqPHOy1U029Gg7iZzdcVdqCtPNeBY24lIY5n5XoKnSpr49SRK8SPaLUbUBWNS1qxuQ== X-Received: by 2002:a05:6402:51ce:b0:5dc:d11d:702a with SMTP id 4fb4d7f45d1cf-5dcdb70e046mr186473a12.8.1738694218445; Tue, 04 Feb 2025 10:36:58 -0800 (PST) Received: from [192.168.0.50] ([79.119.240.253]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e47a7ea7sm952813366b.5.2025.02.04.10.36.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 04 Feb 2025 10:36:58 -0800 (PST) Message-ID: <55b5641f-094e-4f94-9f79-ac053733f2cf@gmail.com> Date: Tue, 4 Feb 2025 20:36:56 +0200 Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 1/9] wifi: rtw88: Fix __rtw_download_firmware() for RTL8814AU From: Bitterblue Smith To: "linux-wireless@vger.kernel.org" Cc: Ping-Ke Shih References: <9fc518ae-7708-42c6-99ca-56ee307555b6@gmail.com> Content-Language: en-US In-Reply-To: <9fc518ae-7708-42c6-99ca-56ee307555b6@gmail.com> Don't call ltecoex_read_reg() and ltecoex_reg_write() when the ltecoex_addr member of struct rtw_chip_info is NULL. The RTL8814AU doesn't have this feature. Signed-off-by: Bitterblue Smith --- v2: - No change. --- drivers/net/wireless/realtek/rtw88/mac.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c index cae9cca6dca3..63edf6461de8 100644 --- a/drivers/net/wireless/realtek/rtw88/mac.c +++ b/drivers/net/wireless/realtek/rtw88/mac.c @@ -784,7 +784,8 @@ static int __rtw_download_firmware(struct rtw_dev *rtwdev, if (!check_firmware_size(data, size)) return -EINVAL; - if (!ltecoex_read_reg(rtwdev, 0x38, <ecoex_bckp)) + if (rtwdev->chip->ltecoex_addr && + !ltecoex_read_reg(rtwdev, 0x38, <ecoex_bckp)) return -EBUSY; wlan_cpu_enable(rtwdev, false); @@ -802,7 +803,8 @@ static int __rtw_download_firmware(struct rtw_dev *rtwdev, wlan_cpu_enable(rtwdev, true); - if (!ltecoex_reg_write(rtwdev, 0x38, ltecoex_bckp)) { + if (rtwdev->chip->ltecoex_addr && + !ltecoex_reg_write(rtwdev, 0x38, ltecoex_bckp)) { ret = -EBUSY; goto dlfw_fail; } From patchwork Tue Feb 4 18:38:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bitterblue Smith X-Patchwork-Id: 862094 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A0BD21884A for ; Tue, 4 Feb 2025 18:38:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738694303; cv=none; b=GBgqZHoHlA7MpgwYZ/k/WOs14eCp8EQkSaqxNk3YDVJejUHgTMGJE4iDnE1JwBfaQNWgk5O6Lv2SyRvNuh1sPWL11UJwFDy+fXYwhmNjSo1BBjqLMe0EZXru/OlOyhxOT8Zuk7dCEyiJ+IUyivgp8zP8tq9eP/eVDqViRKCIvKU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738694303; c=relaxed/simple; bh=WaUoJ7nAxfMGMkoq7OlRIrphgSmbqgUh+p0083ImoUw=; h=Message-ID:Date:MIME-Version:Subject:From:To:Cc:References: In-Reply-To:Content-Type; b=kEXIrGvVRSBrM1/LJO51E9C4L260uDO/RwRP8MMv6lMDpyd61u/XDHemS2tkKl7ScNk6OUCFKyovFC60eqHQczrFTB8+hMhCBpk42oARE5k0/kIG9E1Sb7RGET2yBMHXNOcXoWuTacDEVCARbwfmK+IJNqZG59c7WsTQGWHOfpw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=b9XHETtz; arc=none smtp.client-ip=209.85.208.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="b9XHETtz" Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-5d3cf094768so10769457a12.0 for ; Tue, 04 Feb 2025 10:38:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738694299; x=1739299099; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=yv92xnSMtNnA1M6tJ/JX7RQB+vjsOFOK5K4t3ha3PCw=; b=b9XHETtznCs8iE4PDDLnaNFZlQn70yK6pPC+9WJZLsyFH4mYVhti8IUTkuXptNWG2O 2Wh72aE35U4bmbzxNUkapoQntx2tLqpYQwuAet1Ad3wl0khGbyNpHIBz4rFum76eQa4Y p7Ku0FUq1lrdelHY/XxGYyNZ8hh0zs00o3HVhRrgqi+BBqbyHcpqZ3k0UEcZUu+bs9BK ObiCyNrJ/RMJ1H0WhcB7hiwGgresy+s7GQz4c5r7d00UTH8qz2x9lmgqJVzHC7pmiviE O9nL7SP6nI4UXXr4/ss6l+PVTYRh1zD3ExviQe58L8XRgccT2T/Ps32H3vE3hubxhA93 AULA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738694299; x=1739299099; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=yv92xnSMtNnA1M6tJ/JX7RQB+vjsOFOK5K4t3ha3PCw=; b=P9NjlcNUh/6Pmrv/7TMS4X6Gd65BkdhAwRt/SQjSiPlGHaKoE8Di4bg6SH9ZnLMfq1 LZDzZdWQScKNbhkmFegauPeeNwdltSMRsS/YepXMq5VK+nyjxpXbpvvqIuJhj4ISnAJq LHUgpFlGo0RmJXaWROFLUg7sxVZzRr1yuk3BZDzk5u1LPycGTN+DvT415SmwkxTRJ/uO gW1aush7ymq22DtscAULzSlQ7biHV6dPHEHGV32Xt3f7qlqyWhmPLENcG/JmoE5B4ow3 nG83PPJefzkqNSG0bWUeWfzTHOoV6lCHdvI7v2YOHYfc+Nj4mai8+5VZrDOo9y2EM0JD z9FQ== X-Gm-Message-State: AOJu0Ywz5urvdHRCxNmPhVGlwqEhkVt2booa1QYoWAI6JZqSfsnbph/a FzoQD280NKSzu/aLoVgkPU81ByNFM8Mtjr+nT4U3ck3CchaFCczh7cSEAA== X-Gm-Gg: ASbGncs/55PjanlNapEsC3jcJTb0DTNWsR5bq7ukAmJ59HMe6jQIqdg4j+DYvg+12/5 Klinz6ljKyLJIf2tkrmrhrcQoHm7thDBIcuafxyGbMFXNzh9RJdAITYosaJ1BtPESk4Bis050uv NC+rtQEavudEm4mIMRxs6dcDS/eqlnxWKsWKjq+W1XsujVuFIZWFgmsDAknrOxp5gXfkhW7JBh+ 3+GUgtUk0DY4npXQCUEX9zFZa5qf5Oz96JF3ftF1TcWLaWu9waLn4riW7GeoUcEVG+rsbZblFbe A1NwVWdA4GUQBo4dIpZjkKvW X-Google-Smtp-Source: AGHT+IEnhmVXyAnTG7IKe8ANVwsOaf46JjmhDGg1iD3AoTDHdWIAJmsc4p821Zow2YtOwKxUuEYoZA== X-Received: by 2002:a05:6402:5d0:b0:5dc:da2f:9cd1 with SMTP id 4fb4d7f45d1cf-5dcdb733704mr94768a12.14.1738694299264; Tue, 04 Feb 2025 10:38:19 -0800 (PST) Received: from [192.168.0.50] ([79.119.240.253]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc723e4ceasm9710496a12.21.2025.02.04.10.38.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 04 Feb 2025 10:38:18 -0800 (PST) Message-ID: Date: Tue, 4 Feb 2025 20:38:17 +0200 Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 3/9] wifi: rtw88: Extend struct rtw_pwr_track_tbl for RTL8814AU From: Bitterblue Smith To: "linux-wireless@vger.kernel.org" Cc: Ping-Ke Shih References: <9fc518ae-7708-42c6-99ca-56ee307555b6@gmail.com> Content-Language: en-US In-Reply-To: <9fc518ae-7708-42c6-99ca-56ee307555b6@gmail.com> Currently this struct has the members required for chips with 2 RF paths. Add more members to support chips with 4 RF paths, like the RTL8814AU. Signed-off-by: Bitterblue Smith --- v2: - No change. --- drivers/net/wireless/realtek/rtw88/main.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wireless/realtek/rtw88/main.h index 62cd4c526301..e40e62302984 100644 --- a/drivers/net/wireless/realtek/rtw88/main.h +++ b/drivers/net/wireless/realtek/rtw88/main.h @@ -1130,14 +1130,26 @@ struct rtw_rfe_def { * For 2G there are cck rate and ofdm rate with different settings. */ struct rtw_pwr_track_tbl { + const u8 *pwrtrk_5gd_n[RTW_PWR_TRK_5G_NUM]; + const u8 *pwrtrk_5gd_p[RTW_PWR_TRK_5G_NUM]; + const u8 *pwrtrk_5gc_n[RTW_PWR_TRK_5G_NUM]; + const u8 *pwrtrk_5gc_p[RTW_PWR_TRK_5G_NUM]; const u8 *pwrtrk_5gb_n[RTW_PWR_TRK_5G_NUM]; const u8 *pwrtrk_5gb_p[RTW_PWR_TRK_5G_NUM]; const u8 *pwrtrk_5ga_n[RTW_PWR_TRK_5G_NUM]; const u8 *pwrtrk_5ga_p[RTW_PWR_TRK_5G_NUM]; + const u8 *pwrtrk_2gd_n; + const u8 *pwrtrk_2gd_p; + const u8 *pwrtrk_2gc_n; + const u8 *pwrtrk_2gc_p; const u8 *pwrtrk_2gb_n; const u8 *pwrtrk_2gb_p; const u8 *pwrtrk_2ga_n; const u8 *pwrtrk_2ga_p; + const u8 *pwrtrk_2g_cckd_n; + const u8 *pwrtrk_2g_cckd_p; + const u8 *pwrtrk_2g_cckc_n; + const u8 *pwrtrk_2g_cckc_p; const u8 *pwrtrk_2g_cckb_n; const u8 *pwrtrk_2g_cckb_p; const u8 *pwrtrk_2g_ccka_n; From patchwork Tue Feb 4 18:39:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bitterblue Smith X-Patchwork-Id: 862093 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 86E91218580 for ; Tue, 4 Feb 2025 18:39:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738694377; cv=none; b=MIiSnoOAve4tx+ZjspzH0EpSFrlq/ITMNl4KOCMXiU4c4g1tUG8yDx8CzbLlQncGoxEFuImZGhjxGuD1KZf+jMb/zEfWDBoW35QRtk8/tiZEEq4c40dqstgKA/+ndtxtErtLJAnQypOmBcSH5LlaEXkciCak6CIADL3CxBjvOE4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738694377; c=relaxed/simple; bh=ffz1F4mAPu5eyCMwxAc+TfyaXVkccADNd14Zw3OdtCs=; h=Message-ID:Date:MIME-Version:Subject:From:To:Cc:References: In-Reply-To:Content-Type; b=kJVWlftP2f6c5KbsF6c3z4igZOA+KfhZmIJZiA037vBwML4cgKVAWxEj7crJBKG6C6aZx99NCcPw3DZXnkN+nFpfXnICPzor1shhfm9990q6x4qPi8i25b7eX2xxLWUYV7b8y8nK6Z3YMauips0uj3G5nwWgy6AY72Wxm7DDQR0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ApPQd6nO; arc=none smtp.client-ip=209.85.208.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ApPQd6nO" Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-5d982de9547so11485643a12.2 for ; Tue, 04 Feb 2025 10:39:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738694372; x=1739299172; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=H5+7a8Re4dKW+BMIEI30vWTlU1os+zYewlN6x9QsUNY=; b=ApPQd6nOL6h0j/5+hAgYHRxKr1tGN21kZioK8XepueluVmmYkeZrPWZQZrtaMRGBPh 2/xxvmTY4Q9ouVgYKpTj6xM6pnSCQmK2Up+nZIT6ehI/J4Xp4hEDLBTB0eNObYqxS+Uz 24FvWdQWmGzMC9xim2a6uB7kIY8lZtCjpL6Pi5bx7zGAfezZ4JYX12CAXRAM+xsqcwpJ eTqvQR/MMH8NCNU4C2bzT/tBUPwa8UhMkTaNhSuuVa90SPkbW8hBYI/al5JTAozPS0CF 1ZhdNaQ17QqUy17wvZ1oSc3n5P2DGmhqA/02SEwu+saf9FuMN/m4GXb3uiOFwD2C1u/7 sLPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738694372; x=1739299172; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=H5+7a8Re4dKW+BMIEI30vWTlU1os+zYewlN6x9QsUNY=; b=pMDHuxZeqjgWL6RexoOGzwoBbjdbEOZPBb/VOa3UaaU7D2Q0limdaGE0YIBJBkJJv4 7D6lp3xaOXAlfazXX2U33Fr6q39Qct4bCVCj0G6vmhdW2xnu5ILRRVwBVTCJVZYicedM tLhahpIou4Q0/AsvbNfxob+90rVxXjcYviXV7HmkeAB//6cLtkvFE/EceafEdaIOTqkx xVsVD9ZeoZy00vZ/6OUc9hl4wtuNLGDQSeDnCaWxL/eoPzaubNnxoTdkPkinPmCwptLT lh/JwshiGyKxYvcj36yeoi4B/rL9ag6PEi9K+/R6Cg7mMnIp2jJmoF0tVIlARQ3n3BDx h9dQ== X-Gm-Message-State: AOJu0Yy0Yew8URFvF1oqHfZtVESWAkDiA6of2gcas+BPNvwtzvXGbTIQ yqaPt81u2tV+aGgwAyWYSfGcdxeDnLJSiUwjqY0c++RbiyTZjVvca2uGbQ== X-Gm-Gg: ASbGncsdgRwVnWAJB0b5zTY01ckl6BfUaLSmCVegYV80GLQ/a2g1a6h6TmaNXfHszgz 3r9HzHPK3xJVC20A2kDpFf+66tXUSvqCSFhVVB9uLEPq0FnhxiK3+x8n1YnGQLmC1TTFDQgTOzL 5jYzWkDo/3amPG3rXZQ5EFiTyylbvqXPNXHOWgW8uvruojl+YG6y7gcwh4AGFtdNDFBPik2InvE 2LOAQhi1SVeUogWk2++PBsduYQujSYt4+n/PeNKJWbsprxxau5NIw1ZvaSOzzNAHb2nRGfAzmO0 UMZBlvYlVkGQAMBB7T17sv/N X-Google-Smtp-Source: AGHT+IE/5tEToOwa2D+v7Lr9ixLDMX38ncYEN9qU9E6NhzCLe+JRlzco+Hzmp6aGHs4UZi8FURECzQ== X-Received: by 2002:a17:907:c0d:b0:aac:4325:a604 with SMTP id a640c23a62f3a-ab6cfe25cd0mr2923895666b.49.1738694371658; Tue, 04 Feb 2025 10:39:31 -0800 (PST) Received: from [192.168.0.50] ([79.119.240.253]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e4a2fa50sm958516466b.128.2025.02.04.10.39.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 04 Feb 2025 10:39:31 -0800 (PST) Message-ID: <08e2f328-1aab-4e50-93ac-c1e5dd9541ac@gmail.com> Date: Tue, 4 Feb 2025 20:39:29 +0200 Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 5/9] wifi: rtw88: Extend rtw_fw_send_ra_info() for RTL8814AU From: Bitterblue Smith To: "linux-wireless@vger.kernel.org" Cc: Ping-Ke Shih References: <9fc518ae-7708-42c6-99ca-56ee307555b6@gmail.com> Content-Language: en-US In-Reply-To: <9fc518ae-7708-42c6-99ca-56ee307555b6@gmail.com> The existing code is suitable for chips with up to 2 spatial streams. Inform the firmware about the rates it's allowed to use when transmitting 3 spatial streams. Signed-off-by: Bitterblue Smith --- v2: - Add RTW_CHIP_TYPE_8814A enum. - Check the chip type instead of the presence of RF path C. - Reduce indentation. --- drivers/net/wireless/realtek/rtw88/fw.c | 15 +++++++++++++++ drivers/net/wireless/realtek/rtw88/fw.h | 1 + drivers/net/wireless/realtek/rtw88/main.h | 1 + 3 files changed, 17 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw88/fw.c b/drivers/net/wireless/realtek/rtw88/fw.c index 02389b7c6876..6b563ac489a7 100644 --- a/drivers/net/wireless/realtek/rtw88/fw.c +++ b/drivers/net/wireless/realtek/rtw88/fw.c @@ -735,6 +735,7 @@ void rtw_fw_send_ra_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, { u8 h2c_pkt[H2C_PKT_SIZE] = {0}; bool disable_pt = true; + u32 mask_hi; SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_RA_INFO); @@ -755,6 +756,20 @@ void rtw_fw_send_ra_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, si->init_ra_lv = 0; rtw_fw_send_h2c_command(rtwdev, h2c_pkt); + + if (rtwdev->chip->id != RTW_CHIP_TYPE_8814A) + return; + + SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_RA_INFO_HI); + + mask_hi = si->ra_mask >> 32; + + SET_RA_INFO_RA_MASK0(h2c_pkt, (mask_hi & 0xff)); + SET_RA_INFO_RA_MASK1(h2c_pkt, (mask_hi & 0xff00) >> 8); + SET_RA_INFO_RA_MASK2(h2c_pkt, (mask_hi & 0xff0000) >> 16); + SET_RA_INFO_RA_MASK3(h2c_pkt, (mask_hi & 0xff000000) >> 24); + + rtw_fw_send_h2c_command(rtwdev, h2c_pkt); } void rtw_fw_media_status_report(struct rtw_dev *rtwdev, u8 mac_id, bool connect) diff --git a/drivers/net/wireless/realtek/rtw88/fw.h b/drivers/net/wireless/realtek/rtw88/fw.h index 404de1b0c407..48ad9ceab6ea 100644 --- a/drivers/net/wireless/realtek/rtw88/fw.h +++ b/drivers/net/wireless/realtek/rtw88/fw.h @@ -557,6 +557,7 @@ static inline void rtw_h2c_pkt_set_header(u8 *h2c_pkt, u8 sub_id) #define H2C_CMD_DEFAULT_PORT 0x2c #define H2C_CMD_RA_INFO 0x40 #define H2C_CMD_RSSI_MONITOR 0x42 +#define H2C_CMD_RA_INFO_HI 0x46 #define H2C_CMD_BCN_FILTER_OFFLOAD_P0 0x56 #define H2C_CMD_BCN_FILTER_OFFLOAD_P1 0x57 #define H2C_CMD_WL_PHY_INFO 0x58 diff --git a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wireless/realtek/rtw88/main.h index ba64d269521a..993c381e734b 100644 --- a/drivers/net/wireless/realtek/rtw88/main.h +++ b/drivers/net/wireless/realtek/rtw88/main.h @@ -191,6 +191,7 @@ enum rtw_chip_type { RTW_CHIP_TYPE_8703B, RTW_CHIP_TYPE_8821A, RTW_CHIP_TYPE_8812A, + RTW_CHIP_TYPE_8814A, }; enum rtw_tx_queue_type { From patchwork Tue Feb 4 18:40:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bitterblue Smith X-Patchwork-Id: 862092 Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0DF742185BB for ; Tue, 4 Feb 2025 18:41:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738694465; cv=none; b=PHX7v8xVa5WObxeaW27af7MA7ylV6Sl1d8OOLY4B72kWvhhV7R0KxRid++DqVTEBBaew101MKAlsJIq7+aRG1bTdd4QOvXDAwpZkGfjnbaxfeSx77kBwJtbUCBxctbI4xeEhHBKPku1mpgj9YO7jhwNAPI5mlovdGqpIonXx5m4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738694465; c=relaxed/simple; bh=24LKBN5DV5VCd98f1n2/HWgbek8zHRlXR4HpYMY4OnI=; h=Message-ID:Date:MIME-Version:Subject:From:To:Cc:References: In-Reply-To:Content-Type; b=Y9pkRRnsmwGWNvP+nohx1KV2m0JdHK4EyxgkBGiB4X9av8dhURgYPfFAcOl/p0MKcWzWYAqM1OtQfvXUVQ4AZ2prOHubvsz3MLHUavQloO6fDf2meVq0RHOhcE2f9UARrvLusDVcGpTYvGsTpCxFzAlbZuwUukBGSQKK7MvGijU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FcafSBA4; arc=none smtp.client-ip=209.85.208.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FcafSBA4" Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-5da12292b67so9718433a12.3 for ; Tue, 04 Feb 2025 10:41:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738694461; x=1739299261; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=QTpOiXdIa6atYdsGoHk/XwVWizf68gFzsv9hdAUZUE4=; b=FcafSBA4KNP4PCU1eMHa8RdW9695rJE7Vwz659Rf1u8D4+pHiL01Dfdem//4Eznmy6 VSXwfq+Qx7/jcFcCGBBZEa8Rn/UujN1HNufUvDszFRFTiH3k+qDt8uVojIShInYzOiGX 3PwFF4TVY4AJIXhtEniipCg/FZyBb6TorwmGPmDihy+bOJF48WKX9jbGpCnK7df+ivbX Y7FsNsAOjlKjw20+J4NyVcZClbBpg2tvcYcsFrB2SAGHjSEJZUvacMX0nyR9IHhYauNN vrfofyFjSAI1UTSgybeYLjHcKPMy1bnD02jGg9iqgY8XI/IBxjOqr9YD/Oe5Swzq8GOT hg9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738694461; x=1739299261; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=QTpOiXdIa6atYdsGoHk/XwVWizf68gFzsv9hdAUZUE4=; b=BK1+x5NU3n7OVyC0exGJUa9PZO+wfA5PTPfty9kaF/5ltcAlWDxTvKAmhoDk5fMO9m Ah363eN9b03FAs5yeDVhLkjE+kAFXxODUde3FAybg64WuyTPoF8ExRY0zGc9cyPt/iX6 mtoIgh2dixwjz3emsIR2A+NksBZ2/aGMQV5lmhCyyKzp+WwYqxXygLnuIernE1tq1NFC wFFZKF3X7G2Oup/9MleRRatKhjPBouk55I5sUzGgAZdTVrnYpfPz513YzyqsLjhs04NV COgK2WO3P8oWYKJD5xVQpG7lceS0QEp730BdpvklrsyrcYHNiBoX1LUOwwSKl55fz0p9 T7RQ== X-Gm-Message-State: AOJu0YyllkZu6+ODpz/Q7DpIAyoXNnP4vHKG4iNnv8wHDboOoEoxlqWL kTWGihkKJAT5BpgZq7GgJc28WSuHNXQoyoPNASP/Ejt/n4aepCG9BNdnOQ== X-Gm-Gg: ASbGncvKCS/UhIwVW3nB4RDQWZ/SEuXHE1xID4kDrbFvjx1rP86yenrO3tCAO3jbdcA 5ZRIncVoKccN4BgUrItmuWY4CYiv8M8MApUwlQ8uk2s52J80nlsXqspKNdAPBszoVoyEOAqS7k3 shMfqM0k9rRcmcRApdMSdBYCj6fox2p7OSPwKYOflb6p8u0/r5iH0yMLkVJCmlsYhp4aYUZD6HV 0SVNlanvOP585fiDg1DCn6E6hhUQyIo48T7dMM9TBwQOBGJ7f+jj9K8hp6xbKyac87dt1Lrp9y/ 370cWwP2VMDlWpmjaimywKAF X-Google-Smtp-Source: AGHT+IGC71gPVuBMm5lsFR+wJiNL6ZMuTYiT1hWWxfGfGiBU0y8cNzpn33oY0x2jVLjuQk2ZWdxJaQ== X-Received: by 2002:a05:6402:40d2:b0:5dc:740b:3cdb with SMTP id 4fb4d7f45d1cf-5dcdb7758e5mr165939a12.29.1738694460886; Tue, 04 Feb 2025 10:41:00 -0800 (PST) Received: from [192.168.0.50] ([79.119.240.253]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab7106178ccsm611483166b.9.2025.02.04.10.40.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 04 Feb 2025 10:41:00 -0800 (PST) Message-ID: <5a1c5a46-8ebb-43b0-9ab1-b78e2a22b3d2@gmail.com> Date: Tue, 4 Feb 2025 20:40:58 +0200 Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 7/9] wifi: rtw88: Rename RTW_RATE_SECTION_MAX to RTW_RATE_SECTION_NUM From: Bitterblue Smith To: "linux-wireless@vger.kernel.org" Cc: Ping-Ke Shih References: <9fc518ae-7708-42c6-99ca-56ee307555b6@gmail.com> Content-Language: en-US In-Reply-To: <9fc518ae-7708-42c6-99ca-56ee307555b6@gmail.com> It fits the meaning of the enum better. Signed-off-by: Bitterblue Smith --- v2: - Patch is new in v2. --- drivers/net/wireless/realtek/rtw88/main.h | 12 +++++----- drivers/net/wireless/realtek/rtw88/phy.c | 24 +++++++++---------- drivers/net/wireless/realtek/rtw88/rtw8821c.c | 2 +- drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +- drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +- drivers/net/wireless/realtek/rtw88/rtw88xxa.c | 2 +- drivers/net/wireless/realtek/rtw88/sar.c | 2 +- 7 files changed, 23 insertions(+), 23 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wireless/realtek/rtw88/main.h index c982d9d3c5d7..057141e196e6 100644 --- a/drivers/net/wireless/realtek/rtw88/main.h +++ b/drivers/net/wireless/realtek/rtw88/main.h @@ -168,7 +168,7 @@ enum rtw_rate_section { RTW_RATE_SECTION_VHT_2S, /* keep last */ - RTW_RATE_SECTION_MAX, + RTW_RATE_SECTION_NUM, }; enum rtw_wireless_set { @@ -1937,7 +1937,7 @@ union rtw_sar_cfg { struct rtw_sar { enum rtw_sar_sources src; - union rtw_sar_cfg cfg[RTW_RF_PATH_MAX][RTW_RATE_SECTION_MAX]; + union rtw_sar_cfg cfg[RTW_RF_PATH_MAX][RTW_RATE_SECTION_NUM]; }; struct rtw_hal { @@ -1981,16 +1981,16 @@ struct rtw_hal { s8 tx_pwr_by_rate_offset_5g[RTW_RF_PATH_MAX] [DESC_RATE_MAX]; s8 tx_pwr_by_rate_base_2g[RTW_RF_PATH_MAX] - [RTW_RATE_SECTION_MAX]; + [RTW_RATE_SECTION_NUM]; s8 tx_pwr_by_rate_base_5g[RTW_RF_PATH_MAX] - [RTW_RATE_SECTION_MAX]; + [RTW_RATE_SECTION_NUM]; s8 tx_pwr_limit_2g[RTW_REGD_MAX] [RTW_CHANNEL_WIDTH_MAX] - [RTW_RATE_SECTION_MAX] + [RTW_RATE_SECTION_NUM] [RTW_MAX_CHANNEL_NUM_2G]; s8 tx_pwr_limit_5g[RTW_REGD_MAX] [RTW_CHANNEL_WIDTH_MAX] - [RTW_RATE_SECTION_MAX] + [RTW_RATE_SECTION_NUM] [RTW_MAX_CHANNEL_NUM_5G]; s8 tx_pwr_tbl[RTW_RF_PATH_MAX] [DESC_RATE_MAX]; diff --git a/drivers/net/wireless/realtek/rtw88/phy.c b/drivers/net/wireless/realtek/rtw88/phy.c index f6528016973d..e3a5f8e1e30a 100644 --- a/drivers/net/wireless/realtek/rtw88/phy.c +++ b/drivers/net/wireless/realtek/rtw88/phy.c @@ -88,14 +88,14 @@ const u8 rtw_vht_2s_rates[] = { DESC_RATEVHT2SS_MCS8, DESC_RATEVHT2SS_MCS9 }; -const u8 * const rtw_rate_section[RTW_RATE_SECTION_MAX] = { +const u8 * const rtw_rate_section[RTW_RATE_SECTION_NUM] = { rtw_cck_rates, rtw_ofdm_rates, rtw_ht_1s_rates, rtw_ht_2s_rates, rtw_vht_1s_rates, rtw_vht_2s_rates }; EXPORT_SYMBOL(rtw_rate_section); -const u8 rtw_rate_size[RTW_RATE_SECTION_MAX] = { +const u8 rtw_rate_size[RTW_RATE_SECTION_NUM] = { ARRAY_SIZE(rtw_cck_rates), ARRAY_SIZE(rtw_ofdm_rates), ARRAY_SIZE(rtw_ht_1s_rates), @@ -1596,7 +1596,7 @@ static void rtw_phy_set_tx_power_limit(struct rtw_dev *rtwdev, u8 regd, u8 band, ch_idx = rtw_channel_to_idx(band, ch); if (regd >= RTW_REGD_MAX || bw >= RTW_CHANNEL_WIDTH_MAX || - rs >= RTW_RATE_SECTION_MAX || ch_idx < 0) { + rs >= RTW_RATE_SECTION_NUM || ch_idx < 0) { WARN(1, "wrong txpwr_lmt regd=%u, band=%u bw=%u, rs=%u, ch_idx=%u, pwr_limit=%d\n", regd, band, bw, rs, ch_idx, pwr_limit); @@ -1701,7 +1701,7 @@ rtw_cfg_txpwr_lmt_by_alt(struct rtw_dev *rtwdev, u8 regd, u8 regd_alt) u8 bw, rs; for (bw = 0; bw < RTW_CHANNEL_WIDTH_MAX; bw++) - for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) + for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) __cfg_txpwr_lmt_by_alt(&rtwdev->hal, regd, regd_alt, bw, rs); } @@ -2060,7 +2060,7 @@ static u8 rtw_phy_get_5g_tx_power_index(struct rtw_dev *rtwdev, return tx_power; } -/* return RTW_RATE_SECTION_MAX to indicate rate is invalid */ +/* return RTW_RATE_SECTION_NUM to indicate rate is invalid */ static u8 rtw_phy_rate_to_rate_section(u8 rate) { if (rate >= DESC_RATE1M && rate <= DESC_RATE11M) @@ -2076,7 +2076,7 @@ static u8 rtw_phy_rate_to_rate_section(u8 rate) else if (rate >= DESC_RATEVHT2SS_MCS0 && rate <= DESC_RATEVHT2SS_MCS9) return RTW_RATE_SECTION_VHT_2S; else - return RTW_RATE_SECTION_MAX; + return RTW_RATE_SECTION_NUM; } static s8 rtw_phy_get_tx_power_limit(struct rtw_dev *rtwdev, u8 band, @@ -2094,7 +2094,7 @@ static s8 rtw_phy_get_tx_power_limit(struct rtw_dev *rtwdev, u8 band, if (regd > RTW_REGD_WW) return power_limit; - if (rs == RTW_RATE_SECTION_MAX) + if (rs == RTW_RATE_SECTION_NUM) goto err; /* only 20M BW with cck and ofdm */ @@ -2138,7 +2138,7 @@ static s8 rtw_phy_get_tx_power_sar(struct rtw_dev *rtwdev, u8 sar_band, .rs = rs, }; - if (rs == RTW_RATE_SECTION_MAX) + if (rs == RTW_RATE_SECTION_NUM) goto err; return rtw_query_sar(rtwdev, &arg); @@ -2227,7 +2227,7 @@ static void rtw_phy_set_tx_power_index_by_rs(struct rtw_dev *rtwdev, u8 bw; int i; - if (rs >= RTW_RATE_SECTION_MAX) + if (rs >= RTW_RATE_SECTION_NUM) return; rates = rtw_rate_section[rs]; @@ -2258,7 +2258,7 @@ static void rtw_phy_set_tx_power_level_by_path(struct rtw_dev *rtwdev, else rs = RTW_RATE_SECTION_OFDM; - for (; rs < RTW_RATE_SECTION_MAX; rs++) + for (; rs < RTW_RATE_SECTION_NUM; rs++) rtw_phy_set_tx_power_index_by_rs(rtwdev, ch, path, rs); } @@ -2353,7 +2353,7 @@ void rtw_phy_tx_power_limit_config(struct rtw_hal *hal) for (regd = 0; regd < RTW_REGD_MAX; regd++) for (bw = 0; bw < RTW_CHANNEL_WIDTH_MAX; bw++) - for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) + for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) __rtw_phy_tx_power_limit_config(hal, regd, bw, rs); } @@ -2389,7 +2389,7 @@ void rtw_phy_init_tx_power(struct rtw_dev *rtwdev) /* init tx power limit */ for (regd = 0; regd < RTW_REGD_MAX; regd++) for (bw = 0; bw < RTW_CHANNEL_WIDTH_MAX; bw++) - for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) + for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) rtw_phy_init_tx_power_limit(rtwdev, regd, bw, rs); } diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821c.c b/drivers/net/wireless/realtek/rtw88/rtw8821c.c index cc152248407c..6abb21067aed 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c +++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c @@ -709,7 +709,7 @@ static void rtw8821c_set_tx_power_index(struct rtw_dev *rtwdev) int rs, path; for (path = 0; path < hal->rf_path_num; path++) { - for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) { + for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) { if (rs == RTW_RATE_SECTION_HT_2S || rs == RTW_RATE_SECTION_VHT_2S) continue; diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.c b/drivers/net/wireless/realtek/rtw88/rtw8822b.c index 23a29019752d..742a2a05632e 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c +++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c @@ -964,7 +964,7 @@ static void rtw8822b_set_tx_power_index(struct rtw_dev *rtwdev) int rs, path; for (path = 0; path < hal->rf_path_num; path++) { - for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) + for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) rtw8822b_set_tx_power_index_by_rate(rtwdev, path, rs, &phy_pwr_idx); } diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c b/drivers/net/wireless/realtek/rtw88/rtw8822c.c index ec362a817f5f..2314d160292a 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c +++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c @@ -2746,7 +2746,7 @@ static void rtw8822c_set_tx_power_index(struct rtw_dev *rtwdev) s8 diff_idx[4]; rtw8822c_set_write_tx_power_ref(rtwdev, pwr_ref_cck, pwr_ref_ofdm); - for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) { + for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) { for (j = 0; j < rtw_rate_size[rs]; j++) { rate = rtw_rate_section[rs][j]; pwr_a = hal->tx_pwr_tbl[RF_PATH_A][rate]; diff --git a/drivers/net/wireless/realtek/rtw88/rtw88xxa.c b/drivers/net/wireless/realtek/rtw88/rtw88xxa.c index 71e61b9c0bec..109ff42eda82 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw88xxa.c +++ b/drivers/net/wireless/realtek/rtw88/rtw88xxa.c @@ -1637,7 +1637,7 @@ void rtw88xxa_set_tx_power_index(struct rtw_dev *rtwdev) int rs, path; for (path = 0; path < hal->rf_path_num; path++) { - for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) { + for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) { if (hal->rf_path_num == 1 && (rs == RTW_RATE_SECTION_HT_2S || rs == RTW_RATE_SECTION_VHT_2S)) diff --git a/drivers/net/wireless/realtek/rtw88/sar.c b/drivers/net/wireless/realtek/rtw88/sar.c index c472f1502b82..50b9c2412bb1 100644 --- a/drivers/net/wireless/realtek/rtw88/sar.c +++ b/drivers/net/wireless/realtek/rtw88/sar.c @@ -97,7 +97,7 @@ int rtw_set_sar_specs(struct rtw_dev *rtwdev, power, BIT(RTW_COMMON_SAR_FCT)); for (j = 0; j < RTW_RF_PATH_MAX; j++) { - for (k = 0; k < RTW_RATE_SECTION_MAX; k++) { + for (k = 0; k < RTW_RATE_SECTION_NUM; k++) { arg = (struct rtw_sar_arg){ .sar_band = idx, .path = j, From patchwork Tue Feb 4 18:42:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bitterblue Smith X-Patchwork-Id: 862091 Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 57E58212FA5 for ; Tue, 4 Feb 2025 18:42:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738694534; cv=none; b=MxFUjNb1VfXEi8n6OQYWQYOn53aCznr/KZgqIUASoR+t+44cRKCJyvZWiTTp20/i7JM1xlgttUwC/A1hm3AQbE+oIjb6anpax9cBdwrO15DpY1ogGWtylLhKDcF/w8BLPfAIDtXxvETMeNXtf1m03s024Ybfu1qeICULx0JUBbU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738694534; c=relaxed/simple; bh=2iRYT8CAMaCBfscTTLIvgOFiB44rgKP8xvslhjf8H7E=; h=Message-ID:Date:MIME-Version:Subject:From:To:Cc:References: In-Reply-To:Content-Type; b=DOaGRyDsDYUiRRaKPg8zKCeGr3FBRmRJQfBGpHU8Yg9NmynNCNg9ymritJruZA0OFwb1poPqNXuFj3zh9QbQBGV/kAoFve+JWT+3E79GcLkjujKgeBsReiQWegjpgy6cYusw0GenOAaDngzsGQDlkncdcN9Qw2ISAzNrgqhO6Js= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=XUkn91lY; arc=none smtp.client-ip=209.85.208.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XUkn91lY" Received: by mail-ed1-f47.google.com with SMTP id 4fb4d7f45d1cf-5dcd09af4f9so1441267a12.0 for ; Tue, 04 Feb 2025 10:42:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738694530; x=1739299330; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=8a+ws9xGIB26df1b1IxmBPvt6VXFNLad3ifZTYSD7+w=; b=XUkn91lYdp373GENPTMBCV9AtBIFAG43awKVdA0orpdDUbzi3guB2RcEv8MbeGP5G2 EKCifxkEqavIIKd7Za71LqhV3VDgs25YOaWX4H5VNU3JNlwjAST4g+G2BO6HG6ml1vcV BWAJKGu8RWBmTAwNq4qF4pVT/1d/lLoyx38GX3YybXjMeyMyJIjlOl0bo1dn694sfhWE c5a1tAHXyx1J/pH6D0LrKqIIUXh01auH2g4TKWy+UaUs6WRaCZ3WKAh+EwQGAcQonrmp lPCCyHn1aRAolOImhEKil5CuUVMMvnni2X9vd4YcEtUUEf4e4oDyVSxgdPmyOuQ7K/m8 0LCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738694530; x=1739299330; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=8a+ws9xGIB26df1b1IxmBPvt6VXFNLad3ifZTYSD7+w=; b=cL+/Pi2hdkLzpqGHHikggBvuGZJ/6rfP5NCWdj8WeRcWeZ50ME0RXLv9dAN6jWb2mZ un5rgHheS2parhL2GnTlh2zzVgOpyr5qcplZ7if6I0LNkZoBRvwq0tIzeFp8rWbWRpwN XPj43R5yrlHCGOTyGjGqRvfICmVoby/8eTv3p7IqGoo2B6vBIg+zHHXtHyqVnDa8pdWL 2MPz4F2IsRj1ocTRw3yXMG5ohfbpmIeWvd3NAgGroWvVGx9Pu6ULqpjuu883YDMMMukb jAGc3HrCMNpUS9LwS6BSe+5lHoyy/CFHEKc+Inof5Nk+/aFIOeb4bnYiV8ZhwT4aZ1BS CmmQ== X-Gm-Message-State: AOJu0Yzt2Q5AZNCgEhXtZGsjACPWoKxsmXjmuo03XFZ9MYXVaI9zB8dk BeRX8ojCdzQIItJcBbzi5BVtHLoKAPoozm+KXMLhgTrBujujeY0cmFuNog== X-Gm-Gg: ASbGncuTbCLyqpKF5d4oMJDtbPuPS6LlUbRMrpHtNluyb+B9TCtePbzwWpNXba3QeLS I71gSNv1Vie7Rz/dlWQwraO1FQWzj2sMHwzs6piivyl3z5qcqatL0KjFcE8i+qfK8owuB6N+/jx WEx6U/8/gQyB4Uo2D59nhYkLFZMqxhtdsTyREESxbydxiVrMSYVPMGMKSogc2B+j/DWY8OWIUzY TLZN09w4T3agHoRyc8RsGo1WkxU1iWM3Fh5WrxV5ZEELn4RXIoxx/SnA0L6yCBdDexF3GxWaxNM GEUOdRSiPVNzjnysremMn1n4 X-Google-Smtp-Source: AGHT+IGtXQxpG8Jfm4YjkKvFp08JocgSMBuz2HqANSXhHqcHSeLcHm/tCX+WDFxJ16SOOicwoDCxfQ== X-Received: by 2002:a05:6402:358d:b0:5dc:cc02:5d25 with SMTP id 4fb4d7f45d1cf-5dcdb73336emr107725a12.11.1738694530376; Tue, 04 Feb 2025 10:42:10 -0800 (PST) Received: from [192.168.0.50] ([79.119.240.253]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc87f2e5easm7539267a12.57.2025.02.04.10.42.09 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 04 Feb 2025 10:42:09 -0800 (PST) Message-ID: <48d1d90f-2aeb-4ec5-9a24-0980e10eae1e@gmail.com> Date: Tue, 4 Feb 2025 20:42:08 +0200 Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 9/9] wifi: rtw88: Fix rtw_update_sta_info() for RTL8814AU From: Bitterblue Smith To: "linux-wireless@vger.kernel.org" Cc: Ping-Ke Shih References: <9fc518ae-7708-42c6-99ca-56ee307555b6@gmail.com> Content-Language: en-US In-Reply-To: <9fc518ae-7708-42c6-99ca-56ee307555b6@gmail.com> This function tells the firmware what rates it can use. Put the 3SS and 4SS HT rates supported by the other station into the rate mask. Remove the 3SS and 4SS rates from the rate mask if the hardware only has 2 spatial streams. And finally, select the right rate ID (a parameter for the firmware) when the hardware has 3 spatial streams. Signed-off-by: Bitterblue Smith --- v2: - No change. --- drivers/net/wireless/realtek/rtw88/main.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c index 8d22df293e78..e4f9b744f24d 100644 --- a/drivers/net/wireless/realtek/rtw88/main.c +++ b/drivers/net/wireless/realtek/rtw88/main.c @@ -1234,7 +1234,9 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, if (sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_RXLDPC) ldpc_en = VHT_LDPC_EN; } else if (sta->deflink.ht_cap.ht_supported) { - ra_mask |= (sta->deflink.ht_cap.mcs.rx_mask[1] << 20) | + ra_mask |= ((u64)sta->deflink.ht_cap.mcs.rx_mask[3] << 36) | + ((u64)sta->deflink.ht_cap.mcs.rx_mask[2] << 28) | + (sta->deflink.ht_cap.mcs.rx_mask[1] << 20) | (sta->deflink.ht_cap.mcs.rx_mask[0] << 12); if (sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_RX_STBC) stbc_en = HT_STBC_EN; @@ -1244,6 +1246,9 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, if (efuse->hw_cap.nss == 1 || rtwdev->hal.txrx_1ss) ra_mask &= RA_MASK_VHT_RATES_1SS | RA_MASK_HT_RATES_1SS; + else if (efuse->hw_cap.nss == 2) + ra_mask &= RA_MASK_VHT_RATES_2SS | RA_MASK_HT_RATES_2SS | + RA_MASK_VHT_RATES_1SS | RA_MASK_HT_RATES_1SS; if (hal->current_band_type == RTW_BAND_5G) { ra_mask |= (u64)sta->deflink.supp_rates[NL80211_BAND_5GHZ] << 4; @@ -1302,10 +1307,9 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, break; } - if (sta->deflink.vht_cap.vht_supported && ra_mask & 0xffc00000) - tx_num = 2; - else if (sta->deflink.ht_cap.ht_supported && ra_mask & 0xfff00000) - tx_num = 2; + if (sta->deflink.vht_cap.vht_supported || + sta->deflink.ht_cap.ht_supported) + tx_num = efuse->hw_cap.nss; rate_id = get_rate_id(wireless_set, bw_mode, tx_num);