From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 EDC3124DCF6 for ; Mon, 4 May 2026 04:48:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777870108; cv=none; b=eWElVdeini/3+WKxl/DjItw9OlUGAYbDaLJejxPtk/KCXv146lI7tDEs09msn8hcgry2oNkvgoE2WtfS816J9/LmJ3bwAy2wF+qtrLyk6ZlpNq32l/EGL7Z7i/zCQzeACRe2iIrnzVcXji7qKNrfSTdEbJMB+RANdB+/z6/f378= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777870108; c=relaxed/simple; bh=xqkSirLZqyNtcti7euJFTit/ZGv+eCnKNp7Q8uuaLKM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Bh9Qr8UFZpC04EkMKXbkMTJx8lHYFGu7xxGA2P3L6QYTXdMDI1Ogq9+/Xoar+AVu/2NklLu592phcFLLpovKjnRd6EcV2NEWSIPSKzrFAcSSnx6WEc8A9HOX1b5uvsyUq+YkDs4lMBb5hI+dBPTah0cf2TEzGC+e2At01cscCYg= 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=pH0F3FaW; arc=none smtp.client-ip=209.85.128.53 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="pH0F3FaW" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-488e1a8ac40so34408755e9.2 for ; Sun, 03 May 2026 21:48:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777870105; x=1778474905; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AV1IbUfw7RgigkpPNoxjPUh81DhbbqeKlGyNH4H9r2s=; b=pH0F3FaW+IXVZQI3GKXSeC4llDCRvYi1E39WPY9e0WEsZCyD72I45geF0Hg7dHidkM h24KmVKQOeU16ml3LMPIvXQHDoIVTmbDF9PLqudKYCvQ+SkPWwrMzrw0gItxT2JSneOm W5SVsjsUKQ4HfJj/K+qog7XR6xdQ7VhW0DpIZcpKmzQFooloKbFOOCCG2XB7MDWU41fJ 8HMwyO5mmvaLRNNfRC1YL5nh3kh3pbuOmQMirwL8hTBJ8xjf2N9mZGTVDjGPQ8e5rTbb DDLwWSZmt1DDH/fEBkoNpyIExUIYgXuYTlpAS2SSKq4pTsYPkUzJD7bvAmwyrpzL6Ky2 /+6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777870105; x=1778474905; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=AV1IbUfw7RgigkpPNoxjPUh81DhbbqeKlGyNH4H9r2s=; b=jm+OtwNyN87ysnhSEEa+gkDxBLLVf+IWgtoH/vyoU3KrPAYMjydtI2KfRUOnp0DFXC D1ZskufXukR42Ow0jB1N7CWsKgYPBLMYQSgx+Pdw1kJLPt092nmQqFW/mjo5QI6LavHL Ja31chWcw6vqmil1MddW27ah1Zn0Le4MTZK+UmDbUtyPjueIVR2hzB9oDeT1PQ6nOqvF eb9Qd5tCjpHUd37dEHom2nmytA1uSKXdvcRO0enwG2xWpQ6hJVW1fqiyqr+KEYNHDj0R kYqN+H59xcTNyNs+4XAra8mzzy0/QYyGb8y7YmY1RP3VSXWk9P+TS9sYnqcfA38+qYN5 ySEQ== X-Forwarded-Encrypted: i=1; AFNElJ/u1BxI2IdQS0aod8GJ7BBH8If1fWTIfz9QH/WtvvpFbCjjiLyZBCOa6l6vmjjLxudHR16OnuQkOgtPLOw=@vger.kernel.org X-Gm-Message-State: AOJu0Yxvi0dxW7ofMtv+qN/HwSmoRCO5S8n8chRstCSnVOjJoTiqcCm9 dxyjLKf5OFC2dCaGKx+dPcNYftCJRydX5tV+NlIQpwABBmvSGHjnbVCW X-Gm-Gg: AeBDieuVl5wVIzDYRTuCUen7skTAbdp/lRFRanZzJe94TDdKuK1ZrFNUK5Gr621+seG KQRh76XrAXfb56pkSDsshXuN2VAMU/lGu96pbs7+Gt0r8WBFt00Q/7axaLu7SEY/u6TBTl0He5T jvAJ9XwdlOc12GKlxcC/9nrDbBNWi+Cb0vu+svXizL827WhiYwcAMZR0cDIYZQEvyUOgc3W2Aji ETBd9CNDia7Qmweu7L+vymk4FYR5U8yyaIXi48d5uFY4F+N2l0LPd97mPvJ7ioG7XQzJIn3LVSo TrjyWG36cW7kqzu5vLQGneu6kY9opiEpv2fkVNBlvl6dEnsJbcnJxb9jI4keL6Oin2pVBM4fpv+ CZK6Vsvq2D5HtKHbOkra/MMiQWnzNQZwxWRpOtvnsKT2mEwF1hFRJuipa3AfZaFwjHNANdQWAWr sUVTMyo/h3HIDsEpe/pUOyzMNt7t63BpNtrXy+x4ABfflWohSSShOJRcUV9Q== X-Received: by 2002:a05:600c:8590:b0:485:7f02:afd5 with SMTP id 5b1f17b1804b1-48a98658a1dmr99553065e9.13.1777870105147; Sun, 03 May 2026 21:48:25 -0700 (PDT) Received: from localhost ([102.128.173.0]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8eb72a17sm248742425e9.6.2026.05.03.21.48.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 21:48:24 -0700 (PDT) From: Louis Kotze To: Ping-Ke Shih Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, Louis Kotze Subject: [PATCH 1/4] wifi: rtw89: advertise EML Capabilities and Restricted TWT for 8922a Date: Mon, 4 May 2026 06:48:14 +0200 Message-ID: <4da8b66602471a76c043c0066ee6ebb3aa2bc696.1777832019.git.loukot@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wi-Fi Alliance Certificate WFA129313 (RTL8922AE 802.11be and Bluetooth combo module, 2024-05-23, FW 6102.24.109.0) certifies EMLSR (Enhanced Multilink Single-Radio) and STR (Simultaneous Transmit and Receive) for this chip. The driver currently sets eml_capabilities = 0 and mld_capa_and_ops = 0 in the Station iftype-ext-cap, which prevents the AP from negotiating EMLSR mode with this STA — multi-link association either falls back to MLSR (single-link) or fails entirely. Populate eml_capabilities with IEEE80211_EML_CAP_EMLSR_SUPP plus EML padding delay (256 us, IEEE80211_EML_CAP_EML_PADDING_DELAY_256US since commit 5858f5e1588f ("wifi: Rename EMLSR delay constants and add EMLMR helpers and definitions")) and EMLSR transition delay (32 us) to match the EMLSR negotiation parameters Realtek's certified silicon supports. mld_capa_and_ops is left at 0 (= MAX_SIMUL_LINKS field 0 = "1 max simultaneous link"), consistent with the EMLSR-only operating mode the driver implements per enum rtw89_mlo_mode {MLSR, EMLSR} (no STR mode in the driver despite WFA-cert silicon support). Also add IEEE80211_EHT_MAC_CAP0_RESTRICTED_TWT to mac_cap_info[0]. The RTL8922A EHT MAC supports R-TWT for latency-sensitive scheduling; the cap bit was hard-zeroed alongside the other EHT mac/phy caps in rtw89_init_eht_cap(). Tested on RTL8922AU (USB variant, same MAC + RF as cert'd PCIe AE) against TP-Link Deco BE63 mesh: dual-link MLO assoc works (active_links = 0x4 confirms expected EMLSR mode, Link 2 / 6 GHz active), 60h+ stable association, 11/11 wifi-health-check probes pass, no kernel warnings or wpa_supplicant errors. Note on EMLMR (EML Cap bit 7, IEEE80211_EML_CAP_EMLMR_SUPPORT): not advertised. The WFA cert does NOT list EMLMR for this chip. RTL8922A has rf_path_num=2 (single 2T2R RF block shared across 2.4, 5, 6 GHz), and the driver has no EMLMR enum, firmware H2C path, or PHY register block. EMLSR is the architectural ceiling for this silicon. Link: https://api.cert.wi-fi.org/api/certificate/download/public?variantId=129706 [WFA cert WFA129313] Signed-off-by: Louis Kotze --- drivers/net/wireless/realtek/rtw89/core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c index 70feab97dccb..056639db1dfa 100644 --- a/drivers/net/wireless/realtek/rtw89/core.c +++ b/drivers/net/wireless/realtek/rtw89/core.c @@ -217,7 +217,10 @@ 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 << 1) | + (IEEE80211_EML_CAP_EMLSR_TRANSITION_DELAY_32US << 4), .mld_capa_and_ops = 0, }, }; @@ -5557,7 +5560,8 @@ static void rtw89_init_eht_cap(struct rtw89_dev *rtwdev, eht_cap_elem->mac_cap_info[0] = u8_encode_bits(chip->max_eht_mpdu_cap, - IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_MASK); + IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_MASK) | + IEEE80211_EHT_MAC_CAP0_RESTRICTED_TWT; eht_cap_elem->mac_cap_info[1] = 0; eht_cap_elem->phy_cap_info[0] = -- 2.54.0