From nobody Tue Apr 7 11:17:12 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 E871D3BB40; Fri, 13 Mar 2026 13:19:19 +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=1773407961; cv=none; b=mVODbXeVCHsVe8ZbQWKvlu++Nujbn83DaoC/gCz9e3Qpk2bgyuPrU/374A0+80BBOOt5DSqn7d8VLGEYPU8K7DwA97auivN89q7AdK3wOJTrLb/uafX701QI3vgnfAb/p6KjY75lPei5ut+InQGrQNa7ykp3rBomydr6RtKUbEY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773407961; c=relaxed/simple; bh=cURSeb8d77uCwuTKLk8XRXcTqzI9CxyuoU6AcOisx5s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=V8rZ8JbgHxppVbI3XBzWF/Uccbe0X9zUe0mSgHgfALYSnPBQgP8soIj8iYHz/zeylWtjwUkzVKDC0S/xsMh9y2oMgzM+PFln5ELxujOAq4vv2DSoNDblEkJx2AeoAz20ywcXJ16rfYMLQFmWQ0yqeyp23FKmpaMABp5U6DxT3v4= 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=Km1Lj2Pj; 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="Km1Lj2Pj" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1773407958; x=1774012758; 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=Km1Lj2Pj8j/6JxFAdpizdTlPyfGFs/NvdH1hmXwb8UswO19Z5HtOTVlQsXps1X22 QMaZe27kI1uTqJ15SrzCuggVPF2A/vtCEVeoYA8RiMS1v66DoWaCEzoQfbJSEXfm/ AzamvMIpL5y8gUAFbJX83lVsATtgZXgukK/CO8TslFcLV2utxtdGUG1M9vZXipUHe Fp1DXSZMyuqnfjD7sZrxbOshv9pLP3hjOq9uJReQ+8j8OEjjKA26+3Fwi7jwHNJ+8 Hu3jYP0GA0TXEaNQTqp6Pj2AWWl2cR4EI0F05rU6CVOc9GyKk5rWtopXUdv+KwU/u cetzhHr6ok9Wa7ZArg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mkpf3-1vL7hh066Z-00lFRn; Fri, 13 Mar 2026 14:19:18 +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 v2 1/4] wifi: rtl8xxxu: move dynamic_tx_rpt_timing_counter from ra_info to priv Date: Fri, 13 Mar 2026 14:18:46 +0100 Message-ID: <20260313131849.3148013-2-georgmueller@gmx.net> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260313131849.3148013-1-georgmueller@gmx.net> References: <20260313131849.3148013-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:YbVxgbGLT03AElLy8OcYyqVm2H9S6L/1GS5Ds/ttJbmLxwsJDZn eqFyOZxaMhJz4SkR+1RZQYOXlY0Zy8l4rXPKKplNjp6KzwLdsQwAcCeu4Z+Np6kuPeb+IpF xtZw0XqGfxK+cAsYvLWRkp0fyc48g39o/LAlr4uYYUQQTbAB+2mRpv9QmFuITP0QP0Q0HNw Ck0kazoDUQsz0v87TqPXQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:WF4ppsnkgZo=;1GrJIfvp0/UMixjpjY+mZ5ag5vq 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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:17:12 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 6AD8B318121; Fri, 13 Mar 2026 13:19:21 +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=1773407963; cv=none; b=FTH6YoAhR4y3eylmfuxgC/Kmihbzg6hK7BUpOM/YHddUJhMBnNMVAAjY9Q8G6alkwahZc9Ir8abX+/57jq2G9vH6xP3NySTz5RsI7wU+aQQSl231P7Am9N/30d6xnu5n8Rqs8UNDaN/YqVl2uNe/4o0RPvFEW/YUSWuz4edWMN4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773407963; c=relaxed/simple; bh=+x1gvG4OOMHETI+QegTRdkd25K3zqDwT7VwKdtHfVms=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=PRICogSaN9lY6Q0hD/4CpDPmiDdmhyVvh9LTSLAb03fWWRchWSBlt+HNd/j5FUElD7FPhaZE2u16BYhx+7OmM51AmtCs0W/iGUlMqlE4J685ypZCFF1nvOBQrN0GC3MRanxpdyfF60EYWgwPpkdPM1sWYgAJIxmo2uTGAIBokYY= 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=TdlnnDZn; 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="TdlnnDZn" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1773407959; x=1774012759; i=georgmueller@gmx.net; bh=fo2jxlDNyILdeYr6pOtkFYzidNRUklP7RSnQh1fC55Y=; 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=TdlnnDZnB8mW8ttNRRst5x5bjrmx9DhjMTtVSy9dt5WsbUdfOMuRoIZ3lh2Ja6WD Cc/ufpwPjvf0z6aR1/FQ734lTKH6xplwwTCG0trBqZmc30CpNzk0UfhGGSuS6GUMA VpHEMuGkoqY97M8ogsNYBAyAh15+Li0iNSIt+Cl2a9sTDRif+S3CUMgm+8U0AOUMV 8/ukTGlqSnDxxof9gO1jXEeHgPWGQbg2Q7rjreC/COuxY8/4OHsSqB/XkiSEyRS8q sxmDFo5RDctjZd5cB4csroQTRgmb4OYJT+1uelDzYhap82HTiSblTc3JoW3DW2jFD tFe1WSUbLEPB7vtSlA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MORAa-1wFxRB23UU-00Omha; Fri, 13 Mar 2026 14:19:19 +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 v2 2/4] wifi: rtl8xxxu: handle rate control for 8188e a per mac_id Date: Fri, 13 Mar 2026 14:18:47 +0100 Message-ID: <20260313131849.3148013-3-georgmueller@gmx.net> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260313131849.3148013-1-georgmueller@gmx.net> References: <20260313131849.3148013-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:nwssWfdyqOrCDX8uzhuoCHMSjmLazdeO92P5YShInAZnvstg4sF wuS1kidU8UTPWVhecZLnD9pH/LREdggBKPGTwYfXCdmdKrYRpea2VEn7mOU2osAsPxgv5gV Y37g687P06E4xwRrAIPAuHI0cnHWVH/wsi6zblPgXGTKjvVYz4w+DMoJuVHd4JSOqOveoHM v2q7/0VPUGjVmMuG5cX8g== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:fL1z0GVRb4Q=;xmLf+4ItOsEqdOegHeGm5/OhdPO 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 KiFeOQuciY1426n5W/6t2C++lMPkKB39w== 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..ea4dcca9d22a 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)); + 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:17:12 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 1BC31329E40; Fri, 13 Mar 2026 13:19:22 +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=1773407964; cv=none; b=VbtrhvVbB3F2ubTcXrd9T9eBJyvp1ExOcqwZ1fhVNTlD+n5cl7W8s/SRqoYTMrZNoX4mFaov3ErSOSOFHQotwzLkUJrMTYrMXTjfMjbIcOmjqPitlJpdHmHofUlPze7czEzPaCaoM5psvVkR5cP3cwSfDygMZLmr6oOs9pkQS4U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773407964; c=relaxed/simple; bh=aaFokvLY10mt9Ln7LLVjg+UiGI4sCBsjNTANlsst+g4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mq/9iU5+w3RSkfx7SiuJv1FKHQTpYiGu8tiM9IghPOGXhsZ5rkLk5ItCKSgrpon6VzVObB+MGRpsz/LInmhi/xS+yE6soHleBoUG6Ea4Ov0tbpjIZw0eswhyef98FUtRqyX2JEnSW4P6P+UdFxc3F2lKLPQi4+0y+l/jfVS0tmw= 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=NctgNxXF; 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="NctgNxXF" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1773407961; x=1774012761; i=georgmueller@gmx.net; bh=TnHI/tI0V99d+1imxpAMCANQra4EtbBSJAuGqKiQS+s=; 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=NctgNxXF6nwNv8B1P24nxuwvUeQqZPF380UhH3CTtJaRDYrwnZvahcZU/e8mNGkZ s/Y0atXSba8Zb4fd25cUVwHQXI5xGvjdhJscgRXLpY1orUrVNU+QBUlvd08vJ8wRO R3CkoUj3MvfnGXv57CA0hE/FVoKMUWeldacvc550zueaflBr4UiFBX8X7/SBOWCaP WYXXo5O/PJFrd2Jrjr//5ObtpBB+G2eg6ZkorGLqqR8DClAUHeXC2CNNshEuCa/Vu It8MeS4kMJxsyvkPncuh9NmsKCY1Fgc/1n6mLULF87Wuy4/5H/bT5I0M9Va1TxRxH 6i1455/tVP3AHjGy3Q== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mf07E-1vQKkl1S94-00hh3y; Fri, 13 Mar 2026 14:19:21 +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 v2 3/4] wifi: rtl8xxxu: update max report mac id on station add / remove for 8188e chips Date: Fri, 13 Mar 2026 14:18:48 +0100 Message-ID: <20260313131849.3148013-4-georgmueller@gmx.net> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260313131849.3148013-1-georgmueller@gmx.net> References: <20260313131849.3148013-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:dMUZFCmFxwPOt2HaAy5ZWJEXWxJ1LD/27vPbWWUIZS/zsp+ePCY Ae2ld01XYax41I+oUYtjyqf9Srb+siNCtCb7y0zQdHvPyz4tfKkaskaE2dcAn1EDRdXKURU D5RwIw1iSncisUx9ukyF3E+DPrvzlgPgLzM+5Nt1kMpaZ7+KkiX0kbaBaxxIVaBc4ETc5ll ordrke8zDIRpRjfggINQA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:Kzpex89Qyq4=;AeWKQU65NrSk+gOvF42Nx8uD6UN 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 Content-Type: text/plain; charset="utf-8" --- drivers/net/wireless/realtek/rtl8xxxu/core.c | 22 +++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtl8xxxu/core.c b/drivers/net/wir= eless/realtek/rtl8xxxu/core.c index ea4dcca9d22a..6d97bb212f75 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 { @@ -7537,8 +7552,13 @@ static int rtl8xxxu_sta_remove(struct ieee80211_hw *= hw, struct rtl8xxxu_priv *priv =3D hw->priv; =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:17:12 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 0120E386C0B; Fri, 13 Mar 2026 13:19:24 +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=1773407967; cv=none; b=JXrs93gnkU5VPZbb/6m6uEBY9R8Ed65aILx7Haw3orj0a4M4ILDwWrJiVGLlKqvISkU3IsZVnW+MmFFBSZqSvVPygr4ig/K0YRZLRp11i4MjL8d7wHygRF7D3Zek7okwZzZz+IttkrFrRiRkjQ4wgoicMhvLEZaDnLHDQjZUHss= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773407967; c=relaxed/simple; bh=Ev/C5VI3XmElXhMIXtw53Ut73SZi5/csrEWIvoB4MGk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=r3VzEjj50H5Kzn/NEP/M0qFFikX2gKDmovLBtjri84Fdld6VQXCryupN7UUaBgBuelyVZbrQ36DsNw5DXfPa4TtU8+a8Cat3syRZxRX73+v5MxQSjymyYItrYCL7VK4GxkQYxIwSHRT1jReP6AABn7DRD+MEoHtEojoBl2Lm2uM= 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=tXC21kE7; 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="tXC21kE7" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1773407963; x=1774012763; 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=tXC21kE7Nx16tYjQfRMzkrMrxXPIYRW44wWq2BLSdOsHKoT5q37egEZKtuG/7irO 2cACTVIZtBCL4vCjZOjOemoi3kNKXkqJNnRhcdugqb+12bFlssDSuIcjuggcsiWKU FSRT/PkWJ6wtlPc9jCBGW0xopZeKZ7z/PZ4VMo4EmQvfKS47/QC0gQEeQ6VXUHtjS 0zQKD8CvWnIumFGB2pIoqHJjjjB0U+jspBvtIlGqSIq8oTqm3Z73SdO4r9qrldv5x itVzM9sELHXTpb92hTdejQ/mjE9e+34bOIcNyWagKW5lgHpVRNj4odatvgepXJSrP csXz4DttE1pVfInpkg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N2DxE-1vcVxl11KQ-012VBO; Fri, 13 Mar 2026 14:19:23 +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 v2 4/4] wifi: rtl8xxxu: Enable AP mode for RTL8188EU Date: Fri, 13 Mar 2026 14:18:49 +0100 Message-ID: <20260313131849.3148013-5-georgmueller@gmx.net> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260313131849.3148013-1-georgmueller@gmx.net> References: <20260313131849.3148013-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:srPEdkrFtFFf8LIrNQIilCDjg6Q2QpzXvqE0vONt3YSRbx4/iTN 7ACEkWRioOwCWG5kb5+SoCpN7ZRUOic/J9jtg0aiURblc4ZE+7fvgvYlPwcI/w7DQtVh3Ds sN36r7Z8qgwRr/E3ampzFERw0oKcMXX6+BtSEWUVnxY8HTRXgrSDCV/u7Ew6tDhZh7ccjd0 +06rwf/t+FyCAgh2zfRBg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:hbQe0nx7j68=;vvGKcW52CJ8+zA1LTE38rKNGb+B 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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