[PATCH] USB: move usb-serial.h to include/linux/usb/
authorGreg Kroah-Hartman <gregkh@suse.de>
Wed, 12 Jul 2006 04:22:58 +0000 (21:22 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 12 Jul 2006 23:03:25 +0000 (16:03 -0700)
USB serial outside of the kernel tree can not build properly due to
usb-serial.h being buried down in the source tree.  This patch moves the
location of the file to include/linux/usb and fixes up all of the usb
serial drivers to handle the move properly.

Cc: Sergei Organov <osv@javad.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
39 files changed:
drivers/usb/serial/airprime.c
drivers/usb/serial/anydata.c
drivers/usb/serial/ark3116.c
drivers/usb/serial/belkin_sa.c
drivers/usb/serial/bus.c
drivers/usb/serial/console.c
drivers/usb/serial/cp2101.c
drivers/usb/serial/cyberjack.c
drivers/usb/serial/cypress_m8.c
drivers/usb/serial/digi_acceleport.c
drivers/usb/serial/empeg.c
drivers/usb/serial/ezusb.c
drivers/usb/serial/ftdi_sio.c
drivers/usb/serial/funsoft.c
drivers/usb/serial/garmin_gps.c
drivers/usb/serial/generic.c
drivers/usb/serial/hp4x.c
drivers/usb/serial/io_edgeport.c
drivers/usb/serial/io_ti.c
drivers/usb/serial/ipaq.c
drivers/usb/serial/ipw.c
drivers/usb/serial/ir-usb.c
drivers/usb/serial/keyspan.c
drivers/usb/serial/keyspan_pda.c
drivers/usb/serial/kl5kusb105.c
drivers/usb/serial/kobil_sct.c
drivers/usb/serial/mct_u232.c
drivers/usb/serial/navman.c
drivers/usb/serial/omninet.c
drivers/usb/serial/option.c
drivers/usb/serial/pl2303.c
drivers/usb/serial/safe_serial.c
drivers/usb/serial/sierra.c
drivers/usb/serial/ti_usb_3410_5052.c
drivers/usb/serial/usb-serial.c
drivers/usb/serial/usb-serial.h [deleted file]
drivers/usb/serial/visor.c
drivers/usb/serial/whiteheat.c
include/linux/usb/serial.h [new file with mode: 0644]

index 94b9ba0ff8755f479192573d7971af8462cc8ecd..62082532a8b346359899b2291c59a69a3b7bcfad 100644 (file)
@@ -13,7 +13,7 @@
 #include <linux/tty.h>
 #include <linux/module.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 static struct usb_device_id id_table [] = {
        { USB_DEVICE(0x0c88, 0x17da) }, /* Kyocera Wireless KPC650/Passport */
index dadf2838f9429ce99af0c8b27a9ba94825f984e4..01843ef8c11edbc57dd42c729f9844566e59510a 100644 (file)
@@ -13,7 +13,7 @@
 #include <linux/tty.h>
 #include <linux/module.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 static struct usb_device_id id_table [] = {
        { USB_DEVICE(0x16d5, 0x6501) }, /* AirData CDMA device */
index 8dec796222a0ac8fe8210b125a45227dc9ead4ad..970d9ef0a7a5cce77eadc5b9d09a5ec6c2cc798f 100644 (file)
@@ -21,7 +21,7 @@
 #include <linux/tty.h>
 #include <linux/module.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 
 static int debug;
index 3faa7aa0111afa4826f2f551312fb171b243ead8..70ece9e01ce4a9372f48947889237a0e42891468 100644 (file)
@@ -74,7 +74,7 @@
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 #include "belkin_sa.h"
 
 static int debug;
index f2d993b70c18250cf51a8e87f7dfe4670f8d900b..6542f220468f7d0e1207caeb883f8f8c06fa3a7f 100644 (file)
@@ -13,7 +13,7 @@
 #include <linux/tty.h>
 #include <linux/module.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 static int usb_serial_device_match (struct device *dev, struct device_driver *drv)
 {
index 3d456b32c3166e5e02d756b64c8564f8b713eb9e..3a9073dbfe6a40c4363f792a8534787e0495bdda 100644 (file)
 #include <linux/tty.h>
 #include <linux/console.h>
 #include <linux/usb.h>
+#include <linux/usb/serial.h>
 
 static int debug;
 
-#include "usb-serial.h"
-
 struct usbcons_info {
        int                     magic;
        int                     break_flag;
index df0a4f98b4ae6487ede58b83eb14d17b6927a3b1..486c7411b9a7572f3e573e494d2f903cd935e342 100644 (file)
@@ -26,7 +26,7 @@
 #include <linux/moduleparam.h>
 #include <linux/usb.h>
 #include <asm/uaccess.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 /*
  * Version Information
index 49b51ab0d4cbae9f8d3a2ab5c36885885b0eb612..6286aba86fae2340beaed87c5f2a970050053939 100644 (file)
@@ -39,7 +39,7 @@
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 #define CYBERJACK_LOCAL_BUF_SIZE 32
 
index 4ff2dfb299bd9a1281b8fb70179ecf13a76f5984..ee70fddcab6031a8f1c045da4e71c09b3c4d1f9b 100644 (file)
 #include <linux/moduleparam.h>
 #include <linux/spinlock.h>
 #include <linux/usb.h>
+#include <linux/usb/serial.h>
 #include <linux/serial.h>
 #include <linux/delay.h>
 #include <asm/uaccess.h>
 
-#include "usb-serial.h"
 #include "cypress_m8.h"
 
 
index 6953d3ef5738069aea3ab3ae35caabab0c549b0b..9b225183fc7a4ccc091b2b463a514b4a3b89baf7 100644 (file)
 #include <asm/uaccess.h>
 #include <linux/usb.h>
 #include <linux/wait.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 /* Defines */
 
index 1e2b31eeb4973fc9433d51519cd215769d4766ef..daafe405d86d628a956836c288b4bf8bd67f2c37 100644 (file)
@@ -62,7 +62,7 @@
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 static int debug;
 
index debc3b0f96629c28c6eb9ed05f09f04215d116c5..5169c2d154abff4e3fd1dc5438a65980df1919a3 100644 (file)
@@ -15,7 +15,7 @@
 #include <linux/tty.h>
 #include <linux/module.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 /* EZ-USB Control and Status Register.  Bit 0 controls 8051 reset */
 #define CPUCS_REG    0x7F92
index 0b9baaf0da90c695a9b216c15a1766c47a6c51ea..b458aedc5fb6ae541166fc8f66da7cc91f5cb22f 100644 (file)
 #include <asm/uaccess.h>
 #include <linux/usb.h>
 #include <linux/serial.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 #include "ftdi_sio.h"
 
 /*
index 803721b97e2e0746079b87f2536f66d3d2e902b2..77b977206a8c09186d1d8e42203e40c4774ad790 100644 (file)
@@ -13,7 +13,7 @@
 #include <linux/tty.h>
 #include <linux/module.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 static struct usb_device_id id_table [] = {
        { USB_DEVICE(0x1404, 0xcddc) },
index 1f5d1620baa12180b55d1ddea0131333ec2c8cce..727852634be9c91526419fe243b6b009382d69fc 100644 (file)
@@ -35,6 +35,7 @@
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
+#include <linux/usb/serial.h>
 
 /* the mode to be set when the port ist opened */
 static int initial_mode = 1;
@@ -42,8 +43,6 @@ static int initial_mode = 1;
 /* debug flag */
 static int debug = 0;
 
-#include "usb-serial.h"
-
 #define GARMIN_VENDOR_ID             0x091E
 
 /*
index 99872e13ba2dcc50f0f5a00f302197c0b6d8ac30..17271355639397be219a44c2e3c4fe75f13bd7f2 100644 (file)
@@ -17,8 +17,8 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/usb.h>
+#include <linux/usb/serial.h>
 #include <asm/uaccess.h>
-#include "usb-serial.h"
 
 static int debug;
 
index 7e06358b03109015baf2adb080aff6ad0623521d..ebcac701b069a36bb94558379f8d8c390bba78b0 100644 (file)
@@ -17,7 +17,7 @@
 #include <linux/tty.h>
 #include <linux/module.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 /*
  * Version Information
index bd2c05dac2a92953884644dc2717536093213f1d..c49976c3ad52cf7924aaf07ac3f208a5005dfc98 100644 (file)
@@ -44,7 +44,7 @@
 #include <linux/wait.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 #include "io_edgeport.h"
 #include "io_ionsp.h"          /* info for the iosp messages */
 #include "io_16654.h"          /* 16654 UART defines */
index 723a12ae87b5db65e048d36c6efce4826897bd6d..17c5b1d2311a83e22cc09f30ef4d5b60d3c25244 100644 (file)
@@ -39,8 +39,8 @@
 #include <asm/uaccess.h>
 #include <asm/semaphore.h>
 #include <linux/usb.h>
+#include <linux/usb/serial.h>
 
-#include "usb-serial.h"
 #include "io_16654.h"
 #include "io_usbvend.h"
 #include "io_ti.h"
index 65beea6e54d194df6b76099a867f75c5d217f2a1..59c5d999009abfbbe31b2c58d3715355c9066d71 100644 (file)
@@ -55,7 +55,7 @@
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 #include "ipaq.h"
 
 #define KP_RETRIES     100
index 4d5275e4dead96a7ce782d1d0397c32603be0d23..87306cb6f9f5a065c6ead79b10e60b77b76a6f2a 100644 (file)
@@ -46,8 +46,8 @@
 #include <linux/module.h>
 #include <linux/spinlock.h>
 #include <linux/usb.h>
+#include <linux/usb/serial.h>
 #include <asm/uaccess.h>
-#include "usb-serial.h"
 
 /*
  * Version Information
index 2cf1fed3de43eb8a48d594e71624d4cd14d63692..1738b0b6a376dd90e41a1fadf8a3486eff6f0fac 100644 (file)
@@ -57,7 +57,7 @@
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 /*
  * Version Information
index d7c58f1bc960ddb364b8a967bc7f47dbaecea726..015ad6cc1bbb6418613d8fed60992bf49e8157c4 100644 (file)
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 #include "keyspan.h"
 
 static int debug;
index 03ab3c0f3cce26e3f70293d37ab1ba123ff3bcfd..49b8dc039d1fef8f68aca71fee6efdb02082f458 100644 (file)
@@ -78,6 +78,7 @@
 #include <linux/workqueue.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
+#include <linux/usb/serial.h>
 
 static int debug;
 
@@ -107,8 +108,6 @@ struct ezusb_hex_record {
 #include "xircom_pgs_fw.h"
 #endif
 
-#include "usb-serial.h"
-
 /*
  * Version Information
  */
index b45ff3e7ab40f9fcca0d7216d033984ed91787aa..2a2f3e2da0553a3b3488fcb0a196a3a13953efb8 100644 (file)
@@ -55,7 +55,7 @@
 #include <linux/module.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 #include "kl5kusb105.h"
 
 static int debug;
index 4577333747729576672ac2028216bc46f6f30671..d50dce03495819f4280f815285a89214be2a3e88 100644 (file)
@@ -46,8 +46,8 @@
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
+#include <linux/usb/serial.h>
 #include <linux/ioctl.h>
-#include "usb-serial.h"
 #include "kobil_sct.h"
 
 static int debug;
index ca05d3275f3e01170692dd18736c99bcf98d52c3..f4d4305c2c026fa2099faaef26c5ae80d30a8884 100644 (file)
@@ -75,7 +75,7 @@
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 #include "mct_u232.h"
 
 /*
index 7f544081032e8832de68109613ed9386ad21a4fd..ac3f8b5d2c495f931739eee3ee9d3509c694f44a 100644 (file)
@@ -14,7 +14,7 @@
 #include <linux/tty_flip.h>
 #include <linux/module.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 static int debug;
 
index cfb711a21a45e61f0bae25c4223ac88d26b7f6e2..e49f40913c27550e0c121c8d01bdf8ef909d0ae7 100644 (file)
@@ -46,7 +46,7 @@
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 static int debug;
 
index 96e641941e500c6d0f80b515a5aea01e50a53f24..f0530c1d7b7a274ca7a2c69bc8a33df199a9f6c1 100644 (file)
@@ -65,7 +65,7 @@
 #include <linux/tty_flip.h>
 #include <linux/module.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 /* Function prototypes */
 static int  option_open(struct usb_serial_port *port, struct file *filp);
index 559330eb3126dbbf9c145f186f88af5df5b13b6d..259db31b65c194b6a2e4a19d76fdb47845b3e517 100644 (file)
@@ -27,7 +27,7 @@
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 #include "pl2303.h"
 
 /*
index 897d8447252b522c77c8dc741a02f191d3b2ad38..789771ecdb11013a168ffc5fa0157474ab4538dc 100644 (file)
@@ -71,7 +71,7 @@
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 
 #ifndef CONFIG_USB_SAFE_PADDED
index 8da056ae64dd70d4e065dd0d4a92107b5f4b4d19..d29638daa987fb9a2f37f58a23caccf1a1b4f587 100644 (file)
@@ -14,7 +14,7 @@
 #include <linux/tty.h>
 #include <linux/module.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 
 static struct usb_device_id id_table [] = {
        { USB_DEVICE(0x1199, 0x0018) }, /* Sierra Wireless MC5720 */
index a9afff31a9210b2dd6e8c512c0f485a130e30d7c..ac9b8ee52d4406b67761be94bff26efaa9d4ab87 100644 (file)
@@ -83,8 +83,8 @@
 #include <asm/uaccess.h>
 #include <asm/semaphore.h>
 #include <linux/usb.h>
+#include <linux/usb/serial.h>
 
-#include "usb-serial.h"
 #include "ti_usb_3410_5052.h"
 #include "ti_fw_3410.h"                /* firmware image for 3410 */
 #include "ti_fw_5052.h"                /* firmware image for 5052 */
index 5be79cf06fa98ca75fa6e97ca28c9d6d52a4cc8d..12c1694d322ef3fa55650a0950c97779df1f68d4 100644 (file)
@@ -31,7 +31,7 @@
 #include <linux/smp_lock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 #include "pl2303.h"
 
 /*
diff --git a/drivers/usb/serial/usb-serial.h b/drivers/usb/serial/usb-serial.h
deleted file mode 100644 (file)
index 0f2802a..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * USB Serial Converter driver
- *
- *     Copyright (C) 1999 - 2005
- *         Greg Kroah-Hartman (greg@kroah.com)
- *
- *     This program is free software; you can redistribute it and/or modify
- *     it under the terms of the GNU General Public License as published by
- *     the Free Software Foundation; either version 2 of the License.
- *
- */
-
-
-#ifndef __LINUX_USB_SERIAL_H
-#define __LINUX_USB_SERIAL_H
-
-#include <linux/kref.h>
-#include <linux/mutex.h>
-
-#define SERIAL_TTY_MAJOR       188     /* Nice legal number now */
-#define SERIAL_TTY_MINORS      255     /* loads of devices :) */
-
-#define MAX_NUM_PORTS          8       /* The maximum number of ports one device can grab at once */
-
-/* parity check flag */
-#define RELEVANT_IFLAG(iflag)  (iflag & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK))
-
-/**
- * usb_serial_port: structure for the specific ports of a device.
- * @serial: pointer back to the struct usb_serial owner of this port.
- * @tty: pointer to the corresponding tty for this port.
- * @lock: spinlock to grab when updating portions of this structure.
- * @mutex: mutex used to synchronize serial_open() and serial_close()
- *     access for this port.
- * @number: the number of the port (the minor number).
- * @interrupt_in_buffer: pointer to the interrupt in buffer for this port.
- * @interrupt_in_urb: pointer to the interrupt in struct urb for this port.
- * @interrupt_in_endpointAddress: endpoint address for the interrupt in pipe
- *     for this port.
- * @interrupt_out_buffer: pointer to the interrupt out buffer for this port.
- * @interrupt_out_size: the size of the interrupt_out_buffer, in bytes.
- * @interrupt_out_urb: pointer to the interrupt out struct urb for this port.
- * @interrupt_out_endpointAddress: endpoint address for the interrupt out pipe
- *     for this port.
- * @bulk_in_buffer: pointer to the bulk in buffer for this port.
- * @read_urb: pointer to the bulk in struct urb for this port.
- * @bulk_in_endpointAddress: endpoint address for the bulk in pipe for this
- *     port.
- * @bulk_out_buffer: pointer to the bulk out buffer for this port.
- * @bulk_out_size: the size of the bulk_out_buffer, in bytes.
- * @write_urb: pointer to the bulk out struct urb for this port.
- * @bulk_out_endpointAddress: endpoint address for the bulk out pipe for this
- *     port.
- * @write_wait: a wait_queue_head_t used by the port.
- * @work: work queue entry for the line discipline waking up.
- * @open_count: number of times this port has been opened.
- *
- * This structure is used by the usb-serial core and drivers for the specific
- * ports of a device.
- */
-struct usb_serial_port {
-       struct usb_serial *     serial;
-       struct tty_struct *     tty;
-       spinlock_t              lock;
-       struct mutex            mutex;
-       unsigned char           number;
-
-       unsigned char *         interrupt_in_buffer;
-       struct urb *            interrupt_in_urb;
-       __u8                    interrupt_in_endpointAddress;
-
-       unsigned char *         interrupt_out_buffer;
-       int                     interrupt_out_size;
-       struct urb *            interrupt_out_urb;
-       __u8                    interrupt_out_endpointAddress;
-
-       unsigned char *         bulk_in_buffer;
-       int                     bulk_in_size;
-       struct urb *            read_urb;
-       __u8                    bulk_in_endpointAddress;
-
-       unsigned char *         bulk_out_buffer;
-       int                     bulk_out_size;
-       struct urb *            write_urb;
-       int                     write_urb_busy;
-       __u8                    bulk_out_endpointAddress;
-
-       wait_queue_head_t       write_wait;
-       struct work_struct      work;
-       int                     open_count;
-       struct device           dev;
-};
-#define to_usb_serial_port(d) container_of(d, struct usb_serial_port, dev)
-
-/* get and set the port private data pointer helper functions */
-static inline void *usb_get_serial_port_data (struct usb_serial_port *port)
-{
-       return dev_get_drvdata(&port->dev);
-}
-
-static inline void usb_set_serial_port_data (struct usb_serial_port *port, void *data)
-{
-       dev_set_drvdata(&port->dev, data);
-}
-
-/**
- * usb_serial - structure used by the usb-serial core for a device
- * @dev: pointer to the struct usb_device for this device
- * @type: pointer to the struct usb_serial_driver for this device
- * @interface: pointer to the struct usb_interface for this device
- * @minor: the starting minor number for this device
- * @num_ports: the number of ports this device has
- * @num_interrupt_in: number of interrupt in endpoints we have
- * @num_interrupt_out: number of interrupt out endpoints we have
- * @num_bulk_in: number of bulk in endpoints we have
- * @num_bulk_out: number of bulk out endpoints we have
- * @port: array of struct usb_serial_port structures for the different ports.
- * @private: place to put any driver specific information that is needed.  The
- *     usb-serial driver is required to manage this data, the usb-serial core
- *     will not touch this.  Use usb_get_serial_data() and
- *     usb_set_serial_data() to access this.
- */
-struct usb_serial {
-       struct usb_device *             dev;
-       struct usb_serial_driver *      type;
-       struct usb_interface *          interface;
-       unsigned char                   minor;
-       unsigned char                   num_ports;
-       unsigned char                   num_port_pointers;
-       char                            num_interrupt_in;
-       char                            num_interrupt_out;
-       char                            num_bulk_in;
-       char                            num_bulk_out;
-       struct usb_serial_port *        port[MAX_NUM_PORTS];
-       struct kref                     kref;
-       void *                          private;
-};
-#define to_usb_serial(d) container_of(d, struct usb_serial, kref)
-
-#define NUM_DONT_CARE  (-1)
-
-/* get and set the serial private data pointer helper functions */
-static inline void *usb_get_serial_data (struct usb_serial *serial)
-{
-       return serial->private;
-}
-
-static inline void usb_set_serial_data (struct usb_serial *serial, void *data)
-{
-       serial->private = data;
-}
-
-/**
- * usb_serial_driver - describes a usb serial driver
- * @description: pointer to a string that describes this driver.  This string used
- *     in the syslog messages when a device is inserted or removed.
- * @id_table: pointer to a list of usb_device_id structures that define all
- *     of the devices this structure can support.
- * @num_interrupt_in: the number of interrupt in endpoints this device will
- *     have.
- * @num_interrupt_out: the number of interrupt out endpoints this device will
- *     have.
- * @num_bulk_in: the number of bulk in endpoints this device will have.
- * @num_bulk_out: the number of bulk out endpoints this device will have.
- * @num_ports: the number of different ports this device will have.
- * @calc_num_ports: pointer to a function to determine how many ports this
- *     device has dynamically.  It will be called after the probe()
- *     callback is called, but before attach()
- * @probe: pointer to the driver's probe function.
- *     This will be called when the device is inserted into the system,
- *     but before the device has been fully initialized by the usb_serial
- *     subsystem.  Use this function to download any firmware to the device,
- *     or any other early initialization that might be needed.
- *     Return 0 to continue on with the initialization sequence.  Anything 
- *     else will abort it.
- * @attach: pointer to the driver's attach function.
- *     This will be called when the struct usb_serial structure is fully set
- *     set up.  Do any local initialization of the device, or any private
- *     memory structure allocation at this point in time.
- * @shutdown: pointer to the driver's shutdown function.  This will be
- *     called when the device is removed from the system.
- *
- * This structure is defines a USB Serial driver.  It provides all of
- * the information that the USB serial core code needs.  If the function
- * pointers are defined, then the USB serial core code will call them when
- * the corresponding tty port functions are called.  If they are not
- * called, the generic serial function will be used instead.
- *
- * The driver.owner field should be set to the module owner of this driver.
- * The driver.name field should be set to the name of this driver (remember
- * it will show up in sysfs, so it needs to be short and to the point.
- * Useing the module name is a good idea.)
- */
-struct usb_serial_driver {
-       const char *description;
-       const struct usb_device_id *id_table;
-       char    num_interrupt_in;
-       char    num_interrupt_out;
-       char    num_bulk_in;
-       char    num_bulk_out;
-       char    num_ports;
-
-       struct list_head        driver_list;
-       struct device_driver    driver;
-
-       int (*probe) (struct usb_serial *serial, const struct usb_device_id *id);
-       int (*attach) (struct usb_serial *serial);
-       int (*calc_num_ports) (struct usb_serial *serial);
-
-       void (*shutdown) (struct usb_serial *serial);
-
-       int (*port_probe) (struct usb_serial_port *port);
-       int (*port_remove) (struct usb_serial_port *port);
-
-       /* serial function calls */
-       int  (*open)            (struct usb_serial_port *port, struct file * filp);
-       void (*close)           (struct usb_serial_port *port, struct file * filp);
-       int  (*write)           (struct usb_serial_port *port, const unsigned char *buf, int count);
-       int  (*write_room)      (struct usb_serial_port *port);
-       int  (*ioctl)           (struct usb_serial_port *port, struct file * file, unsigned int cmd, unsigned long arg);
-       void (*set_termios)     (struct usb_serial_port *port, struct termios * old);
-       void (*break_ctl)       (struct usb_serial_port *port, int break_state);
-       int  (*chars_in_buffer) (struct usb_serial_port *port);
-       void (*throttle)        (struct usb_serial_port *port);
-       void (*unthrottle)      (struct usb_serial_port *port);
-       int  (*tiocmget)        (struct usb_serial_port *port, struct file *file);
-       int  (*tiocmset)        (struct usb_serial_port *port, struct file *file, unsigned int set, unsigned int clear);
-
-       void (*read_int_callback)(struct urb *urb, struct pt_regs *regs);
-       void (*write_int_callback)(struct urb *urb, struct pt_regs *regs);
-       void (*read_bulk_callback)(struct urb *urb, struct pt_regs *regs);
-       void (*write_bulk_callback)(struct urb *urb, struct pt_regs *regs);
-};
-#define to_usb_serial_driver(d) container_of(d, struct usb_serial_driver, driver)
-
-extern int  usb_serial_register(struct usb_serial_driver *driver);
-extern void usb_serial_deregister(struct usb_serial_driver *driver);
-extern void usb_serial_port_softint(struct usb_serial_port *port);
-
-extern int usb_serial_probe(struct usb_interface *iface, const struct usb_device_id *id);
-extern void usb_serial_disconnect(struct usb_interface *iface);
-
-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);
-
-/* USB Serial console functions */
-#ifdef CONFIG_USB_SERIAL_CONSOLE
-extern void usb_serial_console_init (int debug, int minor);
-extern void usb_serial_console_exit (void);
-extern void usb_serial_console_disconnect(struct usb_serial *serial);
-#else
-static inline void usb_serial_console_init (int debug, int minor) { }
-static inline void usb_serial_console_exit (void) { }
-static inline void usb_serial_console_disconnect(struct usb_serial *serial) {}
-#endif
-
-/* Functions needed by other parts of the usbserial core */
-extern struct usb_serial *usb_serial_get_by_index (unsigned int minor);
-extern void usb_serial_put(struct usb_serial *serial);
-extern int usb_serial_generic_open (struct usb_serial_port *port, struct file *filp);
-extern int usb_serial_generic_write (struct usb_serial_port *port, const unsigned char *buf, int count);
-extern void usb_serial_generic_close (struct usb_serial_port *port, struct file *filp);
-extern int usb_serial_generic_write_room (struct usb_serial_port *port);
-extern int usb_serial_generic_chars_in_buffer (struct usb_serial_port *port);
-extern void usb_serial_generic_read_bulk_callback (struct urb *urb, struct pt_regs *regs);
-extern void usb_serial_generic_write_bulk_callback (struct urb *urb, struct pt_regs *regs);
-extern void usb_serial_generic_shutdown (struct usb_serial *serial);
-extern int usb_serial_generic_register (int debug);
-extern void usb_serial_generic_deregister (void);
-
-extern int usb_serial_bus_register (struct usb_serial_driver *device);
-extern void usb_serial_bus_deregister (struct usb_serial_driver *device);
-
-extern struct usb_serial_driver usb_serial_generic_device;
-extern struct bus_type usb_serial_bus_type;
-extern struct tty_driver *usb_serial_tty_driver;
-
-static inline void usb_serial_debug_data(int debug,
-                                        struct device *dev,
-                                        const char *function, int size,
-                                        const unsigned char *data)
-{
-       int i;
-
-       if (debug) {
-               dev_printk(KERN_DEBUG, dev, "%s - length = %d, data = ", function, size);
-               for (i = 0; i < size; ++i)
-                       printk ("%.2x ", data[i]);
-               printk ("\n");
-       }
-}
-
-/* Use our own dbg macro */
-#undef dbg
-#define dbg(format, arg...) do { if (debug) printk(KERN_DEBUG "%s: " format "\n" , __FILE__ , ## arg); } while (0)
-
-
-
-#endif /* ifdef __LINUX_USB_SERIAL_H */
-
index 32c3c6288985c2d0d47b70b21bb0f3719ce54fd1..88949f7884ca112ded81315d1e11cda8dcb261f2 100644 (file)
@@ -25,7 +25,7 @@
 #include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <linux/usb.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 #include "visor.h"
 
 /*
index 540438c3f381ad7d69ae2f5044150277ae86a73e..6e6c7934be32f819a08286e474e5ec31bd98fd4e 100644 (file)
@@ -79,7 +79,7 @@
 #include <linux/usb.h>
 #include <linux/serial_reg.h>
 #include <linux/serial.h>
-#include "usb-serial.h"
+#include <linux/usb/serial.h>
 #include "whiteheat_fw.h"              /* firmware for the ConnectTech WhiteHEAT device */
 #include "whiteheat.h"                 /* WhiteHEAT specific commands */
 
diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h
new file mode 100644 (file)
index 0000000..91c983e
--- /dev/null
@@ -0,0 +1,300 @@
+/*
+ * USB Serial Converter stuff
+ *
+ *     Copyright (C) 1999 - 2005
+ *         Greg Kroah-Hartman (greg@kroah.com)
+ *
+ *     This program is free software; you can redistribute it and/or modify
+ *     it under the terms of the GNU General Public License as published by
+ *     the Free Software Foundation; version 2 of the License.
+ *
+ */
+
+
+#ifndef __LINUX_USB_SERIAL_H
+#define __LINUX_USB_SERIAL_H
+
+#include <linux/kref.h>
+#include <linux/mutex.h>
+
+#define SERIAL_TTY_MAJOR       188     /* Nice legal number now */
+#define SERIAL_TTY_MINORS      255     /* loads of devices :) */
+
+#define MAX_NUM_PORTS          8       /* The maximum number of ports one device can grab at once */
+
+/* parity check flag */
+#define RELEVANT_IFLAG(iflag)  (iflag & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK))
+
+/**
+ * usb_serial_port: structure for the specific ports of a device.
+ * @serial: pointer back to the struct usb_serial owner of this port.
+ * @tty: pointer to the corresponding tty for this port.
+ * @lock: spinlock to grab when updating portions of this structure.
+ * @mutex: mutex used to synchronize serial_open() and serial_close()
+ *     access for this port.
+ * @number: the number of the port (the minor number).
+ * @interrupt_in_buffer: pointer to the interrupt in buffer for this port.
+ * @interrupt_in_urb: pointer to the interrupt in struct urb for this port.
+ * @interrupt_in_endpointAddress: endpoint address for the interrupt in pipe
+ *     for this port.
+ * @interrupt_out_buffer: pointer to the interrupt out buffer for this port.
+ * @interrupt_out_size: the size of the interrupt_out_buffer, in bytes.
+ * @interrupt_out_urb: pointer to the interrupt out struct urb for this port.
+ * @interrupt_out_endpointAddress: endpoint address for the interrupt out pipe
+ *     for this port.
+ * @bulk_in_buffer: pointer to the bulk in buffer for this port.
+ * @read_urb: pointer to the bulk in struct urb for this port.
+ * @bulk_in_endpointAddress: endpoint address for the bulk in pipe for this
+ *     port.
+ * @bulk_out_buffer: pointer to the bulk out buffer for this port.
+ * @bulk_out_size: the size of the bulk_out_buffer, in bytes.
+ * @write_urb: pointer to the bulk out struct urb for this port.
+ * @bulk_out_endpointAddress: endpoint address for the bulk out pipe for this
+ *     port.
+ * @write_wait: a wait_queue_head_t used by the port.
+ * @work: work queue entry for the line discipline waking up.
+ * @open_count: number of times this port has been opened.
+ *
+ * This structure is used by the usb-serial core and drivers for the specific
+ * ports of a device.
+ */
+struct usb_serial_port {
+       struct usb_serial *     serial;
+       struct tty_struct *     tty;
+       spinlock_t              lock;
+       struct mutex            mutex;
+       unsigned char           number;
+
+       unsigned char *         interrupt_in_buffer;
+       struct urb *            interrupt_in_urb;
+       __u8                    interrupt_in_endpointAddress;
+
+       unsigned char *         interrupt_out_buffer;
+       int                     interrupt_out_size;
+       struct urb *            interrupt_out_urb;
+       __u8                    interrupt_out_endpointAddress;
+
+       unsigned char *         bulk_in_buffer;
+       int                     bulk_in_size;
+       struct urb *            read_urb;
+       __u8                    bulk_in_endpointAddress;
+
+       unsigned char *         bulk_out_buffer;
+       int                     bulk_out_size;
+       struct urb *            write_urb;
+       int                     write_urb_busy;
+       __u8                    bulk_out_endpointAddress;
+
+       wait_queue_head_t       write_wait;
+       struct work_struct      work;
+       int                     open_count;
+       struct device           dev;
+};
+#define to_usb_serial_port(d) container_of(d, struct usb_serial_port, dev)
+
+/* get and set the port private data pointer helper functions */
+static inline void *usb_get_serial_port_data (struct usb_serial_port *port)
+{
+       return dev_get_drvdata(&port->dev);
+}
+
+static inline void usb_set_serial_port_data (struct usb_serial_port *port, void *data)
+{
+       dev_set_drvdata(&port->dev, data);
+}
+
+/**
+ * usb_serial - structure used by the usb-serial core for a device
+ * @dev: pointer to the struct usb_device for this device
+ * @type: pointer to the struct usb_serial_driver for this device
+ * @interface: pointer to the struct usb_interface for this device
+ * @minor: the starting minor number for this device
+ * @num_ports: the number of ports this device has
+ * @num_interrupt_in: number of interrupt in endpoints we have
+ * @num_interrupt_out: number of interrupt out endpoints we have
+ * @num_bulk_in: number of bulk in endpoints we have
+ * @num_bulk_out: number of bulk out endpoints we have
+ * @port: array of struct usb_serial_port structures for the different ports.
+ * @private: place to put any driver specific information that is needed.  The
+ *     usb-serial driver is required to manage this data, the usb-serial core
+ *     will not touch this.  Use usb_get_serial_data() and
+ *     usb_set_serial_data() to access this.
+ */
+struct usb_serial {
+       struct usb_device *             dev;
+       struct usb_serial_driver *      type;
+       struct usb_interface *          interface;
+       unsigned char                   minor;
+       unsigned char                   num_ports;
+       unsigned char                   num_port_pointers;
+       char                            num_interrupt_in;
+       char                            num_interrupt_out;
+       char                            num_bulk_in;
+       char                            num_bulk_out;
+       struct usb_serial_port *        port[MAX_NUM_PORTS];
+       struct kref                     kref;
+       void *                          private;
+};
+#define to_usb_serial(d) container_of(d, struct usb_serial, kref)
+
+#define NUM_DONT_CARE  (-1)
+
+/* get and set the serial private data pointer helper functions */
+static inline void *usb_get_serial_data (struct usb_serial *serial)
+{
+       return serial->private;
+}
+
+static inline void usb_set_serial_data (struct usb_serial *serial, void *data)
+{
+       serial->private = data;
+}
+
+/**
+ * usb_serial_driver - describes a usb serial driver
+ * @description: pointer to a string that describes this driver.  This string used
+ *     in the syslog messages when a device is inserted or removed.
+ * @id_table: pointer to a list of usb_device_id structures that define all
+ *     of the devices this structure can support.
+ * @num_interrupt_in: the number of interrupt in endpoints this device will
+ *     have.
+ * @num_interrupt_out: the number of interrupt out endpoints this device will
+ *     have.
+ * @num_bulk_in: the number of bulk in endpoints this device will have.
+ * @num_bulk_out: the number of bulk out endpoints this device will have.
+ * @num_ports: the number of different ports this device will have.
+ * @calc_num_ports: pointer to a function to determine how many ports this
+ *     device has dynamically.  It will be called after the probe()
+ *     callback is called, but before attach()
+ * @probe: pointer to the driver's probe function.
+ *     This will be called when the device is inserted into the system,
+ *     but before the device has been fully initialized by the usb_serial
+ *     subsystem.  Use this function to download any firmware to the device,
+ *     or any other early initialization that might be needed.
+ *     Return 0 to continue on with the initialization sequence.  Anything
+ *     else will abort it.
+ * @attach: pointer to the driver's attach function.
+ *     This will be called when the struct usb_serial structure is fully set
+ *     set up.  Do any local initialization of the device, or any private
+ *     memory structure allocation at this point in time.
+ * @shutdown: pointer to the driver's shutdown function.  This will be
+ *     called when the device is removed from the system.
+ *
+ * This structure is defines a USB Serial driver.  It provides all of
+ * the information that the USB serial core code needs.  If the function
+ * pointers are defined, then the USB serial core code will call them when
+ * the corresponding tty port functions are called.  If they are not
+ * called, the generic serial function will be used instead.
+ *
+ * The driver.owner field should be set to the module owner of this driver.
+ * The driver.name field should be set to the name of this driver (remember
+ * it will show up in sysfs, so it needs to be short and to the point.
+ * Useing the module name is a good idea.)
+ */
+struct usb_serial_driver {
+       const char *description;
+       const struct usb_device_id *id_table;
+       char    num_interrupt_in;
+       char    num_interrupt_out;
+       char    num_bulk_in;
+       char    num_bulk_out;
+       char    num_ports;
+
+       struct list_head        driver_list;
+       struct device_driver    driver;
+
+       int (*probe) (struct usb_serial *serial, const struct usb_device_id *id);
+       int (*attach) (struct usb_serial *serial);
+       int (*calc_num_ports) (struct usb_serial *serial);
+
+       void (*shutdown) (struct usb_serial *serial);
+
+       int (*port_probe) (struct usb_serial_port *port);
+       int (*port_remove) (struct usb_serial_port *port);
+
+       /* serial function calls */
+       int  (*open)            (struct usb_serial_port *port, struct file * filp);
+       void (*close)           (struct usb_serial_port *port, struct file * filp);
+       int  (*write)           (struct usb_serial_port *port, const unsigned char *buf, int count);
+       int  (*write_room)      (struct usb_serial_port *port);
+       int  (*ioctl)           (struct usb_serial_port *port, struct file * file, unsigned int cmd, unsigned long arg);
+       void (*set_termios)     (struct usb_serial_port *port, struct termios * old);
+       void (*break_ctl)       (struct usb_serial_port *port, int break_state);
+       int  (*chars_in_buffer) (struct usb_serial_port *port);
+       void (*throttle)        (struct usb_serial_port *port);
+       void (*unthrottle)      (struct usb_serial_port *port);
+       int  (*tiocmget)        (struct usb_serial_port *port, struct file *file);
+       int  (*tiocmset)        (struct usb_serial_port *port, struct file *file, unsigned int set, unsigned int clear);
+
+       void (*read_int_callback)(struct urb *urb, struct pt_regs *regs);
+       void (*write_int_callback)(struct urb *urb, struct pt_regs *regs);
+       void (*read_bulk_callback)(struct urb *urb, struct pt_regs *regs);
+       void (*write_bulk_callback)(struct urb *urb, struct pt_regs *regs);
+};
+#define to_usb_serial_driver(d) container_of(d, struct usb_serial_driver, driver)
+
+extern int  usb_serial_register(struct usb_serial_driver *driver);
+extern void usb_serial_deregister(struct usb_serial_driver *driver);
+extern void usb_serial_port_softint(struct usb_serial_port *port);
+
+extern int usb_serial_probe(struct usb_interface *iface, const struct usb_device_id *id);
+extern void usb_serial_disconnect(struct usb_interface *iface);
+
+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);
+
+/* USB Serial console functions */
+#ifdef CONFIG_USB_SERIAL_CONSOLE
+extern void usb_serial_console_init (int debug, int minor);
+extern void usb_serial_console_exit (void);
+extern void usb_serial_console_disconnect(struct usb_serial *serial);
+#else
+static inline void usb_serial_console_init (int debug, int minor) { }
+static inline void usb_serial_console_exit (void) { }
+static inline void usb_serial_console_disconnect(struct usb_serial *serial) {}
+#endif
+
+/* Functions needed by other parts of the usbserial core */
+extern struct usb_serial *usb_serial_get_by_index (unsigned int minor);
+extern void usb_serial_put(struct usb_serial *serial);
+extern int usb_serial_generic_open (struct usb_serial_port *port, struct file *filp);
+extern int usb_serial_generic_write (struct usb_serial_port *port, const unsigned char *buf, int count);
+extern void usb_serial_generic_close (struct usb_serial_port *port, struct file *filp);
+extern int usb_serial_generic_write_room (struct usb_serial_port *port);
+extern int usb_serial_generic_chars_in_buffer (struct usb_serial_port *port);
+extern void usb_serial_generic_read_bulk_callback (struct urb *urb, struct pt_regs *regs);
+extern void usb_serial_generic_write_bulk_callback (struct urb *urb, struct pt_regs *regs);
+extern void usb_serial_generic_shutdown (struct usb_serial *serial);
+extern int usb_serial_generic_register (int debug);
+extern void usb_serial_generic_deregister (void);
+
+extern int usb_serial_bus_register (struct usb_serial_driver *device);
+extern void usb_serial_bus_deregister (struct usb_serial_driver *device);
+
+extern struct usb_serial_driver usb_serial_generic_device;
+extern struct bus_type usb_serial_bus_type;
+extern struct tty_driver *usb_serial_tty_driver;
+
+static inline void usb_serial_debug_data(int debug,
+                                        struct device *dev,
+                                        const char *function, int size,
+                                        const unsigned char *data)
+{
+       int i;
+
+       if (debug) {
+               dev_printk(KERN_DEBUG, dev, "%s - length = %d, data = ", function, size);
+               for (i = 0; i < size; ++i)
+                       printk ("%.2x ", data[i]);
+               printk ("\n");
+       }
+}
+
+/* Use our own dbg macro */
+#undef dbg
+#define dbg(format, arg...) do { if (debug) printk(KERN_DEBUG "%s: " format "\n" , __FILE__ , ## arg); } while (0)
+
+
+
+#endif /* ifdef __LINUX_USB_SERIAL_H */
+