Re: [PATCH v8 1/2] Serial: silabs si4455 serial driver

From: József Horváth
Date: Tue Jan 12 2021 - 12:47:39 EST


On Tue, Jan 12, 2021 at 05:13:16PM +0100, 'Greg Kroah-Hartman' wrote:
> On Tue, Jan 12, 2021 at 03:43:22PM +0000, József Horváth wrote:
> > On Tue, Jan 12, 2021 at 11:28:08AM +0100, 'Greg Kroah-Hartman' wrote:
> > > On Tue, Jan 12, 2021 at 10:18:33AM +0000, Jozsef Horvath wrote:
> > > > --- a/include/uapi/linux/serial_core.h
> > > > +++ b/include/uapi/linux/serial_core.h
> > > > @@ -279,4 +279,7 @@
> > > > /* Freescale LINFlexD UART */
> > > > #define PORT_LINFLEXUART 122
> > > >
> > > > +/* Silicon Labs SI4455 */
> > > > +#define PORT_SI4455 123
> > >
> > > What userspace tool is going to need this value?
> >
> > The PORT_SI4455 is defined for using as port type value in struct uart_port.
> > I checked other serial drivers under drivers/tty/serial and the port types
> > used by serial drivers are defined in two places:
> >
> > include/uapi/linux/serial_core.h
> > include/uapi/linux/serial.h
> >
> > The port type is required by serial_core, and its value goes back to
> > user space with TIOCGSERIAL ioctl call.
>
> What is it required for? Who uses this?
>
> > I can't set port type value to 0(PORT_UNKNOWN).
>
> Why not?

In drivers/tty/serial/serial_core.c
1784: uart_port_activate(...)
1799: -> uart_startup(...)
260: -> uart_port_startup(...)

183: static int uart_port_startup(struct tty_struct *tty, struct uart_state *state,
184: int init_hw)
...
191: if (uport->type == PORT_UNKNOWN)
192: return 1;
...
221: retval = uport->ops->startup(uport); <--This is the reason. The drivers
startup function is not get called if type==PORT_UNKNOWN
...

>
> > I think my drivers source is not the best place to defining PORT_SI4455,
> > but I can't find better place then include/uapi/linux/serial_core.h
> >
> > Could you please help me where is the correct location for this definition?
>
> I ask as I am trying to figure out why we keep adding these ids, yet no
> tool that i know of seems to actually use them.
>
> If you don't have a tool that needs to use a new id, then I would
> recommend not adding it, right?

This definition is not my requirement, but I would avoid collision with other
drivers port type value.
At this point as I understand your words, these definitions will be obsolete
or optional soon and I can choose any value for drivers port type.

Right?

I would ask you about dev name (ttySSi).
Is it okay?

I didnt find any similar.

>
> thanks,
>
> greg k-h

Üdvözlettel / Best regards:
József Horváth