aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/visor.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/serial/visor.c')
-rw-r--r--drivers/usb/serial/visor.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c
index 5ac414bda718..f5d0f64dcc52 100644
--- a/drivers/usb/serial/visor.c
+++ b/drivers/usb/serial/visor.c
@@ -38,8 +38,7 @@
38/* function prototypes for a handspring visor */ 38/* function prototypes for a handspring visor */
39static int visor_open(struct tty_struct *tty, struct usb_serial_port *port, 39static int visor_open(struct tty_struct *tty, struct usb_serial_port *port,
40 struct file *filp); 40 struct file *filp);
41static void visor_close(struct tty_struct *tty, struct usb_serial_port *port, 41static void visor_close(struct usb_serial_port *port);
42 struct file *filp);
43static int visor_write(struct tty_struct *tty, struct usb_serial_port *port, 42static int visor_write(struct tty_struct *tty, struct usb_serial_port *port,
44 const unsigned char *buf, int count); 43 const unsigned char *buf, int count);
45static int visor_write_room(struct tty_struct *tty); 44static int visor_write_room(struct tty_struct *tty);
@@ -48,7 +47,7 @@ static void visor_unthrottle(struct tty_struct *tty);
48static int visor_probe(struct usb_serial *serial, 47static int visor_probe(struct usb_serial *serial,
49 const struct usb_device_id *id); 48 const struct usb_device_id *id);
50static int visor_calc_num_ports(struct usb_serial *serial); 49static int visor_calc_num_ports(struct usb_serial *serial);
51static void visor_shutdown(struct usb_serial *serial); 50static void visor_release(struct usb_serial *serial);
52static void visor_write_bulk_callback(struct urb *urb); 51static void visor_write_bulk_callback(struct urb *urb);
53static void visor_read_bulk_callback(struct urb *urb); 52static void visor_read_bulk_callback(struct urb *urb);
54static void visor_read_int_callback(struct urb *urb); 53static void visor_read_int_callback(struct urb *urb);
@@ -203,7 +202,7 @@ static struct usb_serial_driver handspring_device = {
203 .attach = treo_attach, 202 .attach = treo_attach,
204 .probe = visor_probe, 203 .probe = visor_probe,
205 .calc_num_ports = visor_calc_num_ports, 204 .calc_num_ports = visor_calc_num_ports,
206 .shutdown = visor_shutdown, 205 .release = visor_release,
207 .write = visor_write, 206 .write = visor_write,
208 .write_room = visor_write_room, 207 .write_room = visor_write_room,
209 .write_bulk_callback = visor_write_bulk_callback, 208 .write_bulk_callback = visor_write_bulk_callback,
@@ -228,7 +227,7 @@ static struct usb_serial_driver clie_5_device = {
228 .attach = clie_5_attach, 227 .attach = clie_5_attach,
229 .probe = visor_probe, 228 .probe = visor_probe,
230 .calc_num_ports = visor_calc_num_ports, 229 .calc_num_ports = visor_calc_num_ports,
231 .shutdown = visor_shutdown, 230 .release = visor_release,
232 .write = visor_write, 231 .write = visor_write,
233 .write_room = visor_write_room, 232 .write_room = visor_write_room,
234 .write_bulk_callback = visor_write_bulk_callback, 233 .write_bulk_callback = visor_write_bulk_callback,
@@ -324,8 +323,7 @@ exit:
324} 323}
325 324
326 325
327static void visor_close(struct tty_struct *tty, 326static void visor_close(struct usb_serial_port *port)
328 struct usb_serial_port *port, struct file *filp)
329{ 327{
330 struct visor_private *priv = usb_get_serial_port_data(port); 328 struct visor_private *priv = usb_get_serial_port_data(port);
331 unsigned char *transfer_buffer; 329 unsigned char *transfer_buffer;
@@ -920,7 +918,7 @@ static int clie_5_attach(struct usb_serial *serial)
920 return generic_startup(serial); 918 return generic_startup(serial);
921} 919}
922 920
923static void visor_shutdown(struct usb_serial *serial) 921static void visor_release(struct usb_serial *serial)
924{ 922{
925 struct visor_private *priv; 923 struct visor_private *priv;
926 int i; 924 int i;
@@ -929,10 +927,7 @@ static void visor_shutdown(struct usb_serial *serial)
929 927
930 for (i = 0; i < serial->num_ports; i++) { 928 for (i = 0; i < serial->num_ports; i++) {
931 priv = usb_get_serial_port_data(serial->port[i]); 929 priv = usb_get_serial_port_data(serial->port[i]);
932 if (priv) { 930 kfree(priv);
933 usb_set_serial_port_data(serial->port[i], NULL);
934 kfree(priv);
935 }
936 } 931 }
937} 932}
938 933