Skip to content

Commit 2d6c717

Browse files
author
Kalle Valo
committed
Merge tag 'rtw-next-2024-05-04-v2' of https://github.com/pkshih/rtw
rtw-next patches for v6.10 Major changes are listed as below rtl8xxxu: - remove rtl8xxxu_ prefix from filename - cleanup includes of header files rtlwifi: - adjust code to share with coming support of rtl8192du rtw89: - complete features of new WiFi 7 chip 8922AE including BT-coexistence and WoWLAN - use BIOS ACPI settings to set TX power and channels
2 parents f1c2696 + 82b85a8 commit 2d6c717

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+8371
-8438
lines changed

drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c renamed to drivers/net/wireless/realtek/rtl8xxxu/8188e.c

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,8 @@
1313
* additional 8xxx chips like the 8192cu, 8188cus, etc.
1414
*/
1515

16-
#include <linux/init.h>
17-
#include <linux/kernel.h>
18-
#include <linux/sched.h>
19-
#include <linux/errno.h>
20-
#include <linux/slab.h>
21-
#include <linux/module.h>
22-
#include <linux/spinlock.h>
23-
#include <linux/list.h>
24-
#include <linux/usb.h>
25-
#include <linux/netdevice.h>
26-
#include <linux/etherdevice.h>
27-
#include <linux/ethtool.h>
28-
#include <linux/wireless.h>
29-
#include <linux/firmware.h>
30-
#include <linux/moduleparam.h>
31-
#include <net/mac80211.h>
16+
#include "regs.h"
3217
#include "rtl8xxxu.h"
33-
#include "rtl8xxxu_regs.h"
3418

