--- /dev/null
+From 9714080d20f2ec4b671a06ce69367d91fa9e227e Mon Sep 17 00:00:00 2001
+From: Mitchell Solomon <mitchjs@rush2112.net>
+Date: Fri, 12 Feb 2010 13:23:18 -0500
+Subject: USB: add new ftdi_sio device ids
+
+From: Mitchell Solomon <mitchjs@rush2112.net>
+
+commit 9714080d20f2ec4b671a06ce69367d91fa9e227e upstream.
+
+PID patch for my products
+
+Signed-off-by: Mitchell Solomon <mitchjs@rush2112.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/ftdi_sio.c | 4 ++++
+ drivers/usb/serial/ftdi_sio_ids.h | 8 ++++++++
+ 2 files changed, 12 insertions(+)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -737,6 +737,10 @@ static struct usb_device_id id_table_com
+ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
+ { USB_DEVICE(FTDI_VID, HAMEG_HO820_PID) },
+ { USB_DEVICE(FTDI_VID, HAMEG_HO870_PID) },
++ { USB_DEVICE(FTDI_VID, MJSG_GENERIC_PID) },
++ { USB_DEVICE(FTDI_VID, MJSG_SR_RADIO_PID) },
++ { USB_DEVICE(FTDI_VID, MJSG_HD_RADIO_PID) },
++ { USB_DEVICE(FTDI_VID, MJSG_XM_RADIO_PID) },
+ { }, /* Optional parameter entry */
+ { } /* Terminating entry */
+ };
+--- a/drivers/usb/serial/ftdi_sio_ids.h
++++ b/drivers/usb/serial/ftdi_sio_ids.h
+@@ -1002,3 +1002,11 @@
+ #define EVO_8U232AM_PID 0x02FF /* Evolution robotics RCM2 (FT232AM)*/
+ #define EVO_HYBRID_PID 0x0302 /* Evolution robotics RCM4 PID (FT232BM)*/
+ #define EVO_RCM4_PID 0x0303 /* Evolution robotics RCM4 PID */
++
++/*
++ * MJS Gadgets HD Radio / XM Radio / Sirius Radio interfaces (using VID 0x0403)
++ */
++#define MJSG_GENERIC_PID 0x9378
++#define MJSG_SR_RADIO_PID 0x9379
++#define MJSG_XM_RADIO_PID 0x937A
++#define MJSG_HD_RADIO_PID 0x937C
--- /dev/null
+From 65e1ec6751b3eefee6d94161185e78736366126f Mon Sep 17 00:00:00 2001
+From: Andreas Mohr <andi@lisas.de>
+Date: Sun, 17 Jan 2010 11:45:38 +0100
+Subject: USB: ftdi_sio: add device IDs (several ELV, one Mindstorms NXT)
+
+From: Andreas Mohr <andi@lisas.de>
+
+commit 65e1ec6751b3eefee6d94161185e78736366126f upstream.
+
+- add FTDI device IDs for several ELV devices and NXTCam of Lego Mindstorms NXT
+- add hopefully helpful new_id comment
+- remove less helpful "Due to many user requests for multiple ELV devices we enable
+ them by default." comment (we simply add _all_ known devices - an
+ enduser shouldn't have to fiddle with obscure module parameters...).
+- add myself to DRIVER_AUTHOR
+
+The missing NXTCam ID has been found at
+http://www.unixboard.de/vb3/showthread.php?t=44155
+, ELV devices taken from ELV Windows .inf file.
+
+Signed-off-by: Andreas Mohr <andi@lisas.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/ftdi_sio.c | 24 +++++++++++++++++++++---
+ drivers/usb/serial/ftdi_sio_ids.h | 17 +++++++++++++++++
+ 2 files changed, 38 insertions(+), 3 deletions(-)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -50,7 +50,7 @@
+ * Version Information
+ */
+ #define DRIVER_VERSION "v1.5.0"
+-#define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com>, Bill Ryder <bryder@sgi.com>, Kuba Ober <kuba@mareimbrium.org>"
++#define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com>, Bill Ryder <bryder@sgi.com>, Kuba Ober <kuba@mareimbrium.org>, Andreas Mohr"
+ #define DRIVER_DESC "USB FTDI Serial Converters Driver"
+
+ static int debug;
+@@ -145,10 +145,15 @@ static struct ftdi_sio_quirk ftdi_HE_TIR
+
+
+
++/*
++ * Device ID not listed? Test via module params product/vendor or
++ * /sys/bus/usb/ftdi_sio/new_id, then send patch/report!
++ */
+ static struct usb_device_id id_table_combined [] = {
+ { USB_DEVICE(FTDI_VID, FTDI_AMC232_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_CANUSB_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_CANDAPTER_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_NXTCAM_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_0_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_1_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_2_PID) },
+@@ -552,9 +557,16 @@ static struct usb_device_id id_table_com
+ { USB_DEVICE(FTDI_VID, FTDI_IBS_PEDO_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_IBS_PROD_PID) },
+ /*
+- * Due to many user requests for multiple ELV devices we enable
+- * them by default.
++ * ELV devices:
+ */
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_USR_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_MSM1_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_KL100_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_WS550_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_EC3000_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_WS888_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_TWS550_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_FEM_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_ELV_CLI7000_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_ELV_PPS7330_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_ELV_TFM100_PID) },
+@@ -571,11 +583,17 @@ static struct usb_device_id id_table_com
+ { USB_DEVICE(FTDI_VID, FTDI_ELV_PCK100_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_ELV_RFP500_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_ELV_FS20SIG_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_UTP8_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_ELV_WS300PC_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_WS444PC_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_ELV_FHZ1300PC_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_ELV_EM1010PC_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_ELV_WS500_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_ELV_HS485_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_UMS100_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_TFD128_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_FM3RX_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_ELV_WS777_PID) },
+ { USB_DEVICE(FTDI_VID, LINX_SDMUSBQSS_PID) },
+ { USB_DEVICE(FTDI_VID, LINX_MASTERDEVEL2_PID) },
+ { USB_DEVICE(FTDI_VID, LINX_FUTURE_0_PID) },
+--- a/drivers/usb/serial/ftdi_sio_ids.h
++++ b/drivers/usb/serial/ftdi_sio_ids.h
+@@ -38,6 +38,8 @@
+ /* www.candapter.com Ewert Energy Systems CANdapter device */
+ #define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */
+
++#define FTDI_NXTCAM_PID 0xABB8 /* NXTCam for Mindstorms NXT */
++
+ /* OOCDlink by Joern Kaipf <joernk@web.de>
+ * (http://www.joernonline.de/dw/doku.php?id=start&idx=projects:oocdlink) */
+ #define FTDI_OOCDLINK_PID 0xbaf8 /* Amontec JTAGkey */
+@@ -161,22 +163,37 @@
+ /*
+ * ELV USB devices submitted by Christian Abt of ELV (www.elv.de).
+ * All of these devices use FTDI's vendor ID (0x0403).
++ * Further IDs taken from ELV Windows .inf file.
+ *
+ * The previously included PID for the UO 100 module was incorrect.
+ * In fact, that PID was for ELV's UR 100 USB-RS232 converter (0xFB58).
+ *
+ * Armin Laeuger originally sent the PID for the UM 100 module.
+ */
++#define FTDI_ELV_USR_PID 0xE000 /* ELV Universal-Sound-Recorder */
++#define FTDI_ELV_MSM1_PID 0xE001 /* ELV Mini-Sound-Modul */
++#define FTDI_ELV_KL100_PID 0xE002 /* ELV Kfz-Leistungsmesser KL 100 */
++#define FTDI_ELV_WS550_PID 0xE004 /* WS 550 */
++#define FTDI_ELV_EC3000_PID 0xE006 /* ENERGY CONTROL 3000 USB */
++#define FTDI_ELV_WS888_PID 0xE008 /* WS 888 */
++#define FTDI_ELV_TWS550_PID 0xE009 /* Technoline WS 550 */
++#define FTDI_ELV_FEM_PID 0xE00A /* Funk Energie Monitor */
+ #define FTDI_ELV_FHZ1300PC_PID 0xE0E8 /* FHZ 1300 PC */
+ #define FTDI_ELV_WS500_PID 0xE0E9 /* PC-Wetterstation (WS 500) */
+ #define FTDI_ELV_HS485_PID 0xE0EA /* USB to RS-485 adapter */
++#define FTDI_ELV_UMS100_PID 0xE0EB /* ELV USB Master-Slave Schaltsteckdose UMS 100 */
++#define FTDI_ELV_TFD128_PID 0xE0EC /* ELV Temperatur-Feuchte-Datenlogger TFD 128 */
++#define FTDI_ELV_FM3RX_PID 0xE0ED /* ELV Messwertuebertragung FM3 RX */
++#define FTDI_ELV_WS777_PID 0xE0EE /* Conrad WS 777 */
+ #define FTDI_ELV_EM1010PC_PID 0xE0EF /* Engery monitor EM 1010 PC */
+ #define FTDI_ELV_CSI8_PID 0xE0F0 /* Computer-Schalt-Interface (CSI 8) */
+ #define FTDI_ELV_EM1000DL_PID 0xE0F1 /* PC-Datenlogger fuer Energiemonitor (EM 1000 DL) */
+ #define FTDI_ELV_PCK100_PID 0xE0F2 /* PC-Kabeltester (PCK 100) */
+ #define FTDI_ELV_RFP500_PID 0xE0F3 /* HF-Leistungsmesser (RFP 500) */
+ #define FTDI_ELV_FS20SIG_PID 0xE0F4 /* Signalgeber (FS 20 SIG) */
++#define FTDI_ELV_UTP8_PID 0xE0F5 /* ELV UTP 8 */
+ #define FTDI_ELV_WS300PC_PID 0xE0F6 /* PC-Wetterstation (WS 300 PC) */
++#define FTDI_ELV_WS444PC_PID 0xE0F7 /* Conrad WS 444 PC */
+ #define FTDI_PHI_FISCO_PID 0xE40B /* PHI Fisco USB to Serial cable */
+ #define FTDI_ELV_UAD8_PID 0xF068 /* USB-AD-Wandler (UAD 8) */
+ #define FTDI_ELV_UDA7_PID 0xF069 /* USB-DA-Wandler (UDA 7) */
--- /dev/null
+From a7787e508acb4378d62f4584bae3dd1cd0ba3eac Mon Sep 17 00:00:00 2001
+From: Radek Liboska <liboska@uochb.cas.cz>
+Date: Wed, 27 Jan 2010 15:38:34 +0100
+Subject: USB: ftdi_sio: new device id for papouch AD4USB
+
+From: Radek Liboska <liboska@uochb.cas.cz>
+
+commit a7787e508acb4378d62f4584bae3dd1cd0ba3eac upstream.
+
+added new device pid (PAPOUCH_AD4USB_PID) to ftdi_sio.h and ftdi_sio.c
+
+AD4USB measuring converter is a 4-input A/D converter which enables the
+user to measure to four current inputs ranging from 0(4) to 20 mA or
+voltage between 0 and 10 V. The measured values are then transferred to
+a superior system in digital form. The AD4USB communicates via USB.
+Powered is also via USB. datasheet in english is here:
+http://www.papouch.com/shop/scripts/pdf/ad4usb_en.pdf
+
+
+Signed-off-by: Radek Liboska <liboska@uochb.cas.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/ftdi_sio.c | 1 +
+ drivers/usb/serial/ftdi_sio_ids.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -697,6 +697,7 @@ static struct usb_device_id id_table_com
+ { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID_USB60F) },
+ { USB_DEVICE(FTDI_VID, FTDI_REU_TINY_PID) },
+ { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO4x4_PID) },
++ { USB_DEVICE(PAPOUCH_VID, PAPOUCH_AD4USB_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DGQG_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DUSB_PID) },
+ { USB_DEVICE(ALTI2_VID, ALTI2_N3_PID) },
+--- a/drivers/usb/serial/ftdi_sio_ids.h
++++ b/drivers/usb/serial/ftdi_sio_ids.h
+@@ -968,6 +968,7 @@
+ #define PAPOUCH_VID 0x5050 /* Vendor ID */
+ #define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */
+ #define PAPOUCH_QUIDO4x4_PID 0x0900 /* Quido 4/4 Module */
++#define PAPOUCH_AD4USB_PID 0x8003 /* AD4USB Measurement Module */
+
+ /*
+ * Marvell SheevaPlug
--- /dev/null
+From 46b72d78cb022714c89a9ebc00b9581b550cfca7 Mon Sep 17 00:00:00 2001
+From: Daniel Sangorrin <daniel.sangorrin@gmail.com>
+Date: Mon, 22 Feb 2010 11:03:11 +0900
+Subject: USB: serial: ftdi: add CONTEC vendor and product id
+
+From: Daniel Sangorrin <daniel.sangorrin@gmail.com>
+
+commit 46b72d78cb022714c89a9ebc00b9581b550cfca7 upstream.
+
+This is a patch to ftdi_sio_ids.h and ftdi_sio.c that adds
+identifiers for CONTEC USB serial converter. I tested it
+with the device COM-1(USB)H
+
+Signed-off-by: Daniel Sangorrin <daniel.sangorrin@gmail.com>
+Cc: Andreas Mohr <andi@lisas.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/ftdi_sio.c | 1 +
+ drivers/usb/serial/ftdi_sio_ids.h | 7 +++++++
+ 2 files changed, 8 insertions(+)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -614,6 +614,7 @@ static struct usb_device_id id_table_com
+ { USB_DEVICE(FTDI_VID, FTDI_OCEANIC_PID) },
+ { USB_DEVICE(TTI_VID, TTI_QL355P_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_RM_CANVIEW_PID) },
++ { USB_DEVICE(CONTEC_VID, CONTEC_COM1USBH_PID) },
+ { USB_DEVICE(BANDB_VID, BANDB_USOTL4_PID) },
+ { USB_DEVICE(BANDB_VID, BANDB_USTL4_PID) },
+ { USB_DEVICE(BANDB_VID, BANDB_USO9ML2_PID) },
+--- a/drivers/usb/serial/ftdi_sio_ids.h
++++ b/drivers/usb/serial/ftdi_sio_ids.h
+@@ -494,6 +494,13 @@
+ #define RATOC_PRODUCT_ID_USB60F 0xb020
+
+ /*
++ * Contec products (http://www.contec.com)
++ * Submitted by Daniel Sangorrin
++ */
++#define CONTEC_VID 0x06CE /* Vendor ID */
++#define CONTEC_COM1USBH_PID 0x8311 /* COM-1(USB)H */
++
++/*
+ * Definitions for B&B Electronics products.
+ */
+ #define BANDB_VID 0x0856 /* B&B Electronics Vendor ID */