aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/usb
diff options
context:
space:
mode:
authorJohan Hovold <jhovold@gmail.com>2010-03-17 18:00:37 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2010-05-20 16:21:33 -0400
commitbbcb2b907415a90334521a31a8767cd77462c716 (patch)
tree8ee895f4ee3352a7f57c52c5e99119bc6838edac /include/linux/usb
parent317149c655defedfaf432143b86a720cfc12a424 (diff)
USB: serial: allow drivers to define bulk buffer sizes
Allow drivers to define custom bulk in/out buffer sizes in struct usb_serial_driver. If not set, fall back to the default buffer size which matches the endpoint size. Three drivers are currently freeing the pre-allocated buffers and allocating larger ones to achieve this at port probe (ftdi_sio) or even at port open (ipaq and iuu_phoenix), which needless to say is suboptimal. Signed-off-by: Johan Hovold <jhovold@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include/linux/usb')
-rw-r--r--include/linux/usb/serial.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h
index b7682fed1d9c..ab311dab3383 100644
--- a/include/linux/usb/serial.h
+++ b/include/linux/usb/serial.h
@@ -179,6 +179,8 @@ static inline void usb_set_serial_data(struct usb_serial *serial, void *data)
179 * @id_table: pointer to a list of usb_device_id structures that define all 179 * @id_table: pointer to a list of usb_device_id structures that define all
180 * of the devices this structure can support. 180 * of the devices this structure can support.
181 * @num_ports: the number of different ports this device will have. 181 * @num_ports: the number of different ports this device will have.
182 * @bulk_in_size: bytes to allocate for bulk-in buffer (0 = end-point size)
183 * @bulk_out_size: bytes to allocate for bulk-out buffer (0 = end-point size)
182 * @calc_num_ports: pointer to a function to determine how many ports this 184 * @calc_num_ports: pointer to a function to determine how many ports this
183 * device has dynamically. It will be called after the probe() 185 * device has dynamically. It will be called after the probe()
184 * callback is called, but before attach() 186 * callback is called, but before attach()
@@ -223,6 +225,9 @@ struct usb_serial_driver {
223 struct usb_dynids dynids; 225 struct usb_dynids dynids;
224 int max_in_flight_urbs; 226 int max_in_flight_urbs;
225 227
228 size_t bulk_in_size;
229 size_t bulk_out_size;
230
226 int (*probe)(struct usb_serial *serial, const struct usb_device_id *id); 231 int (*probe)(struct usb_serial *serial, const struct usb_device_id *id);
227 int (*attach)(struct usb_serial *serial); 232 int (*attach)(struct usb_serial *serial);
228 int (*calc_num_ports) (struct usb_serial *serial); 233 int (*calc_num_ports) (struct usb_serial *serial);