From 524966c9738f010e146c37ef5e4edc89891b8b40 Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Sat, 11 Feb 2023 03:44:34 +0000 Subject: [PATCH 1/2] linux: rtw88: upstream patches --- .../default/linux-122-rtw88-USB-fixes.patch | 231 ++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 packages/linux/patches/default/linux-122-rtw88-USB-fixes.patch diff --git a/packages/linux/patches/default/linux-122-rtw88-USB-fixes.patch b/packages/linux/patches/default/linux-122-rtw88-USB-fixes.patch new file mode 100644 index 0000000000..92baa0acd3 --- /dev/null +++ b/packages/linux/patches/default/linux-122-rtw88-USB-fixes.patch @@ -0,0 +1,231 @@ +From: Sascha Hauer +To: linux-wireless@vger.kernel.org +Cc: Neo Jou , Hans Ulli Kroll , + Ping-Ke Shih , + Yan-Hsuan Chuang , + Kalle Valo , netdev@vger.kernel.org, + linux-kernel@vger.kernel.org, + Martin Blumenstingl , + kernel@pengutronix.de, Alexander Hochbaum , + Da Xue , Po-Hao Huang , + Andreas Henriksson , + Viktor Petrenko , + Sascha Hauer +Subject: [PATCH v2 0/3] wifi: rtw88: USB fixes +Date: Fri, 10 Feb 2023 12:16:29 +0100 +Message-Id: <20230210111632.1985205-1-s.hauer@pengutronix.de> +X-Mailer: git-send-email 2.30.2 +MIME-Version: 1.0 +X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 +X-SA-Exim-Mail-From: sha@pengutronix.de +X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); + SAEximRunCond expanded to false +X-PTX-Original-Recipient: linux-wireless@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-wireless@vger.kernel.org + +This series addresses issues for the recently added RTW88 USB support +reported by Andreas Henriksson and also our customer. + +The hardware can't handle urbs that have a size of multiple of the +bulkout_size (usually 512 bytes). The symptom is that the hardware +stalls completely. The issue can be reproduced by sending a suitably +sized ping packet from the device: + +ping -s 394 + +(It's 394 bytes here on a RTL8822CU and RTL8821CU, the actual size may +differ on other chips, it was 402 bytes on a RTL8723DU) + +Other than that qsel was not set correctly. The sympton here is that +only one of multiple bulk endpoints was used to send data. + +Changes since v1: +- Use URB_ZERO_PACKET to let the USB host controller handle it automatically + rather than working around the issue. + +Sascha Hauer (3): + wifi: rtw88: usb: Set qsel correctly + wifi: rtw88: usb: send Zero length packets if necessary + wifi: rtw88: usb: drop now unnecessary URB size check + + drivers/net/wireless/realtek/rtw88/usb.c | 18 +++--------------- + 1 file changed, 3 insertions(+), 15 deletions(-) +Reported-by: Andreas Henriksson +Tested-by: Andreas Henriksson + +From: Sascha Hauer +To: linux-wireless@vger.kernel.org +Cc: Neo Jou , Hans Ulli Kroll , + Ping-Ke Shih , + Yan-Hsuan Chuang , + Kalle Valo , netdev@vger.kernel.org, + linux-kernel@vger.kernel.org, + Martin Blumenstingl , + kernel@pengutronix.de, Alexander Hochbaum , + Da Xue , Po-Hao Huang , + Andreas Henriksson , + Viktor Petrenko , + Sascha Hauer +Subject: [PATCH v2 1/3] wifi: rtw88: usb: Set qsel correctly +Date: Fri, 10 Feb 2023 12:16:30 +0100 +Message-Id: <20230210111632.1985205-2-s.hauer@pengutronix.de> +X-Mailer: git-send-email 2.30.2 +In-Reply-To: <20230210111632.1985205-1-s.hauer@pengutronix.de> +References: <20230210111632.1985205-1-s.hauer@pengutronix.de> +MIME-Version: 1.0 +X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 +X-SA-Exim-Mail-From: sha@pengutronix.de +X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); + SAEximRunCond expanded to false +X-PTX-Original-Recipient: linux-wireless@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-wireless@vger.kernel.org + +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 +--- + drivers/net/wireless/realtek/rtw88/usb.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c +index 4ef38279b64c9..d9e995544e405 100644 +--- 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_dev *rtwdev, + 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); + +From: Sascha Hauer +To: linux-wireless@vger.kernel.org +Cc: Neo Jou , Hans Ulli Kroll , + Ping-Ke Shih , + Yan-Hsuan Chuang , + Kalle Valo , netdev@vger.kernel.org, + linux-kernel@vger.kernel.org, + Martin Blumenstingl , + kernel@pengutronix.de, Alexander Hochbaum , + Da Xue , Po-Hao Huang , + Andreas Henriksson , + Viktor Petrenko , + Sascha Hauer +Subject: [PATCH v2 2/3] wifi: rtw88: usb: send Zero length packets if + necessary +Date: Fri, 10 Feb 2023 12:16:31 +0100 +Message-Id: <20230210111632.1985205-3-s.hauer@pengutronix.de> +X-Mailer: git-send-email 2.30.2 +In-Reply-To: <20230210111632.1985205-1-s.hauer@pengutronix.de> +References: <20230210111632.1985205-1-s.hauer@pengutronix.de> +MIME-Version: 1.0 +X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 +X-SA-Exim-Mail-From: sha@pengutronix.de +X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); + SAEximRunCond expanded to false +X-PTX-Original-Recipient: linux-wireless@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-wireless@vger.kernel.org + +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 +--- + drivers/net/wireless/realtek/rtw88/usb.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c +index d9e995544e405..1a09c9288198a 100644 +--- 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_dev *rtwdev, u8 qsel, struct sk_buff *s + 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); + +From: Sascha Hauer +To: linux-wireless@vger.kernel.org +Cc: Neo Jou , Hans Ulli Kroll , + Ping-Ke Shih , + Yan-Hsuan Chuang , + Kalle Valo , netdev@vger.kernel.org, + linux-kernel@vger.kernel.org, + Martin Blumenstingl , + kernel@pengutronix.de, Alexander Hochbaum , + Da Xue , Po-Hao Huang , + Andreas Henriksson , + Viktor Petrenko , + Sascha Hauer +Subject: [PATCH v2 3/3] wifi: rtw88: usb: drop now unnecessary URB size check +Date: Fri, 10 Feb 2023 12:16:32 +0100 +Message-Id: <20230210111632.1985205-4-s.hauer@pengutronix.de> +X-Mailer: git-send-email 2.30.2 +In-Reply-To: <20230210111632.1985205-1-s.hauer@pengutronix.de> +References: <20230210111632.1985205-1-s.hauer@pengutronix.de> +MIME-Version: 1.0 +X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 +X-SA-Exim-Mail-From: sha@pengutronix.de +X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); + SAEximRunCond expanded to false +X-PTX-Original-Recipient: linux-wireless@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-wireless@vger.kernel.org + +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 +--- + drivers/net/wireless/realtek/rtw88/usb.c | 15 +-------------- + 1 file changed, 1 insertion(+), 14 deletions(-) + +diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c +index 1a09c9288198a..2a8336b1847a5 100644 +--- 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(struct rtw_dev *rtwdev, u8 *buf, + 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); + } From b2bd49b9f2fa10e96b9d4850cf64613f5cec2d8b Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Sat, 11 Feb 2023 03:54:35 +0000 Subject: [PATCH 2/2] kernel-firmware: update to 20230210 updates to AMD, rtw8 --- packages/linux-firmware/kernel-firmware/package.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/linux-firmware/kernel-firmware/package.mk b/packages/linux-firmware/kernel-firmware/package.mk index 4f24ced32a..6d6557cc62 100644 --- a/packages/linux-firmware/kernel-firmware/package.mk +++ b/packages/linux-firmware/kernel-firmware/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="kernel-firmware" -PKG_VERSION="20230117" -PKG_SHA256="df11e25ba2fb4d5343473757e17a3b4cef599250a26b1f7e0f038850f0cb3d64" +PKG_VERSION="20230210" +PKG_SHA256="6e3d9e8d52cffc4ec0dbe8533a8445328e0524a20f159a5b61c2706f983ce38a" PKG_LICENSE="other" PKG_SITE="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/" PKG_URL="https://cdn.kernel.org/pub/linux/kernel/firmware/linux-firmware-${PKG_VERSION}.tar.xz"