cypress_m8: switch data_bits to real character bits
authorJiri Slaby <jslaby@suse.cz>
Thu, 10 Jun 2021 09:02:46 +0000 (11:02 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 15 Jun 2021 12:03:27 +0000 (14:03 +0200)
Make data_bits what it really is. Assign proper bit counts to data_bits
instead of magic 0..3. There are two reasons:
1) it's clear what we store there, and
2) it will make the transition to tty_tty_get_char_size() in the next
   patch easier.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20210610090247.2593-3-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/serial/cypress_m8.c

index 166ee22..4dea3ec 100644 (file)
@@ -326,7 +326,7 @@ static int cypress_serial_control(struct tty_struct *tty,
 
                /* fill the feature_buffer with new configuration */
                put_unaligned_le32(new_baudrate, feature_buffer);
-               feature_buffer[4] |= data_bits;   /* assign data bits in 2 bit space ( max 3 ) */
+               feature_buffer[4] |= data_bits - 5;   /* assign data bits in 2 bit space ( max 3 ) */
                /* 1 bit gap */
                feature_buffer[4] |= (stop_bits << 3);   /* assign stop bits in 1 bit space */
                feature_buffer[4] |= (parity_enable << 4);   /* assign parity flag in 1 bit space */
@@ -889,20 +889,20 @@ static void cypress_set_termios(struct tty_struct *tty,
 
        switch (cflag & CSIZE) {
        case CS5:
-               data_bits = 0;
+               data_bits = 5;
                break;
        case CS6:
-               data_bits = 1;
+               data_bits = 6;
                break;
        case CS7:
-               data_bits = 2;
+               data_bits = 7;
                break;
        case CS8:
-               data_bits = 3;
+               data_bits = 8;
                break;
        default:
                dev_err(dev, "%s - CSIZE was set, but not CS5-CS8\n", __func__);
-               data_bits = 3;
+               data_bits = 8;
        }
        spin_lock_irqsave(&priv->lock, flags);
        oldlines = priv->line_control;