From 7df2f46a91cbf67bcee5988b656748c978714bda Mon Sep 17 00:00:00 2001 From: Patrick Yavitz Date: Wed, 3 Apr 2024 10:22:55 -0400 Subject: [PATCH] RTW88: `6.x.y fixups` Signed-off-by: Patrick Yavitz --- .../compilation/patch/drivers_network.sh | 7 +- ...less-realtek-rtw88-upstream-wireless.patch | 135 ------------------ ...less-realtek-rtw88-upstream-wireless.patch | 135 ------------------ ...less-realtek-rtw88-upstream-wireless.patch | 135 ------------------ 4 files changed, 3 insertions(+), 409 deletions(-) delete mode 100644 patch/misc/rtw88/6.7/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch delete mode 100644 patch/misc/rtw88/6.8/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch diff --git a/lib/functions/compilation/patch/drivers_network.sh b/lib/functions/compilation/patch/drivers_network.sh index b6b8edea0fc6..b88bdc914636 100644 --- a/lib/functions/compilation/patch/drivers_network.sh +++ b/lib/functions/compilation/patch/drivers_network.sh @@ -335,10 +335,9 @@ driver_rtw88() { if linux-version compare "${version}" ge 6.1; then display_alert "Adding" "Upstream wireless RTW88 drivers" "info" - #if linux-version compare "${version}" ge 6.1 && linux-version compare "${version}" lt 6.6; then # came in with 6.6.14 and 6.7.2 - # process_patch_file "${SRC}/patch/misc/rtw88/${version}/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch" "applying" - #fi - process_patch_file "${SRC}/patch/misc/rtw88/${version}/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch" "applying" + if [[ -f "${SRC}/patch/misc/rtw88/${version}/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch" ]]; then + process_patch_file "${SRC}/patch/misc/rtw88/${version}/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch" "applying" + fi process_patch_file "${SRC}/patch/misc/rtw88/hack/002-rtw88-usb-make-work-queues-high-priority.patch" "applying" process_patch_file "${SRC}/patch/misc/rtw88/hack/003-rtw88-decrease-the-log-level-of-tx-report.patch" "applying" fi diff --git a/patch/misc/rtw88/6.6/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch b/patch/misc/rtw88/6.6/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch index 5d443ab52e30..0eb421a1c37b 100644 --- a/patch/misc/rtw88/6.6/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch +++ b/patch/misc/rtw88/6.6/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch @@ -6135,138 +6135,3 @@ index fcff31688c45..91ed921407bb 100644 -- 2.25.1 -From 3b25c78f92268d44d0c3c8201a302f49a841c0a1 Mon Sep 17 00:00:00 2001 -From: Bitterblue Smith -Date: Fri, 1 Mar 2024 00:34:13 +0200 -Subject: [PATCH v2 2/4] wifi: rtw88: 8821cu: Fix connection failure - -Clear bit 8 of REG_SYS_STATUS1 after MAC power on. - -Without this, some RTL8821CU and RTL8811CU cannot connect to any -network: - -Feb 19 13:33:11 ideapad2 kernel: wlp3s0f3u2: send auth to - 90:55:de:__:__:__ (try 1/3) -Feb 19 13:33:13 ideapad2 kernel: wlp3s0f3u2: send auth to - 90:55:de:__:__:__ (try 2/3) -Feb 19 13:33:14 ideapad2 kernel: wlp3s0f3u2: send auth to - 90:55:de:__:__:__ (try 3/3) -Feb 19 13:33:15 ideapad2 kernel: wlp3s0f3u2: authentication with - 90:55:de:__:__:__ timed out - -The RTL8822CU and RTL8822BU out-of-tree drivers do this as well, so do -it for all three types of chips. - -Tested with RTL8811CU (Tenda U9 V2.0). - -Signed-off-by: Bitterblue Smith ---- -v2: - - Check for pwr_on instead of pwr_seq == chip->pwr_on_seq. ---- - drivers/net/wireless/realtek/rtw88/mac.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c -index 298663b03580..0c1c1ff31085 100644 ---- a/drivers/net/wireless/realtek/rtw88/mac.c -+++ b/drivers/net/wireless/realtek/rtw88/mac.c -@@ -309,6 +309,13 @@ static int rtw_mac_power_switch(struct rtw_dev *rtwdev, bool pwr_on) - pwr_seq = pwr_on ? chip->pwr_on_seq : chip->pwr_off_seq; - ret = rtw_pwr_seq_parser(rtwdev, pwr_seq); - -+ if (pwr_on && rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB) { -+ if (chip->id == RTW_CHIP_TYPE_8822C || -+ chip->id == RTW_CHIP_TYPE_8822B || -+ chip->id == RTW_CHIP_TYPE_8821C) -+ rtw_write8_clr(rtwdev, REG_SYS_STATUS1 + 1, BIT(0)); -+ } -+ - if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_SDIO) - rtw_write32(rtwdev, REG_SDIO_HIMR, imr); - --- -2.43.2 - -From 3b25c78f92268d44d0c3c8201a302f49a841c0a1 Mon Sep 17 00:00:00 2001 -From: Larry Finger -Date: Tue, 27 Feb 2024 02:34:40 +0000 -Subject: [PATCHi V2] wifi: rtw88: Add missing VID/PIDs doe 8811CU and 8821CU - -From: Nick Morrow - -Purpose: Add VID/PIDs that are known to be missing for this driver. -- removed /* 8811CU */ and /* 8821CU */ as they are redundant -since the file is specific to those chips. -- removed /* TOTOLINK A650UA v3 */ as the manufacturer. It has a REALTEK -VID so it may not be specific to this adapter. - -Source is https://1EHFQ.trk.elasticemail.com/tracking/click?d=I82H0YR_W_h175Lb3Nkb0D8i6IqvuhESe0WLnY6P7IVwR1UKvB0SPxd1Olp3PNJEJTqsu4kyqBXayE0BVd_k7uLFvlTe65Syx2uqLUB-UQSfsKKLkuyE-frMZXSCL7q824UG3Oer614GGEeEz-DNEWHh43p_e8oz7OouS6gRBEng0 -Verified and tested. - -Signed-off-by: Nick Morrow -Signed-off-by: Larry Finger -Acked-by: Ping-Ke Shih - ---- - .../net/wireless/realtek/rtw88/rtw8821cu.c | 40 ++++++++++++------- - 1 file changed, 26 insertions(+), 14 deletions(-) - -diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821cu.c b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c -index 7a5cbdc31ef7..e2c7d9f87683 100644 ---- a/drivers/net/wireless/realtek/rtw88/rtw8821cu.c -+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c -@@ -9,24 +9,36 @@ - #include "usb.h" - - static const struct usb_device_id rtw_8821cu_id_table[] = { -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xb82b, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x2006, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8731, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8811, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, - { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xb820, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc821, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xb82b, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc80c, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc811, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, - { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc820, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc821, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, - { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc82a, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, - { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc82b, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc811, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8811CU */ -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8811, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8811CU */ -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x2006, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* TOTOLINK A650UA v3 */ -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc82c, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x331d, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* D-Link */ -+ { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xc811, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* Edimax */ -+ { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xd811, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* Edimax */ - {}, - }; - MODULE_DEVICE_TABLE(usb, rtw_8821cu_id_table); --- -2.43.2 - diff --git a/patch/misc/rtw88/6.7/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch b/patch/misc/rtw88/6.7/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch deleted file mode 100644 index ad16bb5e7c38..000000000000 --- a/patch/misc/rtw88/6.7/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 3b25c78f92268d44d0c3c8201a302f49a841c0a1 Mon Sep 17 00:00:00 2001 -From: Bitterblue Smith -Date: Fri, 1 Mar 2024 00:34:13 +0200 -Subject: [PATCH v2 2/4] wifi: rtw88: 8821cu: Fix connection failure - -Clear bit 8 of REG_SYS_STATUS1 after MAC power on. - -Without this, some RTL8821CU and RTL8811CU cannot connect to any -network: - -Feb 19 13:33:11 ideapad2 kernel: wlp3s0f3u2: send auth to - 90:55:de:__:__:__ (try 1/3) -Feb 19 13:33:13 ideapad2 kernel: wlp3s0f3u2: send auth to - 90:55:de:__:__:__ (try 2/3) -Feb 19 13:33:14 ideapad2 kernel: wlp3s0f3u2: send auth to - 90:55:de:__:__:__ (try 3/3) -Feb 19 13:33:15 ideapad2 kernel: wlp3s0f3u2: authentication with - 90:55:de:__:__:__ timed out - -The RTL8822CU and RTL8822BU out-of-tree drivers do this as well, so do -it for all three types of chips. - -Tested with RTL8811CU (Tenda U9 V2.0). - -Signed-off-by: Bitterblue Smith ---- -v2: - - Check for pwr_on instead of pwr_seq == chip->pwr_on_seq. ---- - drivers/net/wireless/realtek/rtw88/mac.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c -index 298663b03580..0c1c1ff31085 100644 ---- a/drivers/net/wireless/realtek/rtw88/mac.c -+++ b/drivers/net/wireless/realtek/rtw88/mac.c -@@ -309,6 +309,13 @@ static int rtw_mac_power_switch(struct rtw_dev *rtwdev, bool pwr_on) - pwr_seq = pwr_on ? chip->pwr_on_seq : chip->pwr_off_seq; - ret = rtw_pwr_seq_parser(rtwdev, pwr_seq); - -+ if (pwr_on && rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB) { -+ if (chip->id == RTW_CHIP_TYPE_8822C || -+ chip->id == RTW_CHIP_TYPE_8822B || -+ chip->id == RTW_CHIP_TYPE_8821C) -+ rtw_write8_clr(rtwdev, REG_SYS_STATUS1 + 1, BIT(0)); -+ } -+ - if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_SDIO) - rtw_write32(rtwdev, REG_SDIO_HIMR, imr); - --- -2.43.2 - -From 3b25c78f92268d44d0c3c8201a302f49a841c0a1 Mon Sep 17 00:00:00 2001 -From: Larry Finger -Date: Tue, 27 Feb 2024 02:34:40 +0000 -Subject: [PATCHi V2] wifi: rtw88: Add missing VID/PIDs doe 8811CU and 8821CU - -From: Nick Morrow - -Purpose: Add VID/PIDs that are known to be missing for this driver. -- removed /* 8811CU */ and /* 8821CU */ as they are redundant -since the file is specific to those chips. -- removed /* TOTOLINK A650UA v3 */ as the manufacturer. It has a REALTEK -VID so it may not be specific to this adapter. - -Source is https://1EHFQ.trk.elasticemail.com/tracking/click?d=I82H0YR_W_h175Lb3Nkb0D8i6IqvuhESe0WLnY6P7IVwR1UKvB0SPxd1Olp3PNJEJTqsu4kyqBXayE0BVd_k7uLFvlTe65Syx2uqLUB-UQSfsKKLkuyE-frMZXSCL7q824UG3Oer614GGEeEz-DNEWHh43p_e8oz7OouS6gRBEng0 -Verified and tested. - -Signed-off-by: Nick Morrow -Signed-off-by: Larry Finger -Acked-by: Ping-Ke Shih - ---- - .../net/wireless/realtek/rtw88/rtw8821cu.c | 40 ++++++++++++------- - 1 file changed, 26 insertions(+), 14 deletions(-) - -diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821cu.c b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c -index 7a5cbdc31ef7..e2c7d9f87683 100644 ---- a/drivers/net/wireless/realtek/rtw88/rtw8821cu.c -+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c -@@ -9,24 +9,36 @@ - #include "usb.h" - - static const struct usb_device_id rtw_8821cu_id_table[] = { -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xb82b, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x2006, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8731, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8811, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, - { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xb820, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc821, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xb82b, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc80c, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc811, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, - { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc820, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc821, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, - { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc82a, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, - { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc82b, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc811, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8811CU */ -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8811, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8811CU */ -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x2006, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* TOTOLINK A650UA v3 */ -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc82c, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x331d, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* D-Link */ -+ { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xc811, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* Edimax */ -+ { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xd811, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* Edimax */ - {}, - }; - MODULE_DEVICE_TABLE(usb, rtw_8821cu_id_table); --- -2.43.2 - diff --git a/patch/misc/rtw88/6.8/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch b/patch/misc/rtw88/6.8/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch deleted file mode 100644 index ad16bb5e7c38..000000000000 --- a/patch/misc/rtw88/6.8/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 3b25c78f92268d44d0c3c8201a302f49a841c0a1 Mon Sep 17 00:00:00 2001 -From: Bitterblue Smith -Date: Fri, 1 Mar 2024 00:34:13 +0200 -Subject: [PATCH v2 2/4] wifi: rtw88: 8821cu: Fix connection failure - -Clear bit 8 of REG_SYS_STATUS1 after MAC power on. - -Without this, some RTL8821CU and RTL8811CU cannot connect to any -network: - -Feb 19 13:33:11 ideapad2 kernel: wlp3s0f3u2: send auth to - 90:55:de:__:__:__ (try 1/3) -Feb 19 13:33:13 ideapad2 kernel: wlp3s0f3u2: send auth to - 90:55:de:__:__:__ (try 2/3) -Feb 19 13:33:14 ideapad2 kernel: wlp3s0f3u2: send auth to - 90:55:de:__:__:__ (try 3/3) -Feb 19 13:33:15 ideapad2 kernel: wlp3s0f3u2: authentication with - 90:55:de:__:__:__ timed out - -The RTL8822CU and RTL8822BU out-of-tree drivers do this as well, so do -it for all three types of chips. - -Tested with RTL8811CU (Tenda U9 V2.0). - -Signed-off-by: Bitterblue Smith ---- -v2: - - Check for pwr_on instead of pwr_seq == chip->pwr_on_seq. ---- - drivers/net/wireless/realtek/rtw88/mac.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c -index 298663b03580..0c1c1ff31085 100644 ---- a/drivers/net/wireless/realtek/rtw88/mac.c -+++ b/drivers/net/wireless/realtek/rtw88/mac.c -@@ -309,6 +309,13 @@ static int rtw_mac_power_switch(struct rtw_dev *rtwdev, bool pwr_on) - pwr_seq = pwr_on ? chip->pwr_on_seq : chip->pwr_off_seq; - ret = rtw_pwr_seq_parser(rtwdev, pwr_seq); - -+ if (pwr_on && rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB) { -+ if (chip->id == RTW_CHIP_TYPE_8822C || -+ chip->id == RTW_CHIP_TYPE_8822B || -+ chip->id == RTW_CHIP_TYPE_8821C) -+ rtw_write8_clr(rtwdev, REG_SYS_STATUS1 + 1, BIT(0)); -+ } -+ - if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_SDIO) - rtw_write32(rtwdev, REG_SDIO_HIMR, imr); - --- -2.43.2 - -From 3b25c78f92268d44d0c3c8201a302f49a841c0a1 Mon Sep 17 00:00:00 2001 -From: Larry Finger -Date: Tue, 27 Feb 2024 02:34:40 +0000 -Subject: [PATCHi V2] wifi: rtw88: Add missing VID/PIDs doe 8811CU and 8821CU - -From: Nick Morrow - -Purpose: Add VID/PIDs that are known to be missing for this driver. -- removed /* 8811CU */ and /* 8821CU */ as they are redundant -since the file is specific to those chips. -- removed /* TOTOLINK A650UA v3 */ as the manufacturer. It has a REALTEK -VID so it may not be specific to this adapter. - -Source is https://1EHFQ.trk.elasticemail.com/tracking/click?d=I82H0YR_W_h175Lb3Nkb0D8i6IqvuhESe0WLnY6P7IVwR1UKvB0SPxd1Olp3PNJEJTqsu4kyqBXayE0BVd_k7uLFvlTe65Syx2uqLUB-UQSfsKKLkuyE-frMZXSCL7q824UG3Oer614GGEeEz-DNEWHh43p_e8oz7OouS6gRBEng0 -Verified and tested. - -Signed-off-by: Nick Morrow -Signed-off-by: Larry Finger -Acked-by: Ping-Ke Shih - ---- - .../net/wireless/realtek/rtw88/rtw8821cu.c | 40 ++++++++++++------- - 1 file changed, 26 insertions(+), 14 deletions(-) - -diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821cu.c b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c -index 7a5cbdc31ef7..e2c7d9f87683 100644 ---- a/drivers/net/wireless/realtek/rtw88/rtw8821cu.c -+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c -@@ -9,24 +9,36 @@ - #include "usb.h" - - static const struct usb_device_id rtw_8821cu_id_table[] = { -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xb82b, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x2006, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8731, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8811, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, - { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xb820, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc821, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xb82b, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc80c, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc811, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, - { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc820, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc821, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, - { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc82a, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, - { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc82b, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc811, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8811CU */ -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8811, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8811CU */ -- { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x2006, 0xff, 0xff, 0xff), -- .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* TOTOLINK A650UA v3 */ -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0xc82c, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x331d, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* D-Link */ -+ { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xc811, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* Edimax */ -+ { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xd811, 0xff, 0xff, 0xff), -+ .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* Edimax */ - {}, - }; - MODULE_DEVICE_TABLE(usb, rtw_8821cu_id_table); --- -2.43.2 -