]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/usb/serial/usb-serial.c
USB: serial: allow drivers to define bulk buffer sizes
[mv-sheeva.git] / drivers / usb / serial / usb-serial.c
index f3f65171de38bb93c278b0a779b33c14ca565b7f..538924627eba09218b397fdb70e3e3cdac8f51a1 100644 (file)
@@ -901,7 +901,9 @@ int usb_serial_probe(struct usb_interface *interface,
                        dev_err(&interface->dev, "No free urbs available\n");
                        goto probe_error;
                }
-               buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
+               buffer_size = serial->type->bulk_in_size;
+               if (!buffer_size)
+                       buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
                port->bulk_in_size = buffer_size;
                port->bulk_in_endpointAddress = endpoint->bEndpointAddress;
                port->bulk_in_buffer = kmalloc(buffer_size, GFP_KERNEL);
@@ -927,7 +929,9 @@ int usb_serial_probe(struct usb_interface *interface,
                }
                if (kfifo_alloc(&port->write_fifo, PAGE_SIZE, GFP_KERNEL))
                        goto probe_error;
-               buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
+               buffer_size = serial->type->bulk_out_size;
+               if (!buffer_size)
+                       buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
                port->bulk_out_size = buffer_size;
                port->bulk_out_endpointAddress = endpoint->bEndpointAddress;
                port->bulk_out_buffer = kmalloc(buffer_size, GFP_KERNEL);