All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/10] rtlwifi: add more materials for 8822be
@ 2018-01-26  7:46 pkshih
  2018-01-26  7:46 ` [PATCH 01/10] rtlwifi: enable mac80211 fast-tx support pkshih
                   ` (9 more replies)
  0 siblings, 10 replies; 24+ messages in thread
From: pkshih @ 2018-01-26  7:46 UTC (permalink / raw)
  To: kvalo; +Cc: Larry.Finger, linux-wireless

From: Ping-Ke Shih <pkshih@realtek.com>

I continue to submit more materials needed by 8822be. A special patch is
"PATCH 10/10" that add new files to support 8822be btcoex in case wifi
only. In my plan, 8822be btcoex for combo card will be sumitted in next
patchset.

Ping-Ke Shih (10):
  rtlwifi: enable mac80211 fast-tx support
  rtlwifi: Add Support VHT to spec_ver
  rtlwifi: Use 6 bits as sequence number of TX report
  rtlwifi: Extend tx_power_by_rate_offset size for newer IC
  rtlwifi: Add rate section and its related definition and comment
  rtlwifi: Fix VHT NSS in RC
  rtlwifi: add definition radio_mask for RF and maximum bandwidth
  rtlwifi: add efuse ops for other components
  rtlwifi: btcoex: add routine to set default port id
  rtlwifi: btcoex: Add 8822be btcoex supported files for wifi only

 drivers/net/wireless/realtek/rtlwifi/base.c        | 34 ++++++++++---
 .../rtlwifi/btcoexist/halbtc8822bwifionly.c        | 55 ++++++++++++++++++++++
 .../rtlwifi/btcoexist/halbtc8822bwifionly.h        | 25 ++++++++++
 .../realtek/rtlwifi/btcoexist/halbtcoutsrc.c       | 22 +++++++++
 drivers/net/wireless/realtek/rtlwifi/efuse.c       | 13 +++++
 drivers/net/wireless/realtek/rtlwifi/efuse.h       |  2 +-
 drivers/net/wireless/realtek/rtlwifi/pci.c         |  1 +
 drivers/net/wireless/realtek/rtlwifi/rc.c          | 49 +++++++++++++++----
 .../net/wireless/realtek/rtlwifi/rtl8821ae/sw.c    |  1 +
 drivers/net/wireless/realtek/rtlwifi/wifi.h        | 39 +++++++++++++--
 10 files changed, 221 insertions(+), 20 deletions(-)
 create mode 100644 drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8822bwifionly.c
 create mode 100644 drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8822bwifionly.h

-- 
2.15.1

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [PATCH 01/10] rtlwifi: enable mac80211 fast-tx support
  2018-01-26  7:46 [PATCH 00/10] rtlwifi: add more materials for 8822be pkshih
@ 2018-01-26  7:46 ` pkshih
  2018-01-27 18:32   ` Larry Finger
  2018-01-26  7:46 ` [PATCH 02/10] rtlwifi: Add Support VHT to spec_ver pkshih
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: pkshih @ 2018-01-26  7:46 UTC (permalink / raw)
  To: kvalo; +Cc: Larry.Finger, linux-wireless

From: Ping-Ke Shih <pkshih@realtek.com>

Enable the mac80211 fast-tx feature, since our driver already support
hw_flags required by fast-tx and is able to let mac80211 stack to transmit
packet through fast-xmit path.

Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtlwifi/base.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/realtek/rtlwifi/base.c b/drivers/net/wireless/realtek/rtlwifi/base.c
index d6c03bd5cc65..e461eed32699 100644
--- a/drivers/net/wireless/realtek/rtlwifi/base.c
+++ b/drivers/net/wireless/realtek/rtlwifi/base.c
@@ -397,6 +397,7 @@ static void _rtl_init_mac80211(struct ieee80211_hw *hw)
 	ieee80211_hw_set(hw, MFP_CAPABLE);
 	ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
 	ieee80211_hw_set(hw, SUPPORTS_AMSDU_IN_AMPDU);
+	ieee80211_hw_set(hw, SUPPORT_FAST_XMIT);
 
 	/* swlps or hwlps has been set in diff chip in init_sw_vars */
 	if (rtlpriv->psc.swctrl_lps) {
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 02/10] rtlwifi: Add Support VHT to spec_ver
  2018-01-26  7:46 [PATCH 00/10] rtlwifi: add more materials for 8822be pkshih
  2018-01-26  7:46 ` [PATCH 01/10] rtlwifi: enable mac80211 fast-tx support pkshih
@ 2018-01-26  7:46 ` pkshih
  2018-01-29 18:18   ` Larry Finger
  2018-01-26  7:46 ` [PATCH 03/10] rtlwifi: Use 6 bits as sequence number of TX report pkshih
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: pkshih @ 2018-01-26  7:46 UTC (permalink / raw)
  To: kvalo; +Cc: Larry.Finger, linux-wireless

From: Ping-Ke Shih <pkshih@realtek.com>

We are going to add 8822be, which is a VHT 2x2 wifi chip, so add VHT flag
to replace enumeration of chips.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtlwifi/base.c         | 6 ++++--
 drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c | 1 +
 drivers/net/wireless/realtek/rtlwifi/wifi.h         | 1 +
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/base.c b/drivers/net/wireless/realtek/rtlwifi/base.c
index e461eed32699..a2da057d3cdd 100644
--- a/drivers/net/wireless/realtek/rtlwifi/base.c
+++ b/drivers/net/wireless/realtek/rtlwifi/base.c
@@ -244,6 +244,9 @@ static void _rtl_init_hw_vht_capab(struct ieee80211_hw *hw,
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
 
+	if (!(rtlpriv->cfg->spec_ver & RTL_SPEC_SUPPORT_VHT))
+		return;
+
 	if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE ||
 	    rtlhal->hw_type == HARDWARE_TYPE_RTL8822BE) {
 		u16 mcs_map;
@@ -887,8 +890,7 @@ static void _rtl_query_bandwidth_mode(struct ieee80211_hw *hw,
 
 	tcb_desc->packet_bw = HT_CHANNEL_WIDTH_20_40;
 
-	if (rtlpriv->rtlhal.hw_type == HARDWARE_TYPE_RTL8812AE ||
-	    rtlpriv->rtlhal.hw_type == HARDWARE_TYPE_RTL8821AE) {
+	if (rtlpriv->cfg->spec_ver & RTL_SPEC_SUPPORT_VHT) {
 		if (mac->opmode == NL80211_IFTYPE_AP ||
 		    mac->opmode == NL80211_IFTYPE_ADHOC ||
 		    mac->opmode == NL80211_IFTYPE_MESH_POINT) {
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c
index ab5d462b1a3a..9bb3d9dfce79 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c
@@ -328,6 +328,7 @@ static const struct rtl_hal_cfg rtl8821ae_hal_cfg = {
 	.alt_fw_name = "rtlwifi/rtl8821aefw.bin",
 	.ops = &rtl8821ae_hal_ops,
 	.mod_params = &rtl8821ae_mod_params,
+	.spec_ver = RTL_SPEC_SUPPORT_VHT,
 	.maps[SYS_ISO_CTRL] = REG_SYS_ISO_CTRL,
 	.maps[SYS_FUNC_EN] = REG_SYS_FUNC_EN,
 	.maps[SYS_CLK] = REG_SYS_CLKR,
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
index a7aacbc3984e..2df0bc316532 100644
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
@@ -951,6 +951,7 @@ enum package_type {
 
 enum rtl_spec_ver {
 	RTL_SPEC_NEW_RATEID = BIT(0),	/* use ratr_table_mode_new */
+	RTL_SPEC_SUPPORT_VHT = BIT(1),	/* support VHT */
 };
 
 struct octet_string {
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 03/10] rtlwifi: Use 6 bits as sequence number of TX report
  2018-01-26  7:46 [PATCH 00/10] rtlwifi: add more materials for 8822be pkshih
  2018-01-26  7:46 ` [PATCH 01/10] rtlwifi: enable mac80211 fast-tx support pkshih
  2018-01-26  7:46 ` [PATCH 02/10] rtlwifi: Add Support VHT to spec_ver pkshih
@ 2018-01-26  7:46 ` pkshih
  2018-01-27 19:56   ` Larry Finger
  2018-01-26  7:46 ` [PATCH 04/10] rtlwifi: Extend tx_power_by_rate_offset size for newer IC pkshih
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: pkshih @ 2018-01-26  7:46 UTC (permalink / raw)
  To: kvalo; +Cc: Larry.Finger, linux-wireless

From: Ping-Ke Shih <pkshih@realtek.com>

In new design, SW_DEFINE[1:0] of tx desc are used by firmware, and the TX
report only contains SW_DEFINE[7:0]. To satisfy with all cases, driver uses
SW_DEFINE[7:2] as sequence number.
Besides, the format of tx report have been changed, so a new flag
RTL_SPEC_EXT_C2H is used to access report.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtlwifi/base.c | 22 ++++++++++++++++++----
 drivers/net/wireless/realtek/rtlwifi/wifi.h |  8 ++++++++
 2 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/base.c b/drivers/net/wireless/realtek/rtlwifi/base.c
