mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-22 06:57:51 +00:00
5c1b9399b0
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
24 lines
912 B
Diff
24 lines
912 B
Diff
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;
|