From nobody Tue Apr 7 11:18:09 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (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 8409439657E; Fri, 13 Mar 2026 13:53:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.15 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773410013; cv=none; b=qh8o1Z5rxS9v/IAcwOFF9YsmXOmy/6rqXpMU5GGfwPd/0/NFsmu7vhICNb5emJo/OgN9AYXodhlvpNfe2QEQ3nTxccROUDVSG0QfUQTFZOaZ0OfObHynJCgfaSdRJ+fq6EeuORV7IlCpfGzvmOqjIRSL+TCsJhQ3EwCyKbJ8m6k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773410013; c=relaxed/simple; bh=cURSeb8d77uCwuTKLk8XRXcTqzI9CxyuoU6AcOisx5s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dqikklg7sLcPkyPVCg3JjYUGhxnp7PsdljC0uZ67hJ13dAM26gIB9ME8GZLDEiSuW0Th3dHEPbvJ46GRkGMQGO+PBFlCWg03RUusHOixrXx8OMIe6W2nhLdD4uDw+OeDShtTNm5X2bv6UOxNRYT8ePeuN18XWQkmrJ6TzNzajE4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=georgmueller@gmx.net header.b=cevxkFEt; arc=none smtp.client-ip=212.227.15.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=georgmueller@gmx.net header.b="cevxkFEt" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1773410005; x=1774014805; i=georgmueller@gmx.net; bh=sU326B81AHABSZxumkQnBI+YeMPdBupeiusVZbEaiS0=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=cevxkFEtkeARnSw6RmVGCRZlNKT5t6a6V4nVWlq9Xbi/YcCqwh3/6ExI5RQ7PtIG EKWGJ7TcxkeG/+gMXQhQ2jh2/nhGZokiAw8Yxv3l9Pz5ZQEb/Yyv37MOFtarKyxIQ 4eEA8OHepZB+bksvcvYxMMx756JycOHP26dtsidfSd+kJ7iXCM5bKCDL5ZQqVo2HU p+8fGcgRyCLo5gdb9urI1Uxh1t2x8/4eeoaxGtb0Fa8h4YmIX2QyoSTq9rd06o9uE TyyLcytnriUQKTDes1ECt8VnjVYwgigie0gqlHI2Iojdh3RGBYRmPIwZasTUqeP53 xdCFAcofFS9PpJwzDg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M8hV5-1vwuDU28On-0052lv; Fri, 13 Mar 2026 14:53:25 +0100 From: =?UTF-8?q?Georg=20M=C3=BCller?= To: Jes.Sorensen@gmail.com, rtl8821cerfe2@gmail.com Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, =?UTF-8?q?Georg=20M=C3=BCller?= Subject: [RFC PATCH v3 1/4] wifi: rtl8xxxu: move dynamic_tx_rpt_timing_counter from ra_info to priv Date: Fri, 13 Mar 2026 14:53:18 +0100 Message-ID: <20260313135321.3196688-2-georgmueller@gmx.net> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260313135321.3196688-1-georgmueller@gmx.net> References: <20260313135321.3196688-1-georgmueller@gmx.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:hEOcHvBfbPXTaF0CoqGh81uKV06Ew2RF9VcfPMiNPZSum4txNxI C3RTs6cIP3w3SFliY185Wis5g2Jl/agzNqDUvBswKa3kfnkiwmBO0sVccmPUl/h9B7dEA/u sWGJd9EcyGya4fG0b0afNYBDrByEzwgZ26tpNIyuu2y7vADDwxzQOrsmhTwxPM6q88ffaVx YXCEjBw5XrVocscN555IA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:nSDWEJ1Atv0=;6YTaD3EVa9Aa+6/Vi+x14mor8WC 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 Content-Type: text/plain; charset="utf-8" dynamic_tx_rpt_timing_counter is not per mac_id, but used across all mac_ids. --- drivers/net/wireless/realtek/rtl8xxxu/8188e.c | 8 ++++---- drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/realtek/rtl8xxxu/8188e.c b/drivers/net/wi= reless/realtek/rtl8xxxu/8188e.c index 766a7a7c7d28..de2837a91bbe 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/8188e.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/8188e.c @@ -1550,14 +1550,14 @@ static void rtl8188e_rate_decision(struct rtl8xxxu_= ra_info *ra) } =20 if (ra->decision_rate =3D=3D ra->pre_rate) - ra->dynamic_tx_rpt_timing_counter++; + priv->dynamic_tx_rpt_timing_counter++; else - ra->dynamic_tx_rpt_timing_counter =3D 0; + priv->dynamic_tx_rpt_timing_counter =3D 0; =20 - if (ra->dynamic_tx_rpt_timing_counter >=3D 4) { + if (priv->dynamic_tx_rpt_timing_counter >=3D 4) { /* Rate didn't change 4 times, extend RPT timing */ rtl8188e_set_tx_rpt_timing(ra, INCREASE_TIMING); - ra->dynamic_tx_rpt_timing_counter =3D 0; + priv->dynamic_tx_rpt_timing_counter =3D 0; } =20 ra->pre_rate =3D ra->decision_rate; diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h b/drivers/net= /wireless/realtek/rtl8xxxu/rtl8xxxu.h index 9fb2583ffffc..4a744b5c1aec 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h @@ -1756,7 +1756,6 @@ struct rtl8xxxu_ra_info { u16 drop; u16 rpt_time; u16 pre_min_rpt_time; - u8 dynamic_tx_rpt_timing_counter; u8 ra_waiting_counter; u8 ra_pending_counter; u8 ra_drop_after_down; @@ -1917,6 +1916,7 @@ struct rtl8xxxu_priv { struct rtl8xxxu_ra_report ra_report; struct rtl8xxxu_cfo_tracking cfo_tracking; struct rtl8xxxu_ra_info ra_info; + u8 dynamic_tx_rpt_timing_counter; // 8188e specific =20 bool led_registered; char led_name[32]; --=20 2.53.0 From nobody Tue Apr 7 11:18:09 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (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 F3B3C306D26; Fri, 13 Mar 2026 13:53:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773410013; cv=none; b=SBHnz3dW/X96wvN3pRAXY7F9kK/ftpt2aUkMJVpCJSx17cY6QO2M2s+fl04bJ+5sjyIBcrzdjWsNAGmSBnj1IK/QLv9aZhIRRZwk/EfxkKG+OWTQkC6Y6IEKFHf7s5lK/KfU+LklRdT5Wdp3dpD6n4QmobUYqcqTKuUrULb4RkE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773410013; c=relaxed/simple; bh=kuKkuOo1N7JjU1zn+9U9ylFBmN8O4rwy7Su/i7OeCkQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=crzTxs1OOf2Fdi6sp5vpAfp3m7KYtyQJmE3gzXKbBG1jU73NUzZ3Gqk22Kj2LfBCiQbfk5zSvXUS1lvQnDLA6fLM9tNRtZP2il5ttW+GZUmRO5ZlIWryb0ZMR1eSiR+dSAvXrPkUdMDejpduneRx3wndudC2xlnGkw5yBfqZRxs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=georgmueller@gmx.net header.b=aKyjk9Ov; arc=none smtp.client-ip=212.227.15.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=georgmueller@gmx.net header.b="aKyjk9Ov" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1773410007; x=1774014807; i=georgmueller@gmx.net; bh=Iz8DYVgIBYAsMryw6xeY36fKvR5qpvNg5nOunNwpzgI=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=aKyjk9OvmZm6OOT7ozN1Ml7L1nFEDLwHXKk4BGU83WxgwGiA0NBc3Eb360OdOhMy LsBFKbzalTK3Tt23NWHi8T88uAoR+OfFZ/yz7QO46hioZh8SZa9nDx5yP42S0cbIZ s0NVKgiwB6WSzt39/82pH/KvHdgOSvGwvS4VB0mJkx5PcjSTy9W4K8mapR3cHI0Kl Ff98V1Akz5O3Nnfp67KCGJ50b9dp202l4QWXRBBln0PUdNUByWQefTj/4dFieDbHE 3IxlDzl9F1EuCMv70pUdVgMw1X3IZAud5wwsX02HV5Cz81dGFy0lXXibdZp/dRbrF eMciknH2qe3yYriPjw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N7QxL-1vXqrT3jcj-0182Rr; Fri, 13 Mar 2026 14:53:26 +0100 From: =?UTF-8?q?Georg=20M=C3=BCller?= To: Jes.Sorensen@gmail.com, rtl8821cerfe2@gmail.com Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, =?UTF-8?q?Georg=20M=C3=BCller?= Subject: [RFC PATCH v3 2/4] wifi: rtl8xxxu: handle rate control for 8188e a per mac_id Date: Fri, 13 Mar 2026 14:53:19 +0100 Message-ID: <20260313135321.3196688-3-georgmueller@gmx.net> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260313135321.3196688-1-georgmueller@gmx.net> References: <20260313135321.3196688-1-georgmueller@gmx.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:rR+tWhra+gHR7k1CmMLYbLTDrCW7QK76vOSmK3PutijavBELjM4 V0WsAodIb8tvMKLaA+e09coGYHf3yYFTW5Ra98OFSuW8dQoDTLfAca9jWf5Q/Y/ONHp5FP+ CCVZSUfKwYeItV8p0Sk1HwNj8JBXw3lJSva53NzsLACtOmd/Y893Qe8u9CVo2kYbQSCPsF+ FhQ15FdaqDhdor8at012w== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:+GflHdghnCs=;htbb0JAqtytLfGlhqkczAi3noWB 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 N+ktmJscC8SiyLH5dJFz/+VERktF3x76w== Content-Type: text/plain; charset="utf-8" convert member ra_info to an array with one entry per mac id. This allows having different rate control settings per connected station in ap mode. The max_macid_num is conservative. The old driver used 32 [1], some other sources said 64 [2]. I have not enough adapters to test any of the higher values. Given the usage of this chipset in nano dongles, I think the 16 might be high enough. [1] https://github.com/lwfinger/rtl8188eu/blob/f5d1c8df2e2d8b217ea0113bf2cf= 3e37df8cb716/include/sta_info.h#L28 [2] https://lore.kernel.org/linux-wireless/27e83382-4c84-1841-c428-d1e5143e= a20c@gmail.com/ Signed-off-by: Georg M=C3=BCller --- drivers/net/wireless/realtek/rtl8xxxu/8188e.c | 12 ++++++------ drivers/net/wireless/realtek/rtl8xxxu/core.c | 19 ++++++++++++++----- .../net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 3 ++- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/drivers/net/wireless/realtek/rtl8xxxu/8188e.c b/drivers/net/wi= reless/realtek/rtl8xxxu/8188e.c index de2837a91bbe..607ca62194fc 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/8188e.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/8188e.c @@ -1468,9 +1468,8 @@ static void rtl8188e_reset_ra_counter(struct rtl8xxxu= _ra_info *ra) ra->nsc_down =3D (n_threshold_high[rate_id] + n_threshold_low[rate_id]) >= > 1; } =20 -static void rtl8188e_rate_decision(struct rtl8xxxu_ra_info *ra) +static void rtl8188e_rate_decision(struct rtl8xxxu_priv *priv, struct rtl8= xxxu_ra_info *ra) { - struct rtl8xxxu_priv *priv =3D container_of(ra, struct rtl8xxxu_priv, ra_= info); const u8 *retry_penalty_idx_0; const u8 *retry_penalty_idx_1; const u8 *retry_penalty_up_idx; @@ -1669,7 +1668,7 @@ void rtl8188e_handle_ra_tx_report2(struct rtl8xxxu_pr= iv *priv, struct sk_buff *s u32 *_rx_desc =3D (u32 *)(skb->data - sizeof(struct rtl8xxxu_rxdesc16)); struct rtl8xxxu_rxdesc16 *rx_desc =3D (struct rtl8xxxu_rxdesc16 *)_rx_des= c; struct device *dev =3D &priv->udev->dev; - struct rtl8xxxu_ra_info *ra =3D &priv->ra_info; + struct rtl8xxxu_ra_info *ra; u32 tx_rpt_len =3D rx_desc->pktlen & 0x3ff; u32 items =3D tx_rpt_len / TX_RPT2_ITEM_SIZE; u64 macid_valid =3D ((u64)_rx_desc[5] << 32) | _rx_desc[4]; @@ -1688,6 +1687,7 @@ void rtl8188e_handle_ra_tx_report2(struct rtl8xxxu_pr= iv *priv, struct sk_buff *s =20 for (macid =3D 0; macid < items; macid++) { valid =3D false; + ra =3D &priv->ra_info[macid]; =20 if (macid < 64) valid =3D macid_valid & BIT(macid); @@ -1704,7 +1704,7 @@ void rtl8188e_handle_ra_tx_report2(struct rtl8xxxu_pr= iv *priv, struct sk_buff *s =20 if (ra->total > 0) { if (ra->ra_stage < 5) - rtl8188e_rate_decision(ra); + rtl8188e_rate_decision(priv, ra); else if (ra->ra_stage =3D=3D 5) rtl8188e_power_training_try_state(ra); else /* ra->ra_stage =3D=3D 6 */ @@ -1781,7 +1781,7 @@ rtl8188e_update_rate_mask(struct rtl8xxxu_priv *priv, u32 ramask, u8 rateid, int sgi, int txbw_40mhz, u8 macid) { - struct rtl8xxxu_ra_info *ra =3D &priv->ra_info; + struct rtl8xxxu_ra_info *ra =3D &priv->ra_info[macid]; =20 ra->rate_id =3D rateid; ra->rate_mask =3D ramask; @@ -1792,7 +1792,7 @@ rtl8188e_update_rate_mask(struct rtl8xxxu_priv *priv, =20 static void rtl8188e_ra_set_rssi(struct rtl8xxxu_priv *priv, u8 macid, u8 = rssi) { - priv->ra_info.rssi_sta_ra =3D rssi; + priv->ra_info[macid].rssi_sta_ra =3D rssi; } =20 void rtl8188e_ra_info_init_all(struct rtl8xxxu_ra_info *ra) diff --git a/drivers/net/wireless/realtek/rtl8xxxu/core.c b/drivers/net/wir= eless/realtek/rtl8xxxu/core.c index 794187d28caa..5ad23c5c9305 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/core.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/core.c @@ -3921,6 +3921,7 @@ static int rtl8xxxu_init_device(struct ieee80211_hw *= hw) struct device *dev =3D &priv->udev->dev; struct rtl8xxxu_fileops *fops =3D priv->fops; bool macpower; + u16 mac_id; int ret; u8 val8; u16 val16; @@ -4393,9 +4394,16 @@ static int rtl8xxxu_init_device(struct ieee80211_hw = *hw) priv->cfo_tracking.crystal_cap =3D priv->default_crystal_cap; } =20 - if (priv->rtl_chip =3D=3D RTL8188E) - rtl8188e_ra_info_init_all(&priv->ra_info); - + if (priv->rtl_chip =3D=3D RTL8188E) { + priv->ra_info =3D kmalloc_array(RTL8188E_MAX_MAC_ID_NUM, sizeof(*priv->r= a_info), GFP_KERNEL); + if (!priv->ra_info) { + ret =3D -ENOMEM; + goto exit; + } + for (mac_id =3D 0; mac_id < RTL8188E_MAX_MAC_ID_NUM; mac_id++) { + rtl8188e_ra_info_init_all(&priv->ra_info[mac_id]); + } + } set_bit(RTL8XXXU_BC_MC_MACID, priv->mac_id_map); set_bit(RTL8XXXU_BC_MC_MACID1, priv->mac_id_map); =20 @@ -5338,7 +5346,7 @@ rtl8xxxu_fill_txdesc_v3(struct ieee80211_hw *hw, stru= ct ieee80211_hdr *hdr, { struct rtl8xxxu_priv *priv =3D hw->priv; struct device *dev =3D &priv->udev->dev; - struct rtl8xxxu_ra_info *ra =3D &priv->ra_info; + struct rtl8xxxu_ra_info *ra =3D &priv->ra_info[macid]; u8 *qc =3D ieee80211_get_qos_ctl(hdr); u8 tid =3D qc[0] & IEEE80211_QOS_CTL_TID_MASK; u32 rate =3D 0; @@ -7895,6 +7903,7 @@ static int rtl8xxxu_probe(struct usb_interface *inter= face, err_set_intfdata: usb_set_intfdata(interface, NULL); =20 + kfree(priv->ra_info); kfree(priv->fw_data); mutex_destroy(&priv->usb_buf_mutex); mutex_destroy(&priv->syson_indirect_access_mutex); @@ -7924,7 +7933,7 @@ static void rtl8xxxu_disconnect(struct usb_interface = *interface) usb_set_intfdata(interface, NULL); =20 dev_info(&priv->udev->dev, "disconnecting\n"); - + kfree(priv->ra_info); kfree(priv->fw_data); mutex_destroy(&priv->usb_buf_mutex); mutex_destroy(&priv->syson_indirect_access_mutex); diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h b/drivers/net= /wireless/realtek/rtl8xxxu/rtl8xxxu.h index 4a744b5c1aec..9ce820ff4793 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h @@ -76,6 +76,7 @@ #define RTL_FW_PAGE_SIZE 4096 #define RTL8XXXU_FIRMWARE_POLL_MAX 1000 =20 +#define RTL8188E_MAX_MAC_ID_NUM 16 #define RTL8723A_CHANNEL_GROUPS 3 #define RTL8723A_MAX_RF_PATHS 2 #define RTL8723B_CHANNEL_GROUPS 6 @@ -1915,7 +1916,7 @@ struct rtl8xxxu_priv { struct rtl8xxxu_btcoex bt_coex; struct rtl8xxxu_ra_report ra_report; struct rtl8xxxu_cfo_tracking cfo_tracking; - struct rtl8xxxu_ra_info ra_info; + struct rtl8xxxu_ra_info *ra_info; u8 dynamic_tx_rpt_timing_counter; // 8188e specific =20 bool led_registered; --=20 2.53.0 From nobody Tue Apr 7 11:18:09 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (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 6E3C5337689; Fri, 13 Mar 2026 13:53:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773410015; cv=none; b=ChwHw0R9TIWOjB6fSRcuN0Ex7djkg40xmKssCC1YYhJh6a5YL4NBantBc0tLqw3klU8ZrvMgcsOmDQAMBI9zeROyfBo9bmmZJytgDnrK26NR3njcYMBb5gr8EQe1x7EyIJRp6p/GacROHt5g6wZJCBLufBNz4HNYmoSfln6qR7c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773410015; c=relaxed/simple; bh=plr8UFlrvttBLqS3JXUr1ZQGA/EYWYmJgQ7wgmMv8+8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rTtwlkoyYsN8fFIVWOuI38CLaIAzEFBY2Jq87yPtAU0OZbIs/5KiG4W5Br+WwVBTFcyFcREoPKcTv75taDBrGDuQryu8nceQ3hMxaMWp5p+3Gy8pZYGUm25sAlu7TvSNU83kztrk4PkWrXOHAcrMSZf0ej8Zj59HABpfprZEBn8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=georgmueller@gmx.net header.b=MhPL4F0K; arc=none smtp.client-ip=212.227.15.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=georgmueller@gmx.net header.b="MhPL4F0K" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1773410008; x=1774014808; i=georgmueller@gmx.net; bh=82NWvBMzgO3SS1TrS1CxxVCXjJnUnI+5VsLP1SIakQg=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=MhPL4F0KDJb194kYwgGE8W96RsyGwvtGV+iMt4Yk+0Ouqt7fNdAWmJwKU2THXLFG ie0lETdZIaBX5WfrV7wrWRxfgfw5AalT1eNBOp1Sxp3HDwRyyabaTJA96weGzwU9d fjn687ap+Lmy8MPhLlCaKb/kvZoJcfkWULoNdEDJ2z/5tbqPmFxbzZmPwCPMHlPfo 9NUDcqh5l0IPknS9UX534ybf4colipyj/f7KDIjkTbAI9birrnEno5EpPc1jPdfpd ryBfVntfbBK4jWMt2QK9jLrld7qaGLurnA0sc+pI8wdsN+BheJm9haw/aKqoSlJvA ERWjNTdtmYQcPh0YhA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N8GQs-1vWTHc2mLg-0151FC; Fri, 13 Mar 2026 14:53:28 +0100 From: =?UTF-8?q?Georg=20M=C3=BCller?= To: Jes.Sorensen@gmail.com, rtl8821cerfe2@gmail.com Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, =?UTF-8?q?Georg=20M=C3=BCller?= Subject: [RFC PATCH v3 3/4] wifi: rtl8xxxu: update max report mac id on station add / remove for 8188e chips Date: Fri, 13 Mar 2026 14:53:20 +0100 Message-ID: <20260313135321.3196688-4-georgmueller@gmx.net> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260313135321.3196688-1-georgmueller@gmx.net> References: <20260313135321.3196688-1-georgmueller@gmx.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:N6+m9iiW/mQwlc7hPSBCXoB/fdktVo8HuFzuEJe7I7VVSkXQo2J 1OKWoJTzVMfUC0HClKO4/FH3nAaVGhQB85WNPzAO164PL+iiq96NgL4mXeo3khWtF+TWj+K p6yHpQnn5Epys0KxHVj4n0hcIqK+ha3MOshPjJKF1MvtS8N98q1Zu+3xsgZ/woTMnSjLW9p EHT+NP/hK0k0XE2DRzDaA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:MhcJahJORqY=;mqR7qQwE/QFVT2S+UwsxJ9WBULF 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 sLdqJflFQk3VmCfMpOzI Content-Type: text/plain; charset="utf-8" --- drivers/net/wireless/realtek/rtl8xxxu/core.c | 23 +++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtl8xxxu/core.c b/drivers/net/wir= eless/realtek/rtl8xxxu/core.c index 5ad23c5c9305..15fc4843edb2 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/core.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/core.c @@ -3884,6 +3884,15 @@ void rtl8xxxu_init_burst(struct rtl8xxxu_priv *priv) rtl8xxxu_write8(priv, REG_RSV_CTRL, val8); } =20 +static u8 rtl8xxxu_max_acquired_macid(struct rtl8xxxu_priv *priv) +{ + u8 macid; + + macid =3D find_last_bit(priv->mac_id_map, RTL8XXXU_MAX_MAC_ID_NUM); + + return macid; +} + static u8 rtl8xxxu_acquire_macid(struct rtl8xxxu_priv *priv) { u8 macid; @@ -7499,6 +7508,7 @@ static int rtl8xxxu_sta_add(struct ieee80211_hw *hw, struct rtl8xxxu_sta_info *sta_info =3D (struct rtl8xxxu_sta_info *)sta->d= rv_priv; struct rtl8xxxu_vif *rtlvif =3D (struct rtl8xxxu_vif *)vif->drv_priv; struct rtl8xxxu_priv *priv =3D hw->priv; + u8 max_mac_id; =20 mutex_lock(&priv->sta_mutex); ewma_rssi_init(&sta_info->avg_rssi); @@ -7510,6 +7520,11 @@ static int rtl8xxxu_sta_add(struct ieee80211_hw *hw, return -ENOSPC; } =20 + if (priv->rtl_chip =3D=3D RTL8188E) { + max_mac_id =3D rtl8xxxu_max_acquired_macid(priv); + rtl8xxxu_write8(priv, REG_TX_REPORT_CTRL + 1, max_mac_id + 1); + } + rtl8xxxu_refresh_rate_mask(priv, 0, sta, true); priv->fops->report_connect(priv, sta_info->macid, H2C_MACID_ROLE_STA, tr= ue); } else { @@ -7535,10 +7550,16 @@ static int rtl8xxxu_sta_remove(struct ieee80211_hw = *hw, { struct rtl8xxxu_sta_info *sta_info =3D (struct rtl8xxxu_sta_info *)sta->d= rv_priv; struct rtl8xxxu_priv *priv =3D hw->priv; + u8 max_mac_id; =20 mutex_lock(&priv->sta_mutex); - if (vif->type =3D=3D NL80211_IFTYPE_AP) + if (vif->type =3D=3D NL80211_IFTYPE_AP) { rtl8xxxu_release_macid(priv, sta_info->macid); + if (priv->rtl_chip =3D=3D RTL8188E) { + max_mac_id =3D rtl8xxxu_max_acquired_macid(priv); + rtl8xxxu_write8(priv, REG_TX_REPORT_CTRL + 1, max_mac_id + 1); + } + } mutex_unlock(&priv->sta_mutex); =20 return 0; --=20 2.53.0 From nobody Tue Apr 7 11:18:09 2026 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (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 A75EF398910; Fri, 13 Mar 2026 13:53:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.15 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773410019; cv=none; b=misWeyCCVvJyeOlwfjqFTVJ6QDXDVBqw9ToIXkuwVDiHAc+jnN2nPTycwlc26YTKUi82ca+HzbEg94bimGeMCma8o61POlmj/Q+cJ51rT+RJ+GQi0NkmIHbVRY9PaPk47JFs5q/pW8mg9tjBVwmqMMNEk73dXFlA3nbxsjxZuIg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773410019; c=relaxed/simple; bh=Ev/C5VI3XmElXhMIXtw53Ut73SZi5/csrEWIvoB4MGk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fzlptmH9Eu4KTmnU6em4hzQi3Z6P0aVcPKDuFUGxdsGv7ltXtbUlFqyt0ZT72iQi55/cIXicSqKrYf71ilDGJc30324K8v5dpNlm8VptrkcJZdTeOIkjzn5byJF72gHWN9T1mr0YahQbi95/E3eYXm9dM3Qkul5q+9SeVKr0+RY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=georgmueller@gmx.net header.b=W7XX/ubN; arc=none smtp.client-ip=212.227.15.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=georgmueller@gmx.net header.b="W7XX/ubN" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1773410012; x=1774014812; i=georgmueller@gmx.net; bh=sVDwYWZE6JgmTFrLJ9o/fxiZ/qqbRfI8tnAaxDTv2Hk=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=W7XX/ubNQWTnzlWHxoQe+Ii8vznaCazVYF0+lC2gK1Cv70TohhAd4g9o7NG4zlQk 8cqn5+fPh/TsHZkC11wmGS3ibH0mXY2uKDVWsXfc6Gq5+R3//X9Ym4dTtKrCyyJQc YcQWQyxhM8Efhe5KCurLZwoVhM3f83kzlXxmqD1TK6oAqdWafhAYBiOOADfXORKz9 i9KD8uDo0J1QBb58OUGaZ0AU9LD/ZAAiS0F6I0yFmzXkTthKzY+METMXIM56646WO o4i9jg3O5RZHYXh+W0o2YUsU9q6pOev4xiyi7YC5rkX9c4j4ks04ym6ZMjhrVGZeq 4vTg0/8rosZmOxeZ5w== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mi2Jn-1vNqRu39xx-00eNad; Fri, 13 Mar 2026 14:53:31 +0100 From: =?UTF-8?q?Georg=20M=C3=BCller?= To: Jes.Sorensen@gmail.com, rtl8821cerfe2@gmail.com Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, =?UTF-8?q?Georg=20M=C3=BCller?= Subject: [RFC PATCH v3 4/4] wifi: rtl8xxxu: Enable AP mode for RTL8188EU Date: Fri, 13 Mar 2026 14:53:21 +0100 Message-ID: <20260313135321.3196688-5-georgmueller@gmx.net> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260313135321.3196688-1-georgmueller@gmx.net> References: <20260313135321.3196688-1-georgmueller@gmx.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:x4lYjiGWjOCbcW9Wha0/doEzYNydqTj0Sajpt3m0KYtzfPrHXUw n5d2/i4MuK595lE+74A4WvwehchufsSrIIsWVF+5mrviQFkXdtK+LwO6b3bZ6Xv0CRBzbAL T9sd5HYYiNHXNXtwIq7HxSkuSBqgq3MwEXdGzQszOMgwqNH3LGxWSSYdFajL1wTuvFuzK5V lWlnYOx+1Mk8qdorksSIQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:htm/yoRnPYc=;+bSC/4B7Or/Fxwh8KDZxJSV+PKz 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 Content-Type: text/plain; charset="utf-8" Allow devices with this driver to be used as a wireless access point. Signed-off-by: Georg M=C3=BCller --- drivers/net/wireless/realtek/rtl8xxxu/8188e.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/wireless/realtek/rtl8xxxu/8188e.c b/drivers/net/wi= reless/realtek/rtl8xxxu/8188e.c index 607ca62194fc..67fd77944d67 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/8188e.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/8188e.c @@ -1867,6 +1867,8 @@ struct rtl8xxxu_fileops rtl8188eu_fops =3D { .init_reg_pkt_life_time =3D 1, .gen2_thermal_meter =3D 1, .max_sec_cam_num =3D 32, + .supports_ap =3D 1, + .max_macid_num =3D RTL8188E_MAX_MAC_ID_NUM, .adda_1t_init =3D 0x0b1b25a0, .adda_1t_path_on =3D 0x0bdb25a0, /* --=20 2.53.0