mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-13 06:03:31 +00:00
linux.port: add usb_net_pinephone.patch
The PinePhone Modems' CDC Ethernet Interface does not respond if RX/TX queue size is greater 12 (experimentally determined), the default would be 60, meaning 60 RX Bulk URBs are sent at once to the device. issue #4958
This commit is contained in:
parent
9a6423b4ef
commit
5c1b9399b0
23
repos/dde_linux/patches/usb_net_pinephone.patch
Normal file
23
repos/dde_linux/patches/usb_net_pinephone.patch
Normal file
@ -0,0 +1,23 @@
|
||||
The PinePhone Modems' CDC Ethernet Interface does not respond if RX/TX queue size
|
||||
is greater 12 (experimentally determined), the default would be 60, meaning 60
|
||||
RX Bulk URBs are sent at once to the device.
|
||||
|
||||
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
|
||||
index 64a9a80..0a119ba 100644
|
||||
--- a/drivers/net/usb/usbnet.c
|
||||
+++ b/drivers/net/usb/usbnet.c
|
||||
@@ -356,6 +356,14 @@ EXPORT_SYMBOL_GPL(usbnet_skb_return);
|
||||
void usbnet_update_max_qlen(struct usbnet *dev)
|
||||
{
|
||||
enum usb_device_speed speed = dev->udev->speed;
|
||||
+ struct usb_device_descriptor *descr = &dev->udev->descriptor;
|
||||
+
|
||||
+ /* Quectel EG25-G does not respond on queue size > 12 */
|
||||
+ if (descr->idVendor == 0x2c7c && descr->idProduct == 0x0125) {
|
||||
+ printk("Quectel EG25-G detected limiting TX/RX queue size to 12 (from 60)\n");
|
||||
+ dev->rx_qlen = dev->tx_qlen = 12;
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
if (!dev->rx_urb_size || !dev->hard_mtu)
|
||||
goto insanity;
|
@ -1 +1 @@
|
||||
564e03bbd3b6d72497bed4f3267ebdc1c407517b
|
||||
00e8b314800d990be43b16cec7eebc5418245fc2
|
||||
|
@ -12,8 +12,10 @@ DIR(linux) := src/linux
|
||||
PATCH_FILES := i915_irq.patch \
|
||||
iwlwifi_enable_irq_before_pnvm.patch \
|
||||
iwlwifi_limit_rx_bufs.patch \
|
||||
usb_net_pinephone.patch \
|
||||
workqueue_deadlock.patch
|
||||
PATCHES += $(addprefix patches/,$(PATCH_FILES))
|
||||
|
||||
PATCH_OPT(patches/i915_irq.patch) := -p1 -d${DIR(linux)}
|
||||
PATCH_OPT(patches/usb_net_pinephone.patch) := -p1 -d${DIR(linux)}
|
||||
PATCH_OPT(patches/workqueue_deadlock.patch) := -p1 -d${DIR(linux)}
|
||||
|
Loading…
x
Reference in New Issue
Block a user