Re: [PATCH] pl2303: fixed handling of CS5 setting. 5 databits work now

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[ Please make sure to CC the linux-usb list. ]

On Sun, Nov 03, 2013 at 03:47:06PM +0100, Colin Leitner wrote:
> pl2303: fixed handling of CS5 setting. 5 databits work now

No need to repeat the subject line in the body, and please add a
"USB:"-prefix and drop the "5 databits work now" from the subject.

> This patch fixes the CS5 setting on the PL2303 USB-to-serial devices. CS5 has
> a value of 0 and the CSIZE setting has been skipped altogether by the enclosing
> if. Tested on 3.11.6 and the scope shows the correct output after the fix has
> been applied.

Good catch!

Unfortunately, the patch is white-space damaged. You should use tabs for
indentation. Please run your patches through checkpatch.pl before
submitting (or fix your mail client if that's where the problem is).
 
> Tagged to be added to stable, because it fixes a user visible driver bug and is
> simple enough to backport easily.
> 
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Colin Leitner <colin.leitner@xxxxxxxxx>
> ---
>  drivers/usb/serial/pl2303.c |   30 ++++++++++++++----------------
>  1 file changed, 14 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
> index bedf8e4..fd86357 100644
> --- a/drivers/usb/serial/pl2303.c
> +++ b/drivers/usb/serial/pl2303.c
> @@ -522,23 +522,21 @@ static void pl2303_set_termios(struct tty_struct *tty,
>                             0, 0, buf, 7, 100);
>         dev_dbg(&port->dev, "0xa1:0x21:0:0  %d - %7ph\n", i, buf);
> 
> -       if (C_CSIZE(tty)) {
> -               switch (C_CSIZE(tty)) {
> -               case CS5:
> -                       buf[6] = 5;
> -                       break;
> -               case CS6:
> -                       buf[6] = 6;
> -                       break;
> -               case CS7:
> -                       buf[6] = 7;
> -                       break;
> -               default:
> -               case CS8:
> -                       buf[6] = 8;
> -               }
> -               dev_dbg(&port->dev, "data bits = %d\n", buf[6]);
> +       switch (C_CSIZE(tty)) {
> +       case CS5:
> +               buf[6] = 5;
> +               break;
> +       case CS6:
> +               buf[6] = 6;
> +               break;
> +       case CS7:
> +               buf[6] = 7;
> +               break;
> +       default:

You can drop the default-case as CSIZE is a two-bit mask.

Care to respin?

Thanks,
Johan

> +       case CS8:
> +               buf[6] = 8;
>         }
> +       dev_dbg(&port->dev, "data bits = %d\n", buf[6]);
> 
>         /* For reference:   buf[0]:buf[3] baud rate value */
>         pl2303_encode_baudrate(tty, port, spriv->type, buf);
> -- 
> 1.7.10.4
> --
> To unsubscribe from this list: send the line "unsubscribe linux-serial" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux