summaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/usb-serial.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/serial/usb-serial.h')
-rw-r--r--drivers/usb/serial/usb-serial.h33
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);