All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Kaistra <martin.kaistra@linutronix.de>
To: linux-wireless@vger.kernel.org
Cc: Jes Sorensen <Jes.Sorensen@gmail.com>,
	Kalle Valo <kvalo@kernel.org>, Ping-Ke Shih <pkshih@realtek.com>,
	Bitterblue Smith <rtl8821cerfe2@gmail.com>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Subject: [RFC PATCH 09/14] wifi: rtl8xxxu: Add parameter role to report_connect
Date: Wed, 22 Mar 2023 18:19:00 +0100	[thread overview]
Message-ID: <20230322171905.492855-10-martin.kaistra@linutronix.de> (raw)
In-Reply-To: <20230322171905.492855-1-martin.kaistra@linutronix.de>

This allows to tell the HW if a connection is made to a STA or an AP.
Add the implementation for the gen2 version.

Signed-off-by: Martin Kaistra <martin.kaistra@linutronix.de>
---
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h      |  9 ++++++---
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 11 ++++++-----
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
index c06ad33645974..e78e0bbd23354 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
@@ -1280,6 +1280,9 @@ struct rtl8xxxu_rfregs {
 #define  H2C_JOIN_BSS_DISCONNECT	0
 #define  H2C_JOIN_BSS_CONNECT		1
 
+#define H2C_ROLE_STA			1
+#define H2C_ROLE_AP			2
+
 /*
  * H2C (firmware) commands differ between the older generation chips
  * 8188[cr]u, 819[12]cu, and 8723au, and the more recent chips 8723bu,
@@ -1908,7 +1911,7 @@ struct rtl8xxxu_fileops {
 				  u32 ramask, u8 rateid, int sgi, int txbw_40mhz,
 				  u8 macid);
 	void (*report_connect) (struct rtl8xxxu_priv *priv,
-				u8 macid, bool connect);
+				u8 macid, u8 role, bool connect);
 	void (*report_rssi) (struct rtl8xxxu_priv *priv, u8 macid, u8 rssi);
 	void (*fill_txdesc) (struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
 			     struct ieee80211_tx_info *tx_info,
@@ -2012,9 +2015,9 @@ void rtl8xxxu_update_rate_mask(struct rtl8xxxu_priv *priv,
 void rtl8xxxu_gen2_update_rate_mask(struct rtl8xxxu_priv *priv,
 				    u32 ramask, u8 rateid, int sgi, int txbw_40mhz, u8 macid);
 void rtl8xxxu_gen1_report_connect(struct rtl8xxxu_priv *priv,
-				  u8 macid, bool connect);
+				  u8 macid, u8 role, bool connect);
 void rtl8xxxu_gen2_report_connect(struct rtl8xxxu_priv *priv,
-				  u8 macid, bool connect);
+				  u8 macid, u8 role, bool connect);
 void rtl8xxxu_gen1_report_rssi(struct rtl8xxxu_priv *priv, u8 macid, u8 rssi);
 void rtl8xxxu_gen2_report_rssi(struct rtl8xxxu_priv *priv, u8 macid, u8 rssi);
 void rtl8xxxu_gen1_init_aggregation(struct rtl8xxxu_priv *priv);
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
index 4209880d724be..5e36fddbbb488 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
@@ -4524,7 +4524,7 @@ void rtl8xxxu_gen2_update_rate_mask(struct rtl8xxxu_priv *priv,
 }
 
 void rtl8xxxu_gen1_report_connect(struct rtl8xxxu_priv *priv,
-				  u8 macid, bool connect)
+				  u8 macid, u8 role, bool connect)
 {
 	struct h2c_cmd h2c;
 
@@ -4541,7 +4541,7 @@ void rtl8xxxu_gen1_report_connect(struct rtl8xxxu_priv *priv,
 }
 
 void rtl8xxxu_gen2_report_connect(struct rtl8xxxu_priv *priv,
-				  u8 macid, bool connect)
+				  u8 macid, u8 role, bool connect)
 {
 	/*
 	 * The firmware turns on the rate control when it knows it's
@@ -4557,6 +4557,7 @@ void rtl8xxxu_gen2_report_connect(struct rtl8xxxu_priv *priv,
 	else
 		h2c.media_status_rpt.parm &= ~BIT(0);
 
+	h2c.media_status_rpt.parm |= ((role << 4) & 0xf0);
 	h2c.media_status_rpt.macid = macid;
 
 	rtl8xxxu_gen2_h2c_cmd(priv, &h2c, sizeof(h2c.media_status_rpt));
@@ -4886,13 +4887,13 @@ rtl8xxxu_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 			rtl8xxxu_write16(priv, REG_BCN_PSR_RPT,
 					 0xc000 | vif->cfg.aid);
 
-			priv->fops->report_connect(priv, 0, true);
+			priv->fops->report_connect(priv, 0, H2C_ROLE_AP, true);
 		} else {
 			val8 = rtl8xxxu_read8(priv, REG_BEACON_CTRL);
 			val8 |= BEACON_DISABLE_TSF_UPDATE;
 			rtl8xxxu_write8(priv, REG_BEACON_CTRL, val8);
 
-			priv->fops->report_connect(priv, 0, false);
+			priv->fops->report_connect(priv, 0, H2C_ROLE_AP, false);
 		}
 	}
 
@@ -4953,7 +4954,7 @@ static int rtl8xxxu_start_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 	dev_dbg(dev, "Start AP mode\n");
 	rtl8xxxu_set_bssid(priv, vif->bss_conf.bssid);
 	rtl8xxxu_write16(priv, REG_BCN_INTERVAL, vif->bss_conf.beacon_int);
-	priv->fops->report_connect(priv, 0, true);
+	priv->fops->report_connect(priv, 0, 0, true);
 
 	return 0;
 }
-- 
2.30.2


  parent reply	other threads:[~2023-03-22 17:20 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-22 17:18 [RFC PATCH 00/14] wifi: rtl8xxxu: Add AP mode support for 8188f Martin Kaistra
2023-03-22 17:18 ` [RFC PATCH 01/14] wifi: rtl8xxxu: Add start_ap() callback Martin Kaistra
2023-03-27  0:46   ` Ping-Ke Shih
2023-03-27 13:10   ` Bitterblue Smith
2023-03-27 16:08     ` Martin Kaistra
2023-03-27 18:29       ` Bitterblue Smith
2023-03-29  0:18         ` Ping-Ke Shih
2023-03-22 17:18 ` [RFC PATCH 02/14] wifi: rtl8xxxu: Select correct queue for beacon frames Martin Kaistra
2023-03-27  0:51   ` Ping-Ke Shih
2023-03-22 17:18 ` [RFC PATCH 03/14] wifi: rtl8xxxu: Add beacon functions Martin Kaistra
2023-03-27  1:19   ` Ping-Ke Shih
2023-03-27 13:10   ` Bitterblue Smith
2023-03-22 17:18 ` [RFC PATCH 04/14] wifi: rtl8xxxu: Add set_tim() callback Martin Kaistra
2023-03-27  1:20   ` Ping-Ke Shih
2023-03-22 17:18 ` [RFC PATCH 05/14] wifi: rtl8xxxu: Allow setting rts threshold to -1 Martin Kaistra
2023-03-27  1:21   ` Ping-Ke Shih
2023-03-22 17:18 ` [RFC PATCH 06/14] wifi: rtl8xxxu: Allow creating interface in AP mode Martin Kaistra
2023-03-27  1:39   ` Ping-Ke Shih
2023-03-27 13:15     ` Martin Kaistra
2023-03-22 17:18 ` [RFC PATCH 07/14] wifi: rtl8xxxu: Add parameter macid to update_rate_mask Martin Kaistra
2023-03-27  1:48   ` Ping-Ke Shih
2023-03-27  8:41     ` Kalle Valo
2023-03-27  9:19       ` Ping-Ke Shih
2023-03-27 13:12         ` Bitterblue Smith
2023-03-22 17:18 ` [RFC PATCH 08/14] wifi: rtl8xxxu: Actually use macid in rtl8xxxu_gen2_report_connect Martin Kaistra
2023-03-27  1:48   ` Ping-Ke Shih
2023-03-22 17:19 ` Martin Kaistra [this message]
2023-03-27  1:54   ` [RFC PATCH 09/14] wifi: rtl8xxxu: Add parameter role to report_connect Ping-Ke Shih
2023-03-27 13:11   ` Bitterblue Smith
2023-03-22 17:19 ` [RFC PATCH 10/14] wifi: rtl8xxxu: Add sta_add() callback Martin Kaistra
2023-03-27  1:56   ` Ping-Ke Shih
2023-03-22 17:19 ` [RFC PATCH 11/14] wifi: rtl8xxxu: Put the macid in txdesc Martin Kaistra
2023-03-27  1:58   ` Ping-Ke Shih
2023-03-27 13:11   ` Bitterblue Smith
2023-03-22 17:19 ` [RFC PATCH 12/14] wifi: rtl8xxxu: Enable hw seq for all non-qos frames Martin Kaistra
2023-03-27  2:01   ` Ping-Ke Shih
2023-03-22 17:19 ` [RFC PATCH 13/14] wifi: rtl8xxxu: Clean up filter configuration Martin Kaistra
2023-03-27  2:06   ` Ping-Ke Shih
2023-03-28 14:47     ` Martin Kaistra
2023-03-29  0:27       ` Ping-Ke Shih
2023-03-22 17:19 ` [RFC PATCH 14/14] wifi: rtl8xxxu: Declare AP mode support for 8188f Martin Kaistra
2023-03-27  2:06   ` Ping-Ke Shih
2023-03-23 17:12 ` [RFC PATCH 00/14] wifi: rtl8xxxu: Add " Bitterblue Smith
2023-03-27  7:58   ` Martin Kaistra
2023-04-05 15:31   ` Martin Kaistra
2023-04-06  0:42     ` Ping-Ke Shih
2023-04-06 15:09       ` Martin Kaistra
2023-04-09 12:41         ` Bitterblue Smith
2023-04-12 10:02           ` Martin Kaistra
2023-04-14 21:49             ` Bitterblue Smith
2023-04-07  1:18     ` Ping-Ke Shih

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230322171905.492855-10-martin.kaistra@linutronix.de \
    --to=martin.kaistra@linutronix.de \
    --cc=Jes.Sorensen@gmail.com \
    --cc=bigeasy@linutronix.de \
    --cc=kvalo@kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=pkshih@realtek.com \
    --cc=rtl8821cerfe2@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.