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
 	},
 	{ }
 };