usb: Increase USB buffer size to match 9x15 buffer sizes
USB S/W on 9x15 is designed to handle 65K packet size for flashless boot and efs-sync functions. Match buffers on 8064 usb host mode driver to achieve better throughput. Change-Id: I6f5b50d08ad4ea59e770e2a3e8ad00d944f05e54 Signed-off-by: Vamsi Krishna <vskrishn@codeaurora.org>
This commit is contained in:
@@ -31,10 +31,10 @@ extern int usb_wwan_resume(struct usb_serial *serial);
|
|||||||
|
|
||||||
/* per port private data */
|
/* per port private data */
|
||||||
|
|
||||||
#define N_IN_URB 4
|
#define N_IN_URB 5
|
||||||
#define N_OUT_URB 4
|
#define N_OUT_URB 5
|
||||||
#define IN_BUFLEN 4096
|
#define IN_BUFLEN 65536
|
||||||
#define OUT_BUFLEN 4096
|
#define OUT_BUFLEN 65536
|
||||||
|
|
||||||
struct usb_wwan_intf_private {
|
struct usb_wwan_intf_private {
|
||||||
spinlock_t susp_lock;
|
spinlock_t susp_lock;
|
||||||
|
|||||||
@@ -410,6 +410,7 @@ int usb_wwan_open(struct tty_struct *tty, struct usb_serial_port *port)
|
|||||||
tty->raw = 1;
|
tty->raw = 1;
|
||||||
tty->real_raw = 1;
|
tty->real_raw = 1;
|
||||||
|
|
||||||
|
set_bit(TTY_NO_WRITE_SPLIT, &tty->flags);
|
||||||
dbg("%s", __func__);
|
dbg("%s", __func__);
|
||||||
|
|
||||||
/* Start reading from the IN endpoint */
|
/* Start reading from the IN endpoint */
|
||||||
@@ -552,7 +553,7 @@ int usb_wwan_startup(struct usb_serial *serial)
|
|||||||
init_usb_anchor(&portdata->delayed);
|
init_usb_anchor(&portdata->delayed);
|
||||||
|
|
||||||
for (j = 0; j < N_IN_URB; j++) {
|
for (j = 0; j < N_IN_URB; j++) {
|
||||||
buffer = (u8 *) __get_free_page(GFP_KERNEL);
|
buffer = kmalloc(IN_BUFLEN, GFP_KERNEL);
|
||||||
if (!buffer)
|
if (!buffer)
|
||||||
goto bail_out_error;
|
goto bail_out_error;
|
||||||
portdata->in_buffer[j] = buffer;
|
portdata->in_buffer[j] = buffer;
|
||||||
@@ -581,8 +582,7 @@ bail_out_error2:
|
|||||||
kfree(portdata->out_buffer[j]);
|
kfree(portdata->out_buffer[j]);
|
||||||
bail_out_error:
|
bail_out_error:
|
||||||
for (j = 0; j < N_IN_URB; j++)
|
for (j = 0; j < N_IN_URB; j++)
|
||||||
if (portdata->in_buffer[j])
|
kfree(portdata->in_buffer[j]);
|
||||||
free_page((unsigned long)portdata->in_buffer[j]);
|
|
||||||
kfree(portdata);
|
kfree(portdata);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -628,8 +628,7 @@ void usb_wwan_release(struct usb_serial *serial)
|
|||||||
|
|
||||||
for (j = 0; j < N_IN_URB; j++) {
|
for (j = 0; j < N_IN_URB; j++) {
|
||||||
usb_free_urb(portdata->in_urbs[j]);
|
usb_free_urb(portdata->in_urbs[j]);
|
||||||
free_page((unsigned long)
|
kfree(portdata->in_buffer[j]);
|
||||||
portdata->in_buffer[j]);
|
|
||||||
portdata->in_urbs[j] = NULL;
|
portdata->in_urbs[j] = NULL;
|
||||||
}
|
}
|
||||||
for (j = 0; j < N_OUT_URB; j++) {
|
for (j = 0; j < N_OUT_URB; j++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user