Hi folks, Here are a couple of patches for the ftdi_sio USB serial driver. They can be applied cleanly to the usb-2.4 and usb-2.5 trees and also to the 2.4.23-pre7 kernel tree. I guess they'll also apply cleanly to the 2.6.0-test8 kernel tree but I haven't tried that yet.
I have compiled and loaded the module on a patched 2.4.23-pre7 kernel tree and used a FT232BM device with default vid/pid, but have not tested the vid/pid changes in these patches. The patches are as follows and should be applied in this sequence: 1. "usb-2.4-ftdi_sio-perle.patch" Scott Allen's patch to add vid/pid support for Perle Systems UltraPort USB serial converter, merged up with minor whitespace changes by myself (Ian Abbott). 2. "usb-2.4-ftdi_sio-vidpidcleanup.patch" Patch by me (Ian Abbott). Removed aliases of FTDI_VID define for consistency. Renamed FTDI_PERLE_PID to FTDI_PERLE_ULTRAPORT_PID. Removed Matrix Orbital and Perle Systems devices from the 8U232AM device table (but left them in the FT232BM device table) as they are known to be FT232BM devices. -- -=( Ian Abbott @ MEV Ltd. E-mail: <[EMAIL PROTECTED]> )=- -=( Tel: +44 (0)161 477 1898 FAX: +44 (0)161 718 3587 )=-
# This is a BitKeeper generated patch for the following project: # Project Name: greg k-h's linux 2.4 USB kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.1113 -> 1.1114 # drivers/usb/serial/ftdi_sio.c 1.51 -> 1.52 # drivers/usb/serial/ftdi_sio.h 1.22 -> 1.23 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 03/10/21 [EMAIL PROTECTED] 1.1114 # Added vid/pid for Perle Systems UltraPort USB serial converters (Scott Allen). # -------------------------------------------- # diff -Nru a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c --- a/drivers/usb/serial/ftdi_sio.c Tue Oct 21 13:17:35 2003 +++ b/drivers/usb/serial/ftdi_sio.c Tue Oct 21 13:17:35 2003 @@ -17,6 +17,9 @@ * See http://ftdi-usb-sio.sourceforge.net for upto date testing info * and extra documentation * + * (17/Oct/2003) Scott Allen + * Added vid/pid for Perle Systems UltraPort USB serial converters + * * (21/Sep/2003) Ian Abbott * Added VID/PID for Omnidirectional Control Technology US101 USB to * RS-232 adapter (also rebadged as Dick Smith Electronics XH6381). @@ -283,6 +286,7 @@ { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_4_PID, 0, 0x3ff) }, { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_5_PID, 0, 0x3ff) }, { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_6_PID, 0, 0x3ff) }, + { USB_DEVICE_VER(FTDI_PERLE_VID, FTDI_PERLE_PID, 0, 0x3ff) }, { USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2101_PID, 0, 0x3ff) }, { USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2102_PID, 0, 0x3ff) }, { USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2103_PID, 0, 0x3ff) }, @@ -356,6 +360,7 @@ { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_4_PID, 0x400, 0xffff) }, { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_5_PID, 0x400, 0xffff) }, { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_6_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_PERLE_VID, FTDI_PERLE_PID, 0x400, 0xffff) }, { USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2101_PID, 0x400, 0xffff) }, { USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2102_PID, 0x400, 0xffff) }, { USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2103_PID, 0x400, 0xffff) }, @@ -442,6 +447,7 @@ { USB_DEVICE(FTDI_MTXORB_VID, FTDI_MTXORB_4_PID) }, { USB_DEVICE(FTDI_MTXORB_VID, FTDI_MTXORB_5_PID) }, { USB_DEVICE(FTDI_MTXORB_VID, FTDI_MTXORB_6_PID) }, + { USB_DEVICE(FTDI_PERLE_VID, FTDI_PERLE_PID) }, { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2101_PID) }, { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2102_PID) }, { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2103_PID) }, diff -Nru a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h --- a/drivers/usb/serial/ftdi_sio.h Tue Oct 21 13:17:35 2003 +++ b/drivers/usb/serial/ftdi_sio.h Tue Oct 21 13:17:35 2003 @@ -60,6 +60,14 @@ #define FTDI_MTXORB_6_PID 0xFA06 /* Matrix Orbital Product Id */ /* + * The following are the values for the Perle Systems + * UltraPort USB serial converters + */ +#define FTDI_PERLE_VID FTDI_VID /* Perle Systems Vendor Id */ +#define FTDI_PERLE_PID 0xF0C0 /* Perle UltraPort Product Id +*/ + +/* * The following are the values for the Sealevel SeaLINK+ adapters. * (Original list sent by Tuan Hoang. Ian Abbott renamed the macros and * removed some PIDs that don't seem to match any existing products.)
# This is a BitKeeper generated patch for the following project: # Project Name: greg k-h's linux 2.4 USB kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.1114 -> 1.1115 # drivers/usb/serial/ftdi_sio.c 1.52 -> 1.53 # drivers/usb/serial/ftdi_sio.h 1.23 -> 1.24 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 03/10/21 [EMAIL PROTECTED] 1.1115 # Renamed some VID/PID macros for Matrix Orbital and Perle Systems # devices. Removed Matrix Orbital and Perle Systems devices from the # 8U232AM device table, but left them in the FT232BM table, as they are # known to use only FT232BM. # -------------------------------------------- # diff -Nru a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c --- a/drivers/usb/serial/ftdi_sio.c Tue Oct 21 13:19:15 2003 +++ b/drivers/usb/serial/ftdi_sio.c Tue Oct 21 13:19:15 2003 @@ -17,6 +17,12 @@ * See http://ftdi-usb-sio.sourceforge.net for upto date testing info * and extra documentation * + * (21/Oct/2003) Ian Abbott + * Renamed some VID/PID macros for Matrix Orbital and Perle Systems + * devices. Removed Matrix Orbital and Perle Systems devices from the + * 8U232AM device table, but left them in the FT232BM table, as they are + * known to use only FT232BM. + * * (17/Oct/2003) Scott Allen * Added vid/pid for Perle Systems UltraPort USB serial converters * @@ -279,14 +285,6 @@ { USB_DEVICE_VER(FTDI_VID, FTDI_XF_642_PID, 0, 0x3ff) }, { USB_DEVICE_VER(FTDI_VID, FTDI_VNHCPCUSB_D_PID, 0, 0x3ff) }, { USB_DEVICE_VER(FTDI_VID, FTDI_DSS20_PID, 0, 0x3ff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_0_PID, 0, 0x3ff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_1_PID, 0, 0x3ff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_2_PID, 0, 0x3ff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_3_PID, 0, 0x3ff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_4_PID, 0, 0x3ff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_5_PID, 0, 0x3ff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_6_PID, 0, 0x3ff) }, - { USB_DEVICE_VER(FTDI_PERLE_VID, FTDI_PERLE_PID, 0, 0x3ff) }, { USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2101_PID, 0, 0x3ff) }, { USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2102_PID, 0, 0x3ff) }, { USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2103_PID, 0, 0x3ff) }, @@ -353,14 +351,14 @@ { USB_DEVICE_VER(FTDI_VID, FTDI_XF_642_PID, 0x400, 0xffff) }, { USB_DEVICE_VER(FTDI_VID, FTDI_VNHCPCUSB_D_PID, 0x400, 0xffff) }, { USB_DEVICE_VER(FTDI_VID, FTDI_DSS20_PID, 0x400, 0xffff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_0_PID, 0x400, 0xffff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_1_PID, 0x400, 0xffff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_2_PID, 0x400, 0xffff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_3_PID, 0x400, 0xffff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_4_PID, 0x400, 0xffff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_5_PID, 0x400, 0xffff) }, - { USB_DEVICE_VER(FTDI_MTXORB_VID, FTDI_MTXORB_6_PID, 0x400, 0xffff) }, - { USB_DEVICE_VER(FTDI_PERLE_VID, FTDI_PERLE_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_0_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_1_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_2_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_3_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_4_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_5_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_6_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_PERLE_ULTRAPORT_PID, 0x400, 0xffff) }, { USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2101_PID, 0x400, 0xffff) }, { USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2102_PID, 0x400, 0xffff) }, { USB_DEVICE_VER(SEALEVEL_VID, SEALEVEL_2103_PID, 0x400, 0xffff) }, @@ -440,14 +438,14 @@ { USB_DEVICE(FTDI_VID, FTDI_DSS20_PID) }, { USB_DEVICE(FTDI_NF_RIC_VID, FTDI_NF_RIC_PID) }, { USB_DEVICE(FTDI_VID, FTDI_VNHCPCUSB_D_PID) }, - { USB_DEVICE(FTDI_MTXORB_VID, FTDI_MTXORB_0_PID) }, - { USB_DEVICE(FTDI_MTXORB_VID, FTDI_MTXORB_1_PID) }, - { USB_DEVICE(FTDI_MTXORB_VID, FTDI_MTXORB_2_PID) }, - { USB_DEVICE(FTDI_MTXORB_VID, FTDI_MTXORB_3_PID) }, - { USB_DEVICE(FTDI_MTXORB_VID, FTDI_MTXORB_4_PID) }, - { USB_DEVICE(FTDI_MTXORB_VID, FTDI_MTXORB_5_PID) }, - { USB_DEVICE(FTDI_MTXORB_VID, FTDI_MTXORB_6_PID) }, - { USB_DEVICE(FTDI_PERLE_VID, FTDI_PERLE_PID) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_0_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_1_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_2_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_3_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_4_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_5_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_MTXORB_6_PID, 0x400, 0xffff) }, + { USB_DEVICE_VER(FTDI_VID, FTDI_PERLE_ULTRAPORT_PID, 0x400, 0xffff) }, { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2101_PID) }, { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2102_PID) }, { USB_DEVICE(SEALEVEL_VID, SEALEVEL_2103_PID) }, diff -Nru a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h --- a/drivers/usb/serial/ftdi_sio.h Tue Oct 21 13:19:15 2003 +++ b/drivers/usb/serial/ftdi_sio.h Tue Oct 21 13:19:15 2003 @@ -50,7 +50,6 @@ * The following are the values for the Matrix Orbital LCD displays, * which are the FT232BM ( similar to the 8U232AM ) */ -#define FTDI_MTXORB_VID FTDI_VID /* Matrix Orbital Product Id */ #define FTDI_MTXORB_0_PID 0xFA00 /* Matrix Orbital Product Id */ #define FTDI_MTXORB_1_PID 0xFA01 /* Matrix Orbital Product Id */ #define FTDI_MTXORB_2_PID 0xFA02 /* Matrix Orbital Product Id */ @@ -63,9 +62,7 @@ * The following are the values for the Perle Systems * UltraPort USB serial converters */ -#define FTDI_PERLE_VID FTDI_VID /* Perle Systems Vendor Id */ -#define FTDI_PERLE_PID 0xF0C0 /* Perle UltraPort Product Id -*/ +#define FTDI_PERLE_ULTRAPORT_PID 0xF0C0 /* Perle UltraPort Product Id */ /* * The following are the values for the Sealevel SeaLINK+ adapters.
