From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (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 CC05B405C38 for ; Thu, 9 Jul 2026 10:32:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783593123; cv=none; b=CPr8t9WvkZH+oTEvA3ORbjAWdW2b0BBlqG4d0Z8nMX6LpGK5J08ll0J1sXBAx2slpSyBzQGGTL+mnqFh0WvWJofGGodKTRNRb3lwrVMgf0TsWvuPUJ2vOLVo7wFMnanEiG6EZsAzNJ2LBsIxWmXWnvNcINoAz+jjJ7/blCFgjZY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783593123; c=relaxed/simple; bh=NNmvmMFiSvKuSmWWjBp9FoknxILTLef0Ak79f4ZlafM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=tUH4R7T/MtceF58tnQefsHKQYohiU0N4UEaX0+grcX0cULEUaIeSUC6yQT578n6liE4s3RHrQEeb0//GfTuX02pckoKYoI876aPFyYsDbA/osiD3krz3/DJjyV9E1twzvBZTUUPHSl8lPwQHJoTJJKyuy3BHJV/+lfB9WgPJl2M= 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=YFs3LkH9; arc=none smtp.client-ip=209.85.221.50 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="YFs3LkH9" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-476a130c138so1926546f8f.0 for ; Thu, 09 Jul 2026 03:32:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783593120; x=1784197920; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=zH3UvIyJssKv6bfHE7xFicyRPn7SV1QlAreFeCCuxRo=; b=YFs3LkH9QXgDdAgQ+kxVlP2KJLRfG834DTeftZlYsAbsn6S/Z2KOgLWx5jAbwR6xUM y19zE9/RXk58+HNfrIiEK82VuKFOIxID5vJHz+MXVUmRFf51CK/oKKCxkA6fY5iMG0ad fmn/afIPrjUbGmjujU23dFlJAhNOsc2T85nTv5SdE95Kragm4Osc7rJsRW6fZE9EZ3WY jII0x7UuvjWyYTcpaevjmXl0sstjI9fpI/75nZgDzqKbQt8mrU6OblngN/JhF9z3ebpq VsjgXwil4e6CPaj9lwjDfOsBLRkFON3y3cQDHWR/NZ1agec6CHuoCQz5KErQcyg8mSOw Sguw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783593120; x=1784197920; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=zH3UvIyJssKv6bfHE7xFicyRPn7SV1QlAreFeCCuxRo=; b=Y7DcJvTWDIU1hZijBR4hgtkBg1XzRAQQjDHtgUWoxOKI58Wqh99d2QsbwHw6YSAXEj v619SkfFSpkffTjw971/fp3oI2I4A/PIymc4Z+Gc+d5wLrVP2cxBJWPFcTpozODn7X4i ngBH9VnHQw3x2TQpsHJ0ML3DVQtcUKmppzg2hHegTSrkhsomgnaNslxfliqhx/xbao+h UOeRM1lCaxUSxmt52CjoSwkEhz472xRBG4VyZ93emX0aispksSzYSt+8AbV66QSY0zQy yCl5R4SHlItY7DzkTvLuhLjhv/X/rTn2bSbDz+Yc2fKMj8RL35TLwDNZsd/Z0/U7Esut YVoQ== X-Forwarded-Encrypted: i=1; AHgh+Rp0VwU/idQWbMCxrGXHW/ITtLKG/R6LMu4loRfGSA3S+EMcQVkaLXBd9fhv0NNEM/XwypEG7ktbxjnWJHk=@vger.kernel.org X-Gm-Message-State: AOJu0YxkwiosOYqO/h4HT35QtFbSTRk4rnAkhvFp7bcnXAf7D+O3kDjr kbivofMTz9p70/I4bTz+kRyO/Txjrqmj0JGtfHeXnkgvnXHMfR5F9ClO X-Gm-Gg: AfdE7cmr+X9o/nms0EKVL2J0YDqCMSthmi9KTe/v1tSomH9LhTGFviXxCcL4HscekGC FssSgU5UECIw9DJb7UHPMx8qAmJlfSdXIw3C/fM8/2094M8RSlT/ugHrORbWg8OOmBBQe8u67sY KgilAOQJXkLT9EFROTQiggACRhxa9WigdMlN80og/ft3FHsCGZhIQ0D/BlsfSRuDnBJUT8HTkIm xhXVXw8Gu0kpZlWbb3z7ND0U/Enli2u25cpg2w/dIFTMmFJLWG3wrfZ+wEUgdXPjq9I9MhcDjX5 I6NGOJDFQlGmRTa9U5pWPGY3RE04tPl6glYWFXQsvyXthP7YuBIZyybajSOFWtqFBu6IW+uvAUh 2yYYfAAdrZg8CMI7zXWYCxO/2Ctf9n032BYqjJyYc7nJ9Pm5c7/InCmfbaWwpvrlnUp3xiSrWGT nDW1bK9xiWeIzXCm1AS2XhfJjJc0PT7ppWEIwF X-Received: by 2002:a05:6000:1a86:b0:478:65a8:2635 with SMTP id ffacd0b85a97d-47df0714967mr7380351f8f.11.1783593120154; Thu, 09 Jul 2026 03:32:00 -0700 (PDT) Received: from localhost ([102.128.173.0]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47aa0f21543sm46816067f8f.35.2026.07.09.03.31.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Jul 2026 03:31:59 -0700 (PDT) From: Louis Kotze To: Ping-Ke Shih Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, loukot@gmail.com Subject: [PATCH v2] wifi: rtw89: advertise EML capabilities for 8922a Date: Thu, 9 Jul 2026 12:31:56 +0200 Message-ID: <20260709103156.1271328-1-loukot@gmail.com> X-Mailer: git-send-email 2.55.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The driver implements the EMLSR operating mode for 8922a and selects it when an interface has more than one active link (enum rtw89_mlo_mode, rtw89_ops_vif_cfg_changed()), but leaves eml_capabilities = 0 in the STA iftype-ext-cap. mac80211 therefore advertises no EML capabilities in the Multi-Link element, so an EMLSR-capable AP cannot negotiate EMLSR with this STA. Populate eml_capabilities with IEEE80211_EML_CAP_EMLSR_SUPP, an EML padding delay of 256 us and an EMLSR transition delay of 32 us, following the same layout iwlwifi uses (iwlwifi advertises 32 us and 64 us). These values have run stably on my RTL8922AU since late April; if Realtek has recommended values for this silicon I am happy to adjust them. In A/B testing against a TP-Link Deco BE63 (EMLSR-capable Wi-Fi 7 AP), ML association without this change came up with a single link; with it, both the 5 GHz and 6 GHz links are set up (debugfs shows link-1 and link-2 with active_links behaving as expected for EMLSR), stable across 60+ hour soaks with no kernel or wpa_supplicant errors. EMLMR is deliberately not advertised: the chip has a single shared 2T2R RF block (rf_path_num = 2) and the driver has no EMLMR mode, so EMLSR is the architectural ceiling for this silicon. Realtek's Wi-Fi Alliance certification of RTL8922AE (WFA129313) likewise lists EMLSR but not EMLMR; the certification was obtained with the Windows driver, so it is cited only as evidence of silicon and firmware capability. Signed-off-by: Louis Kotze --- Changes in v2 (was patch 1/4 of "advertise WFA-certified EHT capabilities for 8922a"): - Narrowed the series to this single patch; see the reply on the v1 thread for why the other three capabilities are deferred. - Dropped Restricted TWT from this patch: no in-tree driver advertises it for a STA yet and I cannot verify the firmware side. - Dropped the WFA certificate Link: trailer; the certification was obtained with the Windows driver, so it is cited in the body only as silicon-side evidence. - Stated the advertised delay values and their testing basis explicitly, and switched to the __bf_shf() layout iwlwifi uses. - Rebased onto wireless-next; also applies cleanly on rtw-next (2b7858891b10). drivers/net/wireless/realtek/rtw89/core.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c index 0f0e46cb4260..69eaae3586cb 100644 --- a/drivers/net/wireless/realtek/rtw89/core.c +++ b/drivers/net/wireless/realtek/rtw89/core.c @@ -217,7 +217,12 @@ static const struct wiphy_iftype_ext_capab rtw89_iftypes_ext_capa[] = { .extended_capabilities_mask = rtw89_ext_capa_sta, .extended_capabilities_len = sizeof(rtw89_ext_capa_sta), /* relevant only if EHT is supported */ - .eml_capabilities = 0, + .eml_capabilities = + IEEE80211_EML_CAP_EMLSR_SUPP | + IEEE80211_EML_CAP_EML_PADDING_DELAY_256US << + __bf_shf(IEEE80211_EML_CAP_EML_PADDING_DELAY) | + IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_32US << + __bf_shf(IEEE80211_EML_CAP_EML_TRANSITION_DELAY), .mld_capa_and_ops = 0, }, }; base-commit: ac798f757d6475dc6fee2ec899980d6740714596 -- 2.55.0