drm-amd-display-move-dcn314-domain-power-control-to-dmcub.patch
drm-amd-display-properly-reuse-completion-structure.patch
scripts-tags.sh-fix-incompatibility-with-pcre2.patch
+wifi-rtw88-usb-set-qsel-correctly.patch
+wifi-rtw88-usb-send-zero-length-packets-if-necessary.patch
+wifi-rtw88-usb-drop-now-unnecessary-urb-size-check.patch
--- /dev/null
+From 462c8db6a01160836c68e262d25566f2447148d9 Mon Sep 17 00:00:00 2001
+From: Sascha Hauer <s.hauer@pengutronix.de>
+Date: Fri, 10 Feb 2023 12:16:32 +0100
+Subject: wifi: rtw88: usb: drop now unnecessary URB size check
+
+From: Sascha Hauer <s.hauer@pengutronix.de>
+
+commit 462c8db6a01160836c68e262d25566f2447148d9 upstream.
+
+Now that we send URBs with the URB_ZERO_PACKET flag set we no longer
+need to make sure that the URB sizes are not multiple of the
+bulkout_size. Drop the check.
+
+Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
+Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Kalle Valo <kvalo@kernel.org>
+Link: https://lore.kernel.org/r/20230210111632.1985205-4-s.hauer@pengutronix.de
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/wireless/realtek/rtw88/usb.c | 15 +--------------
+ 1 file changed, 1 insertion(+), 14 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/usb.c
++++ b/drivers/net/wireless/realtek/rtw88/usb.c
+@@ -414,24 +414,11 @@ static int rtw_usb_write_data_rsvd_page(
+ u32 size)
+ {
+ const struct rtw_chip_info *chip = rtwdev->chip;
+- struct rtw_usb *rtwusb;
+ struct rtw_tx_pkt_info pkt_info = {0};
+- u32 len, desclen;
+-
+- rtwusb = rtw_get_usb_priv(rtwdev);
+
+ pkt_info.tx_pkt_size = size;
+ pkt_info.qsel = TX_DESC_QSEL_BEACON;
+-
+- desclen = chip->tx_pkt_desc_sz;
+- len = desclen + size;
+- if (len % rtwusb->bulkout_size == 0) {
+- len += RTW_USB_PACKET_OFFSET_SZ;
+- pkt_info.offset = desclen + RTW_USB_PACKET_OFFSET_SZ;
+- pkt_info.pkt_offset = 1;
+- } else {
+- pkt_info.offset = desclen;
+- }
++ pkt_info.offset = chip->tx_pkt_desc_sz;
+
+ return rtw_usb_write_data(rtwdev, &pkt_info, buf);
+ }
--- /dev/null
+From 07ce9fa6ab0e5e4cb5516a1f7c754ab2758fe5cd Mon Sep 17 00:00:00 2001
+From: Sascha Hauer <s.hauer@pengutronix.de>
+Date: Fri, 10 Feb 2023 12:16:31 +0100
+Subject: wifi: rtw88: usb: send Zero length packets if necessary
+
+From: Sascha Hauer <s.hauer@pengutronix.de>
+
+commit 07ce9fa6ab0e5e4cb5516a1f7c754ab2758fe5cd upstream.
+
+Zero length packets are necessary when sending URBs with size
+multiple of bulkout_size, otherwise the hardware just stalls.
+
+Fixes: a82dfd33d1237 ("wifi: rtw88: Add common USB chip support")
+Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
+Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Kalle Valo <kvalo@kernel.org>
+Link: https://lore.kernel.org/r/20230210111632.1985205-3-s.hauer@pengutronix.de
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/wireless/realtek/rtw88/usb.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/usb.c
++++ b/drivers/net/wireless/realtek/rtw88/usb.c
+@@ -271,6 +271,7 @@ static int rtw_usb_write_port(struct rtw
+ return -ENOMEM;
+
+ usb_fill_bulk_urb(urb, usbd, pipe, skb->data, skb->len, cb, context);
++ urb->transfer_flags |= URB_ZERO_PACKET;
+ ret = usb_submit_urb(urb, GFP_ATOMIC);
+
+ usb_free_urb(urb);
--- /dev/null
+From 7869b834fb07c79933229840c98b02bbb7bd0d75 Mon Sep 17 00:00:00 2001
+From: Sascha Hauer <s.hauer@pengutronix.de>
+Date: Fri, 10 Feb 2023 12:16:30 +0100
+Subject: wifi: rtw88: usb: Set qsel correctly
+
+From: Sascha Hauer <s.hauer@pengutronix.de>
+
+commit 7869b834fb07c79933229840c98b02bbb7bd0d75 upstream.
+
+We have to extract qsel from the skb before doing skb_push() on it,
+otherwise qsel will always be 0.
+
+Fixes: a82dfd33d1237 ("wifi: rtw88: Add common USB chip support")
+Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
+Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Kalle Valo <kvalo@kernel.org>
+Link: https://lore.kernel.org/r/20230210111632.1985205-2-s.hauer@pengutronix.de
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/wireless/realtek/rtw88/usb.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/usb.c
++++ b/drivers/net/wireless/realtek/rtw88/usb.c
+@@ -471,9 +471,9 @@ static int rtw_usb_tx_write(struct rtw_d
+ u8 *pkt_desc;
+ int ep;
+
++ pkt_info->qsel = rtw_usb_tx_queue_mapping_to_qsel(skb);
+ pkt_desc = skb_push(skb, chip->tx_pkt_desc_sz);
+ memset(pkt_desc, 0, chip->tx_pkt_desc_sz);
+- pkt_info->qsel = rtw_usb_tx_queue_mapping_to_qsel(skb);
+ ep = qsel_to_ep(rtwusb, pkt_info->qsel);
+ rtw_tx_fill_tx_desc(pkt_info, skb);
+ rtw_tx_fill_txdesc_checksum(rtwdev, pkt_info, skb->data);