diff options
Diffstat (limited to 'drivers/usb/serial/usb-serial.h')
-rw-r--r-- | drivers/usb/serial/usb-serial.h | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/drivers/usb/serial/usb-serial.h b/drivers/usb/serial/usb-serial.h index d51fe02a2..b0a0f2459 100644 --- a/drivers/usb/serial/usb-serial.h +++ b/drivers/usb/serial/usb-serial.h @@ -10,6 +10,10 @@ * (at your option) any later version. * * See Documentation/usb/usb-serial.txt for more information on using this driver + * + * (07/19/2000) gkh, pberger, and borchers + * Modifications to allow usb-serial drivers to be modules. + * * */ @@ -35,7 +39,6 @@ struct usb_serial_port { int magic; struct usb_serial *serial; /* pointer back to the owner of this port */ struct tty_struct * tty; /* the coresponding tty for this port */ - unsigned char minor; unsigned char number; char active; /* someone has this device open */ @@ -60,6 +63,7 @@ struct usb_serial { int magic; struct usb_device * dev; struct usb_serial_device_type * type; /* the type of usb serial device this is */ + struct usb_interface * interface; /* the interface for this device */ struct tty_driver * tty_driver; /* the tty_driver for this device */ unsigned char minor; /* the starting minor number for this device */ unsigned char num_ports; /* the number of ports this device has */ @@ -95,6 +99,8 @@ struct usb_serial_device_type { char num_bulk_out; char num_ports; /* number of serial ports this device has */ + struct list_head driver_list; + /* function call to make before accepting driver */ int (*startup) (struct usb_serial *serial); /* return 0 to continue initialization, anything else to abort */ void (*shutdown) (struct usb_serial *serial); @@ -116,30 +122,11 @@ struct usb_serial_device_type { void (*write_bulk_callback)(struct urb *urb); }; - - -extern struct usb_serial_device_type handspring_device; -extern struct usb_serial_device_type whiteheat_fake_device; -extern struct usb_serial_device_type whiteheat_device; -extern struct usb_serial_device_type ftdi_sio_device; -extern struct usb_serial_device_type keyspan_pda_fake_device; -extern struct usb_serial_device_type keyspan_pda_device; -extern struct usb_serial_device_type keyspan_usa18x_pre_device; -extern struct usb_serial_device_type keyspan_usa19_pre_device; -extern struct usb_serial_device_type keyspan_usa19w_pre_device; -extern struct usb_serial_device_type keyspan_usa28_pre_device; -extern struct usb_serial_device_type keyspan_usa28x_pre_device; -extern struct usb_serial_device_type keyspan_usa18x_device; -extern struct usb_serial_device_type keyspan_usa19_device; -extern struct usb_serial_device_type keyspan_usa19w_device; -extern struct usb_serial_device_type keyspan_usa28_device; -extern struct usb_serial_device_type keyspan_usa28x_device; -extern struct usb_serial_device_type zyxel_omninet_device; -extern struct usb_serial_device_type digi_acceleport_device; - +extern int usb_serial_register(struct usb_serial_device_type *new_device); +extern void usb_serial_deregister(struct usb_serial_device_type *device); /* determine if we should include the EzUSB loader functions */ -#if defined(CONFIG_USB_SERIAL_KEYSPAN_PDA) || defined(CONFIG_USB_SERIAL_WHITEHEAT) || defined(CONFIG_USB_SERIAL_KEYSPAN) +#if defined(CONFIG_USB_SERIAL_KEYSPAN_PDA) || defined(CONFIG_USB_SERIAL_WHITEHEAT) || defined(CONFIG_USB_SERIAL_KEYSPAN) || defined(CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE) || defined(CONFIG_USB_SERIAL_WHITEHEAT_MODULE) || defined(CONFIG_USB_SERIAL_KEYSPAN_MODULE) #define USES_EZUSB_FUNCTIONS extern int ezusb_writememory (struct usb_serial *serial, int address, unsigned char *data, int length, __u8 bRequest); extern int ezusb_set_reset (struct usb_serial *serial, unsigned char reset_bit); |