index a2da057d3cdd..92f99a303920 100644
--- a/drivers/net/wireless/realtek/rtlwifi/base.c
+++ b/drivers/net/wireless/realtek/rtlwifi/base.c
@@ -1597,7 +1597,11 @@ static u16 rtl_get_tx_report_sn(struct ieee80211_hw *hw)
 	struct rtl_tx_report *tx_report = &rtlpriv->tx_report;
 	u16 sn;
 
-	sn = atomic_inc_return(&tx_report->sn) & 0x0FFF;
+	/* SW_DEFINE[11:8] are reserved (driver fills zeros)
+	 * SW_DEFINE[7:2] are used by driver
+	 * SW_DEFINE[1:0] are reserved for firmware (driver fills zeros)
+	 */
+	sn = (atomic_inc_return(&tx_report->sn) & 0x003F) << 2;
 
 	tx_report->last_sent_sn = sn;
 	tx_report->last_sent_time = jiffies;
@@ -1625,14 +1629,23 @@ void rtl_tx_report_handler(struct ieee80211_hw *hw, u8 *tmp_buf, u8 c2h_cmd_len)
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct rtl_tx_report *tx_report = &rtlpriv->tx_report;
 	u16 sn;
+	u8 st, retry;
 
-	sn = ((tmp_buf[7] & 0x0F) << 8) | tmp_buf[6];
+	if (rtlpriv->cfg->spec_ver & RTL_SPEC_EXT_C2H) {
+		sn = GET_TX_REPORT_SN_V2(tmp_buf);
+		st = GET_TX_REPORT_ST_V2(tmp_buf);
+		retry = GET_TX_REPORT_RETRY_V2(tmp_buf);
+	} else {
+		sn = GET_TX_REPORT_SN_V1(tmp_buf);
+		st = GET_TX_REPORT_ST_V1(tmp_buf);
+		retry = GET_TX_REPORT_RETRY_V1(tmp_buf);
+	}
 
 	tx_report->last_recv_sn = sn;
 
 	RT_TRACE(rtlpriv, COMP_TX_REPORT, DBG_DMESG,
 		 "Recv TX-Report st=0x%02X sn=0x%X retry=0x%X\n",
-		 tmp_buf[0], sn, tmp_buf[2]);
+		 st, sn, retry);
 }
 EXPORT_SYMBOL_GPL(rtl_tx_report_handler);
 
@@ -1646,7 +1659,8 @@ bool rtl_check_tx_report_acked(struct ieee80211_hw *hw)
 
 	if (time_before(tx_report->last_sent_time + 3 * HZ, jiffies)) {
 		RT_TRACE(rtlpriv, COMP_TX_REPORT, DBG_WARNING,
-			 "Check TX-Report timeout!!\n");
+			 "Check TX-Report timeout!! s_sn=0x%X r_sn=0x%X\n",
+			 tx_report->last_sent_sn, tx_report->last_recv_sn);
 		return true;	/* 3 sec. (timeout) seen as acked */
 	}
 
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
index 2df0bc316532..be45420f34d3 100644
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
@@ -153,6 +153,13 @@ enum rtl8192c_h2c_cmd {
 	MAX_H2CCMD
 };
 
+#define GET_TX_REPORT_SN_V1(c2h)	(c2h[6])
+#define GET_TX_REPORT_ST_V1(c2h)	(c2h[0] & 0xC0)
+#define GET_TX_REPORT_RETRY_V1(c2h)	(c2h[2] & 0x3F)
+#define GET_TX_REPORT_SN_V2(c2h)	(c2h[6])
+#define GET_TX_REPORT_ST_V2(c2h)	(c2h[7] & 0xC0)
+#define GET_TX_REPORT_RETRY_V2(c2h)	(c2h[8] & 0x3F)
+
 #define MAX_TX_COUNT			4
 #define MAX_REGULATION_NUM		4
 #define MAX_RF_PATH_NUM			4
