net: usb: qcusbnet: use fixed rx_urb_size for stingray modem
Use fixed rx_urb_size for stingray modem by setting the size in
the xoom_qcnet_probe() because the device has different rx and
tx messages sizes (1500 and 1428 bytes)
Change-Id: Iccd6da38a03e0bdb7ce1b95f9b65a4bf2f9489ea
Signed-off-by: Dmitriy Gruzman <dmitriy.gruzman@motorola.com>
diff --git a/drivers/net/usb/qcusbnet/qcusbnet.c b/drivers/net/usb/qcusbnet/qcusbnet.c
index 1ada40d..8dab627 100644
--- a/drivers/net/usb/qcusbnet/qcusbnet.c
+++ b/drivers/net/usb/qcusbnet/qcusbnet.c
@@ -230,6 +230,18 @@
return 0;
}
+#define XOOM_DOWNLINK_MTU 1500
+static int xoom_qcnet_bind(struct usbnet *usbnet, struct usb_interface *iface)
+{
+ int status = qcnet_bind(usbnet, iface);
+
+ if (!status)
+ usbnet->rx_urb_size = XOOM_DOWNLINK_MTU +
+ usbnet->net->hard_header_len;
+
+ return status;
+}
+
static void qcnet_unbind(struct usbnet *usbnet, struct usb_interface *iface)
{
struct qcusbnet *dev = (struct qcusbnet *)usbnet->data[0];
@@ -563,6 +575,14 @@
.data = 0,
};
+static const struct driver_info xoom_qc_netinfo = {
+ .description = "Xoom QCUSBNet Ethernet Device",
+ .flags = FLAG_ETHER,
+ .bind = xoom_qcnet_bind,
+ .unbind = qcnet_unbind,
+ .data = 0,
+};
+
#define MKVIDPID(v, p) \
{ \
USB_DEVICE(v, p), \
@@ -602,7 +622,7 @@
{
USB_DEVICE_AND_INTERFACE_INFO(0x22B8, 0x2A70, 0xff, 0xfb, 0xff), /* Motorola Xoom */
- .driver_info = (unsigned long)&qc_netinfo
+ .driver_info = (unsigned long)&xoom_qc_netinfo
},
{ }
};