wifi: rtw88: usb: send Zero length packets if necessary
authorSascha Hauer <s.hauer@pengutronix.de>
Fri, 10 Feb 2023 11:16:31 +0000 (12:16 +0100)
committerKalle Valo <kvalo@kernel.org>
Wed, 15 Feb 2023 07:50:21 +0000 (09:50 +0200)
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
drivers/net/wireless/realtek/rtw88/usb.c

index d9e995544e405645dce50c700e762431012ee256..1a09c9288198a3039f1bf9514ca60443a56fc6b3 100644 (file)
@@ -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);