Re: [PATCH 0/3] USB-Serial serdev support

Johan Hovold
2025-03-11T08:12:38Z

On Tue, Sep 17, 2024 at 06:49:48AM +0200, Marco Felsch wrote:
> On 24-09-09, Johan Hovold wrote:
> > On Wed, Aug 07, 2024 at 04:08:47PM +0200, Marco Felsch wrote:
> > > this patchset is based on Johan's patches [1] but dropped the need of
> > > the special 'serial' of-node [2].
> >
> > That's great that you found and referenced my proof-of-concept patches,
> > but it doesn't seem like you tried to understand why this hasn't been
> > merged yet.

> > First, as the commit message you refer to below explain, we need some
> > way to describe multiport controllers. Just dropping the 'serial' node
> > does not make that issue go away.
>
> Sorry for asking but isn't the current OF abstraction [1] enough? As far
> as I understood we can describe the whole USB tree within OF. I used [1]
> and the this patchset to describe the following hierarchy:
>
> usb-root -> usb-hub port-1 -> usb-serial interface-0 -> serial
> bt-module
>
> [1] Documentation/devicetree/bindings/usb/usb-device.yaml

Again, you still need to consider devices with multiple serial ports
(and they do not always map neatly to one port per interface either).

> > Second, and more importantly, you do not address the main obstacle for
> > enabling serdev for USB serial which is that the serdev cannot handle
> > hotplugging.
>
> Hotplugging is a good point but out-of-scope IMHO (at least for now)
> since the current serdev implementation rely on additional firmware
> information e.g OF node to be present. E.g. if the above mentioned setup
> would connect the "serial bt-module" directly to the UART port you still
> need an OF node to bind the serdev driver. If the node isn't present
> user-space would need to do the hci handling.

There's nothing preventing you from adding a devicetree node for a USB
device that can be unplugged.

> So from my POV the serdev abstraction is for manufacturers which make
> use of "onboard" usb-devices which are always present at the same USB
> tree location. Serdev is not made for general purpose USB ports (yet)
> where a user can plug-in all types of USB devices.

Right, but someone need to make sure that serdev can handle devices
going away first as nothing is currently preventing that from happening.

> > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git/log/?h=usb-serial-of
> > > [2] https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git/commit/?h=usb-serial-of&id=b19239022c92567a6a9ed40e8522e84972b0997f

Johan