diff options
Diffstat (limited to 'drivers/usb/serial/navman.c')
| -rw-r--r-- | drivers/usb/serial/navman.c | 67 | 
1 files changed, 14 insertions, 53 deletions
diff --git a/drivers/usb/serial/navman.c b/drivers/usb/serial/navman.c index 1f00f243c26..2a97cdc078d 100644 --- a/drivers/usb/serial/navman.c +++ b/drivers/usb/serial/navman.c @@ -14,15 +14,12 @@  #include <linux/gfp.h>  #include <linux/kernel.h> -#include <linux/init.h>  #include <linux/tty.h>  #include <linux/tty_flip.h>  #include <linux/module.h>  #include <linux/usb.h>  #include <linux/usb/serial.h> -static int debug; -  static const struct usb_device_id id_table[] = {  	{ USB_DEVICE(0x0a99, 0x0001) },	/* Talon Technology device */  	{ USB_DEVICE(0x0df7, 0x0900) },	/* Mobile Action i-gotU */ @@ -30,19 +27,10 @@ static const struct usb_device_id id_table[] = {  };  MODULE_DEVICE_TABLE(usb, id_table); -static struct usb_driver navman_driver = { -	.name =		"navman", -	.probe =	usb_serial_probe, -	.disconnect =	usb_serial_disconnect, -	.id_table =	id_table, -	.no_dynamic_id = 	1, -}; -  static void navman_read_int_callback(struct urb *urb)  {  	struct usb_serial_port *port = urb->context;  	unsigned char *data = urb->transfer_buffer; -	struct tty_struct *tty;  	int status = urb->status;  	int result; @@ -54,24 +42,21 @@ static void navman_read_int_callback(struct urb *urb)  	case -ENOENT:  	case -ESHUTDOWN:  		/* this urb is terminated, clean up */ -		dbg("%s - urb shutting down with status: %d", -		    __func__, status); +		dev_dbg(&port->dev, "%s - urb shutting down with status: %d\n", +			__func__, status);  		return;  	default: -		dbg("%s - nonzero urb status received: %d", -		    __func__, status); +		dev_dbg(&port->dev, "%s - nonzero urb status received: %d\n", +			__func__, status);  		goto exit;  	} -	usb_serial_debug_data(debug, &port->dev, __func__, -			      urb->actual_length, data); +	usb_serial_debug_data(&port->dev, __func__, urb->actual_length, data); -	tty = tty_port_tty_get(&port->port); -	if (tty && urb->actual_length) { -		tty_insert_flip_string(tty, data, urb->actual_length); -		tty_flip_buffer_push(tty); +	if (urb->actual_length) { +		tty_insert_flip_string(&port->port, data, urb->actual_length); +		tty_flip_buffer_push(&port->port);  	} -	tty_kref_put(tty);  exit:  	result = usb_submit_urb(urb, GFP_ATOMIC); @@ -85,10 +70,9 @@ static int navman_open(struct tty_struct *tty, struct usb_serial_port *port)  {  	int result = 0; -	dbg("%s - port %d", __func__, port->number); -  	if (port->interrupt_in_urb) { -		dbg("%s - adding interrupt input for treo", __func__); +		dev_dbg(&port->dev, "%s - adding interrupt input for treo\n", +			__func__);  		result = usb_submit_urb(port->interrupt_in_urb, GFP_KERNEL);  		if (result)  			dev_err(&port->dev, @@ -100,16 +84,12 @@ static int navman_open(struct tty_struct *tty, struct usb_serial_port *port)  static void navman_close(struct usb_serial_port *port)  { -	dbg("%s - port %d", __func__, port->number); -  	usb_kill_urb(port->interrupt_in_urb);  }  static int navman_write(struct tty_struct *tty, struct usb_serial_port *port,  			const unsigned char *buf, int count)  { -	dbg("%s - port %d", __func__, port->number); -  	/*  	 * This device can't write any data, only read from the device  	 */ @@ -122,7 +102,6 @@ static struct usb_serial_driver navman_device = {  		.name =		"navman",  	},  	.id_table =		id_table, -	.usb_driver =		&navman_driver,  	.num_ports =		1,  	.open =			navman_open,  	.close = 		navman_close, @@ -130,28 +109,10 @@ static struct usb_serial_driver navman_device = {  	.read_int_callback =	navman_read_int_callback,  }; -static int __init navman_init(void) -{ -	int retval; - -	retval = usb_serial_register(&navman_device); -	if (retval) -		return retval; -	retval = usb_register(&navman_driver); -	if (retval) -		usb_serial_deregister(&navman_device); -	return retval; -} +static struct usb_serial_driver * const serial_drivers[] = { +	&navman_device, NULL +}; -static void __exit navman_exit(void) -{ -	usb_deregister(&navman_driver); -	usb_serial_deregister(&navman_device); -} +module_usb_serial_driver(serial_drivers, id_table); -module_init(navman_init); -module_exit(navman_exit);  MODULE_LICENSE("GPL"); - -module_param(debug, bool, S_IRUGO | S_IWUSR); -MODULE_PARM_DESC(debug, "Debug enabled or not");  | 
