diff options
Diffstat (limited to 'drivers/usb/serial')
-rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 19 | ||||
-rw-r--r-- | drivers/usb/serial/ftdi_sio.h | 3 | ||||
-rw-r--r-- | drivers/usb/serial/ftdi_sio_ids.h | 1 | ||||
-rw-r--r-- | drivers/usb/serial/ti_usb_3410_5052.c | 1 |
4 files changed, 18 insertions, 6 deletions
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index 162728977553..2e06b90aa1f8 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
@@ -179,6 +179,7 @@ static struct usb_device_id id_table_combined [] = { | |||
179 | { USB_DEVICE(FTDI_VID, FTDI_232RL_PID) }, | 179 | { USB_DEVICE(FTDI_VID, FTDI_232RL_PID) }, |
180 | { USB_DEVICE(FTDI_VID, FTDI_8U2232C_PID) }, | 180 | { USB_DEVICE(FTDI_VID, FTDI_8U2232C_PID) }, |
181 | { USB_DEVICE(FTDI_VID, FTDI_4232H_PID) }, | 181 | { USB_DEVICE(FTDI_VID, FTDI_4232H_PID) }, |
182 | { USB_DEVICE(FTDI_VID, FTDI_232H_PID) }, | ||
182 | { USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) }, | 183 | { USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) }, |
183 | { USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) }, | 184 | { USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) }, |
184 | { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) }, | 185 | { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) }, |
@@ -848,7 +849,8 @@ static const char *ftdi_chip_name[] = { | |||
848 | [FT2232C] = "FT2232C", | 849 | [FT2232C] = "FT2232C", |
849 | [FT232RL] = "FT232RL", | 850 | [FT232RL] = "FT232RL", |
850 | [FT2232H] = "FT2232H", | 851 | [FT2232H] = "FT2232H", |
851 | [FT4232H] = "FT4232H" | 852 | [FT4232H] = "FT4232H", |
853 | [FT232H] = "FT232H" | ||
852 | }; | 854 | }; |
853 | 855 | ||
854 | 856 | ||
@@ -1168,6 +1170,7 @@ static __u32 get_ftdi_divisor(struct tty_struct *tty, | |||
1168 | break; | 1170 | break; |
1169 | case FT2232H: /* FT2232H chip */ | 1171 | case FT2232H: /* FT2232H chip */ |
1170 | case FT4232H: /* FT4232H chip */ | 1172 | case FT4232H: /* FT4232H chip */ |
1173 | case FT232H: /* FT232H chip */ | ||
1171 | if ((baud <= 12000000) & (baud >= 1200)) { | 1174 | if ((baud <= 12000000) & (baud >= 1200)) { |
1172 | div_value = ftdi_2232h_baud_to_divisor(baud); | 1175 | div_value = ftdi_2232h_baud_to_divisor(baud); |
1173 | } else if (baud < 1200) { | 1176 | } else if (baud < 1200) { |
@@ -1429,9 +1432,12 @@ static void ftdi_determine_type(struct usb_serial_port *port) | |||
1429 | } else if (version < 0x600) { | 1432 | } else if (version < 0x600) { |
1430 | /* Assume it's an FT232BM (or FT245BM) */ | 1433 | /* Assume it's an FT232BM (or FT245BM) */ |
1431 | priv->chip_type = FT232BM; | 1434 | priv->chip_type = FT232BM; |
1432 | } else { | 1435 | } else if (version < 0x900) { |
1433 | /* Assume it's an FT232R */ | 1436 | /* Assume it's an FT232RL */ |
1434 | priv->chip_type = FT232RL; | 1437 | priv->chip_type = FT232RL; |
1438 | } else { | ||
1439 | /* Assume it's an FT232H */ | ||
1440 | priv->chip_type = FT232H; | ||
1435 | } | 1441 | } |
1436 | dev_info(&udev->dev, "Detected %s\n", ftdi_chip_name[priv->chip_type]); | 1442 | dev_info(&udev->dev, "Detected %s\n", ftdi_chip_name[priv->chip_type]); |
1437 | } | 1443 | } |
@@ -1559,7 +1565,8 @@ static int create_sysfs_attrs(struct usb_serial_port *port) | |||
1559 | priv->chip_type == FT2232C || | 1565 | priv->chip_type == FT2232C || |
1560 | priv->chip_type == FT232RL || | 1566 | priv->chip_type == FT232RL || |
1561 | priv->chip_type == FT2232H || | 1567 | priv->chip_type == FT2232H || |
1562 | priv->chip_type == FT4232H)) { | 1568 | priv->chip_type == FT4232H || |
1569 | priv->chip_type == FT232H)) { | ||
1563 | retval = device_create_file(&port->dev, | 1570 | retval = device_create_file(&port->dev, |
1564 | &dev_attr_latency_timer); | 1571 | &dev_attr_latency_timer); |
1565 | } | 1572 | } |
@@ -1580,7 +1587,8 @@ static void remove_sysfs_attrs(struct usb_serial_port *port) | |||
1580 | priv->chip_type == FT2232C || | 1587 | priv->chip_type == FT2232C || |
1581 | priv->chip_type == FT232RL || | 1588 | priv->chip_type == FT232RL || |
1582 | priv->chip_type == FT2232H || | 1589 | priv->chip_type == FT2232H || |
1583 | priv->chip_type == FT4232H) { | 1590 | priv->chip_type == FT4232H || |
1591 | priv->chip_type == FT232H) { | ||
1584 | device_remove_file(&port->dev, &dev_attr_latency_timer); | 1592 | device_remove_file(&port->dev, &dev_attr_latency_timer); |
1585 | } | 1593 | } |
1586 | } | 1594 | } |
@@ -2212,6 +2220,7 @@ static int ftdi_tiocmget(struct tty_struct *tty) | |||
2212 | case FT232RL: | 2220 | case FT232RL: |
2213 | case FT2232H: | 2221 | case FT2232H: |
2214 | case FT4232H: | 2222 | case FT4232H: |
2223 | case FT232H: | ||
2215 | len = 2; | 2224 | len = 2; |
2216 | break; | 2225 | break; |
2217 | default: | 2226 | default: |
diff --git a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h index 213fe3d61282..19584faa86f9 100644 --- a/drivers/usb/serial/ftdi_sio.h +++ b/drivers/usb/serial/ftdi_sio.h | |||
@@ -156,7 +156,8 @@ enum ftdi_chip_type { | |||
156 | FT2232C = 4, | 156 | FT2232C = 4, |
157 | FT232RL = 5, | 157 | FT232RL = 5, |
158 | FT2232H = 6, | 158 | FT2232H = 6, |
159 | FT4232H = 7 | 159 | FT4232H = 7, |
160 | FT232H = 8 | ||
160 | }; | 161 | }; |
161 | 162 | ||
162 | enum ftdi_sio_baudrate { | 163 | enum ftdi_sio_baudrate { |
diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h index ab1fcdf3c378..19156d1049fe 100644 --- a/drivers/usb/serial/ftdi_sio_ids.h +++ b/drivers/usb/serial/ftdi_sio_ids.h | |||
@@ -22,6 +22,7 @@ | |||
22 | #define FTDI_8U232AM_ALT_PID 0x6006 /* FTDI's alternate PID for above */ | 22 | #define FTDI_8U232AM_ALT_PID 0x6006 /* FTDI's alternate PID for above */ |
23 | #define FTDI_8U2232C_PID 0x6010 /* Dual channel device */ | 23 | #define FTDI_8U2232C_PID 0x6010 /* Dual channel device */ |
24 | #define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */ | 24 | #define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */ |
25 | #define FTDI_232H_PID 0x6014 /* Single channel hi-speed device */ | ||
25 | #define FTDI_SIO_PID 0x8372 /* Product Id SIO application of 8U100AX */ | 26 | #define FTDI_SIO_PID 0x8372 /* Product Id SIO application of 8U100AX */ |
26 | #define FTDI_232RL_PID 0xFBFA /* Product ID for FT232RL */ | 27 | #define FTDI_232RL_PID 0xFBFA /* Product ID for FT232RL */ |
27 | 28 | ||
diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c index c6d92a530086..ea8445689c85 100644 --- a/drivers/usb/serial/ti_usb_3410_5052.c +++ b/drivers/usb/serial/ti_usb_3410_5052.c | |||
@@ -1745,6 +1745,7 @@ static int ti_download_firmware(struct ti_device *tdev) | |||
1745 | } | 1745 | } |
1746 | if (fw_p->size > TI_FIRMWARE_BUF_SIZE) { | 1746 | if (fw_p->size > TI_FIRMWARE_BUF_SIZE) { |
1747 | dev_err(&dev->dev, "%s - firmware too large %zu\n", __func__, fw_p->size); | 1747 | dev_err(&dev->dev, "%s - firmware too large %zu\n", __func__, fw_p->size); |
1748 | release_firmware(fw_p); | ||
1748 | return -ENOENT; | 1749 | return -ENOENT; |
1749 | } | 1750 | } |
1750 | 1751 | ||