]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.2-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Mar 2023 15:23:37 +0000 (16:23 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Mar 2023 15:23:37 +0000 (16:23 +0100)
added patches:
wifi-rtw88-usb-drop-now-unnecessary-urb-size-check.patch
wifi-rtw88-usb-send-zero-length-packets-if-necessary.patch
wifi-rtw88-usb-set-qsel-correctly.patch

queue-6.2/series
queue-6.2/wifi-rtw88-usb-drop-now-unnecessary-urb-size-check.patch [new file with mode: 0644]
queue-6.2/wifi-rtw88-usb-send-zero-length-packets-if-necessary.patch [new file with mode: 0644]
queue-6.2/wifi-rtw88-usb-set-qsel-correctly.patch [new file with mode: 0644]

index 16dc95866220f2714caea4d3d868008ff920b263..c132f6beebc0095de36eb7c7d0722a17f4a20457 100644 (file)
@@ -5,3 +5,6 @@ vc_screen-don-t-clobber-return-value-in-vcs_read.patch
 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
diff --git a/queue-6.2/wifi-rtw88-usb-drop-now-unnecessary-urb-size-check.patch b/queue-6.2/wifi-rtw88-usb-drop-now-unnecessary-urb-size-check.patch
new file mode 100644 (file)
index 0000000..8458b2f
--- /dev/null
@@ -0,0 +1,50 @@
+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);
+ }
diff --git a/queue-6.2/wifi-rtw88-usb-send-zero-length-packets-if-necessary.patch b/queue-6.2/wifi-rtw88-usb-send-zero-length-packets-if-necessary.patch
new file mode 100644 (file)
index 0000000..99347d8
--- /dev/null
@@ -0,0 +1,32 @@
+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);
diff --git a/queue-6.2/wifi-rtw88-usb-set-qsel-correctly.patch b/queue-6.2/wifi-rtw88-usb-set-qsel-correctly.patch
new file mode 100644 (file)
index 0000000..fbf919a
--- /dev/null
@@ -0,0 +1,35 @@
+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);