2021-07-05 08:25:01

by Johan Hovold

[permalink] [raw]
Subject: [PATCH v2 0/6] USB: serial: cp210x: fixes and CP2105/CP2108 fw version

Here are couple of minor fixes and some cleanups related to the recent
regression which broke RTS control on some CP2102N devices with buggy
firmware.

In case we run into another one of these, let's log the firmware
version also for CP2105 and CP2108 for which it can be retrieved.

Johan


Changes in v2
- keep the special-chars error message to make it more obvious that
continuing on errors is intentional (1/6) (Greg)


Johan Hovold (6):
USB: serial: cp210x: fix control-characters error handling
USB: serial: cp210x: fix flow-control error handling
USB: serial: cp210x: clean up control-request timeout
USB: serial: cp210x: clean up set-chars request
USB: serial: cp210x: clean up type detection
USB: serial: cp210x: determine fw version for CP2105 and CP2108

drivers/usb/serial/cp210x.c | 77 +++++++++++++++----------------------
1 file changed, 32 insertions(+), 45 deletions(-)

--
2.31.1


2021-07-05 08:25:14

by Johan Hovold

[permalink] [raw]
Subject: [PATCH v2 4/6] USB: serial: cp210x: clean up set-chars request

Use the generic control request helper to implement the SET_CHARS
request.

Signed-off-by: Johan Hovold <[email protected]>
---
drivers/usb/serial/cp210x.c | 28 ++--------------------------
1 file changed, 2 insertions(+), 26 deletions(-)

diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
index e560608afb1e..6e027e2a02ad 100644
--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
@@ -1144,31 +1144,6 @@ static void cp210x_disable_event_mode(struct usb_serial_port *port)
port_priv->event_mode = false;
}

-static int cp210x_set_chars(struct usb_serial_port *port,
- struct cp210x_special_chars *chars)
-{
- struct cp210x_port_private *port_priv = usb_get_serial_port_data(port);
- struct usb_serial *serial = port->serial;
- void *dmabuf;
- int result;
-
- dmabuf = kmemdup(chars, sizeof(*chars), GFP_KERNEL);
- if (!dmabuf)
- return -ENOMEM;
-
- result = usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0),
- CP210X_SET_CHARS, REQTYPE_HOST_TO_INTERFACE, 0,
- port_priv->bInterfaceNumber,
- dmabuf, sizeof(*chars), USB_CTRL_SET_TIMEOUT);
-
- kfree(dmabuf);
-
- if (result < 0)
- return result;
-
- return 0;
-}
-
static bool cp210x_termios_change(const struct ktermios *a, const struct ktermios *b)
{
bool iflag_change, cc_change;
@@ -1216,7 +1191,8 @@ static void cp210x_set_flow_control(struct tty_struct *tty,
chars.bXonChar = START_CHAR(tty);
chars.bXoffChar = STOP_CHAR(tty);

- ret = cp210x_set_chars(port, &chars);
+ ret = cp210x_write_reg_block(port, CP210X_SET_CHARS, &chars,
+ sizeof(chars));
if (ret) {
dev_err(&port->dev, "failed to set special chars: %d\n",
ret);
--
2.31.1

2021-07-05 08:33:55

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH v2 0/6] USB: serial: cp210x: fixes and CP2105/CP2108 fw version

On Mon, Jul 05, 2021 at 10:20:09AM +0200, Johan Hovold wrote:
> Here are couple of minor fixes and some cleanups related to the recent
> regression which broke RTS control on some CP2102N devices with buggy
> firmware.
>
> In case we run into another one of these, let's log the firmware
> version also for CP2105 and CP2108 for which it can be retrieved.
>
> Johan
>
>
> Changes in v2
> - keep the special-chars error message to make it more obvious that
> continuing on errors is intentional (1/6) (Greg)

Thanks for the change, looks good to me!

Reviewed-by: Greg Kroah-Hartman <[email protected]>

2021-07-30 15:26:04

by Johan Hovold

[permalink] [raw]
Subject: Re: [PATCH v2 0/6] USB: serial: cp210x: fixes and CP2105/CP2108 fw version

On Mon, Jul 05, 2021 at 10:32:14AM +0200, Greg Kroah-Hartman wrote:
> On Mon, Jul 05, 2021 at 10:20:09AM +0200, Johan Hovold wrote:
> > Here are couple of minor fixes and some cleanups related to the recent
> > regression which broke RTS control on some CP2102N devices with buggy
> > firmware.
> >
> > In case we run into another one of these, let's log the firmware
> > version also for CP2105 and CP2108 for which it can be retrieved.
> >
> > Johan
> >
> >
> > Changes in v2
> > - keep the special-chars error message to make it more obvious that
> > continuing on errors is intentional (1/6) (Greg)
>
> Thanks for the change, looks good to me!
>
> Reviewed-by: Greg Kroah-Hartman <[email protected]>

Thanks also for reviewing these. Now applied for -next.

Johan