Re: [PATCH v2 0/7] Add support for the other MaxLinear/Exar UARTs
From: Johan Hovold
Date: Tue Mar 30 2021 - 10:36:04 EST
On Wed, Mar 24, 2021 at 08:41:04AM +0100, Mauro Carvalho Chehab wrote:
> The current version of the xr_serial driver handles one one of the several
> MaxLinear/Exar UARTs and UART bridges. There are currently 12 such
> models. Only one is currently supported.
As I mentioned earlier, proper handling of the CDC devices requires
support in USB serial core, which I've now implemented.
With that and by parsing the Union descriptor to determine the interface
layout, probing can also be cleaned up quite a bit.
Looking at this series I found a few things that have been overlooked,
such as the device types having different register widths (and one even
differing register address widths), the custom driver flag not being set
and a memory leak. I'll comment on some of these separately.
It also seems the type abstraction can be handled better by using a
more structured approach, which also allows getting rid of some of the
type conditionals spread throughout the code.
Another key observation here is that it's the currently supported type
which is the one that stands out from the rest. And while all four types
supports CDC requests, it's only the SET_LINE_CODING one which is
actually required to be used (by the three new types). This also allows
for a cleaner implementation.
I ended up implementing support myself in order to make sense of all the
ways these device types differ while digging through the datasheets and
thinking about how best to implement this.
I'll be posting a fix and two series while keeping you on CC. Would you
mind giving it a spin with your XR21B142X?
Johan