drivers: net: wireless: realtek: rtw88: upstream-wireless

This commit is cosmetic; git format-patch

Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
This commit is contained in:
Patrick Yavitz 2023-07-23 08:59:03 -04:00 committed by Igor
parent 4d5edf5eda
commit 88a19f5d82
11 changed files with 2365 additions and 1892 deletions

View File

@ -407,8 +407,8 @@ driver_rtw88() {
# Upstream wireless RTW88 drivers (wireless-next-2023-06-22)
if [[ "$version" == "6.1" || "$version" == "6.2" || "$version" == "6.3" || "$version" == "6.4" ]] ; then
display_alert "Adding" "Upstream wireless RTW88 drivers" "info"
process_patch_file "${SRC}/patch/misc/rtw88/${version}/001-rtw88-linux-next.patch" "applying"
process_patch_file "${SRC}/patch/misc/rtw88/${version}/002-rtw88-linux-next.patch" "applying"
process_patch_file "${SRC}/patch/misc/rtw88/${version}/001-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch" "applying"
process_patch_file "${SRC}/patch/misc/rtw88/${version}/002-drivers-net-wireless-realtek-rtw88-upstream-wireless.patch" "applying"
#process_patch_file "${SRC}/patch/misc/rtw88/hack/001-revert-rtw88-sdio-size-and-timout-to-rfc-v1.patch" "applying"
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"

View File

@ -1,5 +1,43 @@
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c 2023-06-22 13:52:09.000000000 -0400
From 33e2d64ebc667de18533aadd24b9afa5a77c15a4 Mon Sep 17 00:00:00 2001
From: Patrick Yavitz <pyavitz@xxxxx.com>
Date: Fri, 21 Jul 2023 17:05:34 -0400
Subject: [PATCH] drivers: net: wireless: realtek: rtw88: upstream wireless
linux-next backport: linux-6.1.y
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
---
.../net/wireless/realtek/rtw88/rtw8723ds.c | 41 +
.../net/wireless/realtek/rtw88/rtw8723du.c | 36 +
.../net/wireless/realtek/rtw88/rtw8821cs.c | 36 +
.../net/wireless/realtek/rtw88/rtw8821cu.c | 50 +
.../net/wireless/realtek/rtw88/rtw8822bs.c | 36 +
.../net/wireless/realtek/rtw88/rtw8822bu.c | 90 ++
.../net/wireless/realtek/rtw88/rtw8822cs.c | 36 +
.../net/wireless/realtek/rtw88/rtw8822cu.c | 44 +
drivers/net/wireless/realtek/rtw88/sdio.c | 1416 +++++++++++++++++
drivers/net/wireless/realtek/rtw88/sdio.h | 178 +++
drivers/net/wireless/realtek/rtw88/usb.c | 931 +++++++++++
drivers/net/wireless/realtek/rtw88/usb.h | 107 ++
12 files changed, 3001 insertions(+)
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723ds.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723du.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8821cs.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8821cu.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822bs.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822bu.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822cs.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822cu.c
create mode 100644 drivers/net/wireless/realtek/rtw88/sdio.c
create mode 100644 drivers/net/wireless/realtek/rtw88/sdio.h
create mode 100644 drivers/net/wireless/realtek/rtw88/usb.c
create mode 100644 drivers/net/wireless/realtek/rtw88/usb.h
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723ds.c b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c
new file mode 100644
index 000000000000..e5b6960ba0a0
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c
@@ -0,0 +1,41 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -42,8 +80,11 @@
+MODULE_AUTHOR("Martin Blumenstingl <martin.blumenstingl@googlemail.com>");
+MODULE_DESCRIPTION("Realtek 802.11n wireless 8723ds driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723du.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723du.c b/drivers/net/wireless/realtek/rtw88/rtw8723du.c
new file mode 100644
index 000000000000..322a805da76b
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723du.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) 2018-2019 Realtek Corporation
@ -81,8 +122,11 @@
+MODULE_AUTHOR("Hans Ulli Kroll <linux@ulli-kroll.de>");
+MODULE_DESCRIPTION("Realtek 802.11n wireless 8723du driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cs.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821cs.c b/drivers/net/wireless/realtek/rtw88/rtw8821cs.c
new file mode 100644
index 000000000000..a359413369a4
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cs.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -120,8 +164,11 @@
+MODULE_AUTHOR("Martin Blumenstingl <martin.blumenstingl@googlemail.com>");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8821cs driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821cu.c b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c
new file mode 100644
index 000000000000..7a5cbdc31ef7
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) 2018-2019 Realtek Corporation
@ -173,8 +220,11 @@
+MODULE_AUTHOR("Hans Ulli Kroll <linux@ulli-kroll.de>");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8821cu driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822bs.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822bs.c b/drivers/net/wireless/realtek/rtw88/rtw8822bs.c
new file mode 100644
index 000000000000..31d8645f83bd
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822bs.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) Jernej Skrabec <jernej.skrabec@gmail.com>
@ -212,8 +262,11 @@
+MODULE_AUTHOR("Jernej Skrabec <jernej.skrabec@gmail.com>");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8822bs driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822bu.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822bu.c b/drivers/net/wireless/realtek/rtw88/rtw8822bu.c
new file mode 100644
index 000000000000..ab620a0b1dfc
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822bu.c
@@ -0,0 +1,90 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) 2018-2019 Realtek Corporation
@ -305,8 +358,11 @@
+MODULE_AUTHOR("Realtek Corporation");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8822bu driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822cs.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822cs.c b/drivers/net/wireless/realtek/rtw88/rtw8822cs.c
new file mode 100644
index 000000000000..975e81c824f2
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822cs.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -344,8 +400,11 @@
+MODULE_AUTHOR("Martin Blumenstingl <martin.blumenstingl@googlemail.com>");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8822cs driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822cu.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822cu.c b/drivers/net/wireless/realtek/rtw88/rtw8822cu.c
new file mode 100644
index 000000000000..af28ca09d41f
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822cu.c
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) 2018-2019 Realtek Corporation
@ -391,8 +450,11 @@
+MODULE_AUTHOR("Realtek Corporation");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8822cu driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-07-07 19:42:40.585806232 -0400
+++ b/drivers/net/wireless/realtek/rtw88/sdio.c 2023-07-10 05:58:23.384448785 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c
new file mode 100644
index 000000000000..b19262ec5d8c
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/sdio.c
@@ -0,0 +1,1416 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright (C) 2021 Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -1810,8 +1872,11 @@
+MODULE_AUTHOR("Jernej Skrabec");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless SDIO driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/sdio.h 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/sdio.h b/drivers/net/wireless/realtek/rtw88/sdio.h
new file mode 100644
index 000000000000..3c659ed180f0
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/sdio.h
@@ -0,0 +1,178 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/* Copyright (C) 2021 Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -1991,8 +2056,11 @@
+}
+
+#endif
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/usb.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
new file mode 100644
index 000000000000..4a57efdba97b
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/usb.c
@@ -0,0 +1,931 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) 2018-2019 Realtek Corporation
@ -2925,8 +2993,11 @@
+MODULE_AUTHOR("Realtek Corporation");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless USB driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/usb.h 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/usb.h b/drivers/net/wireless/realtek/rtw88/usb.h
new file mode 100644
index 000000000000..ad1d7955c6a5
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/usb.h
@@ -0,0 +1,107 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/* Copyright(c) 2018-2019 Realtek Corporation
@ -3035,3 +3106,6 @@
+void rtw_usb_disconnect(struct usb_interface *intf);
+
+#endif
--
2.39.2

View File

@ -1,5 +1,31 @@
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c 2023-06-22 13:52:09.000000000 -0400
From 64e7de206a859ae0ef1f60439a93a22fab0b4dca Mon Sep 17 00:00:00 2001
From: Patrick Yavitz <pyavitz@xxxxx.com>
Date: Sat, 22 Jul 2023 04:31:58 -0400
Subject: [PATCH] drivers: net: wireless: realtek: rtw88: upstream wireless
linux-next backport: linux-6.2.y
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
---
.../net/wireless/realtek/rtw88/rtw8723ds.c | 41 +
.../net/wireless/realtek/rtw88/rtw8821cs.c | 36 +
.../net/wireless/realtek/rtw88/rtw8822bs.c | 36 +
.../net/wireless/realtek/rtw88/rtw8822cs.c | 36 +
drivers/net/wireless/realtek/rtw88/sdio.c | 1416 +++++++++++++++++
drivers/net/wireless/realtek/rtw88/sdio.h | 178 +++
6 files changed, 1743 insertions(+)
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723ds.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8821cs.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822bs.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822cs.c
create mode 100644 drivers/net/wireless/realtek/rtw88/sdio.c
create mode 100644 drivers/net/wireless/realtek/rtw88/sdio.h
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723ds.c b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c
new file mode 100644
index 000000000000..e5b6960ba0a0
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c
@@ -0,0 +1,41 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -42,8 +68,11 @@
+MODULE_AUTHOR("Martin Blumenstingl <martin.blumenstingl@googlemail.com>");
+MODULE_DESCRIPTION("Realtek 802.11n wireless 8723ds driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cs.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821cs.c b/drivers/net/wireless/realtek/rtw88/rtw8821cs.c
new file mode 100644
index 000000000000..a359413369a4
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cs.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -81,8 +110,11 @@
+MODULE_AUTHOR("Martin Blumenstingl <martin.blumenstingl@googlemail.com>");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8821cs driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822bs.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822bs.c b/drivers/net/wireless/realtek/rtw88/rtw8822bs.c
new file mode 100644
index 000000000000..31d8645f83bd
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822bs.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) Jernej Skrabec <jernej.skrabec@gmail.com>
@ -120,8 +152,11 @@
+MODULE_AUTHOR("Jernej Skrabec <jernej.skrabec@gmail.com>");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8822bs driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822cs.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822cs.c b/drivers/net/wireless/realtek/rtw88/rtw8822cs.c
new file mode 100644
index 000000000000..975e81c824f2
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822cs.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -159,8 +194,11 @@
+MODULE_AUTHOR("Martin Blumenstingl <martin.blumenstingl@googlemail.com>");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8822cs driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-07-07 19:42:40.585806232 -0400
+++ b/drivers/net/wireless/realtek/rtw88/sdio.c 2023-07-10 05:58:23.384448785 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c
new file mode 100644
index 000000000000..b19262ec5d8c
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/sdio.c
@@ -0,0 +1,1416 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright (C) 2021 Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -1578,8 +1616,11 @@
+MODULE_AUTHOR("Jernej Skrabec");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless SDIO driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/sdio.h 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/sdio.h b/drivers/net/wireless/realtek/rtw88/sdio.h
new file mode 100644
index 000000000000..3c659ed180f0
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/sdio.h
@@ -0,0 +1,178 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/* Copyright (C) 2021 Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -1759,3 +1800,6 @@
+}
+
+#endif
--
2.39.2

View File

@ -1,5 +1,31 @@
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c 2023-06-22 13:52:09.000000000 -0400
From b75999653fd7dacfc8484b9d46f55927a6fcab60 Mon Sep 17 00:00:00 2001
From: Patrick Yavitz <pyavitz@xxxxx.com>
Date: Sat, 22 Jul 2023 04:28:16 -0400
Subject: [PATCH] drivers: net: wireless: realtek: rtw88: upstream wireless
linux-next backport: linux-6.3.y
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
---
.../net/wireless/realtek/rtw88/rtw8723ds.c | 41 +
.../net/wireless/realtek/rtw88/rtw8821cs.c | 36 +
.../net/wireless/realtek/rtw88/rtw8822bs.c | 36 +
.../net/wireless/realtek/rtw88/rtw8822cs.c | 36 +
drivers/net/wireless/realtek/rtw88/sdio.c | 1416 +++++++++++++++++
drivers/net/wireless/realtek/rtw88/sdio.h | 178 +++
6 files changed, 1743 insertions(+)
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723ds.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8821cs.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822bs.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822cs.c
create mode 100644 drivers/net/wireless/realtek/rtw88/sdio.c
create mode 100644 drivers/net/wireless/realtek/rtw88/sdio.h
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723ds.c b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c
new file mode 100644
index 000000000000..e5b6960ba0a0
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c
@@ -0,0 +1,41 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -42,8 +68,11 @@
+MODULE_AUTHOR("Martin Blumenstingl <martin.blumenstingl@googlemail.com>");
+MODULE_DESCRIPTION("Realtek 802.11n wireless 8723ds driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cs.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821cs.c b/drivers/net/wireless/realtek/rtw88/rtw8821cs.c
new file mode 100644
index 000000000000..a359413369a4
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821cs.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -81,8 +110,11 @@
+MODULE_AUTHOR("Martin Blumenstingl <martin.blumenstingl@googlemail.com>");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8821cs driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822bs.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822bs.c b/drivers/net/wireless/realtek/rtw88/rtw8822bs.c
new file mode 100644
index 000000000000..31d8645f83bd
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822bs.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) Jernej Skrabec <jernej.skrabec@gmail.com>
@ -120,8 +152,11 @@
+MODULE_AUTHOR("Jernej Skrabec <jernej.skrabec@gmail.com>");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8822bs driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822cs.c 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822cs.c b/drivers/net/wireless/realtek/rtw88/rtw8822cs.c
new file mode 100644
index 000000000000..975e81c824f2
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822cs.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -159,8 +194,11 @@
+MODULE_AUTHOR("Martin Blumenstingl <martin.blumenstingl@googlemail.com>");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless 8822cs driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-07-07 19:42:40.585806232 -0400
+++ b/drivers/net/wireless/realtek/rtw88/sdio.c 2023-07-10 05:58:23.384448785 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c
new file mode 100644
index 000000000000..b19262ec5d8c
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/sdio.c
@@ -0,0 +1,1416 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright (C) 2021 Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -1578,8 +1616,11 @@
+MODULE_AUTHOR("Jernej Skrabec");
+MODULE_DESCRIPTION("Realtek 802.11ac wireless SDIO driver");
+MODULE_LICENSE("Dual BSD/GPL");
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/sdio.h 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/sdio.h b/drivers/net/wireless/realtek/rtw88/sdio.h
new file mode 100644
index 000000000000..3c659ed180f0
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/sdio.h
@@ -0,0 +1,178 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/* Copyright (C) 2021 Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -1759,3 +1800,6 @@
+}
+
+#endif
--
2.39.2

View File

@ -1,7 +1,74 @@
diff -Naur a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/realtek/rtw88/debug.c
--- a/drivers/net/wireless/realtek/rtw88/debug.c 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/debug.c 2023-06-22 13:52:09.000000000 -0400
@@ -183,8 +183,8 @@
From 33cc2c72bfd61ad4b6f481034e82cf8281b7664b Mon Sep 17 00:00:00 2001
From: Patrick Yavitz <pyavitz@xxxxx.com>
Date: Sat, 22 Jul 2023 04:12:37 -0400
Subject: [PATCH] drivers: net: wireless: realtek: rtw88: upstream wireless
linux-next backport: linux-6.4.y
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
---
drivers/net/wireless/realtek/rtw88/Kconfig | 11 ++
drivers/net/wireless/realtek/rtw88/Makefile | 3 +
drivers/net/wireless/realtek/rtw88/debug.c | 59 ++++++---
drivers/net/wireless/realtek/rtw88/fw.c | 68 ++++++++++
drivers/net/wireless/realtek/rtw88/fw.h | 13 ++
drivers/net/wireless/realtek/rtw88/mac.c | 6 +-
drivers/net/wireless/realtek/rtw88/mac80211.c | 9 +-
drivers/net/wireless/realtek/rtw88/main.c | 15 ++-
drivers/net/wireless/realtek/rtw88/main.h | 1 +
drivers/net/wireless/realtek/rtw88/pci.c | 5 +-
drivers/net/wireless/realtek/rtw88/ps.c | 3 +-
drivers/net/wireless/realtek/rtw88/reg.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8723d.c | 15 ++-
drivers/net/wireless/realtek/rtw88/rtw8723d.h | 6 +
drivers/net/wireless/realtek/rtw88/sdio.c | 24 +++-
drivers/net/wireless/realtek/rtw88/tx.c | 94 +++++++------
drivers/net/wireless/realtek/rtw88/tx.h | 124 ++++++++----------
drivers/net/wireless/realtek/rtw88/usb.c | 15 ++-
include/linux/mmc/sdio_ids.h | 3 +-
19 files changed, 332 insertions(+), 144 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw88/Kconfig b/drivers/net/wireless/realtek/rtw88/Kconfig
index 29eb2f8e0eb7..cffad1c01249 100644
--- a/drivers/net/wireless/realtek/rtw88/Kconfig
+++ b/drivers/net/wireless/realtek/rtw88/Kconfig
@@ -111,6 +111,17 @@ config RTW88_8723DE
802.11n PCIe wireless network adapter
+config RTW88_8723DS
+ tristate "Realtek 8723DS SDIO wireless network adapter"
+ depends on MMC
+ select RTW88_CORE
+ select RTW88_SDIO
+ select RTW88_8723D
+ help
+ Select this option will enable support for 8723DS chipset
+
+ 802.11n SDIO wireless network adapter
+
config RTW88_8723DU
tristate "Realtek 8723DU USB wireless network adapter"
depends on USB
diff --git a/drivers/net/wireless/realtek/rtw88/Makefile b/drivers/net/wireless/realtek/rtw88/Makefile
index 82979b30ae8d..fd212c09d88a 100644
--- a/drivers/net/wireless/realtek/rtw88/Makefile
+++ b/drivers/net/wireless/realtek/rtw88/Makefile
@@ -50,6 +50,9 @@ rtw88_8723d-objs := rtw8723d.o rtw8723d_table.o
obj-$(CONFIG_RTW88_8723DE) += rtw88_8723de.o
rtw88_8723de-objs := rtw8723de.o
+obj-$(CONFIG_RTW88_8723DS) += rtw88_8723ds.o
+rtw88_8723ds-objs := rtw8723ds.o
+
obj-$(CONFIG_RTW88_8723DU) += rtw88_8723du.o
rtw88_8723du-objs := rtw8723du.o
diff --git a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/realtek/rtw88/debug.c
index fa3d73b333ba..f8ba133baff0 100644
--- a/drivers/net/wireless/realtek/rtw88/debug.c
+++ b/drivers/net/wireless/realtek/rtw88/debug.c
@@ -183,8 +183,8 @@ static int rtw_debugfs_copy_from_user(char tmp[], int size,
tmp_len = (count > size - 1 ? size - 1 : count);
@ -12,7 +79,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/r
tmp[tmp_len] = '\0';
@@ -201,13 +201,16 @@
@@ -201,13 +201,16 @@ static ssize_t rtw_debugfs_set_read_reg(struct file *filp,
char tmp[32 + 1];
u32 addr, len;
int num;
@ -31,7 +98,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/r
if (len != 1 && len != 2 && len != 4) {
rtw_warn(rtwdev, "read reg setting wrong len\n");
@@ -288,8 +291,11 @@
@@ -288,8 +291,11 @@ static ssize_t rtw_debugfs_set_rsvd_page(struct file *filp,
char tmp[32 + 1];
u32 offset, page_num;
int num;
@ -44,7 +111,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/r
num = sscanf(tmp, "%d %d", &offset, &page_num);
@@ -314,8 +320,11 @@
@@ -314,8 +320,11 @@ static ssize_t rtw_debugfs_set_single_input(struct file *filp,
char tmp[32 + 1];
u32 input;
int num;
@ -57,7 +124,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/r
num = kstrtoint(tmp, 0, &input);
@@ -338,14 +347,17 @@
@@ -338,14 +347,17 @@ static ssize_t rtw_debugfs_set_write_reg(struct file *filp,
char tmp[32 + 1];
u32 addr, val, len;
int num;
@ -77,7 +144,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/r
switch (len) {
case 1:
@@ -381,8 +393,11 @@
@@ -381,8 +393,11 @@ static ssize_t rtw_debugfs_set_h2c(struct file *filp,
char tmp[32 + 1];
u8 param[8];
int num;
@ -90,7 +157,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/r
num = sscanf(tmp, "%hhx,%hhx,%hhx,%hhx,%hhx,%hhx,%hhx,%hhx",
&param[0], &param[1], &param[2], &param[3],
@@ -408,14 +423,17 @@
@@ -408,14 +423,17 @@ static ssize_t rtw_debugfs_set_rf_write(struct file *filp,
char tmp[32 + 1];
u32 path, addr, mask, val;
int num;
@ -110,7 +177,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/r
}
mutex_lock(&rtwdev->mutex);
@@ -438,14 +456,17 @@
@@ -438,14 +456,17 @@ static ssize_t rtw_debugfs_set_rf_read(struct file *filp,
char tmp[32 + 1];
u32 path, addr, mask;
int num;
@ -130,7 +197,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/r
}
debugfs_priv->rf_path = path;
@@ -467,7 +488,9 @@
@@ -467,7 +488,9 @@ static ssize_t rtw_debugfs_set_fix_rate(struct file *filp,
char tmp[32 + 1];
int ret;
@ -141,7 +208,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/r
ret = kstrtou8(tmp, 0, &fix_rate);
if (ret) {
@@ -860,7 +883,9 @@
@@ -860,7 +883,9 @@ static ssize_t rtw_debugfs_set_coex_enable(struct file *filp,
bool enable;
int ret;
@ -152,7 +219,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/r
ret = kstrtobool(tmp, &enable);
if (ret) {
@@ -930,7 +955,9 @@
@@ -930,7 +955,9 @@ static ssize_t rtw_debugfs_set_fw_crash(struct file *filp,
bool input;
int ret;
@ -163,10 +230,11 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wireless/r
ret = kstrtobool(tmp, &input);
if (ret)
diff -Naur a/drivers/net/wireless/realtek/rtw88/fw.c b/drivers/net/wireless/realtek/rtw88/fw.c
--- a/drivers/net/wireless/realtek/rtw88/fw.c 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/fw.c 2023-06-22 13:52:09.000000000 -0400
@@ -308,6 +308,57 @@
diff --git a/drivers/net/wireless/realtek/rtw88/fw.c b/drivers/net/wireless/realtek/rtw88/fw.c
index 2a8ccc8a7f60..567bbedd8ee0 100644
--- a/drivers/net/wireless/realtek/rtw88/fw.c
+++ b/drivers/net/wireless/realtek/rtw88/fw.c
@@ -308,6 +308,57 @@ void rtw_fw_c2h_cmd_isr(struct rtw_dev *rtwdev)
}
EXPORT_SYMBOL(rtw_fw_c2h_cmd_isr);
@ -224,7 +292,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/fw.c b/drivers/net/wireless/real
static void rtw_fw_send_h2c_command(struct rtw_dev *rtwdev,
u8 *h2c)
{
@@ -468,6 +519,23 @@
@@ -468,6 +519,23 @@ void rtw_fw_query_bt_info(struct rtw_dev *rtwdev)
rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
}
@ -248,10 +316,11 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/fw.c b/drivers/net/wireless/real
void rtw_fw_wl_ch_info(struct rtw_dev *rtwdev, u8 link, u8 ch, u8 bw)
{
u8 h2c_pkt[H2C_PKT_SIZE] = {0};
diff -Naur a/drivers/net/wireless/realtek/rtw88/fw.h b/drivers/net/wireless/realtek/rtw88/fw.h
--- a/drivers/net/wireless/realtek/rtw88/fw.h 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/fw.h 2023-06-22 13:52:09.000000000 -0400
@@ -81,6 +81,17 @@
diff --git a/drivers/net/wireless/realtek/rtw88/fw.h b/drivers/net/wireless/realtek/rtw88/fw.h
index 397cbc3f6af6..43ccdf9965ac 100644
--- a/drivers/net/wireless/realtek/rtw88/fw.h
+++ b/drivers/net/wireless/realtek/rtw88/fw.h
@@ -81,6 +81,17 @@ struct rtw_c2h_adaptivity {
u8 option;
} __packed;
@ -269,7 +338,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/fw.h b/drivers/net/wireless/real
struct rtw_h2c_cmd {
__le32 msg;
__le32 msg_ext;
@@ -530,6 +541,7 @@
@@ -530,6 +541,7 @@ static inline void rtw_h2c_pkt_set_header(u8 *h2c_pkt, u8 sub_id)
#define H2C_CMD_MEDIA_STATUS_RPT 0x01
#define H2C_CMD_SET_PWR_MODE 0x20
#define H2C_CMD_LPS_PG_INFO 0x2b
@ -277,7 +346,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/fw.h b/drivers/net/wireless/real
#define H2C_CMD_RA_INFO 0x40
#define H2C_CMD_RSSI_MONITOR 0x42
#define H2C_CMD_BCN_FILTER_OFFLOAD_P0 0x56
@@ -801,6 +813,7 @@
@@ -801,6 +813,7 @@ void rtw_fw_c2h_cmd_rx_irqsafe(struct rtw_dev *rtwdev, u32 pkt_offset,
void rtw_fw_c2h_cmd_handle(struct rtw_dev *rtwdev, struct sk_buff *skb);
void rtw_fw_send_general_info(struct rtw_dev *rtwdev);
void rtw_fw_send_phydm_info(struct rtw_dev *rtwdev);
@ -285,71 +354,11 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/fw.h b/drivers/net/wireless/real
void rtw_fw_do_iqk(struct rtw_dev *rtwdev, struct rtw_iqk_para *para);
void rtw_fw_inform_rfk_status(struct rtw_dev *rtwdev, bool start);
diff -Naur a/drivers/net/wireless/realtek/rtw88/Kconfig b/drivers/net/wireless/realtek/rtw88/Kconfig
--- a/drivers/net/wireless/realtek/rtw88/Kconfig 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/Kconfig 2023-06-22 13:52:09.000000000 -0400
@@ -111,6 +111,17 @@
802.11n PCIe wireless network adapter
+config RTW88_8723DS
+ tristate "Realtek 8723DS SDIO wireless network adapter"
+ depends on MMC
+ select RTW88_CORE
+ select RTW88_SDIO
+ select RTW88_8723D
+ help
+ Select this option will enable support for 8723DS chipset
+
+ 802.11n SDIO wireless network adapter
+
config RTW88_8723DU
tristate "Realtek 8723DU USB wireless network adapter"
depends on USB
diff -Naur a/drivers/net/wireless/realtek/rtw88/mac80211.c b/drivers/net/wireless/realtek/rtw88/mac80211.c
--- a/drivers/net/wireless/realtek/rtw88/mac80211.c 2023-07-19 10:37:03.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/mac80211.c 2023-07-19 15:52:13.130110125 -0400
@@ -43,7 +43,11 @@
list_add_tail(&rtwtxq->list, &rtwdev->txqs);
spin_unlock_bh(&rtwdev->txq_lock);
- queue_work(rtwdev->tx_wq, &rtwdev->tx_work);
+ /* ensure to dequeue EAPOL (4/4) at the right time */
+ if (txq->ac == IEEE80211_AC_VO)
+ __rtw_tx_work(rtwdev);
+ else
+ queue_work(rtwdev->tx_wq, &rtwdev->tx_work);
}
static int rtw_ops_start(struct ieee80211_hw *hw)
@@ -378,6 +382,7 @@
rtw_fw_download_rsvd_page(rtwdev);
rtw_send_rsvd_page_h2c(rtwdev);
+ rtw_fw_default_port(rtwdev, rtwvif);
rtw_coex_media_status_notify(rtwdev, vif->cfg.assoc);
if (rtw_bf_support)
rtw_bf_assoc(rtwdev, vif, conf);
@@ -449,6 +454,7 @@
const struct rtw_chip_info *chip = rtwdev->chip;
mutex_lock(&rtwdev->mutex);
+ rtw_write32_set(rtwdev, REG_TCR, BIT_TCR_UPDATE_HGQMD);
rtwdev->ap_active = true;
rtw_store_op_chan(rtwdev, true);
chip->ops->phy_calibration(rtwdev);
@@ -464,6 +470,7 @@
struct rtw_dev *rtwdev = hw->priv;
mutex_lock(&rtwdev->mutex);
+ rtw_write32_clr(rtwdev, REG_TCR, BIT_TCR_UPDATE_HGQMD);
rtwdev->ap_active = false;
if (!rtw_core_check_sta_active(rtwdev))
rtw_clear_op_chan(rtwdev);
diff -Naur a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c
--- a/drivers/net/wireless/realtek/rtw88/mac.c 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/mac.c 2023-06-22 13:52:09.000000000 -0400
@@ -794,8 +794,10 @@
diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c
index a168f36c38ec..298663b03580 100644
--- a/drivers/net/wireless/realtek/rtw88/mac.c
+++ b/drivers/net/wireless/realtek/rtw88/mac.c
@@ -794,8 +794,10 @@ static int __rtw_download_firmware(struct rtw_dev *rtwdev,
wlan_cpu_enable(rtwdev, true);
@ -362,10 +371,52 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/rea
ret = download_firmware_validate(rtwdev);
if (ret)
diff -Naur a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c
--- a/drivers/net/wireless/realtek/rtw88/main.c 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/main.c 2023-06-22 13:52:09.000000000 -0400
@@ -334,12 +334,15 @@
diff --git a/drivers/net/wireless/realtek/rtw88/mac80211.c b/drivers/net/wireless/realtek/rtw88/mac80211.c
index 09bcc2345bb0..a99b53d44267 100644
--- a/drivers/net/wireless/realtek/rtw88/mac80211.c
+++ b/drivers/net/wireless/realtek/rtw88/mac80211.c
@@ -43,7 +43,11 @@ static void rtw_ops_wake_tx_queue(struct ieee80211_hw *hw,
list_add_tail(&rtwtxq->list, &rtwdev->txqs);
spin_unlock_bh(&rtwdev->txq_lock);
- queue_work(rtwdev->tx_wq, &rtwdev->tx_work);
+ /* ensure to dequeue EAPOL (4/4) at the right time */
+ if (txq->ac == IEEE80211_AC_VO)
+ __rtw_tx_work(rtwdev);
+ else
+ queue_work(rtwdev->tx_wq, &rtwdev->tx_work);
}
static int rtw_ops_start(struct ieee80211_hw *hw)
@@ -378,6 +382,7 @@ static void rtw_ops_bss_info_changed(struct ieee80211_hw *hw,
rtw_fw_download_rsvd_page(rtwdev);
rtw_send_rsvd_page_h2c(rtwdev);
+ rtw_fw_default_port(rtwdev, rtwvif);
rtw_coex_media_status_notify(rtwdev, vif->cfg.assoc);
if (rtw_bf_support)
rtw_bf_assoc(rtwdev, vif, conf);
@@ -449,6 +454,7 @@ static int rtw_ops_start_ap(struct ieee80211_hw *hw,
const struct rtw_chip_info *chip = rtwdev->chip;
mutex_lock(&rtwdev->mutex);
+ rtw_write32_set(rtwdev, REG_TCR, BIT_TCR_UPDATE_HGQMD);
rtwdev->ap_active = true;
rtw_store_op_chan(rtwdev, true);
chip->ops->phy_calibration(rtwdev);
@@ -464,6 +470,7 @@ static void rtw_ops_stop_ap(struct ieee80211_hw *hw,
struct rtw_dev *rtwdev = hw->priv;
mutex_lock(&rtwdev->mutex);
+ rtw_write32_clr(rtwdev, REG_TCR, BIT_TCR_UPDATE_HGQMD);
rtwdev->ap_active = false;
if (!rtw_core_check_sta_active(rtwdev))
rtw_clear_op_chan(rtwdev);
diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c
index 9447a3aae3b5..c853e2f2d448 100644
--- a/drivers/net/wireless/realtek/rtw88/main.c
+++ b/drivers/net/wireless/realtek/rtw88/main.c
@@ -334,12 +334,15 @@ int rtw_sta_add(struct rtw_dev *rtwdev, struct ieee80211_sta *sta,
struct ieee80211_vif *vif)
{
struct rtw_sta_info *si = (struct rtw_sta_info *)sta->drv_priv;
@ -381,7 +432,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/re
si->rtwdev = rtwdev;
si->sta = sta;
si->vif = vif;
@@ -2340,6 +2343,9 @@
@@ -2340,6 +2343,9 @@ static void rtw_port_switch_iter(void *data, u8 *mac, struct ieee80211_vif *vif)
rtw_dbg(rtwdev, RTW_DBG_STATE, "AP port switch from %d -> %d\n",
rtwvif_ap->port, rtwvif_target->port);
@ -391,7 +442,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/re
reg1 = &rtwvif_ap->conf->net_type;
reg2 = &rtwvif_target->conf->net_type;
rtw_swap_reg_mask(rtwdev, reg1, reg2);
@@ -2358,6 +2364,8 @@
@@ -2358,6 +2364,8 @@ static void rtw_port_switch_iter(void *data, u8 *mac, struct ieee80211_vif *vif)
swap(rtwvif_target->port, rtwvif_ap->port);
swap(rtwvif_target->conf, rtwvif_ap->conf);
@ -400,7 +451,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/re
}
void rtw_core_port_switch(struct rtw_dev *rtwdev, struct ieee80211_vif *vif)
@@ -2403,10 +2411,13 @@
@@ -2403,10 +2411,13 @@ void rtw_core_enable_beacon(struct rtw_dev *rtwdev, bool enable)
if (!rtwdev->ap_active)
return;
@ -416,10 +467,11 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/re
}
MODULE_AUTHOR("Realtek Corporation");
diff -Naur a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wireless/realtek/rtw88/main.h
--- a/drivers/net/wireless/realtek/rtw88/main.h 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/main.h 2023-06-22 13:52:09.000000000 -0400
@@ -803,6 +803,7 @@
diff --git a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wireless/realtek/rtw88/main.h
index 9e841f6991a9..f9dd2ab941c8 100644
--- a/drivers/net/wireless/realtek/rtw88/main.h
+++ b/drivers/net/wireless/realtek/rtw88/main.h
@@ -803,6 +803,7 @@ struct rtw_bf_info {
struct rtw_vif {
enum rtw_net_type net_type;
u16 aid;
@ -427,23 +479,11 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wireless/re
u8 mac_addr[ETH_ALEN];
u8 bssid[ETH_ALEN];
u8 port;
diff -Naur a/drivers/net/wireless/realtek/rtw88/Makefile b/drivers/net/wireless/realtek/rtw88/Makefile
--- a/drivers/net/wireless/realtek/rtw88/Makefile 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/Makefile 2023-06-22 13:52:09.000000000 -0400
@@ -50,6 +50,9 @@
obj-$(CONFIG_RTW88_8723DE) += rtw88_8723de.o
rtw88_8723de-objs := rtw8723de.o
+obj-$(CONFIG_RTW88_8723DS) += rtw88_8723ds.o
+rtw88_8723ds-objs := rtw8723ds.o
+
obj-$(CONFIG_RTW88_8723DU) += rtw88_8723du.o
rtw88_8723du-objs := rtw8723du.o
diff -Naur a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
--- a/drivers/net/wireless/realtek/rtw88/pci.c 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/pci.c 2023-06-22 13:52:09.000000000 -0400
@@ -738,8 +738,9 @@
diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
index 672ddde80816..44a8fff34cdd 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.c
+++ b/drivers/net/wireless/realtek/rtw88/pci.c
@@ -738,8 +738,9 @@ static void __rtw_pci_flush_queues(struct rtw_dev *rtwdev, u32 pci_queues,
u8 q;
for (q = 0; q < RTK_MAX_TX_QUEUE_NUM; q++) {
@ -455,10 +495,11 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/rea
continue;
if (pci_queues & BIT(q))
diff -Naur a/drivers/net/wireless/realtek/rtw88/ps.c b/drivers/net/wireless/realtek/rtw88/ps.c
--- a/drivers/net/wireless/realtek/rtw88/ps.c 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/ps.c 2023-06-22 13:52:09.000000000 -0400
@@ -18,6 +18,7 @@
diff --git a/drivers/net/wireless/realtek/rtw88/ps.c b/drivers/net/wireless/realtek/rtw88/ps.c
index 53933fb38a33..43e80a3a8136 100644
--- a/drivers/net/wireless/realtek/rtw88/ps.c
+++ b/drivers/net/wireless/realtek/rtw88/ps.c
@@ -18,6 +18,7 @@ static int rtw_ips_pwr_up(struct rtw_dev *rtwdev)
if (ret)
rtw_err(rtwdev, "leave idle state failed\n");
@ -466,7 +507,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/ps.c b/drivers/net/wireless/real
rtw_set_channel(rtwdev);
return ret;
@@ -63,8 +64,6 @@
@@ -63,8 +64,6 @@ int rtw_leave_ips(struct rtw_dev *rtwdev)
rtw_iterate_vifs(rtwdev, rtw_restore_port_cfg_iter, rtwdev);
@ -475,9 +516,10 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/ps.c b/drivers/net/wireless/real
return 0;
}
diff -Naur a/drivers/net/wireless/realtek/rtw88/reg.h b/drivers/net/wireless/realtek/rtw88/reg.h
--- a/drivers/net/wireless/realtek/rtw88/reg.h 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/reg.h 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/reg.h b/drivers/net/wireless/realtek/rtw88/reg.h
index 2a2ae2081f34..7c6c11d50ff3 100644
--- a/drivers/net/wireless/realtek/rtw88/reg.h
+++ b/drivers/net/wireless/realtek/rtw88/reg.h
@@ -378,6 +378,7 @@
#define BIT_SIFS_BK_EN BIT(12)
#define REG_TXPAUSE 0x0522
@ -494,10 +536,11 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/reg.h b/drivers/net/wireless/rea
#define REG_RCR 0x0608
#define BIT_APP_FCS BIT(31)
#define BIT_APP_MIC BIT(30)
diff -Naur a/drivers/net/wireless/realtek/rtw88/rtw8723d.c b/drivers/net/wireless/realtek/rtw88/rtw8723d.c
--- a/drivers/net/wireless/realtek/rtw88/rtw8723d.c 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.c 2023-06-22 13:52:09.000000000 -0400
@@ -216,6 +216,12 @@
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723d.c b/drivers/net/wireless/realtek/rtw88/rtw8723d.c
index 06e7454c9ca6..c575476a0020 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8723d.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.c
@@ -216,6 +216,12 @@ static void rtw8723du_efuse_parsing(struct rtw_efuse *efuse,
ether_addr_copy(efuse->addr, map->u.mac_addr);
}
@ -510,7 +553,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/rtw8723d.c b/drivers/net/wireles
static int rtw8723d_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
{
struct rtw_efuse *efuse = &rtwdev->efuse;
@@ -248,6 +254,9 @@
@@ -248,6 +254,9 @@ static int rtw8723d_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
case RTW_HCI_TYPE_USB:
rtw8723du_efuse_parsing(efuse, map);
break;
@ -520,7 +563,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/rtw8723d.c b/drivers/net/wireles
default:
/* unsupported now */
return -ENOTSUPP;
@@ -1961,15 +1970,17 @@
@@ -1961,15 +1970,17 @@ static void rtw8723d_fill_txdesc_checksum(struct rtw_dev *rtwdev,
size_t words = 32 / 2; /* calculate the first 32 bytes (16 words) */
__le16 chksum = 0;
__le16 *data = (__le16 *)(txdesc);
@ -540,10 +583,11 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/rtw8723d.c b/drivers/net/wireles
}
static struct rtw_chip_ops rtw8723d_ops = {
diff -Naur a/drivers/net/wireless/realtek/rtw88/rtw8723d.h b/drivers/net/wireless/realtek/rtw88/rtw8723d.h
--- a/drivers/net/wireless/realtek/rtw88/rtw8723d.h 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.h 2023-06-22 13:52:09.000000000 -0400
@@ -49,6 +49,11 @@
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723d.h b/drivers/net/wireless/realtek/rtw88/rtw8723d.h
index a356318a5c15..3642a2c7f80c 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8723d.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.h
@@ -49,6 +49,11 @@ struct rtw8723du_efuse {
u8 mac_addr[ETH_ALEN]; /* 0x107 */
};
@ -555,7 +599,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/rtw8723d.h b/drivers/net/wireles
struct rtw8723d_efuse {
__le16 rtl_id;
u8 rsvd[2];
@@ -80,6 +85,7 @@
@@ -80,6 +85,7 @@ struct rtw8723d_efuse {
union {
struct rtw8723de_efuse e;
struct rtw8723du_efuse u;
@ -563,10 +607,11 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/rtw8723d.h b/drivers/net/wireles
};
};
diff -Naur a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c
--- a/drivers/net/wireless/realtek/rtw88/sdio.c 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/sdio.c 2023-06-22 13:52:09.000000000 -0400
@@ -998,9 +998,9 @@
diff --git a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c
index 06fce7c3adda..2c1fb2dabd40 100644
--- a/drivers/net/wireless/realtek/rtw88/sdio.c
+++ b/drivers/net/wireless/realtek/rtw88/sdio.c
@@ -998,9 +998,9 @@ static void rtw_sdio_rxfifo_recv(struct rtw_dev *rtwdev, u32 rx_len)
static void rtw_sdio_rx_isr(struct rtw_dev *rtwdev)
{
@ -578,7 +623,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/re
if (rtw_chip_wcpu_11n(rtwdev))
rx_len = rtw_read16(rtwdev, REG_SDIO_RX0_REQ_LEN);
else
@@ -1012,7 +1012,25 @@
@@ -1012,7 +1012,25 @@ static void rtw_sdio_rx_isr(struct rtw_dev *rtwdev)
rtw_sdio_rxfifo_recv(rtwdev, rx_len);
total_rx_bytes += rx_len;
@ -605,14 +650,38 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/re
}
static void rtw_sdio_handle_interrupt(struct sdio_func *sdio_func)
diff -Naur a/drivers/net/wireless/realtek/rtw88/tx.c b/drivers/net/wireless/realtek/rtw88/tx.c
--- a/drivers/net/wireless/realtek/rtw88/tx.c 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/tx.c 2023-06-22 13:52:09.000000000 -0400
@@ -34,43 +34,57 @@
diff --git a/drivers/net/wireless/realtek/rtw88/tx.c b/drivers/net/wireless/realtek/rtw88/tx.c
index bb5c7492c98b..2821119dc930 100644
--- a/drivers/net/wireless/realtek/rtw88/tx.c
+++ b/drivers/net/wireless/realtek/rtw88/tx.c
@@ -34,43 +34,57 @@ void rtw_tx_stats(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
void rtw_tx_fill_tx_desc(struct rtw_tx_pkt_info *pkt_info, struct sk_buff *skb)
{
- __le32 *txdesc = (__le32 *)skb->data;
-
- SET_TX_DESC_TXPKTSIZE(txdesc, pkt_info->tx_pkt_size);
- SET_TX_DESC_OFFSET(txdesc, pkt_info->offset);
- SET_TX_DESC_PKT_OFFSET(txdesc, pkt_info->pkt_offset);
- SET_TX_DESC_QSEL(txdesc, pkt_info->qsel);
- SET_TX_DESC_BMC(txdesc, pkt_info->bmc);
- SET_TX_DESC_RATE_ID(txdesc, pkt_info->rate_id);
- SET_TX_DESC_DATARATE(txdesc, pkt_info->rate);
- SET_TX_DESC_DISDATAFB(txdesc, pkt_info->dis_rate_fallback);
- SET_TX_DESC_USE_RATE(txdesc, pkt_info->use_rate);
- SET_TX_DESC_SEC_TYPE(txdesc, pkt_info->sec_type);
- SET_TX_DESC_DATA_BW(txdesc, pkt_info->bw);
- SET_TX_DESC_SW_SEQ(txdesc, pkt_info->seq);
- SET_TX_DESC_MAX_AGG_NUM(txdesc, pkt_info->ampdu_factor);
- SET_TX_DESC_AMPDU_DENSITY(txdesc, pkt_info->ampdu_density);
- SET_TX_DESC_DATA_STBC(txdesc, pkt_info->stbc);
- SET_TX_DESC_DATA_LDPC(txdesc, pkt_info->ldpc);
- SET_TX_DESC_AGG_EN(txdesc, pkt_info->ampdu_en);
- SET_TX_DESC_LS(txdesc, pkt_info->ls);
- SET_TX_DESC_DATA_SHORT(txdesc, pkt_info->short_gi);
- SET_TX_DESC_SPE_RPT(txdesc, pkt_info->report);
- SET_TX_DESC_SW_DEFINE(txdesc, pkt_info->sn);
- SET_TX_DESC_USE_RTS(txdesc, pkt_info->rts);
+ struct rtw_tx_desc *tx_desc = (struct rtw_tx_desc *)skb->data;
+ bool more_data = false;
+
@ -655,29 +724,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/tx.c b/drivers/net/wireless/real
+ tx_desc->w8 = le32_encode_bits(pkt_info->en_hwseq, RTW_TX_DESC_W8_EN_HWSEQ);
+
+ tx_desc->w9 = le32_encode_bits(pkt_info->seq, RTW_TX_DESC_W9_SW_SEQ);
- SET_TX_DESC_TXPKTSIZE(txdesc, pkt_info->tx_pkt_size);
- SET_TX_DESC_OFFSET(txdesc, pkt_info->offset);
- SET_TX_DESC_PKT_OFFSET(txdesc, pkt_info->pkt_offset);
- SET_TX_DESC_QSEL(txdesc, pkt_info->qsel);
- SET_TX_DESC_BMC(txdesc, pkt_info->bmc);
- SET_TX_DESC_RATE_ID(txdesc, pkt_info->rate_id);
- SET_TX_DESC_DATARATE(txdesc, pkt_info->rate);
- SET_TX_DESC_DISDATAFB(txdesc, pkt_info->dis_rate_fallback);
- SET_TX_DESC_USE_RATE(txdesc, pkt_info->use_rate);
- SET_TX_DESC_SEC_TYPE(txdesc, pkt_info->sec_type);
- SET_TX_DESC_DATA_BW(txdesc, pkt_info->bw);
- SET_TX_DESC_SW_SEQ(txdesc, pkt_info->seq);
- SET_TX_DESC_MAX_AGG_NUM(txdesc, pkt_info->ampdu_factor);
- SET_TX_DESC_AMPDU_DENSITY(txdesc, pkt_info->ampdu_density);
- SET_TX_DESC_DATA_STBC(txdesc, pkt_info->stbc);
- SET_TX_DESC_DATA_LDPC(txdesc, pkt_info->ldpc);
- SET_TX_DESC_AGG_EN(txdesc, pkt_info->ampdu_en);
- SET_TX_DESC_LS(txdesc, pkt_info->ls);
- SET_TX_DESC_DATA_SHORT(txdesc, pkt_info->short_gi);
- SET_TX_DESC_SPE_RPT(txdesc, pkt_info->report);
- SET_TX_DESC_SW_DEFINE(txdesc, pkt_info->sn);
- SET_TX_DESC_USE_RTS(txdesc, pkt_info->rts);
+
if (pkt_info->rts) {
- SET_TX_DESC_RTSRATE(txdesc, DESC_RATE24M);
- SET_TX_DESC_DATA_RTS_SHORT(txdesc, 1);
@ -700,7 +747,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/tx.c b/drivers/net/wireless/real
}
EXPORT_SYMBOL(rtw_tx_fill_tx_desc);
@@ -635,9 +649,8 @@
@@ -635,9 +649,8 @@ static void rtw_txq_push(struct rtw_dev *rtwdev,
rcu_read_unlock();
}
@ -711,7 +758,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/tx.c b/drivers/net/wireless/real
struct rtw_txq *rtwtxq, *tmp;
spin_lock_bh(&rtwdev->txq_lock);
@@ -658,6 +671,13 @@
@@ -658,6 +671,13 @@ void rtw_tx_work(struct work_struct *w)
spin_unlock_bh(&rtwdev->txq_lock);
}
@ -725,9 +772,10 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/tx.c b/drivers/net/wireless/real
void rtw_txq_init(struct rtw_dev *rtwdev, struct ieee80211_txq *txq)
{
struct rtw_txq *rtwtxq;
diff -Naur a/drivers/net/wireless/realtek/rtw88/tx.h b/drivers/net/wireless/realtek/rtw88/tx.h
--- a/drivers/net/wireless/realtek/rtw88/tx.h 2023-06-18 17:06:27.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/tx.h 2023-06-22 13:52:09.000000000 -0400
diff --git a/drivers/net/wireless/realtek/rtw88/tx.h b/drivers/net/wireless/realtek/rtw88/tx.h
index 197d5868c8ad..324189606257 100644
--- a/drivers/net/wireless/realtek/rtw88/tx.h
+++ b/drivers/net/wireless/realtek/rtw88/tx.h
@@ -9,76 +9,53 @@
#define RTW_TX_PROBE_TIMEOUT msecs_to_jiffies(500)
@ -852,7 +900,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/tx.h b/drivers/net/wireless/real
enum rtw_tx_desc_queue_select {
TX_DESC_QSEL_TID0 = 0,
@@ -111,6 +88,7 @@
@@ -111,6 +88,7 @@ void rtw_tx(struct rtw_dev *rtwdev,
void rtw_txq_init(struct rtw_dev *rtwdev, struct ieee80211_txq *txq);
void rtw_txq_cleanup(struct rtw_dev *rtwdev, struct ieee80211_txq *txq);
void rtw_tx_work(struct work_struct *w);
@ -860,7 +908,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/tx.h b/drivers/net/wireless/real
void rtw_tx_pkt_info_update(struct rtw_dev *rtwdev,
struct rtw_tx_pkt_info *pkt_info,
struct ieee80211_sta *sta,
@@ -139,13 +117,15 @@
@@ -139,13 +117,15 @@ void fill_txdesc_checksum_common(u8 *txdesc, size_t words)
{
__le16 chksum = 0;
__le16 *data = (__le16 *)(txdesc);
@ -878,10 +926,11 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/tx.h b/drivers/net/wireless/real
}
static inline void rtw_tx_fill_txdesc_checksum(struct rtw_dev *rtwdev,
diff -Naur a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
--- a/drivers/net/wireless/realtek/rtw88/usb.c 2023-07-19 10:37:03.000000000 -0400
+++ b/drivers/net/wireless/realtek/rtw88/usb.c 2023-07-19 15:52:13.134110080 -0400
@@ -24,11 +24,12 @@
diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
index 976eafa739a2..4a57efdba97b 100644
--- a/drivers/net/wireless/realtek/rtw88/usb.c
+++ b/drivers/net/wireless/realtek/rtw88/usb.c
@@ -24,11 +24,12 @@ struct rtw_usb_txcb {
static void rtw_usb_fill_tx_checksum(struct rtw_usb *rtwusb,
struct sk_buff *skb, int agg_num)
{
@ -896,7 +945,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/rea
rtw_tx_fill_txdesc_checksum(rtwdev, &pkt_info, skb->data);
}
@@ -306,11 +307,13 @@
@@ -306,11 +307,13 @@ static int rtw_usb_write_port(struct rtw_dev *rtwdev, u8 qsel, struct sk_buff *s
static bool rtw_usb_tx_agg_skb(struct rtw_usb *rtwusb, struct sk_buff_head *list)
{
struct rtw_dev *rtwdev = rtwusb->rtwdev;
@ -910,7 +959,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/rea
if (skb_queue_empty(list))
return false;
@@ -363,9 +366,10 @@
@@ -363,9 +366,10 @@ static bool rtw_usb_tx_agg_skb(struct rtw_usb *rtwusb, struct sk_buff_head *list
queue:
skb_queue_tail(&txcb->tx_ack_queue, skb_head);
@ -923,7 +972,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/rea
return true;
}
@@ -465,6 +469,9 @@
@@ -465,6 +469,9 @@ static u8 rtw_usb_tx_queue_mapping_to_qsel(struct sk_buff *skb)
if (unlikely(ieee80211_is_mgmt(fc) || ieee80211_is_ctl(fc)))
qsel = TX_DESC_QSEL_MGMT;
@ -933,9 +982,10 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/rea
else if (skb_get_queue_mapping(skb) <= IEEE80211_AC_BK)
qsel = skb->priority;
else
diff -Naur a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h
--- a/include/linux/mmc/sdio_ids.h 2023-06-18 17:06:27.000000000 -0400
+++ b/include/linux/mmc/sdio_ids.h 2023-06-22 13:52:09.000000000 -0400
diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h
index c653accdc7fd..7fada7a714fe 100644
--- a/include/linux/mmc/sdio_ids.h
+++ b/include/linux/mmc/sdio_ids.h
@@ -121,7 +121,8 @@
#define SDIO_DEVICE_ID_REALTEK_RTW8822BS 0xb822
#define SDIO_DEVICE_ID_REALTEK_RTW8821CS 0xc821
@ -946,3 +996,6 @@ diff -Naur a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h
#define SDIO_DEVICE_ID_REALTEK_RTW8821DS 0xd821
#define SDIO_VENDOR_ID_SIANO 0x039a
--
2.39.2

View File

@ -1,5 +1,21 @@
--- /dev/null 2023-06-17 08:32:20.061755428 -0400
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c 2023-06-22 13:52:09.000000000 -0400
From bb2ac531c8e49ac5f5c017976b86fae02c5a1193 Mon Sep 17 00:00:00 2001
From: Patrick Yavitz <pyavitz@xxxxx.com>
Date: Sat, 22 Jul 2023 04:23:40 -0400
Subject: [PATCH] drivers: net: wireless: realtek: rtw88: upstream wireless
linux-next backport: linux-6.4.y
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
---
.../net/wireless/realtek/rtw88/rtw8723ds.c | 41 +++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723ds.c
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723ds.c b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c
new file mode 100644
index 000000000000..e5b6960ba0a0
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c
@@ -0,0 +1,41 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) Martin Blumenstingl <martin.blumenstingl@googlemail.com>
@ -42,6 +58,9 @@
+MODULE_AUTHOR("Martin Blumenstingl <martin.blumenstingl@googlemail.com>");
+MODULE_DESCRIPTION("Realtek 802.11n wireless 8723ds driver");
+MODULE_LICENSE("Dual BSD/GPL");
--
2.39.2
From: Martin Blumenstingl @ 2023-07-09 19:57 UTC (permalink / raw)
To: linux-wireless
Cc: linux-kernel, jernej.skrabec, pkshih, ulf.hansson, kvalo,

View File

@ -1,14 +1,24 @@
From 5f7a80c5a42ec153a560bd33241908c59a1b3ac8 Mon Sep 17 00:00:00 2001
From: Patrick Yavitz <pyavitz@xxxxx.com>
Date: Fri, 21 Jul 2023 17:10:21 -0400
Subject: [PATCH] rtw88: usb: make work queues high priority
The rtw8822/21cu driver has problems handling high rx or tx rates compared with high
load (such as high I/O) on slower systems.
Examples: i.MX6 SoloX, NanoPi M1 and similar platforms.
https://lore.kernel.org/linux-wireless/20230612134048.321500-1-petter@technux.se/T/#t
Signed-off-by: Patrick Yavitz <pyavitz@gxxxx.com>
diff -Naur a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
--- a/drivers/net/wireless/realtek/rtw88/usb.c 2023-06-13 14:16:07.696892956 -0400
+++ b/drivers/net/wireless/realtek/rtw88/usb.c 2023-06-13 14:17:13.026863229 -0400
@@ -716,7 +716,7 @@
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
---
drivers/net/wireless/realtek/rtw88/usb.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
index 4a57efdba97b..382268706101 100644
--- a/drivers/net/wireless/realtek/rtw88/usb.c
+++ b/drivers/net/wireless/realtek/rtw88/usb.c
@@ -723,7 +723,7 @@ static int rtw_usb_init_rx(struct rtw_dev *rtwdev)
struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
int i;
@ -17,7 +27,7 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/rea
if (!rtwusb->rxwq) {
rtw_err(rtwdev, "failed to create RX work queue\n");
return -ENOMEM;
@@ -750,7 +750,7 @@
@@ -757,7 +757,7 @@ static int rtw_usb_init_tx(struct rtw_dev *rtwdev)
struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
int i;
@ -26,3 +36,6 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/rea
if (!rtwusb->txwq) {
rtw_err(rtwdev, "failed to create TX work queue\n");
return -ENOMEM;
--
2.39.2

View File

@ -1,16 +1,22 @@
From: Patrick Yavitz @ 2023-06-30
Subject: v2: rtw88: decrease the log level of tx report
From 0a609e036b7f4a0dfd375dfcce4dffcb5f5a6150 Mon Sep 17 00:00:00 2001
From: Patrick Yavitz <pyavitz@xxxxx.com>
Date: Fri, 21 Jul 2023 17:13:56 -0400
Subject: [PATCH] rtw88: decrease the log level of tx report
Reduce 'failed to get tx report from firmware' dmesg spam.
https://lore.kernel.org/linux-wireless/20210713104524.47101-1-pkshih@realtek.com/
https://cgit.freebsd.org/src/commit/?id=e140d551b78670fbf99c83a59438cb13de50420f
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
diff -Naur a/drivers/net/wireless/realtek/rtw88/tx.c b/drivers/net/wireless/realtek/rtw88/tx.c
--- a/drivers/net/wireless/realtek/rtw88/tx.c 2023-06-30 13:28:40.396914119 -0400
+++ b/drivers/net/wireless/realtek/rtw88/tx.c 2023-06-30 16:57:33.868259352 -0400
@@ -177,14 +177,16 @@
---
drivers/net/wireless/realtek/rtw88/tx.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw88/tx.c b/drivers/net/wireless/realtek/rtw88/tx.c
index 2821119dc930..867a1c44dca1 100644
--- a/drivers/net/wireless/realtek/rtw88/tx.c
+++ b/drivers/net/wireless/realtek/rtw88/tx.c
@@ -177,14 +177,16 @@ void rtw_tx_report_purge_timer(struct timer_list *t)
struct rtw_tx_report *tx_report = &rtwdev->tx_report;
unsigned long flags;
@ -32,3 +38,6 @@ diff -Naur a/drivers/net/wireless/realtek/rtw88/tx.c b/drivers/net/wireless/real
}
void rtw_tx_report_enqueue(struct rtw_dev *rtwdev, struct sk_buff *skb, u8 sn)
--
2.39.2