Add lower checks for requested baud rate for FT8U232AM, FT232BM, FT2232C, FT232RL, FTX, FT2232H, FT4232H and FT232H. For all of these the minimum baud rate they can generate is 183 Baud. Signed-off-by: Pali Rohár <pali@xxxxxxxxxx> Tested-by: Marek Behún <kabel@xxxxxxxxxx> Signed-off-by: Marek Behún <kabel@xxxxxxxxxx> --- drivers/usb/serial/ftdi_sio.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index b2febe8d573a..bfa601fc14fe 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c @@ -1335,7 +1335,7 @@ static u32 get_ftdi_divisor(struct tty_struct *tty, } break; case FT8U232AM: /* 8U232AM chip */ - if (baud <= 3000000) { + if (baud >= 183 && baud <= 3000000) { div_value = ftdi_232am_baud_to_divisor(baud); } else { dev_dbg(dev, "%s - Baud rate too high!\n", __func__); @@ -1348,7 +1348,7 @@ static u32 get_ftdi_divisor(struct tty_struct *tty, case FT2232C: /* FT2232C chip */ case FT232RL: /* FT232RL chip */ case FTX: /* FT-X series */ - if (baud <= 3000000) { + if (baud >= 183 && baud <= 3000000) { u16 product_id = le16_to_cpu( port->serial->dev->descriptor.idProduct); if (((product_id == FTDI_NDI_HUC_PID) || @@ -1372,7 +1372,7 @@ static u32 get_ftdi_divisor(struct tty_struct *tty, case FT232H: /* FT232H chip */ if ((baud <= 12000000) && (baud >= 1200)) { div_value = ftdi_2232h_baud_to_divisor(baud); - } else if (baud < 1200) { + } else if (baud >= 183 && baud < 1200) { div_value = ftdi_232bm_baud_to_divisor(baud); } else { dev_dbg(dev, "%s - Baud rate too high!\n", __func__); -- 2.20.1