3519
static const struct rtl8xxxu_reg8val rtl8188e_mac_init_table[] = {
3620
{0x026, 0x41}, {0x027, 0x35}, {0x040, 0x00}, {0x421, 0x0f},

drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188f.c renamed to drivers/net/wireless/realtek/rtl8xxxu/8188f.c

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,8 @@
1111
* Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
1212
*/
1313

14-
#include <linux/init.h>
15-
#include <linux/kernel.h>
16-
#include <linux/sched.h>
17-
#include <linux/errno.h>
18-
#include <linux/slab.h>
19-
#include <linux/module.h>
20-
#include <linux/spinlock.h>
21-
#include <linux/list.h>
22-
#include <linux/usb.h>
23-
#include <linux/netdevice.h>
24-
#include <linux/etherdevice.h>
25-
#include <linux/ethtool.h>
26-
#include <linux/wireless.h>
27-
#include <linux/firmware.h>
28-
#include <linux/moduleparam.h>
29-
#include <net/mac80211.h>
14+
#include "regs.h"
3015
#include "rtl8xxxu.h"
31-
#include "rtl8xxxu_regs.h"
3216

3317
static const struct rtl8xxxu_reg8val rtl8188f_mac_init_table[] = {
3418
{0x024, 0xDF}, {0x025, 0x07}, {0x02B, 0x1C}, {0x283, 0x20},

drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c renamed to drivers/net/wireless/realtek/rtl8xxxu/8192c.c

Lines changed: 49 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,8 @@
1313
* additional 8xxx chips like the 8192cu, 8188cus, etc.
1414
*/
1515

16-
#include <linux/init.h>
17-
#include <linux/kernel.h>
18-
#include <linux/sched.h>
19-
#include <linux/errno.h>
20-
#include <linux/slab.h>
21-
#include <linux/module.h>
22-
#include <linux/spinlock.h>
23-
#include <linux/list.h>
24-
#include <linux/usb.h>
25-
#include <linux/netdevice.h>
26-
#include <linux/etherdevice.h>
27-
#include <linux/ethtool.h>
28-
#include <linux/wireless.h>
29-
#include <linux/firmware.h>
30-
#include <linux/moduleparam.h>
31-
#include <net/mac80211.h>
16+
#include "regs.h"
3217
#include "rtl8xxxu.h"
33-
#include "rtl8xxxu_regs.h"
3418

3519
#ifdef CONFIG_RTL8XXXU_UNTESTED
3620
static struct rtl8xxxu_power_base rtl8192c_power_base = {
@@ -77,6 +61,32 @@ static struct rtl8xxxu_power_base rtl8188r_power_base = {
7761
.reg_0868 = 0x00020204,
7862
};
7963

64+
static const struct rtl8xxxu_reg8val rtl8192cu_mac_init_table[] = {
65+
{0x420, 0x80}, {0x423, 0x00}, {0x430, 0x00}, {0x431, 0x00},
66+
{0x432, 0x00}, {0x433, 0x01}, {0x434, 0x04}, {0x435, 0x05},
67+
{0x436, 0x06}, {0x437, 0x07}, {0x438, 0x00}, {0x439, 0x00},
68+
{0x43a, 0x00}, {0x43b, 0x01}, {0x43c, 0x04}, {0x43d, 0x05},
69+
{0x43e, 0x06}, {0x43f, 0x07}, {0x440, 0x5d}, {0x441, 0x01},
70+
{0x442, 0x00}, {0x444, 0x15}, {0x445, 0xf0}, {0x446, 0x0f},
71+
{0x447, 0x00}, {0x458, 0x41}, {0x459, 0xa8}, {0x45a, 0x72},
72+
{0x45b, 0xb9}, {0x460, 0x66}, {0x461, 0x66}, {0x462, 0x08},
73+
{0x463, 0x03}, {0x4c8, 0xff}, {0x4c9, 0x08}, {0x4cc, 0xff},
74+
{0x4cd, 0xff}, {0x4ce, 0x01}, {0x500, 0x26}, {0x501, 0xa2},
75+
{0x502, 0x2f}, {0x503, 0x00}, {0x504, 0x28}, {0x505, 0xa3},
76+
{0x506, 0x5e}, {0x507, 0x00}, {0x508, 0x2b}, {0x509, 0xa4},
77+
{0x50a, 0x5e}, {0x50b, 0x00}, {0x50c, 0x4f}, {0x50d, 0xa4},
78+
{0x50e, 0x00}, {0x50f, 0x00}, {0x512, 0x1c}, {0x514, 0x0a},
79+
{0x515, 0x10}, {0x516, 0x0a}, {0x517, 0x10}, {0x51a, 0x16},
80+
{0x524, 0x0f}, {0x525, 0x4f}, {0x546, 0x40}, {0x547, 0x00},
81+
{0x550, 0x10}, {0x551, 0x10}, {0x559, 0x02}, {0x55a, 0x02},
82+
{0x55d, 0xff}, {0x605, 0x30}, {0x608, 0x0e}, {0x609, 0x2a},
83+
{0x652, 0x20}, {0x652, 0x20}, {0x63c, 0x08}, {0x63d, 0x08},
84+
{0x63e, 0x0c}, {0x63f, 0x0c}, {0x66e, 0x05}, {0x700, 0x21},
85+
{0x701, 0x43}, {0x702, 0x65}, {0x703, 0x87}, {0x708, 0x21},
86+
{0x709, 0x43}, {0x70a, 0x65}, {0x70b, 0x87},
87+
{0xffff, 0xff},
88+
};
89+
8090
static const struct rtl8xxxu_rfregval rtl8192cu_radioa_2t_init_table[] = {
8191
{0x00, 0x00030159}, {0x01, 0x00031284},
8292
{0x02, 0x00098000}, {0x03, 0x00018c63},
@@ -583,6 +593,26 @@ static int rtl8192cu_power_on(struct rtl8xxxu_priv *priv)
583593
return 0;
584594
}
585595

596+
static int rtl8192cu_led_brightness_set(struct led_classdev *led_cdev,
597+
enum led_brightness brightness)
598+
{
599+
struct rtl8xxxu_priv *priv = container_of(led_cdev,
600+
struct rtl8xxxu_priv,
601+
led_cdev);
602+
u8 ledcfg = rtl8xxxu_read8(priv, REG_LEDCFG0);
603+
604+
if (brightness == LED_OFF)
605+
ledcfg = LEDCFG2_SW_LED_CONTROL | LEDCFG2_SW_LED_DISABLE;
606+
else if (brightness == LED_ON)
607+
ledcfg = LEDCFG2_SW_LED_CONTROL;
608+
else if (brightness == RTL8XXXU_HW_LED_CONTROL)
609+
ledcfg = LEDCFG2_HW_LED_CONTROL | LEDCFG2_HW_LED_ENABLE;
610+
611+
rtl8xxxu_write8(priv, REG_LEDCFG0, ledcfg);
612+
613+
return 0;
614+
}
615+
586616
struct rtl8xxxu_fileops rtl8192cu_fops = {
587617
.identify_chip = rtl8192cu_identify_chip,
588618
.parse_efuse = rtl8192cu_parse_efuse,
@@ -609,6 +639,7 @@ struct rtl8xxxu_fileops rtl8192cu_fops = {
609639
.report_rssi = rtl8xxxu_gen1_report_rssi,
610640
.fill_txdesc = rtl8xxxu_fill_txdesc_v1,
611641
.cck_rssi = rtl8723a_cck_rssi,
642+
.led_classdev_brightness_set = rtl8192cu_led_brightness_set,
612643
.writeN_block_size = 128,
613644
.rx_agg_buf_size = 16000,
614645
.tx_desc_size = sizeof(struct rtl8xxxu_txdesc32),
@@ -621,7 +652,7 @@ struct rtl8xxxu_fileops rtl8192cu_fops = {
621652
.trxff_boundary = 0x27ff,
622653
.pbp_rx = PBP_PAGE_SIZE_128,
623654
.pbp_tx = PBP_PAGE_SIZE_128,
624-
.mactable = rtl8xxxu_gen1_mac_init_table,
655+
.mactable = rtl8192cu_mac_init_table,
625656
.total_page_num = TX_TOTAL_PAGE_NUM,
626657
.page_num_hi = TX_PAGE_NUM_HI_PQ,
627658
.page_num_lo = TX_PAGE_NUM_LO_PQ,

drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c renamed to drivers/net/wireless/realtek/rtl8xxxu/8192e.c

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,8 @@
1313
* additional 8xxx chips like the 8192cu, 8188cus, etc.
1414
*/
1515

16-
#include <linux/init.h>
17-
#include <linux/kernel.h>
18-
#include <linux/sched.h>
19-
#include <linux/errno.h>
20-
#include <linux/slab.h>
21-
#include <linux/module.h>
22-
#include <linux/spinlock.h>
23-
#include <linux/list.h>
24-
#include <linux/usb.h>
25-
#include <linux/netdevice.h>
26-
#include <linux/etherdevice.h>
27-
#include <linux/ethtool.h>
28-
#include <linux/wireless.h>
29-
#include <linux/firmware.h>
30-
#include <linux/moduleparam.h>
31-
#include <net/mac80211.h>
16+
#include "regs.h"
3217
#include "rtl8xxxu.h"
33-
#include "rtl8xxxu_regs.h"
3418

3519
static const struct rtl8xxxu_reg8val rtl8192e_mac_init_table[] = {
3620
{0x011, 0xeb}, {0x012, 0x07}, {0x014, 0x75}, {0x303, 0xa7},

drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192f.c renamed to drivers/net/wireless/realtek/rtl8xxxu/8192f.c

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,8 @@
1111
* Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
1212
*/
1313

14-
#include <linux/init.h>
15-
#include <linux/kernel.h>
16-
#include <linux/sched.h>
17-
#include <linux/errno.h>
18-
#include <linux/slab.h>
19-
#include <linux/module.h>
20-
#include <linux/spinlock.h>
21-
#include <linux/list.h>
22-
#include <linux/usb.h>
23-
#include <linux/netdevice.h>
24-
#include <linux/etherdevice.h>
25-
#include <linux/ethtool.h>
26-
#include <linux/wireless.h>
27-
#include <linux/firmware.h>
28-
#include <linux/moduleparam.h>
29-
#include <net/mac80211.h>
14+
#include "regs.h"
3015
#include "rtl8xxxu.h"
31-
#include "rtl8xxxu_regs.h"
3216

3317
static const struct rtl8xxxu_reg8val rtl8192f_mac_init_table[] = {
3418
{0x420, 0x00}, {0x422, 0x78}, {0x428, 0x0a}, {0x429, 0x10},

drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8710b.c renamed to drivers/net/wireless/realtek/rtl8xxxu/8710b.c

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,8 @@
1111
* Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
1212
*/
1313

14-
#include <linux/init.h>
15-
#include <linux/kernel.h>
16-
#include <linux/sched.h>
17-
#include <linux/errno.h>
18-
#include <linux/slab.h>
19-
#include <linux/module.h>
20-
#include <linux/spinlock.h>
21-
#include <linux/list.h>
22-
#include <linux/usb.h>
23-
#include <linux/netdevice.h>
24-
#include <linux/etherdevice.h>
25-
#include <linux/ethtool.h>
26-
#include <linux/wireless.h>
27-
#include <linux/firmware.h>
28-
#include <linux/moduleparam.h>
29-
#include <net/mac80211.h>
14+
#include "regs.h"
3015
#include "rtl8xxxu.h"
31-
#include "rtl8xxxu_regs.h"
3216

3317
static const struct rtl8xxxu_reg8val rtl8710b_mac_init_table[] = {
3418
{0x421, 0x0F}, {0x428, 0x0A}, {0x429, 0x10}, {0x430, 0x00},

drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c renamed to drivers/net/wireless/realtek/rtl8xxxu/8723a.c

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,8 @@
1313
* additional 8xxx chips like the 8192cu, 8188cus, etc.
1414
*/
1515

16-
#include <linux/init.h>
17-
#include <linux/kernel.h>
18-
#include <linux/sched.h>
19-
#include <linux/errno.h>
20-
#include <linux/slab.h>
21-
#include <linux/module.h>
22-
#include <linux/spinlock.h>
23-
#include <linux/list.h>
24-
#include <linux/usb.h>
25-
#include <linux/netdevice.h>
26-
#include <linux/etherdevice.h>
27-
#include <linux/ethtool.h>
28-
#include <linux/wireless.h>
29-
#include <linux/firmware.h>
30-
#include <linux/moduleparam.h>
31-
#include <net/mac80211.h>
16+
#include "regs.h"
3217
#include "rtl8xxxu.h"
33-
#include "rtl8xxxu_regs.h"
3418

3519
static struct rtl8xxxu_power_base rtl8723a_power_base = {
3620
.reg_0e00 = 0x0a0c0c0c,
@@ -54,6 +38,31 @@ static struct rtl8xxxu_power_base rtl8723a_power_base = {
5438
.reg_0868 = 0x02040608,
5539
};
5640

41+
static const struct rtl8xxxu_reg8val rtl8723au_mac_init_table[] = {
42+
{0x420, 0x80}, {0x423, 0x00}, {0x430, 0x00}, {0x431, 0x00},
43+
{0x432, 0x00}, {0x433, 0x01}, {0x434, 0x04}, {0x435, 0x05},
44+
{0x436, 0x06}, {0x437, 0x07}, {0x438, 0x00}, {0x439, 0x00},
45+
{0x43a, 0x00}, {0x43b, 0x01}, {0x43c, 0x04}, {0x43d, 0x05},
46+
{0x43e, 0x06}, {0x43f, 0x07}, {0x440, 0x5d}, {0x441, 0x01},
47+
{0x442, 0x00}, {0x444, 0x15}, {0x445, 0xf0}, {0x446, 0x0f},
48+
{0x447, 0x00}, {0x458, 0x41}, {0x459, 0xa8}, {0x45a, 0x72},
49+
{0x45b, 0xb9}, {0x460, 0x66}, {0x461, 0x66}, {0x462, 0x08},
50+
{0x463, 0x03}, {0x4c8, 0xff}, {0x4c9, 0x08}, {0x4cc, 0xff},
51+
{0x4cd, 0xff}, {0x4ce, 0x01}, {0x500, 0x26}, {0x501, 0xa2},
52+
{0x502, 0x2f}, {0x503, 0x00}, {0x504, 0x28}, {0x505, 0xa3},
53+
{0x506, 0x5e}, {0x507, 0x00}, {0x508, 0x2b}, {0x509, 0xa4},
54+
{0x50a, 0x5e}, {0x50b, 0x00}, {0x50c, 0x4f}, {0x50d, 0xa4},
55+
{0x50e, 0x00}, {0x50f, 0x00}, {0x512, 0x1c}, {0x514, 0x0a},
56+
{0x515, 0x10}, {0x516, 0x0a}, {0x517, 0x10}, {0x51a, 0x16},
57+
{0x524, 0x0f}, {0x525, 0x4f}, {0x546, 0x40}, {0x547, 0x00},
58+
{0x550, 0x10}, {0x551, 0x10}, {0x559, 0x02}, {0x55a, 0x02},
59+
{0x55d, 0xff}, {0x605, 0x30}, {0x608, 0x0e}, {0x609, 0x2a},
60+
{0x652, 0x20}, {0x63c, 0x0a}, {0x63d, 0x0a}, {0x63e, 0x0e},
61+
{0x63f, 0x0e}, {0x66e, 0x05}, {0x700, 0x21}, {0x701, 0x43},
62+
{0x702, 0x65}, {0x703, 0x87}, {0x708, 0x21}, {0x709, 0x43},
63+
{0x70a, 0x65}, {0x70b, 0x87}, {0xffff, 0xff},
64+
};
65+
5766
static const struct rtl8xxxu_rfregval rtl8723au_radioa_1t_init_table[] = {
5867
{0x00, 0x00030159}, {0x01, 0x00031284},
5968
{0x02, 0x00098000}, {0x03, 0x00039c63},
@@ -518,7 +527,7 @@ struct rtl8xxxu_fileops rtl8723au_fops = {
518527
.trxff_boundary = 0x27ff,
519528
.pbp_rx = PBP_PAGE_SIZE_128,
520529
.pbp_tx = PBP_PAGE_SIZE_128,
521-
.mactable = rtl8xxxu_gen1_mac_init_table,
530+
.mactable = rtl8723au_mac_init_table,
522531
.total_page_num = TX_TOTAL_PAGE_NUM,
523532
.page_num_hi = TX_PAGE_NUM_HI_PQ,
524533
.page_num_lo = TX_PAGE_NUM_LO_PQ,

drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c renamed to drivers/net/wireless/realtek/rtl8xxxu/8723b.c

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,8 @@
1313
* additional 8xxx chips like the 8192cu, 8188cus, etc.
1414
*/
1515

16-
#include <linux/init.h>
17-
#include <linux/kernel.h>
18-
#include <linux/sched.h>
19-
#include <linux/errno.h>
20-
#include <linux/slab.h>
21-
#include <linux/module.h>
22-
#include <linux/spinlock.h>
23-
#include <linux/list.h>
24-
#include <linux/usb.h>
25-
#include <linux/netdevice.h>
26-
#include <linux/etherdevice.h>
27-
#include <linux/ethtool.h>
28-
#include <linux/wireless.h>
29-
#include <linux/firmware.h>
30-
#include <linux/moduleparam.h>
31-
#include <net/mac80211.h>
16+
#include "regs.h"
3217
#include "rtl8xxxu.h"
33-
#include "rtl8xxxu_regs.h"
3418

3519
static const struct rtl8xxxu_reg8val rtl8723b_mac_init_table[] = {
3620
{0x02f, 0x30}, {0x035, 0x00}, {0x039, 0x08}, {0x04e, 0xe0},
@@ -1701,6 +1685,28 @@ static s8 rtl8723b_cck_rssi(struct rtl8xxxu_priv *priv, struct rtl8723au_phy_sta
17011685
return rx_pwr_all;
17021686
}
17031687

1688+
static int rtl8723bu_led_brightness_set(struct led_classdev *led_cdev,
1689+
enum led_brightness brightness)
1690+
{
1691+
struct rtl8xxxu_priv *priv = container_of(led_cdev,
1692+
struct rtl8xxxu_priv,
1693+
led_cdev);
1694+
u8 ledcfg = rtl8xxxu_read8(priv, REG_LEDCFG2);
1695+
1696+
ledcfg &= LEDCFG2_DPDT_SELECT;
1697+
1698+
if (brightness == LED_OFF)
1699+
ledcfg |= LEDCFG2_SW_LED_CONTROL | LEDCFG2_SW_LED_DISABLE;
1700+
else if (brightness == LED_ON)
1701+
ledcfg |= LEDCFG2_SW_LED_CONTROL;
1702+
else if (brightness == RTL8XXXU_HW_LED_CONTROL)
1703+
ledcfg |= LEDCFG2_HW_LED_CONTROL | LEDCFG2_HW_LED_ENABLE;
1704+
1705+
rtl8xxxu_write8(priv, REG_LEDCFG2, ledcfg);
1706+
1707+
return 0;
1708+
}
1709+
17041710
struct rtl8xxxu_fileops rtl8723bu_fops = {
17051711
.identify_chip = rtl8723bu_identify_chip,
17061712
.parse_efuse = rtl8723bu_parse_efuse,
@@ -1731,6 +1737,7 @@ struct rtl8xxxu_fileops rtl8723bu_fops = {
17311737
.fill_txdesc = rtl8xxxu_fill_txdesc_v2,
17321738
.set_crystal_cap = rtl8723a_set_crystal_cap,
17331739
.cck_rssi = rtl8723b_cck_rssi,
1740+
.led_classdev_brightness_set = rtl8723bu_led_brightness_set,
17341741
.writeN_block_size = 1024,
17351742
.tx_desc_size = sizeof(struct rtl8xxxu_txdesc40),
17361743
.rx_desc_size = sizeof(struct rtl8xxxu_rxdesc24),
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SPDX-License-Identifier: GPL-2.0-only
22
obj-$(CONFIG_RTL8XXXU) += rtl8xxxu.o
33

4-
rtl8xxxu-y := rtl8xxxu_core.o rtl8xxxu_8192e.o rtl8xxxu_8723b.o \
5-
rtl8xxxu_8723a.o rtl8xxxu_8192c.o rtl8xxxu_8188f.o \
6-
rtl8xxxu_8188e.o rtl8xxxu_8710b.o rtl8xxxu_8192f.o
4+
rtl8xxxu-y := core.o 8192e.o 8723b.o \
5+
8723a.o 8192c.o 8188f.o \
6+
8188e.o 8710b.o 8192f.o

0 commit comments

Comments
 (0)