* [PATCH 00/28] rtl8xxxu updates and fixes
@ 2016-02-03 18:39 Jes.Sorensen
2016-02-03 18:39 ` [PATCH 01/28] rtl8xxxu: Minor cleanup to rtl8xxxu_download_firmware() Jes.Sorensen
` (27 more replies)
0 siblings, 28 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Hi,
Please find included a smaller patchset for the rtl8xxxu driver. It
includes fixes from Bruno Randolf for monitor mode support, Jakub
Sitnicki (I have a few more patches pending from Jakub), and Tobias
Klauser. It also includes a few fixes and some preparatory patches for
the next patchset which will include rtl8723bu and rtl8192eu support.
This is all I was able to split out, without breaking my follow-on
patches.
I have another stack that goes on top of this, that I will try to post
as soon as I see these hit the tree.
Thanks,
Jes
Bruno Randolf (3):
rtl8xxxu: Enable monitor mode by handling filters
rtl8xxxu: Document REG_RXFLTMAP registers
rtl8xxxu: Enable data frame reception in rtl8xxxu_start
Jakub Sitnicki (1):
rtl8xxxu: Use REG_EFUSE_TEST register only on multifunctional devices
Jes Sorensen (22):
rtl8xxxu: Minor cleanup to rtl8xxxu_download_firmware()
rtl8xxxu: rtl8xxxu_download_firmware(): Cosmetic cleanups
rtl8xxxu: If fw running in RAM, reset the 8051 before trying to
download a new one
rtl8xxxu: Add RQPN_[NE]PQ_SHIFT values
rtl8xxxu: Define SYS_CFG_SW_OFFLOAD_EN
rtl8xxxu: Add REG_TX_REPORT_* defines
rtl8xxxu: Add more RCR bits
rtl8xxxu: Implement rtl8xxxu_reset_8051()
rtl8xxxu: Add definitions for antenna selection registers for 8723BU
rtl8xxxu: Add mbox extension register definitions for 8723B
rtl8xxxu: Add REG_OFDM0_RX_D_SYNC_PATH definitions
rtl8xxxu: Remove unused clutter for handling recursive calls to
rtl8xxxu_init_device()
rtl8xxxu: Fix cosmetics to quiet down checkpatch police
rtl8xxxu: Remove duplicate USB ID
rtl8xxxu: Fix 80 character per line issue
rtl8xxxu: rtl8xxxu_set_linktype(): Be consistent aboutregister size
REG_MSR
rtl8xxxu: Set correct bit to reset MCU IO wrapper
rtl8xxxu: Remove unused mgmt variable from rtl8xxxu_rx_complete()
rtl8xxxu: Remove unused len/cnt variables from rtl8xxxu_rx_complete()
rtl8xxxu: Do not mask RF registers to 6 bits
rtl8xxxu: Make device_init kludge 8723au only
rtl8xxxu: Add missing bit define for REG_APS_FSMCO
Tobias Klauser (2):
rtl8xxxu: Fix typo in Kconfig help text
rtl8xxxu: Check return value of kmemdup()
drivers/net/wireless/realtek/rtl8xxxu/Kconfig | 2 +-
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 183 ++++++++++++++-------
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 2 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 55 ++++++-
4 files changed, 169 insertions(+), 73 deletions(-)
--
2.5.0
^ permalink raw reply [flat|nested] 32+ messages in thread
* [PATCH 01/28] rtl8xxxu: Minor cleanup to rtl8xxxu_download_firmware()
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-25 9:57 ` [01/28] " Kalle Valo
2016-02-03 18:39 ` [PATCH 02/28] rtl8xxxu: rtl8xxxu_download_firmware(): Cosmetic cleanups Jes.Sorensen
` (26 subsequent siblings)
27 siblings, 1 reply; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index 6aed923..6b39e4d 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -2100,7 +2100,8 @@ static int rtl8xxxu_download_firmware(struct rtl8xxxu_priv *priv)
/* 8051 enable */
val16 = rtl8xxxu_read16(priv, REG_SYS_FUNC);
- rtl8xxxu_write16(priv, REG_SYS_FUNC, val16 | SYS_FUNC_CPU_ENABLE);
+ val16 |= SYS_FUNC_CPU_ENABLE;
+ rtl8xxxu_write16(priv, REG_SYS_FUNC, val16);
/* MCU firmware download enable */
val8 = rtl8xxxu_read8(priv, REG_MCU_FW_DL);
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 02/28] rtl8xxxu: rtl8xxxu_download_firmware(): Cosmetic cleanups
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
2016-02-03 18:39 ` [PATCH 01/28] rtl8xxxu: Minor cleanup to rtl8xxxu_download_firmware() Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 03/28] rtl8xxxu: If fw running in RAM, reset the 8051 before trying to download a new one Jes.Sorensen
` (25 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index 6b39e4d..b6a264b 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -2105,15 +2105,18 @@ static int rtl8xxxu_download_firmware(struct rtl8xxxu_priv *priv)
/* MCU firmware download enable */
val8 = rtl8xxxu_read8(priv, REG_MCU_FW_DL);
- rtl8xxxu_write8(priv, REG_MCU_FW_DL, val8 | MCU_FW_DL_ENABLE);
+ val8 |= MCU_FW_DL_ENABLE;
+ rtl8xxxu_write8(priv, REG_MCU_FW_DL, val8);
/* 8051 reset */
val32 = rtl8xxxu_read32(priv, REG_MCU_FW_DL);
- rtl8xxxu_write32(priv, REG_MCU_FW_DL, val32 & ~BIT(19));
+ val32 &= ~BIT(19);
+ rtl8xxxu_write32(priv, REG_MCU_FW_DL, val32);
/* Reset firmware download checksum */
val8 = rtl8xxxu_read8(priv, REG_MCU_FW_DL);
- rtl8xxxu_write8(priv, REG_MCU_FW_DL, val8 | MCU_FW_DL_CSUM_REPORT);
+ val8 |= MCU_FW_DL_CSUM_REPORT;
+ rtl8xxxu_write8(priv, REG_MCU_FW_DL, val8);
pages = priv->fw_size / RTL_FW_PAGE_SIZE;
remainder = priv->fw_size % RTL_FW_PAGE_SIZE;
@@ -2122,7 +2125,8 @@ static int rtl8xxxu_download_firmware(struct rtl8xxxu_priv *priv)
for (i = 0; i < pages; i++) {
val8 = rtl8xxxu_read8(priv, REG_MCU_FW_DL + 2) & 0xF8;
- rtl8xxxu_write8(priv, REG_MCU_FW_DL + 2, val8 | i);
+ val8 |= i;
+ rtl8xxxu_write8(priv, REG_MCU_FW_DL + 2, val8);
ret = rtl8xxxu_writeN(priv, REG_FW_START_ADDRESS,
fwptr, RTL_FW_PAGE_SIZE);
@@ -2136,7 +2140,8 @@ static int rtl8xxxu_download_firmware(struct rtl8xxxu_priv *priv)
if (remainder) {
val8 = rtl8xxxu_read8(priv, REG_MCU_FW_DL + 2) & 0xF8;
- rtl8xxxu_write8(priv, REG_MCU_FW_DL + 2, val8 | i);
+ val8 |= i;
+ rtl8xxxu_write8(priv, REG_MCU_FW_DL + 2, val8);
ret = rtl8xxxu_writeN(priv, REG_FW_START_ADDRESS,
fwptr, remainder);
if (ret != remainder) {
@@ -2149,8 +2154,8 @@ static int rtl8xxxu_download_firmware(struct rtl8xxxu_priv *priv)
fw_abort:
/* MCU firmware download disable */
val16 = rtl8xxxu_read16(priv, REG_MCU_FW_DL);
- rtl8xxxu_write16(priv, REG_MCU_FW_DL,
- val16 & (~MCU_FW_DL_ENABLE & 0xff));
+ val16 &= ~MCU_FW_DL_ENABLE;
+ rtl8xxxu_write16(priv, REG_MCU_FW_DL, val16);
return ret;
}
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 03/28] rtl8xxxu: If fw running in RAM, reset the 8051 before trying to download a new one
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
2016-02-03 18:39 ` [PATCH 01/28] rtl8xxxu: Minor cleanup to rtl8xxxu_download_firmware() Jes.Sorensen
2016-02-03 18:39 ` [PATCH 02/28] rtl8xxxu: rtl8xxxu_download_firmware(): Cosmetic cleanups Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-25 9:36 ` Kalle Valo
2016-02-03 18:39 ` [PATCH 04/28] rtl8xxxu: Add RQPN_[NE]PQ_SHIFT values Jes.Sorensen
` (24 subsequent siblings)
27 siblings, 1 reply; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index b6a264b..e98e053 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -2089,7 +2089,7 @@ exit:
static int rtl8xxxu_download_firmware(struct rtl8xxxu_priv *priv)
{
int pages, remainder, i, ret;
- u8 val8;
+ u8 val8, sys_func;
u16 val16;
u32 val32;
u8 *fwptr;
@@ -2103,6 +2103,23 @@ static int rtl8xxxu_download_firmware(struct rtl8xxxu_priv *priv)
val16 |= SYS_FUNC_CPU_ENABLE;
rtl8xxxu_write16(priv, REG_SYS_FUNC, val16);
+ val8 = rtl8xxxu_read8(priv, REG_MCU_FW_DL);
+ if (val8 & MCU_FW_RAM_SEL) {
+ pr_info("do the RAM reset\n");
+ rtl8xxxu_write8(priv, REG_MCU_FW_DL, 0x00);
+ val8 = rtl8xxxu_read8(priv, REG_RSV_CTRL + 1);
+ val8 &= ~BIT(3);
+ rtl8xxxu_write8(priv, REG_RSV_CTRL + 1, val8);
+ sys_func = rtl8xxxu_read8(priv, REG_SYS_FUNC + 1);
+ sys_func &= ~BIT(2);
+ rtl8xxxu_write8(priv, REG_SYS_FUNC + 1, sys_func);
+ val8 = rtl8xxxu_read8(priv, REG_RSV_CTRL + 1);
+ val8 |= BIT(3);
+ rtl8xxxu_write8(priv, REG_RSV_CTRL + 1, val8);
+ sys_func |= BIT(2);
+ rtl8xxxu_write8(priv, REG_SYS_FUNC + 1, sys_func);
+ }
+
/* MCU firmware download enable */
val8 = rtl8xxxu_read8(priv, REG_MCU_FW_DL);
val8 |= MCU_FW_DL_ENABLE;
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 04/28] rtl8xxxu: Add RQPN_[NE]PQ_SHIFT values
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (2 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 03/28] rtl8xxxu: If fw running in RAM, reset the 8051 before trying to download a new one Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 05/28] rtl8xxxu: Define SYS_CFG_SW_OFFLOAD_EN Jes.Sorensen
` (23 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
index 23208f7..8b27a1c 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
@@ -352,6 +352,8 @@
#define REG_TXDMA_OFFSET_CHK 0x020c
#define REG_TXDMA_STATUS 0x0210
#define REG_RQPN_NPQ 0x0214
+#define RQPN_NPQ_SHIFT 0
+#define RQPN_EPQ_SHIFT 16
/* 0x0280 ~ 0x02FF RXDMA Configuration */
#define REG_RXDMA_AGG_PG_TH 0x0280
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 05/28] rtl8xxxu: Define SYS_CFG_SW_OFFLOAD_EN
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (3 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 04/28] rtl8xxxu: Add RQPN_[NE]PQ_SHIFT values Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 06/28] rtl8xxxu: Add REG_TX_REPORT_* defines Jes.Sorensen
` (22 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
This is needed for chips with IOL support.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
index 8b27a1c..7c795ce 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
@@ -213,6 +213,7 @@
#define SYS_CFG_PCIRSTB BIT(4)
#define SYS_CFG_V15_VLD BIT(5)
#define SYS_CFG_TRP_B15V_EN BIT(7)
+#define SYS_CFG_SW_OFFLOAD_EN BIT(7) /* For chips with IOL support */
#define SYS_CFG_SIC_IDLE BIT(8)
#define SYS_CFG_BD_MAC2 BIT(9)
#define SYS_CFG_BD_MAC1 BIT(10)
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 06/28] rtl8xxxu: Add REG_TX_REPORT_* defines
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (4 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 05/28] rtl8xxxu: Define SYS_CFG_SW_OFFLOAD_EN Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 07/28] rtl8xxxu: Add more RCR bits Jes.Sorensen
` (21 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
index 7c795ce..89547b6 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
@@ -456,6 +456,8 @@
#define REG_NEED_CPU_HANDLE 0x04e0
#define REG_PKT_LOSE_RPT 0x04e1
#define REG_PTCL_ERR_STATUS 0x04e2
+#define REG_TX_REPORT_CTRL 0x04ec
+#define REG_TX_REPORT_TIME 0x04f0
#define REG_DUMMY 0x04fc
/* 0x0500 ~ 0x05FF EDCA Configuration */
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 07/28] rtl8xxxu: Add more RCR bits
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (5 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 06/28] rtl8xxxu: Add REG_TX_REPORT_* defines Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 08/28] rtl8xxxu: Fix typo in Kconfig help text Jes.Sorensen
` (20 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
index 89547b6..f752602 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
@@ -568,9 +568,18 @@
#define RCR_ACCEPT_CTRL_FRAME BIT(12)
#define RCR_ACCEPT_MGMT_FRAME BIT(13)
#define RCR_HTC_LOC_CTRL BIT(14) /* MFC<--HTC=1 MFC-->HTC=0 */
+#define RCR_UC_DATA_PKT_INT_ENABLE BIT(16) /* Enable unicast data packet
+ interrupt */
+#define RCR_BM_DATA_PKT_INT_ENABLE BIT(17) /* Enable broadcast data packet
+ interrupt */
+#define RCR_TIM_PARSER_ENABLE BIT(18) /* Enable RX beacon TIM parser*/
#define RCR_MFBEN BIT(22)
-#define RCR_LSIGEN BIT(23)
+#define RCR_LSIG_ENABLE BIT(23) /* Enable LSIG TXOP Protection
+ function. Search KEYCAM for
+ each rx packet to check if
+ LSIGEN bit is set. */
#define RCR_MULTI_BSSID_ENABLE BIT(24) /* Enable Multiple BssId */
+#define RCR_FORCE_ACK BIT(26)
#define RCR_ACCEPT_BA_SSN BIT(27) /* Accept BA SSN */
#define RCR_APPEND_PHYSTAT BIT(28)
#define RCR_APPEND_ICV BIT(29)
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 08/28] rtl8xxxu: Fix typo in Kconfig help text
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (6 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 07/28] rtl8xxxu: Add more RCR bits Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 09/28] rtl8xxxu: Check return value of kmemdup() Jes.Sorensen
` (19 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Tobias Klauser, Jes Sorensen
From: Tobias Klauser <tklauser@distanz.ch>
Fix spelling of "benefits".
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/Kconfig b/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
index dd4d626..8f053c3 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
+++ b/drivers/net/wireless/realtek/rtl8xxxu/Kconfig
@@ -13,7 +13,7 @@ config RTL8XXXU
This driver is under development and has a limited feature
set. In particular it does not yet support 40MHz channels
and power management. However it should have a smaller
- memory footprint than the vendor drivers and benetifs
+ memory footprint than the vendor drivers and benefits
from the in kernel mac80211 stack.
It can coexist with drivers from drivers/staging/rtl8723au,
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 09/28] rtl8xxxu: Check return value of kmemdup()
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (7 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 08/28] rtl8xxxu: Fix typo in Kconfig help text Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 10/28] rtl8xxxu: Implement rtl8xxxu_reset_8051() Jes.Sorensen
` (18 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Tobias Klauser, Jes Sorensen
From: Tobias Klauser <tklauser@distanz.ch>
In rtl8xxxu_load_firmware() check the return value of kmemdup() and
error out with -ENOMEM in case of NULL to prevent a NULL pointer
dereference.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index e98e053..08d8e1f 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -2197,6 +2197,10 @@ static int rtl8xxxu_load_firmware(struct rtl8xxxu_priv *priv, char *fw_name)
}
priv->fw_data = kmemdup(fw->data, fw->size, GFP_KERNEL);
+ if (!priv->fw_data) {
+ ret = -ENOMEM;
+ goto exit;
+ }
priv->fw_size = fw->size - sizeof(struct rtl8xxxu_firmware_header);
signature = le16_to_cpu(priv->fw_data->signature);
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 10/28] rtl8xxxu: Implement rtl8xxxu_reset_8051()
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (8 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 09/28] rtl8xxxu: Check return value of kmemdup() Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 11/28] rtl8xxxu: Add definitions for antenna selection registers for 8723BU Jes.Sorensen
` (17 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
We need to reset the 8051 in order for it to launch the fw on the
rtl8192eu.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 38 ++++++++++++++++--------
1 file changed, 26 insertions(+), 12 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index 08d8e1f..7a571ef 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -2043,6 +2043,24 @@ exit:
return ret;
}
+static void rtl8xxxu_reset_8051(struct rtl8xxxu_priv *priv)
+{
+ u8 val8;
+ u16 sys_func;
+
+ val8 = rtl8xxxu_read8(priv, REG_RSV_CTRL + 1);
+ val8 &= ~BIT(3);
+ rtl8xxxu_write8(priv, REG_RSV_CTRL + 1, val8);
+ sys_func = rtl8xxxu_read16(priv, REG_SYS_FUNC);
+ sys_func &= ~SYS_FUNC_CPU_ENABLE;
+ rtl8xxxu_write16(priv, REG_SYS_FUNC, sys_func);
+ val8 = rtl8xxxu_read8(priv, REG_RSV_CTRL + 1);
+ val8 |= BIT(3);
+ rtl8xxxu_write8(priv, REG_RSV_CTRL + 1, val8);
+ sys_func |= SYS_FUNC_CPU_ENABLE;
+ rtl8xxxu_write16(priv, REG_SYS_FUNC, sys_func);
+}
+
static int rtl8xxxu_start_firmware(struct rtl8xxxu_priv *priv)
{
struct device *dev = &priv->udev->dev;
@@ -2067,6 +2085,12 @@ static int rtl8xxxu_start_firmware(struct rtl8xxxu_priv *priv)
val32 &= ~MCU_WINT_INIT_READY;
rtl8xxxu_write32(priv, REG_MCU_FW_DL, val32);
+ /*
+ * Reset the 8051 in order for the firmware to start running,
+ * otherwise it won't come up on the 8192eu
+ */
+ rtl8xxxu_reset_8051(priv);
+
/* Wait for firmware to become ready */
for (i = 0; i < RTL8XXXU_FIRMWARE_POLL_MAX; i++) {
val32 = rtl8xxxu_read32(priv, REG_MCU_FW_DL);
@@ -2089,7 +2113,7 @@ exit:
static int rtl8xxxu_download_firmware(struct rtl8xxxu_priv *priv)
{
int pages, remainder, i, ret;
- u8 val8, sys_func;
+ u8 val8;
u16 val16;
u32 val32;
u8 *fwptr;
@@ -2107,17 +2131,7 @@ static int rtl8xxxu_download_firmware(struct rtl8xxxu_priv *priv)
if (val8 & MCU_FW_RAM_SEL) {
pr_info("do the RAM reset\n");
rtl8xxxu_write8(priv, REG_MCU_FW_DL, 0x00);
- val8 = rtl8xxxu_read8(priv, REG_RSV_CTRL + 1);
- val8 &= ~BIT(3);
- rtl8xxxu_write8(priv, REG_RSV_CTRL + 1, val8);
- sys_func = rtl8xxxu_read8(priv, REG_SYS_FUNC + 1);
- sys_func &= ~BIT(2);
- rtl8xxxu_write8(priv, REG_SYS_FUNC + 1, sys_func);
- val8 = rtl8xxxu_read8(priv, REG_RSV_CTRL + 1);
- val8 |= BIT(3);
- rtl8xxxu_write8(priv, REG_RSV_CTRL + 1, val8);
- sys_func |= BIT(2);
- rtl8xxxu_write8(priv, REG_SYS_FUNC + 1, sys_func);
+ rtl8xxxu_reset_8051(priv);
}
/* MCU firmware download enable */
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 11/28] rtl8xxxu: Add definitions for antenna selection registers for 8723BU
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (9 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 10/28] rtl8xxxu: Implement rtl8xxxu_reset_8051() Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 12/28] rtl8xxxu: Add mbox extension register definitions for 8723B Jes.Sorensen
` (16 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
index f752602..997a857 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
@@ -756,6 +756,10 @@
#define REG_FPGA1_RF_MODE 0x0900
#define REG_FPGA1_TX_INFO 0x090c
+#define REG_DPDT_CTRL 0x092c /* 8723BU */
+#define REG_RFE_CTRL_ANTA_SRC 0x0930 /* 8723BU */
+#define REG_RFE_PATH_SELECT 0x0940 /* 8723BU */
+#define REG_RFE_BUFFER 0x0944 /* 8723BU */
#define REG_CCK0_SYSTEM 0x0a00
#define CCK0_SIDEBAND BIT(4)
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 12/28] rtl8xxxu: Add mbox extension register definitions for 8723B
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (10 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 11/28] rtl8xxxu: Add definitions for antenna selection registers for 8723BU Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 13/28] rtl8xxxu: Add REG_OFDM0_RX_D_SYNC_PATH definitions Jes.Sorensen
` (15 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
index 997a857..991b366 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
@@ -341,6 +341,11 @@
#define REG_BB_ACCEESS_CTRL 0x01e8
#define REG_BB_ACCESS_DATA 0x01ec
+#define REG_HMBOX_EXT0_8723B 0x01f0
+#define REG_HMBOX_EXT1_8723B 0x01f4
+#define REG_HMBOX_EXT2_8723B 0x01f8
+#define REG_HMBOX_EXT3_8723B 0x01fc
+
/* 0x0200 ~ 0x027F TXDMA Configuration */
#define REG_RQPN 0x0200
#define RQPN_HI_PQ_SHIFT 0
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 13/28] rtl8xxxu: Add REG_OFDM0_RX_D_SYNC_PATH definitions
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (11 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 12/28] rtl8xxxu: Add mbox extension register definitions for 8723B Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 14/28] rtl8xxxu: Remove unused clutter for handling recursive calls to rtl8xxxu_init_device() Jes.Sorensen
` (14 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
index 991b366..d2995f8a3 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
@@ -793,6 +793,9 @@
#define REG_OFDM0_ENERGY_CCA_THRES 0x0c4c
+#define REG_OFDM0_RX_D_SYNC_PATH 0x0c40
+#define OFDM0_SYNC_PATH_NOTCH_FILTER BIT(1)
+
#define REG_OFDM0_XA_AGC_CORE1 0x0c50
#define REG_OFDM0_XA_AGC_CORE2 0x0c54
#define REG_OFDM0_XB_AGC_CORE1 0x0c58
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 14/28] rtl8xxxu: Remove unused clutter for handling recursive calls to rtl8xxxu_init_device()
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (12 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 13/28] rtl8xxxu: Add REG_OFDM0_RX_D_SYNC_PATH definitions Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 15/28] rtl8xxxu: Use REG_EFUSE_TEST register only on multifunctional devices Jes.Sorensen
` (13 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
This was a leftover from the vendor driver that was never utilized.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 12 +-----------
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 1 -
2 files changed, 1 insertion(+), 12 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index 7a571ef..4a6939f 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -4289,17 +4289,7 @@ static int rtl8xxxu_init_device(struct ieee80211_hw *hw)
rtl8xxxu_write16(priv, REG_FAST_EDCA_CTRL, 0);
- /*
- * Not sure if we should get into this at all
- */
- if (priv->iqk_initialized) {
- rtl8xxxu_restore_regs(priv, rtl8723au_iqk_phy_iq_bb_reg,
- priv->bb_recovery_backup,
- RTL8XXXU_BB_REGS);
- } else {
- rtl8723a_phy_iq_calibrate(priv);
- priv->iqk_initialized = true;
- }
+ rtl8723a_phy_iq_calibrate(priv);
/*
* This should enable thermal meter
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
index f2a1bac..f71fb8d 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
@@ -652,7 +652,6 @@ struct rtl8xxxu_priv {
u32 bb_recovery_backup[RTL8XXXU_BB_REGS];
u32 rtlchip;
u8 pi_enabled:1;
- u8 iqk_initialized:1;
u8 int_buf[USB_INTR_CONTENT_LENGTH];
};
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 15/28] rtl8xxxu: Use REG_EFUSE_TEST register only on multifunctional devices
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (13 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 14/28] rtl8xxxu: Remove unused clutter for handling recursive calls to rtl8xxxu_init_device() Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 16/28] rtl8xxxu: Fix cosmetics to quiet down checkpatch police Jes.Sorensen
` (12 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jakub Sitnicki, Jes Sorensen
From: Jakub Sitnicki <jsitnicki@gmail.com>
rtl8192cu driver doesn't read/write the REG_EFUSE_TEST register.
Neither does the rtl8188eu driver. Do it only for multifunc devices
RTL8723AU/RTL8723BU.
Signed-off-by: Jakub Sitnicki <jsitnicki@gmail.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 9 ++++++---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 1 +
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index 4a6939f..94d3d84 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -1704,6 +1704,7 @@ static int rtl8xxxu_identify_chip(struct rtl8xxxu_priv *priv)
priv->has_bluetooth = 1;
if (val32 & MULTI_GPS_FUNC_EN)
priv->has_gps = 1;
+ priv->is_multi_func = 1;
} else if (val32 & SYS_CFG_TYPE_ID) {
bonding = rtl8xxxu_read32(priv, REG_HPON_FSM);
bonding &= HPON_FSM_BONDING_MASK;
@@ -1938,9 +1939,11 @@ static int rtl8xxxu_read_efuse(struct rtl8xxxu_priv *priv)
if (val16 & EEPROM_BOOT)
priv->boot_eeprom = 1;
- val32 = rtl8xxxu_read32(priv, REG_EFUSE_TEST);
- val32 = (val32 & ~EFUSE_SELECT_MASK) | EFUSE_WIFI_SELECT;
- rtl8xxxu_write32(priv, REG_EFUSE_TEST, val32);
+ if (priv->is_multi_func) {
+ val32 = rtl8xxxu_read32(priv, REG_EFUSE_TEST);
+ val32 = (val32 & ~EFUSE_SELECT_MASK) | EFUSE_WIFI_SELECT;
+ rtl8xxxu_write32(priv, REG_EFUSE_TEST, val32);
+ }
dev_dbg(dev, "Booting from %s\n",
priv->boot_eeprom ? "EEPROM" : "EFUSE");
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
index f71fb8d..bbd0f6b 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
@@ -597,6 +597,7 @@ struct rtl8xxxu_priv {
struct rtl8723au_idx ht20_max_power_offset[3];
u32 chip_cut:4;
u32 rom_rev:4;
+ u32 is_multi_func:1;
u32 has_wifi:1;
u32 has_bluetooth:1;
u32 enable_bluetooth:1;
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 16/28] rtl8xxxu: Fix cosmetics to quiet down checkpatch police
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (14 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 15/28] rtl8xxxu: Use REG_EFUSE_TEST register only on multifunctional devices Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 17/28] rtl8xxxu: Enable monitor mode by handling filters Jes.Sorensen
` (11 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index 94d3d84..ac4c211 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -4415,7 +4415,7 @@ static void rtl8xxxu_cam_write(struct rtl8xxxu_priv *priv,
}
static void rtl8xxxu_sw_scan_start(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif, const u8* mac)
+ struct ieee80211_vif *vif, const u8 *mac)
{
struct rtl8xxxu_priv *priv = hw->priv;
u8 val8;
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 17/28] rtl8xxxu: Enable monitor mode by handling filters
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (15 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 16/28] rtl8xxxu: Fix cosmetics to quiet down checkpatch police Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 18/28] rtl8xxxu: Document REG_RXFLTMAP registers Jes.Sorensen
` (10 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Bruno Randolf, Jes Sorensen
From: Bruno Randolf <br1@einfach.org>
Monitor mode is enabled by handling the filter flags we get from mac80211 in
rtl8xxxu_configure_filter() and writing them to the RCR register.
By handling the filters, we can also stop setting the BSSID filters in the
association event.
Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 56 +++++++++++++++++++-----
1 file changed, 45 insertions(+), 11 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index ac4c211..b58a60f 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -4199,7 +4199,6 @@ static int rtl8xxxu_init_device(struct ieee80211_hw *hw)
* Configure initial WMAC settings
*/
val32 = RCR_ACCEPT_PHYS_MATCH | RCR_ACCEPT_MCAST | RCR_ACCEPT_BCAST |
- /* RCR_CHECK_BSSID_MATCH | RCR_CHECK_BSSID_BEACON | */
RCR_ACCEPT_MGMT_FRAME | RCR_HTC_LOC_CTRL |
RCR_APPEND_PHYSTAT | RCR_APPEND_ICV | RCR_APPEND_MIC;
rtl8xxxu_write32(priv, REG_RCR, val32);
@@ -4522,10 +4521,6 @@ rtl8xxxu_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
rtl8xxxu_update_rate_mask(priv, ramask, sgi);
- val32 = rtl8xxxu_read32(priv, REG_RCR);
- val32 |= RCR_CHECK_BSSID_MATCH | RCR_CHECK_BSSID_BEACON;
- rtl8xxxu_write32(priv, REG_RCR, val32);
-
/* Enable RX of data frames */
rtl8xxxu_write16(priv, REG_RXFLTMAP2, 0xffff);
@@ -4539,11 +4534,6 @@ rtl8xxxu_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
h2c.joinbss.data = H2C_JOIN_BSS_CONNECT;
} else {
- val32 = rtl8xxxu_read32(priv, REG_RCR);
- val32 &= ~(RCR_CHECK_BSSID_MATCH |
- RCR_CHECK_BSSID_BEACON);
- rtl8xxxu_write32(priv, REG_RCR, val32);
-
val8 = rtl8xxxu_read8(priv, REG_BEACON_CTRL);
val8 |= BEACON_DISABLE_TSF_UPDATE;
rtl8xxxu_write8(priv, REG_BEACON_CTRL, val8);
@@ -5318,11 +5308,55 @@ static void rtl8xxxu_configure_filter(struct ieee80211_hw *hw,
unsigned int *total_flags, u64 multicast)
{
struct rtl8xxxu_priv *priv = hw->priv;
+ u32 rcr = rtl8xxxu_read32(priv, REG_RCR);
dev_dbg(&priv->udev->dev, "%s: changed_flags %08x, total_flags %08x\n",
__func__, changed_flags, *total_flags);
- *total_flags &= (FIF_ALLMULTI | FIF_CONTROL | FIF_BCN_PRBRESP_PROMISC);
+ /*
+ * FIF_ALLMULTI ignored as all multicast frames are accepted (REG_MAR)
+ */
+
+ if (*total_flags & FIF_FCSFAIL)
+ rcr |= RCR_ACCEPT_CRC32;
+ else
+ rcr &= ~RCR_ACCEPT_CRC32;
+
+ /*
+ * FIF_PLCPFAIL not supported?
+ */
+
+ if (*total_flags & FIF_BCN_PRBRESP_PROMISC)
+ rcr &= ~RCR_CHECK_BSSID_BEACON;
+ else
+ rcr |= RCR_CHECK_BSSID_BEACON;
+
+ if (*total_flags & FIF_CONTROL)
+ rcr |= RCR_ACCEPT_CTRL_FRAME;
+ else
+ rcr &= ~RCR_ACCEPT_CTRL_FRAME;
+
+ if (*total_flags & FIF_OTHER_BSS) {
+ rcr |= RCR_ACCEPT_AP;
+ rcr &= ~RCR_CHECK_BSSID_MATCH;
+ } else {
+ rcr &= ~RCR_ACCEPT_AP;
+ rcr |= RCR_CHECK_BSSID_MATCH;
+ }
+
+ if (*total_flags & FIF_PSPOLL)
+ rcr |= RCR_ACCEPT_PM;
+ else
+ rcr &= ~RCR_ACCEPT_PM;
+
+ /*
+ * FIF_PROBE_REQ ignored as probe requests always seem to be accepted
+ */
+
+ rtl8xxxu_write32(priv, REG_RCR, rcr);
+
+ *total_flags &= (FIF_ALLMULTI | FIF_FCSFAIL | FIF_BCN_PRBRESP_PROMISC | \
+ FIF_CONTROL | FIF_OTHER_BSS | FIF_PSPOLL | FIF_PROBE_REQ);
}
static int rtl8xxxu_set_rts_threshold(struct ieee80211_hw *hw, u32 rts)
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 18/28] rtl8xxxu: Document REG_RXFLTMAP registers
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (16 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 17/28] rtl8xxxu: Enable monitor mode by handling filters Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 19/28] rtl8xxxu: Remove duplicate USB ID Jes.Sorensen
` (9 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Bruno Randolf, Jes Sorensen
From: Bruno Randolf <br1@einfach.org>
Add comments describing how REG_RXFLTMAP0, REG_RXFLTMAP1 and REG_RXFLTMAP2
work.
Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 26 +++++++++++++++++-----
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
index d2995f8a3..d089edd 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
@@ -569,9 +569,12 @@
(Rx beacon, probe rsp) */
#define RCR_ACCEPT_CRC32 BIT(8) /* Accept CRC32 error packet */
#define RCR_ACCEPT_ICV BIT(9) /* Accept ICV error packet */
-#define RCR_ACCEPT_DATA_FRAME BIT(11)
-#define RCR_ACCEPT_CTRL_FRAME BIT(12)
-#define RCR_ACCEPT_MGMT_FRAME BIT(13)
+#define RCR_ACCEPT_DATA_FRAME BIT(11) /* Accept all data pkt or use
+ REG_RXFLTMAP2 */
+#define RCR_ACCEPT_CTRL_FRAME BIT(12) /* Accept all control pkt or use
+ REG_RXFLTMAP1 */
+#define RCR_ACCEPT_MGMT_FRAME BIT(13) /* Accept all mgmt pkt or use
+ REG_RXFLTMAP0 */
#define RCR_HTC_LOC_CTRL BIT(14) /* MFC<--HTC=1 MFC-->HTC=0 */
#define RCR_UC_DATA_PKT_INT_ENABLE BIT(16) /* Enable unicast data packet
interrupt */
@@ -651,9 +654,20 @@
#define REG_LPNAV_CTRL 0x0694
#define REG_WKFMCAM_CMD 0x0698
#define REG_WKFMCAM_RWD 0x069c
-#define REG_RXFLTMAP0 0x06a0
-#define REG_RXFLTMAP1 0x06a2
-#define REG_RXFLTMAP2 0x06a4
+
+/*
+ * RX Filters: each bit corresponds to the numerical value of the subtype.
+ * If it is set the subtype frame type is passed. The filter is only used when
+ * the RCR_ACCEPT_DATA_FRAME, RCR_ACCEPT_CTRL_FRAME, RCR_ACCEPT_MGMT_FRAME bit
+ * in the RCR are low.
+ *
+ * Example: Beacon subtype is binary 1000 which is decimal 8 so we have to set
+ * bit 8 (0x100) in REG_RXFLTMAP0 to enable reception.
+ */
+#define REG_RXFLTMAP0 0x06a0 /* Management frames */
+#define REG_RXFLTMAP1 0x06a2 /* Control frames */
+#define REG_RXFLTMAP2 0x06a4 /* Data frames */
+
#define REG_BCN_PSR_RPT 0x06a8
#define REG_CALB32K_CTRL 0x06ac
#define REG_PKT_MON_CTRL 0x06b4
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 19/28] rtl8xxxu: Remove duplicate USB ID
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (17 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 18/28] rtl8xxxu: Document REG_RXFLTMAP registers Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 20/28] rtl8xxxu: Fix 80 character per line issue Jes.Sorensen
` (8 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Reported-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index b58a60f..78683b5 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -5959,8 +5959,6 @@ static struct usb_device_id dev_table[] = {
.driver_info = (unsigned long)&rtl8192cu_fops},
{USB_DEVICE_AND_INTERFACE_INFO(0xcdab, 0x8010, 0xff, 0xff, 0xff),
.driver_info = (unsigned long)&rtl8192cu_fops},
-{USB_DEVICE_AND_INTERFACE_INFO(USB_VENDOR_ID_REALTEK, 0x317f, 0xff, 0xff, 0xff),
- .driver_info = (unsigned long)&rtl8192cu_fops}, /* Netcore 8188RU */
{USB_DEVICE_AND_INTERFACE_INFO(0x04f2, 0xaff7, 0xff, 0xff, 0xff),
.driver_info = (unsigned long)&rtl8192cu_fops},
{USB_DEVICE_AND_INTERFACE_INFO(0x04f2, 0xaff9, 0xff, 0xff, 0xff),
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 20/28] rtl8xxxu: Fix 80 character per line issue
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (18 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 19/28] rtl8xxxu: Remove duplicate USB ID Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 21/28] rtl8xxxu: Enable data frame reception in rtl8xxxu_start Jes.Sorensen
` (7 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index 78683b5..9f89f62 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -5355,8 +5355,9 @@ static void rtl8xxxu_configure_filter(struct ieee80211_hw *hw,
rtl8xxxu_write32(priv, REG_RCR, rcr);
- *total_flags &= (FIF_ALLMULTI | FIF_FCSFAIL | FIF_BCN_PRBRESP_PROMISC | \
- FIF_CONTROL | FIF_OTHER_BSS | FIF_PSPOLL | FIF_PROBE_REQ);
+ *total_flags &= (FIF_ALLMULTI | FIF_FCSFAIL | FIF_BCN_PRBRESP_PROMISC |
+ FIF_CONTROL | FIF_OTHER_BSS | FIF_PSPOLL |
+ FIF_PROBE_REQ);
}
static int rtl8xxxu_set_rts_threshold(struct ieee80211_hw *hw, u32 rts)
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 21/28] rtl8xxxu: Enable data frame reception in rtl8xxxu_start
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (19 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 20/28] rtl8xxxu: Fix 80 character per line issue Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 22/28] rtl8xxxu: rtl8xxxu_set_linktype(): Be consistent aboutregister size REG_MSR Jes.Sorensen
` (6 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Bruno Randolf, Jes Sorensen
From: Bruno Randolf <br1@einfach.org>
mac80211 documentation says, the ieee80211_ops.start callback "must turn on
frame reception (for possibly enabled monitor interfaces.)". If not a single
monitor interface does not receive data frames.
Similarly we should not change the data reception based on the association
state.
Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index 9f89f62..1b7ff74 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -4521,9 +4521,6 @@ rtl8xxxu_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
rtl8xxxu_update_rate_mask(priv, ramask, sgi);
- /* Enable RX of data frames */
- rtl8xxxu_write16(priv, REG_RXFLTMAP2, 0xffff);
-
rtl8xxxu_write8(priv, REG_BCN_MAX_ERR, 0xff);
rtl8723a_stop_tx_beacon(priv);
@@ -4538,8 +4535,6 @@ rtl8xxxu_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
val8 |= BEACON_DISABLE_TSF_UPDATE;
rtl8xxxu_write8(priv, REG_BEACON_CTRL, val8);
- /* Disable RX of data frames */
- rtl8xxxu_write16(priv, REG_RXFLTMAP2, 0x0000);
h2c.joinbss.data = H2C_JOIN_BSS_DISCONNECT;
}
h2c.joinbss.cmd = H2C_JOIN_BSS_REPORT;
@@ -5542,12 +5537,9 @@ static int rtl8xxxu_start(struct ieee80211_hw *hw)
}
exit:
/*
- * Disable all data frames
- */
- rtl8xxxu_write16(priv, REG_RXFLTMAP2, 0x0000);
- /*
- * Accept all mgmt frames
+ * Accept all data and mgmt frames
*/
+ rtl8xxxu_write16(priv, REG_RXFLTMAP2, 0xffff);
rtl8xxxu_write16(priv, REG_RXFLTMAP0, 0xffff);
rtl8xxxu_write32(priv, REG_OFDM0_XA_AGC_CORE1, 0x6954341e);
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 22/28] rtl8xxxu: rtl8xxxu_set_linktype(): Be consistent aboutregister size REG_MSR
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (20 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 21/28] rtl8xxxu: Enable data frame reception in rtl8xxxu_start Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 23/28] rtl8xxxu: Set correct bit to reset MCU IO wrapper Jes.Sorensen
` (5 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index 1b7ff74..c8ba698 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -1599,9 +1599,9 @@ rtl8723a_set_tx_power(struct rtl8xxxu_priv *priv, int channel, bool ht40)
static void rtl8xxxu_set_linktype(struct rtl8xxxu_priv *priv,
enum nl80211_iftype linktype)
{
- u16 val8;
+ u8 val8;
- val8 = rtl8xxxu_read16(priv, REG_MSR);
+ val8 = rtl8xxxu_read8(priv, REG_MSR);
val8 &= ~MSR_LINKTYPE_MASK;
switch (linktype) {
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 23/28] rtl8xxxu: Set correct bit to reset MCU IO wrapper
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (21 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 22/28] rtl8xxxu: rtl8xxxu_set_linktype(): Be consistent aboutregister size REG_MSR Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 24/28] rtl8xxxu: Remove unused mgmt variable from rtl8xxxu_rx_complete() Jes.Sorensen
` (4 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
All chips, except for 8812 require BIT(0) for resetting the MCU IO
wrapper. 8723b requires a more complicated reset sequence, so it will
need a custom reset function.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index c8ba698..460145c 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -2052,13 +2052,13 @@ static void rtl8xxxu_reset_8051(struct rtl8xxxu_priv *priv)
u16 sys_func;
val8 = rtl8xxxu_read8(priv, REG_RSV_CTRL + 1);
- val8 &= ~BIT(3);
+ val8 &= ~BIT(0);
rtl8xxxu_write8(priv, REG_RSV_CTRL + 1, val8);
sys_func = rtl8xxxu_read16(priv, REG_SYS_FUNC);
sys_func &= ~SYS_FUNC_CPU_ENABLE;
rtl8xxxu_write16(priv, REG_SYS_FUNC, sys_func);
val8 = rtl8xxxu_read8(priv, REG_RSV_CTRL + 1);
- val8 |= BIT(3);
+ val8 |= BIT(0);
rtl8xxxu_write8(priv, REG_RSV_CTRL + 1, val8);
sys_func |= SYS_FUNC_CPU_ENABLE;
rtl8xxxu_write16(priv, REG_SYS_FUNC, sys_func);
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 24/28] rtl8xxxu: Remove unused mgmt variable from rtl8xxxu_rx_complete()
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (22 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 23/28] rtl8xxxu: Set correct bit to reset MCU IO wrapper Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:39 ` [PATCH 25/28] rtl8xxxu: Remove unused len/cnt variables " Jes.Sorensen
` (3 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index 460145c..1201836 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -5031,7 +5031,6 @@ static void rtl8xxxu_rx_complete(struct urb *urb)
struct rtl8xxxu_rx_desc *rx_desc = (struct rtl8xxxu_rx_desc *)skb->data;
struct rtl8723au_phy_stats *phy_stats;
struct ieee80211_rx_status *rx_status = IEEE80211_SKB_RXCB(skb);
- struct ieee80211_mgmt *mgmt;
struct device *dev = &priv->udev->dev;
__le32 *_rx_desc_le = (__le32 *)skb->data;
u32 *_rx_desc = (u32 *)skb->data;
@@ -5052,8 +5051,6 @@ static void rtl8xxxu_rx_complete(struct urb *urb)
skb_pull(skb, drvinfo_sz + desc_shift);
- mgmt = (struct ieee80211_mgmt *)skb->data;
-
memset(rx_status, 0, sizeof(struct ieee80211_rx_status));
if (rx_desc->phy_stats)
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 25/28] rtl8xxxu: Remove unused len/cnt variables from rtl8xxxu_rx_complete()
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (23 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 24/28] rtl8xxxu: Remove unused mgmt variable from rtl8xxxu_rx_complete() Jes.Sorensen
@ 2016-02-03 18:39 ` Jes.Sorensen
2016-02-03 18:40 ` [PATCH 26/28] rtl8xxxu: Do not mask RF registers to 6 bits Jes.Sorensen
` (2 subsequent siblings)
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:39 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index 1201836..a6c8dab 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -5034,13 +5034,11 @@ static void rtl8xxxu_rx_complete(struct urb *urb)
struct device *dev = &priv->udev->dev;
__le32 *_rx_desc_le = (__le32 *)skb->data;
u32 *_rx_desc = (u32 *)skb->data;
- int cnt, len, drvinfo_sz, desc_shift, i;
+ int drvinfo_sz, desc_shift, i;
for (i = 0; i < (sizeof(struct rtl8xxxu_rx_desc) / sizeof(u32)); i++)
_rx_desc[i] = le32_to_cpu(_rx_desc_le[i]);
- cnt = rx_desc->frag;
- len = rx_desc->pktlen;
drvinfo_sz = rx_desc->drvinfo_sz * 8;
desc_shift = rx_desc->shift;
skb_put(skb, urb->actual_length);
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 26/28] rtl8xxxu: Do not mask RF registers to 6 bits
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (24 preceding siblings ...)
2016-02-03 18:39 ` [PATCH 25/28] rtl8xxxu: Remove unused len/cnt variables " Jes.Sorensen
@ 2016-02-03 18:40 ` Jes.Sorensen
2016-02-03 18:40 ` [PATCH 27/28] rtl8xxxu: Make device_init kludge 8723au only Jes.Sorensen
2016-02-03 18:40 ` [PATCH 28/28] rtl8xxxu: Add missing bit define for REG_APS_FSMCO Jes.Sorensen
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:40 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Newer chips have RF registers beyond the original 0x3f address.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index a6c8dab..af17ae7 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -2536,8 +2536,6 @@ static int rtl8xxxu_init_rf_regs(struct rtl8xxxu_priv *priv,
continue;
}
- reg &= 0x3f;
-
ret = rtl8xxxu_write_rfreg(priv, path, reg, val);
if (ret) {
dev_warn(&priv->udev->dev,
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 27/28] rtl8xxxu: Make device_init kludge 8723au only
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (25 preceding siblings ...)
2016-02-03 18:40 ` [PATCH 26/28] rtl8xxxu: Do not mask RF registers to 6 bits Jes.Sorensen
@ 2016-02-03 18:40 ` Jes.Sorensen
2016-02-03 18:40 ` [PATCH 28/28] rtl8xxxu: Add missing bit define for REG_APS_FSMCO Jes.Sorensen
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:40 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
index af17ae7..fdeae3b 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
@@ -4343,14 +4343,17 @@ static int rtl8xxxu_init_device(struct ieee80211_hw *hw)
val8 = ((30000 + NAV_UPPER_UNIT - 1) / NAV_UPPER_UNIT);
rtl8xxxu_write8(priv, REG_NAV_UPPER, val8);
- /*
- * 2011/03/09 MH debug only, UMC-B cut pass 2500 S5 test,
- * but we need to fin root cause.
- */
- val32 = rtl8xxxu_read32(priv, REG_FPGA0_RF_MODE);
- if ((val32 & 0xff000000) != 0x83000000) {
- val32 |= FPGA_RF_MODE_CCK;
- rtl8xxxu_write32(priv, REG_FPGA0_RF_MODE, val32);
+ if (priv->rtlchip == 0x8723a) {
+ /*
+ * 2011/03/09 MH debug only, UMC-B cut pass 2500 S5 test,
+ * but we need to find root cause.
+ * This is 8723au only.
+ */
+ val32 = rtl8xxxu_read32(priv, REG_FPGA0_RF_MODE);
+ if ((val32 & 0xff000000) != 0x83000000) {
+ val32 |= FPGA_RF_MODE_CCK;
+ rtl8xxxu_write32(priv, REG_FPGA0_RF_MODE, val32);
+ }
}
val32 = rtl8xxxu_read32(priv, REG_FWHW_TXQ_CTRL);
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH 28/28] rtl8xxxu: Add missing bit define for REG_APS_FSMCO
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
` (26 preceding siblings ...)
2016-02-03 18:40 ` [PATCH 27/28] rtl8xxxu: Make device_init kludge 8723au only Jes.Sorensen
@ 2016-02-03 18:40 ` Jes.Sorensen
27 siblings, 0 replies; 32+ messages in thread
From: Jes.Sorensen @ 2016-02-03 18:40 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
index d089edd..8f6c9c6 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
@@ -45,6 +45,7 @@
#define APS_FSMCO_ENABLE_POWERDOWN BIT(4)
#define APS_FSMCO_MAC_ENABLE BIT(8)
#define APS_FSMCO_MAC_OFF BIT(9)
+#define APS_FSMCO_SW_LPS BIT(10)
#define APS_FSMCO_HW_SUSPEND BIT(11)
#define APS_FSMCO_PCIE BIT(12)
#define APS_FSMCO_HW_POWERDOWN BIT(15)
--
2.5.0
^ permalink raw reply related [flat|nested] 32+ messages in thread
* Re: [PATCH 03/28] rtl8xxxu: If fw running in RAM, reset the 8051 before trying to download a new one
2016-02-03 18:39 ` [PATCH 03/28] rtl8xxxu: If fw running in RAM, reset the 8051 before trying to download a new one Jes.Sorensen
@ 2016-02-25 9:36 ` Kalle Valo
2016-02-25 15:02 ` Jes Sorensen
0 siblings, 1 reply; 32+ messages in thread
From: Kalle Valo @ 2016-02-25 9:36 UTC (permalink / raw)
To: Jes.Sorensen; +Cc: linux-wireless
Jes.Sorensen@redhat.com writes:
> From: Jes Sorensen <Jes.Sorensen@redhat.com>
>
> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
No empty commit logs, please. And this patch even has a too long title
which really should be the actual commit log.
I can take this now but in the future please write one.
--
Kalle Valo
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [01/28] rtl8xxxu: Minor cleanup to rtl8xxxu_download_firmware()
2016-02-03 18:39 ` [PATCH 01/28] rtl8xxxu: Minor cleanup to rtl8xxxu_download_firmware() Jes.Sorensen
@ 2016-02-25 9:57 ` Kalle Valo
0 siblings, 0 replies; 32+ messages in thread
From: Kalle Valo @ 2016-02-25 9:57 UTC (permalink / raw)
To: Jes Sorensen; +Cc: linux-wireless, Jes Sorensen
> From: Jes Sorensen <Jes.Sorensen@redhat.com>
>
> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Thanks, 28 patches applied to wireless-drivers-next.git:
43154f6fd46b rtl8xxxu: Minor cleanup to rtl8xxxu_download_firmware()
ef1c0499316b rtl8xxxu: rtl8xxxu_download_firmware(): Cosmetic cleanups
216202ae20ea rtl8xxxu: If fw running in RAM, reset the 8051 before trying to download a new one
0635f8cede15 rtl8xxxu: Add RQPN_[NE]PQ_SHIFT values
f076977537d9 rtl8xxxu: Define SYS_CFG_SW_OFFLOAD_EN
cecfd3cb29f8 rtl8xxxu: Add REG_TX_REPORT_* defines
22229fcb487a rtl8xxxu: Add more RCR bits
c1edece3c22b rtl8xxxu: Fix typo in Kconfig help text
98e27cbd9453 rtl8xxxu: Check return value of kmemdup()
d48fe60e06f4 rtl8xxxu: Implement rtl8xxxu_reset_8051()
af9e4d6d9d07 rtl8xxxu: Add definitions for antenna selection registers for 8723BU
29c2139cd04a rtl8xxxu: Add mbox extension register definitions for 8723B
ce6f2e366954 rtl8xxxu: Add REG_OFDM0_RX_D_SYNC_PATH definitions
e5c447ccf8e5 rtl8xxxu: Remove unused clutter for handling recursive calls to rtl8xxxu_init_device()
38451998fb8a rtl8xxxu: Use REG_EFUSE_TEST register only on multifunctional devices
56e4374a5e08 rtl8xxxu: Fix cosmetics to quiet down checkpatch police
3bed4bfa51f2 rtl8xxxu: Enable monitor mode by handling filters
b40027ba8db1 rtl8xxxu: Document REG_RXFLTMAP registers
124bc63c995d rtl8xxxu: Remove duplicate USB ID
755bda116e8a rtl8xxxu: Fix 80 character per line issue
c85ea1156d78 rtl8xxxu: Enable data frame reception in rtl8xxxu_start
a26703f39d2f rtl8xxxu: rtl8xxxu_set_linktype(): Be consistent aboutregister size REG_MSR
53b381c4d72a rtl8xxxu: Set correct bit to reset MCU IO wrapper
796c554257b1 rtl8xxxu: Remove unused mgmt variable from rtl8xxxu_rx_complete()
a9ffa615aa4c rtl8xxxu: Remove unused len/cnt variables from rtl8xxxu_rx_complete()
dc254ca41134 rtl8xxxu: Do not mask RF registers to 6 bits
4042e61735ce rtl8xxxu: Make device_init kludge 8723au only
5b22a111aa15 rtl8xxxu: Add missing bit define for REG_APS_FSMCO
Kalle Valo
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [PATCH 03/28] rtl8xxxu: If fw running in RAM, reset the 8051 before trying to download a new one
2016-02-25 9:36 ` Kalle Valo
@ 2016-02-25 15:02 ` Jes Sorensen
0 siblings, 0 replies; 32+ messages in thread
From: Jes Sorensen @ 2016-02-25 15:02 UTC (permalink / raw)
To: Kalle Valo; +Cc: linux-wireless
Kalle Valo <kvalo@codeaurora.org> writes:
> Jes.Sorensen@redhat.com writes:
>
>> From: Jes Sorensen <Jes.Sorensen@redhat.com>
>>
>> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
>
> No empty commit logs, please. And this patch even has a too long title
> which really should be the actual commit log.
>
> I can take this now but in the future please write one.
It does, the $Subject is the commit log. But I'll try and break it down
on more lines if there is something to add.
Jes
^ permalink raw reply [flat|nested] 32+ messages in thread
end of thread, other threads:[~2016-02-25 15:03 UTC | newest]
Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-03 18:39 [PATCH 00/28] rtl8xxxu updates and fixes Jes.Sorensen
2016-02-03 18:39 ` [PATCH 01/28] rtl8xxxu: Minor cleanup to rtl8xxxu_download_firmware() Jes.Sorensen
2016-02-25 9:57 ` [01/28] " Kalle Valo
2016-02-03 18:39 ` [PATCH 02/28] rtl8xxxu: rtl8xxxu_download_firmware(): Cosmetic cleanups Jes.Sorensen
2016-02-03 18:39 ` [PATCH 03/28] rtl8xxxu: If fw running in RAM, reset the 8051 before trying to download a new one Jes.Sorensen
2016-02-25 9:36 ` Kalle Valo
2016-02-25 15:02 ` Jes Sorensen
2016-02-03 18:39 ` [PATCH 04/28] rtl8xxxu: Add RQPN_[NE]PQ_SHIFT values Jes.Sorensen
2016-02-03 18:39 ` [PATCH 05/28] rtl8xxxu: Define SYS_CFG_SW_OFFLOAD_EN Jes.Sorensen
2016-02-03 18:39 ` [PATCH 06/28] rtl8xxxu: Add REG_TX_REPORT_* defines Jes.Sorensen
2016-02-03 18:39 ` [PATCH 07/28] rtl8xxxu: Add more RCR bits Jes.Sorensen
2016-02-03 18:39 ` [PATCH 08/28] rtl8xxxu: Fix typo in Kconfig help text Jes.Sorensen
2016-02-03 18:39 ` [PATCH 09/28] rtl8xxxu: Check return value of kmemdup() Jes.Sorensen
2016-02-03 18:39 ` [PATCH 10/28] rtl8xxxu: Implement rtl8xxxu_reset_8051() Jes.Sorensen
2016-02-03 18:39 ` [PATCH 11/28] rtl8xxxu: Add definitions for antenna selection registers for 8723BU Jes.Sorensen
2016-02-03 18:39 ` [PATCH 12/28] rtl8xxxu: Add mbox extension register definitions for 8723B Jes.Sorensen
2016-02-03 18:39 ` [PATCH 13/28] rtl8xxxu: Add REG_OFDM0_RX_D_SYNC_PATH definitions Jes.Sorensen
2016-02-03 18:39 ` [PATCH 14/28] rtl8xxxu: Remove unused clutter for handling recursive calls to rtl8xxxu_init_device() Jes.Sorensen
2016-02-03 18:39 ` [PATCH 15/28] rtl8xxxu: Use REG_EFUSE_TEST register only on multifunctional devices Jes.Sorensen
2016-02-03 18:39 ` [PATCH 16/28] rtl8xxxu: Fix cosmetics to quiet down checkpatch police Jes.Sorensen
2016-02-03 18:39 ` [PATCH 17/28] rtl8xxxu: Enable monitor mode by handling filters Jes.Sorensen
2016-02-03 18:39 ` [PATCH 18/28] rtl8xxxu: Document REG_RXFLTMAP registers Jes.Sorensen
2016-02-03 18:39 ` [PATCH 19/28] rtl8xxxu: Remove duplicate USB ID Jes.Sorensen
2016-02-03 18:39 ` [PATCH 20/28] rtl8xxxu: Fix 80 character per line issue Jes.Sorensen
2016-02-03 18:39 ` [PATCH 21/28] rtl8xxxu: Enable data frame reception in rtl8xxxu_start Jes.Sorensen
2016-02-03 18:39 ` [PATCH 22/28] rtl8xxxu: rtl8xxxu_set_linktype(): Be consistent aboutregister size REG_MSR Jes.Sorensen
2016-02-03 18:39 ` [PATCH 23/28] rtl8xxxu: Set correct bit to reset MCU IO wrapper Jes.Sorensen
2016-02-03 18:39 ` [PATCH 24/28] rtl8xxxu: Remove unused mgmt variable from rtl8xxxu_rx_complete() Jes.Sorensen
2016-02-03 18:39 ` [PATCH 25/28] rtl8xxxu: Remove unused len/cnt variables " Jes.Sorensen
2016-02-03 18:40 ` [PATCH 26/28] rtl8xxxu: Do not mask RF registers to 6 bits Jes.Sorensen
2016-02-03 18:40 ` [PATCH 27/28] rtl8xxxu: Make device_init kludge 8723au only Jes.Sorensen
2016-02-03 18:40 ` [PATCH 28/28] rtl8xxxu: Add missing bit define for REG_APS_FSMCO Jes.Sorensen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).