@@ -952,6 +959,7 @@ enum package_type {
 enum rtl_spec_ver {
 	RTL_SPEC_NEW_RATEID = BIT(0),	/* use ratr_table_mode_new */
 	RTL_SPEC_SUPPORT_VHT = BIT(1),	/* support VHT */
+	RTL_SPEC_EXT_C2H = BIT(2),	/* extend FW C2H (e.g. TX REPORT) */
 };
 
 struct octet_string {
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 04/10] rtlwifi: Extend tx_power_by_rate_offset size for newer IC
  2018-01-26  7:46 [PATCH 00/10] rtlwifi: add more materials for 8822be pkshih
                   ` (2 preceding siblings ...)
  2018-01-26  7:46 ` [PATCH 03/10] rtlwifi: Use 6 bits as sequence number of TX report pkshih
@ 2018-01-26  7:46 ` pkshih
  2018-01-27 19:44   ` Larry Finger
  2018-01-26  7:46 ` [PATCH 05/10] rtlwifi: Add rate section and its related definition and comment pkshih
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: pkshih @ 2018-01-26  7:46 UTC (permalink / raw)
  To: kvalo; +Cc: Larry.Finger, linux-wireless

From: Ping-Ke Shih <pkshih@realtek.com>

In older design, the TX power is grouped into rate section (smaller array
size), but new design groups them into rate (larger array size). Thus,
we extend the size for both cases, and add compile time assertion.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtlwifi/base.c | 2 ++
 drivers/net/wireless/realtek/rtlwifi/wifi.h | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/base.c b/drivers/net/wireless/realtek/rtlwifi/base.c
index 92f99a303920..c000c85a3ded 100644
--- a/drivers/net/wireless/realtek/rtlwifi/base.c
+++ b/drivers/net/wireless/realtek/rtlwifi/base.c
@@ -2646,6 +2646,8 @@ EXPORT_SYMBOL_GPL(rtl_global_var);
 
 static int __init rtl_core_module_init(void)
 {
+	BUILD_BUG_ON(TX_PWR_BY_RATE_NUM_RATE < TX_PWR_BY_RATE_NUM_SECTION);
+
 	if (rtl_rate_control_register())
 		pr_err("rtl: Unable to register rtl_rc, use default RC !!\n");
 
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
index be45420f34d3..5b29502a2864 100644
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
@@ -173,6 +173,7 @@ enum rtl8192c_h2c_cmd {
 #define TX_PWR_BY_RATE_NUM_BAND		2
 #define TX_PWR_BY_RATE_NUM_RF		4
 #define TX_PWR_BY_RATE_NUM_SECTION	12
+#define TX_PWR_BY_RATE_NUM_RATE		84 /* >= TX_PWR_BY_RATE_NUM_SECTION */
 #define MAX_BASE_NUM_IN_PHY_REG_PG_24G  6
 #define MAX_BASE_NUM_IN_PHY_REG_PG_5G	5
 
@@ -1285,7 +1286,7 @@ struct rtl_phy {
 	u32 tx_power_by_rate_offset[TX_PWR_BY_RATE_NUM_BAND]
 				   [TX_PWR_BY_RATE_NUM_RF]
 				   [TX_PWR_BY_RATE_NUM_RF]
-				   [TX_PWR_BY_RATE_NUM_SECTION];
+				   [TX_PWR_BY_RATE_NUM_RATE];
 	u8 txpwr_by_rate_base_24g[TX_PWR_BY_RATE_NUM_RF]
 				 [TX_PWR_BY_RATE_NUM_RF]
 				 [MAX_BASE_NUM_IN_PHY_REG_PG_24G];
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 05/10] rtlwifi: Add rate section and its related definition and comment
  2018-01-26  7:46 [PATCH 00/10] rtlwifi: add more materials for 8822be pkshih
                   ` (3 preceding siblings ...)
  2018-01-26  7:46 ` [PATCH 04/10] rtlwifi: Extend tx_power_by_rate_offset size for newer IC pkshih
@ 2018-01-26  7:46 ` pkshih
  2018-01-27 19:41   ` Larry Finger
  2018-01-26  7:46 ` [PATCH 06/10] rtlwifi: Fix VHT NSS in RC pkshih
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: pkshih @ 2018-01-26  7:46 UTC (permalink / raw)
  To: kvalo; +Cc: Larry.Finger, linux-wireless

From: Ping-Ke Shih <pkshih@realtek.com>

Add comments to make it to be easier to understand, and add compile time
assertions.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtlwifi/base.c | 3 +++
 drivers/net/wireless/realtek/rtlwifi/wifi.h | 7 ++++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/base.c b/drivers/net/wireless/realtek/rtlwifi/base.c
index c000c85a3ded..6db3389e2ced 100644
--- a/drivers/net/wireless/realtek/rtlwifi/base.c
+++ b/drivers/net/wireless/realtek/rtlwifi/base.c
@@ -2647,6 +2647,9 @@ EXPORT_SYMBOL_GPL(rtl_global_var);
 static int __init rtl_core_module_init(void)
 {
 	BUILD_BUG_ON(TX_PWR_BY_RATE_NUM_RATE < TX_PWR_BY_RATE_NUM_SECTION);
+	BUILD_BUG_ON(MAX_RATE_SECTION_NUM != MAX_RATE_SECTION);
+	BUILD_BUG_ON(MAX_BASE_NUM_IN_PHY_REG_PG_24G != MAX_RATE_SECTION);
+	BUILD_BUG_ON(MAX_BASE_NUM_IN_PHY_REG_PG_5G != (MAX_RATE_SECTION - 1));
 
 	if (rtl_rate_control_register())
 		pr_err("rtl: Unable to register rtl_rc, use default RC !!\n");
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
index 5b29502a2864..4de2ab1d5416 100644
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
@@ -163,7 +163,7 @@ enum rtl8192c_h2c_cmd {
 #define MAX_TX_COUNT			4
 #define MAX_REGULATION_NUM		4
 #define MAX_RF_PATH_NUM			4
-#define MAX_RATE_SECTION_NUM		6
+#define MAX_RATE_SECTION_NUM		6	/* = MAX_RATE_SECTION */
 #define MAX_2_4G_BANDWIDTH_NUM		4
 #define MAX_5G_BANDWIDTH_NUM		4
 #define	MAX_RF_PATH			4
@@ -174,8 +174,8 @@ enum rtl8192c_h2c_cmd {
 #define TX_PWR_BY_RATE_NUM_RF		4
 #define TX_PWR_BY_RATE_NUM_SECTION	12
 #define TX_PWR_BY_RATE_NUM_RATE		84 /* >= TX_PWR_BY_RATE_NUM_SECTION */
-#define MAX_BASE_NUM_IN_PHY_REG_PG_24G  6
-#define MAX_BASE_NUM_IN_PHY_REG_PG_5G	5
+#define MAX_BASE_NUM_IN_PHY_REG_PG_24G	6  /* MAX_RATE_SECTION */
+#define MAX_BASE_NUM_IN_PHY_REG_PG_5G	5  /* MAX_RATE_SECTION -1 */
 
 #define BUFDESC_SEG_NUM		1 /* 0:2 seg, 1: 4 seg, 2: 8 seg */
 
@@ -271,6 +271,7 @@ enum rate_section {
 	HT_MCS8_MCS15,
 	VHT_1SSMCS0_1SSMCS9,
 	VHT_2SSMCS0_2SSMCS9,
+	MAX_RATE_SECTION,
 };
 
 enum intf_type {
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 06/10] rtlwifi: Fix VHT NSS in RC
  2018-01-26  7:46 [PATCH 00/10] rtlwifi: add more materials for 8822be pkshih
                   ` (4 preceding siblings ...)
  2018-01-26  7:46 ` [PATCH 05/10] rtlwifi: Add rate section and its related definition and comment pkshih
@ 2018-01-26  7:46 ` pkshih
  2018-01-27 19:39   ` Larry Finger
  2018-01-26  7:46 ` [PATCH 07/10] rtlwifi: add definition radio_mask for RF and maximum bandwidth pkshih
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: pkshih @ 2018-01-26  7:46 UTC (permalink / raw)
  To: kvalo; +Cc: Larry.Finger, linux-wireless

From: Ping-Ke Shih <pkshih@realtek.com>

NSS is a argument of highest rate in RC, and it occupies bit 4-7 so use
ieee80211_rate_set_vht() to fill the values. Since it got correct rate
index, we don't need to check chips to assign NSS in set function anymore.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtlwifi/rc.c | 49 +++++++++++++++++++++++++------
 1 file changed, 40 insertions(+), 9 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/rc.c b/drivers/net/wireless/realtek/rtlwifi/rc.c
index d1cb7d405618..396bed8d3d51 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rc.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rc.c
@@ -42,6 +42,17 @@ static u8 _rtl_rc_get_highest_rix(struct rtl_priv *rtlpriv,
 	struct rtl_phy *rtlphy = &(rtlpriv->phy);
 	struct rtl_sta_info *sta_entry = NULL;
 	u16 wireless_mode = 0;
+	u8 nss;
+	struct ieee80211_tx_rate rate;
+
+	if (get_rf_type(rtlphy) >= RF_4T4R)
+		nss = 4;
+	else if (get_rf_type(rtlphy) >= RF_3T3R)
+		nss = 3;
+	else if (get_rf_type(rtlphy) >= RF_2T2R)
+		nss = 2;
+	else
+		nss = 1;
 
 	/*
 	 *this rate is no use for true rate, firmware
@@ -66,28 +77,51 @@ static u8 _rtl_rc_get_highest_rix(struct rtl_priv *rtlpriv,
 			} else if (wireless_mode == WIRELESS_MODE_G) {
 				return G_MODE_MAX_RIX;
 			} else if (wireless_mode == WIRELESS_MODE_N_24G) {
-				if (get_rf_type(rtlphy) != RF_2T2R)
+				if (nss == 1)
 					return N_MODE_MCS7_RIX;
 				else
 					return N_MODE_MCS15_RIX;
 			} else if (wireless_mode == WIRELESS_MODE_AC_24G) {
-				return AC_MODE_MCS9_RIX;
+				if (sta->bandwidth == IEEE80211_STA_RX_BW_20) {
+					ieee80211_rate_set_vht(&rate,
+							       AC_MODE_MCS8_RIX,
+							       nss);
+					goto out;
+				} else {
+					ieee80211_rate_set_vht(&rate,
+							       AC_MODE_MCS9_RIX,
+							       nss);
+					goto out;
+				}
 			}
 			return 0;
 		} else {
 			if (wireless_mode == WIRELESS_MODE_A) {
 				return A_MODE_MAX_RIX;
 			} else if (wireless_mode == WIRELESS_MODE_N_5G) {
-				if (get_rf_type(rtlphy) != RF_2T2R)
+				if (nss == 1)
 					return N_MODE_MCS7_RIX;
 				else
 					return N_MODE_MCS15_RIX;
 			} else if (wireless_mode == WIRELESS_MODE_AC_5G) {
-				return AC_MODE_MCS9_RIX;
+				if (sta->bandwidth == IEEE80211_STA_RX_BW_20) {
+					ieee80211_rate_set_vht(&rate,
+							       AC_MODE_MCS8_RIX,
+							       nss);
+					goto out;
+				} else {
+					ieee80211_rate_set_vht(&rate,
+							       AC_MODE_MCS9_RIX,
+							       nss);
+					goto out;
+				}
 			}
 			return 0;
 		}
 	}
+
+out:
+	return rate.idx;
 }
 
 static void _rtl_rc_rate_set_series(struct rtl_priv *rtlpriv,
@@ -111,9 +145,6 @@ static void _rtl_rc_rate_set_series(struct rtl_priv *rtlpriv,
 	}
 	rate->count = tries;
 	rate->idx = rix >= 0x00 ? rix : 0x00;
-	if (rtlpriv->rtlhal.hw_type == HARDWARE_TYPE_RTL8812AE &&
-	    wireless_mode == WIRELESS_MODE_AC_5G)
-		rate->idx += 0x10;/*2NSS for 8812AE*/
 
 	if (!not_data) {
 		if (txrc->short_preamble)
@@ -126,10 +157,10 @@ static void _rtl_rc_rate_set_series(struct rtl_priv *rtlpriv,
 			if (sta && sta->vht_cap.vht_supported)
 				rate->flags |= IEEE80211_TX_RC_80_MHZ_WIDTH;
 		} else {
-			if (mac->bw_40)
-				rate->flags |= IEEE80211_TX_RC_40_MHZ_WIDTH;
 			if (mac->bw_80)
 				rate->flags |= IEEE80211_TX_RC_80_MHZ_WIDTH;
+			else if (mac->bw_40)
+				rate->flags |= IEEE80211_TX_RC_40_MHZ_WIDTH;
 		}
 
 		if (sgi_20 || sgi_40 || sgi_80)
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 07/10] rtlwifi: add definition radio_mask for RF and maximum bandwidth
  2018-01-26  7:46 [PATCH 00/10] rtlwifi: add more materials for 8822be pkshih
                   ` (5 preceding siblings ...)
  2018-01-26  7:46 ` [PATCH 06/10] rtlwifi: Fix VHT NSS in RC pkshih
@ 2018-01-26  7:46 ` pkshih
  2018-01-27 19:35   ` Larry Finger
  2018-01-26  7:46 ` [PATCH 08/10] rtlwifi: add efuse ops for other components pkshih
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 24+ messages in thread
From: pkshih @ 2018-01-26  7:46 UTC (permalink / raw)
  To: kvalo; +Cc: Larry.Finger, linux-wireless

From: Ping-Ke Shih <pkshih@realtek.com>

Add rf mask definition (BIT 0, BIT 1, BIT 2, ...) that is different from
rf path definition (0, 1, 2, ...), and then combinations of rf path are
possible.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtlwifi/wifi.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
index 4de2ab1d5416..2e9a20273a2d 100644
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
@@ -286,6 +286,13 @@ enum radio_path {
 	RF90_PATH_D = 3,
 };
 
+enum radio_mask {
+	RF_MASK_A = BIT(0),
+	RF_MASK_B = BIT(1),
+	RF_MASK_C = BIT(2),
+	RF_MASK_D = BIT(3),
+};
+
 enum regulation_txpwr_lmt {
 	TXPWR_LMT_FCC = 0,
 	TXPWR_LMT_MKK = 1,
@@ -579,6 +586,7 @@ enum ht_channel_width {
 	HT_CHANNEL_WIDTH_20 = 0,
 	HT_CHANNEL_WIDTH_20_40 = 1,
 	HT_CHANNEL_WIDTH_80 = 2,
+	HT_CHANNEL_WIDTH_MAX,
 };
 
 /* Ref: 802.11i sepc D10.0 7.3.2.25.1
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 08/10] rtlwifi: add efuse ops for other components
  2018-01-26  7:46 [PATCH 00/10] rtlwifi: add more materials for 8822be pkshih
                   ` (6 preceding siblings ...)
  2018-01-26  7:46 ` [PATCH 07/10] rtlwifi: add definition radio_mask for RF and maximum bandwidth pkshih
@ 2018-01-26  7:46 ` pkshih
  2018-01-27 19:28   ` Larry Finger
  2018-01-26  7:46 ` [PATCH 09/10] rtlwifi: btcoex: add routine to set default port id pkshih
  2018-01-26  7:46 ` [PATCH 10/10] rtlwifi: btcoex: Add 8822be btcoex supported files for wifi only pkshih
  9 siblings, 1 reply; 24+ messages in thread
From: pkshih @ 2018-01-26  7:46 UTC (permalink / raw)
  To: kvalo; +Cc: Larry.Finger, linux-wireless

From: Ping-Ke Shih <pkshih@realtek.com>

The new component phydm need to access efuse content, so we prepare ops
for reference.

Signed-off-by: Tsang-Shian Lin <thlin@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtlwifi/efuse.c | 13 +++++++++++++
 drivers/net/wireless/realtek/rtlwifi/efuse.h |  2 +-
 drivers/net/wireless/realtek/rtlwifi/pci.c   |  1 +
 drivers/net/wireless/realtek/rtlwifi/wifi.h  |  7 +++++++
 4 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/efuse.c b/drivers/net/wireless/realtek/rtlwifi/efuse.c
index 35b50be633f1..fd13d4ef53b8 100644
--- a/drivers/net/wireless/realtek/rtlwifi/efuse.c
+++ b/drivers/net/wireless/realtek/rtlwifi/efuse.c
@@ -50,6 +50,11 @@ static const struct efuse_map RTL8712_SDIO_EFUSE_TABLE[] = {
 	{11, 0, 0, 28}
 };
 
+static const struct rtl_efuse_ops efuse_ops = {
+	.efuse_onebyte_read = efuse_one_byte_read,
+	.efuse_logical_map_read = efuse_shadow_read,
+};
+
 static void efuse_shadow_read_1byte(struct ieee80211_hw *hw, u16 offset,
 				    u8 *value);
 static void efuse_shadow_read_2byte(struct ieee80211_hw *hw, u16 offset,
@@ -1364,3 +1369,11 @@ void rtl_fill_dummy(u8 *pfwbuf, u32 *pfwlen)
 	*pfwlen = fwlen;
 }
 EXPORT_SYMBOL_GPL(rtl_fill_dummy);
+
+void rtl_efuse_ops_init(struct ieee80211_hw *hw)
+{
+	struct rtl_priv *rtlpriv = rtl_priv(hw);
+
+	rtlpriv->efuse.efuse_ops = &efuse_ops;
+}
+EXPORT_SYMBOL_GPL(rtl_efuse_ops_init);
diff --git a/drivers/net/wireless/realtek/rtlwifi/efuse.h b/drivers/net/wireless/realtek/rtlwifi/efuse.h
index 952fdc288f0e..dfa31c13fc7a 100644
--- a/drivers/net/wireless/realtek/rtlwifi/efuse.h
+++ b/drivers/net/wireless/realtek/rtlwifi/efuse.h
@@ -116,5 +116,5 @@ void rtl_fill_dummy(u8 *pfwbuf, u32 *pfwlen);
 void rtl_fw_page_write(struct ieee80211_hw *hw, u32 page, const u8 *buffer,
 		       u32 size);
 void rtl_fw_block_write(struct ieee80211_hw *hw, const u8 *buffer, u32 size);
-
+void rtl_efuse_ops_init(struct ieee80211_hw *hw);
 #endif
diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c b/drivers/net/wireless/realtek/rtlwifi/pci.c
index 01ccf8884831..2437422625bf 100644
--- a/drivers/net/wireless/realtek/rtlwifi/pci.c
+++ b/drivers/net/wireless/realtek/rtlwifi/pci.c
@@ -2238,6 +2238,7 @@ int rtl_pci_probe(struct pci_dev *pdev,
 	rtlpriv->cfg = (struct rtl_hal_cfg *)(id->driver_data);
 	rtlpriv->intf_ops = &rtl_pci_ops;
 	rtlpriv->glb_var = &rtl_global_var;
+	rtl_efuse_ops_init(hw);
 
 	/* MEM map */
 	err = pci_request_regions(pdev, KBUILD_MODNAME);
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
index 2e9a20273a2d..0e8aae0c05c1 100644
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
@@ -1812,6 +1812,7 @@ struct rtl_dm {
 #define	EFUSE_MAX_LOGICAL_SIZE			512
 
 struct rtl_efuse {
+	const struct rtl_efuse_ops *efuse_ops;
 	bool autoLoad_ok;
 	bool bootfromefuse;
 	u16 max_physical_size;
@@ -1917,6 +1918,12 @@ struct rtl_efuse {
 	u8 channel_plan;
 };
 
+struct rtl_efuse_ops {
+	int (*efuse_onebyte_read)(struct ieee80211_hw *hw, u16 addr, u8 *data);
+	void (*efuse_logical_map_read)(struct ieee80211_hw *hw, u8 type,
+				       u16 offset, u32 *value);
+};
+
 struct rtl_tx_report {
 	atomic_t sn;
 	u16 last_sent_sn;
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 09/10] rtlwifi: btcoex: add routine to set default port id
  2018-01-26  7:46 [PATCH 00/10] rtlwifi: add more materials for 8822be pkshih
                   ` (7 preceding siblings ...)
  2018-01-26  7:46 ` [PATCH 08/10] rtlwifi: add efuse ops for other components pkshih
@ 2018-01-26  7:46 ` pkshih
  2018-01-27 19:22   ` Larry Finger
  2018-01-26  7:46 ` [PATCH 10/10] rtlwifi: btcoex: Add 8822be btcoex supported files for wifi only pkshih
  9 siblings, 1 reply; 24+ messages in thread
From: pkshih @ 2018-01-26  7:46 UTC (permalink / raw)
  To: kvalo; +Cc: Larry.Finger, linux-wireless

From: Ping-Ke Shih <pkshih@realtek.com>

Tell wifi and BT firmware the default port ID to set multiports' state
properly, but only 8822be needs this function currently.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 .../realtek/rtlwifi/btcoexist/halbtcoutsrc.c       | 22 ++++++++++++++++++++++
 drivers/net/wireless/realtek/rtlwifi/wifi.h        |  5 +++++
 2 files changed, 27 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
index 1404729441a2..5e41b204f7c0 100644
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
@@ -1039,6 +1039,28 @@ static void halbtc_fill_h2c_cmd(void *bt_context, u8 element_id,
 					cmd_len, cmd_buf);
 }
 
+static void halbtc_send_wifi_port_id_cmd(void *bt_context)
+{
+	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
+	struct rtl_priv *rtlpriv = btcoexist->adapter;
+	u8 cmd_buf[1] = {0};	/* port id [2:0] = 0 */
+
+	rtlpriv->cfg->ops->fill_h2c_cmd(rtlpriv->mac80211.hw, H2C_BT_PORT_ID,
+					1, cmd_buf);
+}
+
+static void halbtc_set_default_port_id_cmd(void *bt_context)
+{
+	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
+	struct rtl_priv *rtlpriv = btcoexist->adapter;
+	struct ieee80211_hw *hw = rtlpriv->mac80211.hw;
+
+	if (!rtlpriv->cfg->ops->set_default_port_id_cmd)
+		return;
+
+	rtlpriv->cfg->ops->set_default_port_id_cmd(hw);
+}
+
 static
 void halbtc_set_bt_reg(void *btc_context, u8 reg_type, u32 offset, u32 set_val)
 {
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
index 0e8aae0c05c1..1c9ed28b42da 100644
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
@@ -153,6 +153,10 @@ enum rtl8192c_h2c_cmd {
 	MAX_H2CCMD
 };
 
+enum {
+	H2C_BT_PORT_ID = 0x71,
+};
+
 #define GET_TX_REPORT_SN_V1(c2h)	(c2h[6])
 #define GET_TX_REPORT_ST_V1(c2h)	(c2h[0] & 0xC0)
 #define GET_TX_REPORT_RETRY_V1(c2h)	(c2h[2] & 0x3F)
@@ -2256,6 +2260,7 @@ struct rtl_hal_ops {
 	void (*bt_coex_off_before_lps) (struct ieee80211_hw *hw);
 	void (*fill_h2c_cmd) (struct ieee80211_hw *hw, u8 element_id,
 			      u32 cmd_len, u8 *p_cmdbuffer);
+	void (*set_default_port_id_cmd)(struct ieee80211_hw *hw);
 	bool (*get_btc_status) (void);
 	bool (*is_fw_header)(struct rtlwifi_firmware_header *hdr);
 	u32 (*rx_command_packet)(struct ieee80211_hw *hw,
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 10/10] rtlwifi: btcoex: Add 8822be btcoex supported files for wifi only
  2018-01-26  7:46 [PATCH 00/10] rtlwifi: add more materials for 8822be pkshih
                   ` (8 preceding siblings ...)
  2018-01-26  7:46 ` [PATCH 09/10] rtlwifi: btcoex: add routine to set default port id pkshih
@ 2018-01-26  7:46 ` pkshih
  2018-01-27 19:24   ` Larry Finger
  9 siblings, 1 reply; 24+ messages in thread
From: pkshih @ 2018-01-26  7:46 UTC (permalink / raw)
  To: kvalo; +Cc: Larry.Finger, linux-wireless

From: Ping-Ke Shih <pkshih@realtek.com>

The wifi only btcoex is used to solo card (without BT), and it is also
useful to exclude the interference with BT to make debug easier.
There are only four ops for wifi only btcoex to initialze antenna and
switch the settings while band is changed.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 .../rtlwifi/btcoexist/halbtc8822bwifionly.c        | 55 ++++++++++++++++++++++
 .../rtlwifi/btcoexist/halbtc8822bwifionly.h        | 25 ++++++++++
 2 files changed, 80 insertions(+)
 create mode 100644 drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8822bwifionly.c
 create mode 100644 drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8822bwifionly.h

diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8822bwifionly.c b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8822bwifionly.c
new file mode 100644
index 000000000000..951b8c1e0153
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8822bwifionly.c
@@ -0,0 +1,55 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2016-2017  Realtek Corporation.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ *****************************************************************************/
+#include "halbt_precomp.h"
+
+void ex_hal8822b_wifi_only_hw_config(struct wifi_only_cfg *wifionlycfg)
+{
+	/*BB control*/
+	halwifionly_phy_set_bb_reg(wifionlycfg, 0x4c, 0x01800000, 0x2);
+	/*SW control*/
+	halwifionly_phy_set_bb_reg(wifionlycfg, 0xcb4, 0xff, 0x77);
+	/*antenna mux switch */
+	halwifionly_phy_set_bb_reg(wifionlycfg, 0x974, 0x300, 0x3);
+
+	halwifionly_phy_set_bb_reg(wifionlycfg, 0x1990, 0x300, 0x0);
+
+	halwifionly_phy_set_bb_reg(wifionlycfg, 0xcbc, 0x80000, 0x0);
+	/*switch to WL side controller and gnt_wl gnt_bt debug signal */
+	halwifionly_phy_set_bb_reg(wifionlycfg, 0x70, 0xff000000, 0x0e);
+	/*gnt_wl=1 , gnt_bt=0*/
+	halwifionly_phy_set_bb_reg(wifionlycfg, 0x1704, 0xffffffff, 0x7700);
+	halwifionly_phy_set_bb_reg(wifionlycfg, 0x1700, 0xffffffff, 0xc00f0038);
+}
+
+void ex_hal8822b_wifi_only_scannotify(struct wifi_only_cfg *wifionlycfg,
+				      u8 is_5g)
+{
+	hal8822b_wifi_only_switch_antenna(wifionlycfg, is_5g);
+}
+
+void ex_hal8822b_wifi_only_switchbandnotify(struct wifi_only_cfg *wifionlycfg,
+					    u8 is_5g)
+{
+	hal8822b_wifi_only_switch_antenna(wifionlycfg, is_5g);
+}
+
+void hal8822b_wifi_only_switch_antenna(struct wifi_only_cfg *wifionlycfg,
+				       u8 is_5g)
+{
+	if (is_5g)
+		halwifionly_phy_set_bb_reg(wifionlycfg, 0xcbc, 0x300, 0x1);
+	else
+		halwifionly_phy_set_bb_reg(wifionlycfg, 0xcbc, 0x300, 0x2);
+}
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8822bwifionly.h b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8822bwifionly.h
new file mode 100644
index 000000000000..6ec356542eea
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8822bwifionly.h
@@ -0,0 +1,25 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2016-2017  Realtek Corporation.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ *****************************************************************************/
+#ifndef __INC_HAL8822BWIFIONLYHWCFG_H
+#define __INC_HAL8822BWIFIONLYHWCFG_H
+
+void ex_hal8822b_wifi_only_hw_config(struct wifi_only_cfg *wifionlycfg);
+void ex_hal8822b_wifi_only_scannotify(struct wifi_only_cfg *wifionlycfg,
+				      u8 is_5g);
+void ex_hal8822b_wifi_only_switchbandnotify(struct wifi_only_cfg *wifionlycfg,
+					    u8 is_5g);
+void hal8822b_wifi_only_switch_antenna(struct wifi_only_cfg *wifionlycfg,
+				       u8 is_5g);
+#endif
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH 01/10] rtlwifi: enable mac80211 fast-tx support
  2018-01-26  7:46 ` [PATCH 01/10] rtlwifi: enable mac80211 fast-tx support pkshih
@ 2018-01-27 18:32   ` Larry Finger
  0 siblings, 0 replies; 24+ messages in thread
From: Larry Finger @ 2018-01-27 18:32 UTC (permalink / raw)
  To: pkshih, kvalo; +Cc: linux-wireless

On 01/26/2018 01:46 AM, pkshih@realtek.com wrote:
> From: Ping-Ke Shih <pkshih@realtek.com>
> 
> Enable the mac80211 fast-tx feature, since our driver already support
> hw_flags required by fast-tx and is able to let mac80211 stack to transmit
> packet through fast-xmit path.
> 
> Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>

Acked-by: Larry Finger <Larry.Finger@lwfinger.net>

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 09/10] rtlwifi: btcoex: add routine to set default port id
  2018-01-26  7:46 ` [PATCH 09/10] rtlwifi: btcoex: add routine to set default port id pkshih
@ 2018-01-27 19:22   ` Larry Finger
  2018-01-29  2:48     ` Pkshih
  0 siblings, 1 reply; 24+ messages in thread
From: Larry Finger @ 2018-01-27 19:22 UTC (permalink / raw)
  To: pkshih, kvalo; +Cc: linux-wireless

On 01/26/2018 01:46 AM, pkshih@realtek.com wrote:
> From: Ping-Ke Shih <pkshih@realtek.com>
> 
> Tell wifi and BT firmware the default port ID to set multiports' state
> properly, but only 8822be needs this function currently.
> 
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
> ---

This patch results in the following compiler warnings:

   CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/dm.o
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c:1052:13: warning: 
‘halbtc_set_default_port_id_cmd’ defined but not used [-Wunused-function]
  static void halbtc_set_default_port_id_cmd(void *bt_context)
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c:1042:13: warning: 
‘halbtc_send_wifi_port_id_cmd’ defined but not used [-Wunused-function]
  static void halbtc_send_wifi_port_id_cmd(void *bt_context)
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Something seems to be wrong. As these routines will likely be needed later, you 
need to remove the static notation and put their prototypes in a header to quiet 
Sparse.

Larry


>   .../realtek/rtlwifi/btcoexist/halbtcoutsrc.c       | 22 ++++++++++++++++++++++
>   drivers/net/wireless/realtek/rtlwifi/wifi.h        |  5 +++++
>   2 files changed, 27 insertions(+)
> 
> diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
> index 1404729441a2..5e41b204f7c0 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
> @@ -1039,6 +1039,28 @@ static void halbtc_fill_h2c_cmd(void *bt_context, u8 element_id,
>   					cmd_len, cmd_buf);
>   }
>   
> +static void halbtc_send_wifi_port_id_cmd(void *bt_context)
> +{
> +	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
> +	struct rtl_priv *rtlpriv = btcoexist->adapter;
> +	u8 cmd_buf[1] = {0};	/* port id [2:0] = 0 */
> +
> +	rtlpriv->cfg->ops->fill_h2c_cmd(rtlpriv->mac80211.hw, H2C_BT_PORT_ID,
> +					1, cmd_buf);
> +}
> +
> +static void halbtc_set_default_port_id_cmd(void *bt_context)
> +{
> +	struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context;
> +	struct rtl_priv *rtlpriv = btcoexist->adapter;
> +	struct ieee80211_hw *hw = rtlpriv->mac80211.hw;
> +
> +	if (!rtlpriv->cfg->ops->set_default_port_id_cmd)
> +		return;
> +
> +	rtlpriv->cfg->ops->set_default_port_id_cmd(hw);
> +}
> +
>   static
>   void halbtc_set_bt_reg(void *btc_context, u8 reg_type, u32 offset, u32 set_val)
>   {
> diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
> index 0e8aae0c05c1..1c9ed28b42da 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
> +++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
> @@ -153,6 +153,10 @@ enum rtl8192c_h2c_cmd {
>   	MAX_H2CCMD
>   };
>   
> +enum {
> +	H2C_BT_PORT_ID = 0x71,
> +};
> +
>   #define GET_TX_REPORT_SN_V1(c2h)	(c2h[6])
>   #define GET_TX_REPORT_ST_V1(c2h)	(c2h[0] & 0xC0)
>   #define GET_TX_REPORT_RETRY_V1(c2h)	(c2h[2] & 0x3F)
> @@ -2256,6 +2260,7 @@ struct rtl_hal_ops {
>   	void (*bt_coex_off_before_lps) (struct ieee80211_hw *hw);
>   	void (*fill_h2c_cmd) (struct ieee80211_hw *hw, u8 element_id,
>   			      u32 cmd_len, u8 *p_cmdbuffer);
> +	void (*set_default_port_id_cmd)(struct ieee80211_hw *hw);
>   	bool (*get_btc_status) (void);
>   	bool (*is_fw_header)(struct rtlwifi_firmware_header *hdr);
>   	u32 (*rx_command_packet)(struct ieee80211_hw *hw,
> 

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 10/10] rtlwifi: btcoex: Add 8822be btcoex supported files for wifi only
  2018-01-26  7:46 ` [PATCH 10/10] rtlwifi: btcoex: Add 8822be btcoex supported files for wifi only pkshih
@ 2018-01-27 19:24   ` Larry Finger
  0 siblings, 0 replies; 24+ messages in thread
From: Larry Finger @ 2018-01-27 19:24 UTC (permalink / raw)
  To: pkshih, kvalo; +Cc: linux-wireless

On 01/26/2018 01:46 AM, pkshih@realtek.com wrote:
> From: Ping-Ke Shih <pkshih@realtek.com>
> 
> The wifi only btcoex is used to solo card (without BT), and it is also
> useful to exclude the interference with BT to make debug easier.
> There are only four ops for wifi only btcoex to initialze antenna and
> switch the settings while band is changed.
> 
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>

Acked-by: Larry Finger <Larry.Finger@lwfinger.net>

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 08/10] rtlwifi: add efuse ops for other components
  2018-01-26  7:46 ` [PATCH 08/10] rtlwifi: add efuse ops for other components pkshih
@ 2018-01-27 19:28   ` Larry Finger
  0 siblings, 0 replies; 24+ messages in thread
From: Larry Finger @ 2018-01-27 19:28 UTC (permalink / raw)
  To: pkshih, kvalo; +Cc: linux-wireless

On 01/26/2018 01:46 AM, pkshih@realtek.com wrote:
> From: Ping-Ke Shih <pkshih@realtek.com>
> 
> The new component phydm need to access efuse content, so we prepare ops
> for reference.
> 
> Signed-off-by: Tsang-Shian Lin <thlin@realtek.com>
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>

Acked-by: Larry Finger <Larry.Finger@lwfinger.net>

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 07/10] rtlwifi: add definition radio_mask for RF and maximum bandwidth
  2018-01-26  7:46 ` [PATCH 07/10] rtlwifi: add definition radio_mask for RF and maximum bandwidth pkshih
@ 2018-01-27 19:35   ` Larry Finger
  0 siblings, 0 replies; 24+ messages in thread
From: Larry Finger @ 2018-01-27 19:35 UTC (permalink / raw)
  To: pkshih, kvalo; +Cc: linux-wireless

On 01/26/2018 01:46 AM, pkshih@realtek.com wrote:
> From: Ping-Ke Shih <pkshih@realtek.com>
> 
> Add rf mask definition (BIT 0, BIT 1, BIT 2, ...) that is different from
> rf path definition (0, 1, 2, ...), and then combinations of rf path are
> possible.
> 
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>

I agree that an rf path mask is useful.

Acked-by: Larry Finger <Larry.Finger@lwfinger.net>

> ---
>   drivers/net/wireless/realtek/rtlwifi/wifi.h | 8 ++++++++
>   1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
> index 4de2ab1d5416..2e9a20273a2d 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
> +++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
> @@ -286,6 +286,13 @@ enum radio_path {
>   	RF90_PATH_D = 3,
>   };
>   
> +enum radio_mask {
> +	RF_MASK_A = BIT(0),
> +	RF_MASK_B = BIT(1),
> +	RF_MASK_C = BIT(2),
> +	RF_MASK_D = BIT(3),
> +};
> +
>   enum regulation_txpwr_lmt {
>   	TXPWR_LMT_FCC = 0,
>   	TXPWR_LMT_MKK = 1,
> @@ -579,6 +586,7 @@ enum ht_channel_width {
>   	HT_CHANNEL_WIDTH_20 = 0,
>   	HT_CHANNEL_WIDTH_20_40 = 1,
>   	HT_CHANNEL_WIDTH_80 = 2,
> +	HT_CHANNEL_WIDTH_MAX,
>   };
>   
>   /* Ref: 802.11i sepc D10.0 7.3.2.25.1
> 

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 06/10] rtlwifi: Fix VHT NSS in RC
  2018-01-26  7:46 ` [PATCH 06/10] rtlwifi: Fix VHT NSS in RC pkshih
@ 2018-01-27 19:39   ` Larry Finger
  2018-01-29  3:01     ` Pkshih
  0 siblings, 1 reply; 24+ messages in thread
From: Larry Finger @ 2018-01-27 19:39 UTC (permalink / raw)
  To: pkshih, kvalo; +Cc: linux-wireless

On 01/26/2018 01:46 AM, pkshih@realtek.com wrote:
> From: Ping-Ke Shih <pkshih@realtek.com>
> 
> NSS is a argument of highest rate in RC, and it occupies bit 4-7 so use
> ieee80211_rate_set_vht() to fill the values. Since it got correct rate
> index, we don't need to check chips to assign NSS in set function anymore.
> 
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
> ---
>   drivers/net/wireless/realtek/rtlwifi/rc.c | 49 +++++++++++++++++++++++++------
>   1 file changed, 40 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rc.c b/drivers/net/wireless/realtek/rtlwifi/rc.c
> index d1cb7d405618..396bed8d3d51 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rc.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rc.c
> @@ -42,6 +42,17 @@ static u8 _rtl_rc_get_highest_rix(struct rtl_priv *rtlpriv,
>   	struct rtl_phy *rtlphy = &(rtlpriv->phy);
>   	struct rtl_sta_info *sta_entry = NULL;
>   	u16 wireless_mode = 0;
> +	u8 nss;
> +	struct ieee80211_tx_rate rate;
> +
> +	if (get_rf_type(rtlphy) >= RF_4T4R)
> +		nss = 4;
> +	else if (get_rf_type(rtlphy) >= RF_3T3R)
> +		nss = 3;
> +	else if (get_rf_type(rtlphy) >= RF_2T2R)
> +		nss = 2;
> +	else
> +		nss = 1;

As a general rule, I think that if ... else if ... else if ... else ... 
constructions should be changed to switch statements. This one is simple enough 
that there will be no complications, but keep this in mind in the future.

Acked-by: Larry Finger <Larry.Finger@lwfinger.net>

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 05/10] rtlwifi: Add rate section and its related definition and comment
  2018-01-26  7:46 ` [PATCH 05/10] rtlwifi: Add rate section and its related definition and comment pkshih
@ 2018-01-27 19:41   ` Larry Finger
  0 siblings, 0 replies; 24+ messages in thread
From: Larry Finger @ 2018-01-27 19:41 UTC (permalink / raw)
  To: pkshih, kvalo; +Cc: linux-wireless

On 01/26/2018 01:46 AM, pkshih@realtek.com wrote:
> From: Ping-Ke Shih <pkshih@realtek.com>
> 
> Add comments to make it to be easier to understand, and add compile time
> assertions.
> 
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>

This is a good improvement.

Acked-by: Larry Finger <Larry.Finger@lwfinger.net>

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 04/10] rtlwifi: Extend tx_power_by_rate_offset size for newer IC
  2018-01-26  7:46 ` [PATCH 04/10] rtlwifi: Extend tx_power_by_rate_offset size for newer IC pkshih
@ 2018-01-27 19:44   ` Larry Finger
  2018-01-29  3:13     ` Pkshih
  0 siblings, 1 reply; 24+ messages in thread
From: Larry Finger @ 2018-01-27 19:44 UTC (permalink / raw)
  To: pkshih, kvalo; +Cc: linux-wireless

On 01/26/2018 01:46 AM, pkshih@realtek.com wrote:
> From: Ping-Ke Shih <pkshih@realtek.com>
> 
> In older design, the TX power is grouped into rate section (smaller array
> size), but new design groups them into rate (larger array size). Thus,
> we extend the size for both cases, and add compile time assertion.
> 
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
> ---

I hate to see any arrays getting larger, but I can see that changes in rates 
make this inevitable. The BUILD_BUG_ON() is a good addition.

Acked-by: Larry Finger <Larry.Finger@lwfinger.net>

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 03/10] rtlwifi: Use 6 bits as sequence number of TX report
  2018-01-26  7:46 ` [PATCH 03/10] rtlwifi: Use 6 bits as sequence number of TX report pkshih
@ 2018-01-27 19:56   ` Larry Finger
  0 siblings, 0 replies; 24+ messages in thread
From: Larry Finger @ 2018-01-27 19:56 UTC (permalink / raw)
  To: pkshih, kvalo; +Cc: linux-wireless

On 01/26/2018 01:46 AM, pkshih@realtek.com wrote:
> From: Ping-Ke Shih <pkshih@realtek.com>
> 
> In new design, SW_DEFINE[1:0] of tx desc are used by firmware, and the TX
> report only contains SW_DEFINE[7:0]. To satisfy with all cases, driver uses
> SW_DEFINE[7:2] as sequence number.
> Besides, the format of tx report have been changed, so a new flag
> RTL_SPEC_EXT_C2H is used to access report.
> 
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>

This change was tested on an old design (RTL8188CE). No problems were observed.

Acked-by: Larry Finger <Larry.Finger@lwfinger.net>

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 09/10] rtlwifi: btcoex: add routine to set default port id
  2018-01-27 19:22   ` Larry Finger
@ 2018-01-29  2:48     ` Pkshih
  0 siblings, 0 replies; 24+ messages in thread
From: Pkshih @ 2018-01-29  2:48 UTC (permalink / raw)
  To: kvalo, Larry.Finger; +Cc: linux-wireless

T24gU2F0LCAyMDE4LTAxLTI3IGF0IDEzOjIyIC0wNjAwLCBMYXJyeSBGaW5nZXIgd3JvdGU6DQo+
IE9uIDAxLzI2LzIwMTggMDE6NDYgQU0sIHBrc2hpaEByZWFsdGVrLmNvbSB3cm90ZToNCj4gPiBG
cm9tOiBQaW5nLUtlIFNoaWggPHBrc2hpaEByZWFsdGVrLmNvbT4NCj4gPsKgDQo+ID4gVGVsbCB3
aWZpIGFuZCBCVCBmaXJtd2FyZSB0aGUgZGVmYXVsdCBwb3J0IElEIHRvIHNldCBtdWx0aXBvcnRz
JyBzdGF0ZQ0KPiA+IHByb3Blcmx5LCBidXQgb25seSA4ODIyYmUgbmVlZHMgdGhpcyBmdW5jdGlv
biBjdXJyZW50bHkuDQo+ID7CoA0KPiA+IFNpZ25lZC1vZmYtYnk6IFBpbmctS2UgU2hpaCA8cGtz
aGloQHJlYWx0ZWsuY29tPg0KPiA+IC0tLQ0KPsKgDQo+IFRoaXMgcGF0Y2ggcmVzdWx0cyBpbiB0
aGUgZm9sbG93aW5nIGNvbXBpbGVyIHdhcm5pbmdzOg0KPsKgDQo+wqDCoMKgwqBDQyBbTV3CoMKg
ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNiZS9kbS5vDQo+IGRy
aXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9idGNvZXhpc3QvaGFsYnRjb3V0c3Jj
LmM6MTA1MjoxMzogd2FybmluZzrCoA0KPiDigJhoYWxidGNfc2V0X2RlZmF1bHRfcG9ydF9pZF9j
bWTigJkgZGVmaW5lZCBidXQgbm90IHVzZWQgWy1XdW51c2VkLWZ1bmN0aW9uXQ0KPsKgwqDCoHN0
YXRpYyB2b2lkIGhhbGJ0Y19zZXRfZGVmYXVsdF9wb3J0X2lkX2NtZCh2b2lkICpidF9jb250ZXh0
KQ0KPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fg0KPiBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvYnRjb2V4aXN0
L2hhbGJ0Y291dHNyYy5jOjEwNDI6MTM6IHdhcm5pbmc6wqANCj4g4oCYaGFsYnRjX3NlbmRfd2lm
aV9wb3J0X2lkX2NtZOKAmSBkZWZpbmVkIGJ1dCBub3QgdXNlZCBbLVd1bnVzZWQtZnVuY3Rpb25d
DQo+wqDCoMKgc3RhdGljIHZvaWQgaGFsYnRjX3NlbmRfd2lmaV9wb3J0X2lkX2NtZCh2b2lkICpi
dF9jb250ZXh0KQ0KPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoF5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fg0KPsKgDQo+IFNvbWV0aGluZyBzZWVtcyB0byBiZSB3cm9uZy4gQXMg
dGhlc2Ugcm91dGluZXMgd2lsbCBsaWtlbHkgYmUgbmVlZGVkIGxhdGVyLCB5b3XCoA0KPiBuZWVk
IHRvIHJlbW92ZSB0aGUgc3RhdGljIG5vdGF0aW9uIGFuZCBwdXQgdGhlaXIgcHJvdG90eXBlcyBp
biBhIGhlYWRlciB0byBxdWlldMKgDQo+IFNwYXJzZS4NCg0KWWVzLCBsYXRlciBjb21taXQgbmVl
ZHMgdGhlbS4gSSdsbCBmaXggdGhlc2Ugd2FybmluZ3MgaW4gdjIuDQoNClBLDQoNCg==

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 06/10] rtlwifi: Fix VHT NSS in RC
  2018-01-27 19:39   ` Larry Finger
@ 2018-01-29  3:01     ` Pkshih
  0 siblings, 0 replies; 24+ messages in thread
From: Pkshih @ 2018-01-29  3:01 UTC (permalink / raw)
  To: kvalo, Larry.Finger; +Cc: linux-wireless

T24gU2F0LCAyMDE4LTAxLTI3IGF0IDEzOjM5IC0wNjAwLCBMYXJyeSBGaW5nZXIgd3JvdGU6DQo+
IE9uIDAxLzI2LzIwMTggMDE6NDYgQU0sIHBrc2hpaEByZWFsdGVrLmNvbSB3cm90ZToNCj4gPiBG
cm9tOiBQaW5nLUtlIFNoaWggPHBrc2hpaEByZWFsdGVrLmNvbT4NCj4gPsKgDQo+ID4gTlNTIGlz
IGEgYXJndW1lbnQgb2YgaGlnaGVzdCByYXRlIGluIFJDLCBhbmQgaXQgb2NjdXBpZXMgYml0IDQt
NyBzbyB1c2UNCj4gPiBpZWVlODAyMTFfcmF0ZV9zZXRfdmh0KCkgdG8gZmlsbCB0aGUgdmFsdWVz
LiBTaW5jZSBpdCBnb3QgY29ycmVjdCByYXRlDQo+ID4gaW5kZXgsIHdlIGRvbid0IG5lZWQgdG8g
Y2hlY2sgY2hpcHMgdG8gYXNzaWduIE5TUyBpbiBzZXQgZnVuY3Rpb24gYW55bW9yZS4NCj4gPsKg
DQo+ID4gU2lnbmVkLW9mZi1ieTogUGluZy1LZSBTaGloIDxwa3NoaWhAcmVhbHRlay5jb20+DQo+
ID4gLS0tDQo+ID7CoMKgwqBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcmMu
YyB8IDQ5ICsrKysrKysrKysrKysrKysrKysrKysrKysNCj4gLS0tLS0tDQo+ID7CoMKgwqAxIGZp
bGUgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkNCj4gPsKgDQo+ID4g
ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9yYy5jDQo+
IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3JjLmMNCj4gPiBpbmRleCBk
MWNiN2Q0MDU2MTguLjM5NmJlZDhkM2Q1MSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL25ldC93
aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcmMuYw0KPiA+ICsrKyBiL2RyaXZlcnMvbmV0L3dpcmVs
ZXNzL3JlYWx0ZWsvcnRsd2lmaS9yYy5jDQo+ID4gQEAgLTQyLDYgKzQyLDE3IEBAIHN0YXRpYyB1
OCBfcnRsX3JjX2dldF9oaWdoZXN0X3JpeChzdHJ1Y3QgcnRsX3ByaXYNCj4gKnJ0bHByaXYsDQo+
ID7CoMKgwqAJc3RydWN0IHJ0bF9waHkgKnJ0bHBoeSA9ICYocnRscHJpdi0+cGh5KTsNCj4gPsKg
wqDCoAlzdHJ1Y3QgcnRsX3N0YV9pbmZvICpzdGFfZW50cnkgPSBOVUxMOw0KPiA+wqDCoMKgCXUx
NiB3aXJlbGVzc19tb2RlID0gMDsNCj4gPiArCXU4IG5zczsNCj4gPiArCXN0cnVjdCBpZWVlODAy
MTFfdHhfcmF0ZSByYXRlOw0KPiA+ICsNCj4gPiArCWlmIChnZXRfcmZfdHlwZShydGxwaHkpID49
IFJGXzRUNFIpDQo+ID4gKwkJbnNzID0gNDsNCj4gPiArCWVsc2UgaWYgKGdldF9yZl90eXBlKHJ0
bHBoeSkgPj0gUkZfM1QzUikNCj4gPiArCQluc3MgPSAzOw0KPiA+ICsJZWxzZSBpZiAoZ2V0X3Jm
X3R5cGUocnRscGh5KSA+PSBSRl8yVDJSKQ0KPiA+ICsJCW5zcyA9IDI7DQo+ID4gKwllbHNlDQo+
ID4gKwkJbnNzID0gMTsNCj7CoA0KPiBBcyBhIGdlbmVyYWwgcnVsZSwgSSB0aGluayB0aGF0IGlm
IC4uLiBlbHNlIGlmIC4uLiBlbHNlIGlmIC4uLiBlbHNlIC4uLsKgDQo+IGNvbnN0cnVjdGlvbnMg
c2hvdWxkIGJlIGNoYW5nZWQgdG8gc3dpdGNoIHN0YXRlbWVudHMuIFRoaXMgb25lIGlzIHNpbXBs
ZQ0KPiBlbm91Z2jCoA0KPiB0aGF0IHRoZXJlIHdpbGwgYmUgbm8gY29tcGxpY2F0aW9ucywgYnV0
IGtlZXAgdGhpcyBpbiBtaW5kIGluIHRoZSBmdXR1cmUuDQo+wqANCg0KVGhlIGNvZGUgYWxzbyBj
b25mdXNlZCBtZSwgc28gSSdsbCBjaGFuZ2UgdGhlbSB0byAnc3dpdGNoLi4uY2FzZScgaW4gdjIu
DQoNClBLDQoNCg==

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 04/10] rtlwifi: Extend tx_power_by_rate_offset size for newer IC
  2018-01-27 19:44   ` Larry Finger
@ 2018-01-29  3:13     ` Pkshih
  0 siblings, 0 replies; 24+ messages in thread
From: Pkshih @ 2018-01-29  3:13 UTC (permalink / raw)
  To: kvalo, Larry.Finger; +Cc: linux-wireless

T24gU2F0LCAyMDE4LTAxLTI3IGF0IDEzOjQ0IC0wNjAwLCBMYXJyeSBGaW5nZXIgd3JvdGU6DQo+
IE9uIDAxLzI2LzIwMTggMDE6NDYgQU0sIHBrc2hpaEByZWFsdGVrLmNvbSB3cm90ZToNCj4gPiBG
cm9tOiBQaW5nLUtlIFNoaWggPHBrc2hpaEByZWFsdGVrLmNvbT4NCj4gPsKgDQo+ID4gSW4gb2xk
ZXIgZGVzaWduLCB0aGUgVFggcG93ZXIgaXMgZ3JvdXBlZCBpbnRvIHJhdGUgc2VjdGlvbiAoc21h
bGxlciBhcnJheQ0KPiA+IHNpemUpLCBidXQgbmV3IGRlc2lnbiBncm91cHMgdGhlbSBpbnRvIHJh
dGUgKGxhcmdlciBhcnJheSBzaXplKS4gVGh1cywNCj4gPiB3ZSBleHRlbmQgdGhlIHNpemUgZm9y
IGJvdGggY2FzZXMsIGFuZCBhZGQgY29tcGlsZSB0aW1lIGFzc2VydGlvbi4NCj4gPsKgDQo+ID4g
U2lnbmVkLW9mZi1ieTogUGluZy1LZSBTaGloIDxwa3NoaWhAcmVhbHRlay5jb20+DQo+ID4gLS0t
DQo+wqANCj4gSSBoYXRlIHRvIHNlZSBhbnkgYXJyYXlzIGdldHRpbmcgbGFyZ2VyLCBidXQgSSBj
YW4gc2VlIHRoYXQgY2hhbmdlcyBpbiByYXRlc8KgDQo+IG1ha2UgdGhpcyBpbmV2aXRhYmxlLiBU
aGUgQlVJTERfQlVHX09OKCkgaXMgYSBnb29kIGFkZGl0aW9uLg0KPsKgDQo+IEFja2VkLWJ5OiBM
YXJyeSBGaW5nZXIgPExhcnJ5LkZpbmdlckBsd2Zpbmdlci5uZXQ+DQo+DQoNCk15IHN0ZXBzIHRv
IHJldmlzZSB0eF9wb3dlciBwcm9jZWR1cmUgYXJlDQoxLiBleHRlbmRzIHRoZSBhcnJheSBzaXpl
ICh0aGlzIGNvbW1pdCkNCjIuIGFkZCA4ODIyYmUgKHRoZSBuZXcgdHhfcG93ZXIgcHJvY2VkdXJl
IGlzIGluY2x1ZGVkKQ0KMy4gbWFrZSBhbGwgY2hpcHMgdXNlIHRoZSBuZXcgdHhfcG93ZXIgcHJv
Y2VkdXJlDQoNClBLDQo=

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 02/10] rtlwifi: Add Support VHT to spec_ver
  2018-01-26  7:46 ` [PATCH 02/10] rtlwifi: Add Support VHT to spec_ver pkshih
@ 2018-01-29 18:18   ` Larry Finger
  0 siblings, 0 replies; 24+ messages in thread
From: Larry Finger @ 2018-01-29 18:18 UTC (permalink / raw)
  To: pkshih, kvalo; +Cc: linux-wireless

On 01/26/2018 01:46 AM, pkshih@realtek.com wrote:
> From: Ping-Ke Shih <pkshih@realtek.com>
> 
> We are going to add 8822be, which is a VHT 2x2 wifi chip, so add VHT flag
> to replace enumeration of chips.
> 
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>

Acked-by: Larry Finger <Larry.Finger@lwfinger.net>


> ---
>   drivers/net/wireless/realtek/rtlwifi/base.c         | 6 ++++--
>   drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c | 1 +
>   drivers/net/wireless/realtek/rtlwifi/wifi.h         | 1 +
>   3 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/wireless/realtek/rtlwifi/base.c b/drivers/net/wireless/realtek/rtlwifi/base.c
> index e461eed32699..a2da057d3cdd 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/base.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/base.c
> @@ -244,6 +244,9 @@ static void _rtl_init_hw_vht_capab(struct ieee80211_hw *hw,
>   	struct rtl_priv *rtlpriv = rtl_priv(hw);
>   	struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
>   
> +	if (!(rtlpriv->cfg->spec_ver & RTL_SPEC_SUPPORT_VHT))
> +		return;
> +
>   	if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE ||
>   	    rtlhal->hw_type == HARDWARE_TYPE_RTL8822BE) {
>   		u16 mcs_map;
> @@ -887,8 +890,7 @@ static void _rtl_query_bandwidth_mode(struct ieee80211_hw *hw,
>   
>   	tcb_desc->packet_bw = HT_CHANNEL_WIDTH_20_40;
>   
> -	if (rtlpriv->rtlhal.hw_type == HARDWARE_TYPE_RTL8812AE ||
> -	    rtlpriv->rtlhal.hw_type == HARDWARE_TYPE_RTL8821AE) {
> +	if (rtlpriv->cfg->spec_ver & RTL_SPEC_SUPPORT_VHT) {
>   		if (mac->opmode == NL80211_IFTYPE_AP ||
>   		    mac->opmode == NL80211_IFTYPE_ADHOC ||
>   		    mac->opmode == NL80211_IFTYPE_MESH_POINT) {
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c
> index ab5d462b1a3a..9bb3d9dfce79 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c
> @@ -328,6 +328,7 @@ static const struct rtl_hal_cfg rtl8821ae_hal_cfg = {
>   	.alt_fw_name = "rtlwifi/rtl8821aefw.bin",
>   	.ops = &rtl8821ae_hal_ops,
>   	.mod_params = &rtl8821ae_mod_params,
> +	.spec_ver = RTL_SPEC_SUPPORT_VHT,
>   	.maps[SYS_ISO_CTRL] = REG_SYS_ISO_CTRL,
>   	.maps[SYS_FUNC_EN] = REG_SYS_FUNC_EN,
>   	.maps[SYS_CLK] = REG_SYS_CLKR,
> diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
> index a7aacbc3984e..2df0bc316532 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
> +++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
> @@ -951,6 +951,7 @@ enum package_type {
>   
>   enum rtl_spec_ver {
>   	RTL_SPEC_NEW_RATEID = BIT(0),	/* use ratr_table_mode_new */
> +	RTL_SPEC_SUPPORT_VHT = BIT(1),	/* support VHT */
>   };
>   
>   struct octet_string {
> 

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2018-01-29 18:18 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-26  7:46 [PATCH 00/10] rtlwifi: add more materials for 8822be pkshih
2018-01-26  7:46 ` [PATCH 01/10] rtlwifi: enable mac80211 fast-tx support pkshih
2018-01-27 18:32   ` Larry Finger
2018-01-26  7:46 ` [PATCH 02/10] rtlwifi: Add Support VHT to spec_ver pkshih
2018-01-29 18:18   ` Larry Finger
2018-01-26  7:46 ` [PATCH 03/10] rtlwifi: Use 6 bits as sequence number of TX report pkshih
2018-01-27 19:56   ` Larry Finger
2018-01-26  7:46 ` [PATCH 04/10] rtlwifi: Extend tx_power_by_rate_offset size for newer IC pkshih
2018-01-27 19:44   ` Larry Finger
2018-01-29  3:13     ` Pkshih
2018-01-26  7:46 ` [PATCH 05/10] rtlwifi: Add rate section and its related definition and comment pkshih
2018-01-27 19:41   ` Larry Finger
2018-01-26  7:46 ` [PATCH 06/10] rtlwifi: Fix VHT NSS in RC pkshih
2018-01-27 19:39   ` Larry Finger
2018-01-29  3:01     ` Pkshih
2018-01-26  7:46 ` [PATCH 07/10] rtlwifi: add definition radio_mask for RF and maximum bandwidth pkshih
2018-01-27 19:35   ` Larry Finger
2018-01-26  7:46 ` [PATCH 08/10] rtlwifi: add efuse ops for other components pkshih
2018-01-27 19:28   ` Larry Finger
2018-01-26  7:46 ` [PATCH 09/10] rtlwifi: btcoex: add routine to set default port id pkshih
2018-01-27 19:22   ` Larry Finger
2018-01-29  2:48     ` Pkshih
2018-01-26  7:46 ` [PATCH 10/10] rtlwifi: btcoex: Add 8822be btcoex supported files for wifi only pkshih
2018-01-27 19:24   ` Larry Finger

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.