On Tue, Jul 12, 2022 at 01:53:02PM +0200, Marek Behún wrote: > From: Pali Rohár <pali@xxxxxxxxxx> > > In preparation for following changes, extract divisor code for SIO chip > into new function ftdi_sio_baud_to_divisor(), as is done for other > chips. > > No functional change. > > 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 | 36 ++++++++++++++++++++--------------- > 1 file changed, 21 insertions(+), 15 deletions(-) > > diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c > index 717b97f4e094..5b109714612f 100644 > --- a/drivers/usb/serial/ftdi_sio.c > +++ b/drivers/usb/serial/ftdi_sio.c > @@ -1150,6 +1150,23 @@ static struct usb_serial_driver * const serial_drivers[] = { > * *************************************************************************** > */ > > +static int ftdi_sio_baud_to_divisor(int baud) > +{ > + switch (baud) { > + case 300: return ftdi_sio_b300; > + case 600: return ftdi_sio_b600; > + case 1200: return ftdi_sio_b1200; > + case 2400: return ftdi_sio_b2400; > + case 4800: return ftdi_sio_b4800; > + case 9600: return ftdi_sio_b9600; > + case 19200: return ftdi_sio_b19200; > + case 38400: return ftdi_sio_b38400; > + case 57600: return ftdi_sio_b57600; > + case 115200: return ftdi_sio_b115200; > + default: return -1; Please add a line break after the colons. Adding another enum for the invalid value might be preferable. > + } > +} > + > static unsigned short int ftdi_232am_baud_base_to_divisor(int baud, int base) > { > unsigned short int divisor; > @@ -1286,7 +1303,7 @@ static u32 get_ftdi_divisor(struct tty_struct *tty, > { > struct ftdi_private *priv = usb_get_serial_port_data(port); > struct device *dev = &port->dev; > - u32 div_value = 0; > + int div_value = 0; And don't change the type here. > int div_okay = 1; > int baud; > > @@ -1309,23 +1326,12 @@ static u32 get_ftdi_divisor(struct tty_struct *tty, > baud = 9600; > switch (priv->chip_type) { > case SIO: /* SIO chip */ > - switch (baud) { > - case 300: div_value = ftdi_sio_b300; break; > - case 600: div_value = ftdi_sio_b600; break; > - case 1200: div_value = ftdi_sio_b1200; break; > - case 2400: div_value = ftdi_sio_b2400; break; > - case 4800: div_value = ftdi_sio_b4800; break; > - case 9600: div_value = ftdi_sio_b9600; break; > - case 19200: div_value = ftdi_sio_b19200; break; > - case 38400: div_value = ftdi_sio_b38400; break; > - case 57600: div_value = ftdi_sio_b57600; break; > - case 115200: div_value = ftdi_sio_b115200; break; > - } /* baud */ > - if (div_value == 0) { > + div_value = ftdi_sio_baud_to_divisor(baud); > + if (div_value == -1) { > dev_dbg(dev, "%s - Baudrate (%d) requested is not supported\n", > __func__, baud); > - div_value = ftdi_sio_b9600; > baud = 9600; > + div_value = ftdi_sio_baud_to_divisor(baud); > div_okay = 0; > } > break; Johan