[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3b75b92805648577ed05ff221d0c56e381aa1c7c.camel@linux.ibm.com>
Date: Fri, 22 Nov 2024 16:35:57 +0100
From: Niklas Schnelle <schnelle@...ux.ibm.com>
To: Guenter Roeck <linux@...ck-us.net>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Jiri Slaby
<jirislaby@...nel.org>,
Ilpo Järvinen
<ilpo.jarvinen@...ux.intel.com>,
linux-serial@...r.kernel.org, Arnd
Bergmann <arnd@...nel.org>,
Heiko Carstens <hca@...ux.ibm.com>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/1] tty: serial: handle HAS_IOPORT dependencies
On Fri, 2024-11-22 at 07:18 -0800, Guenter Roeck wrote:
> On Fri, Apr 05, 2024 at 05:29:24PM +0200, Niklas Schnelle wrote:
> > In a future patch HAS_IOPORT=n will disable inb()/outb() and friends at
> > compile time. We thus need to add HAS_IOPORT as dependency for those
> > drivers using them unconditionally. For 8250 based drivers some support
> > MMIO only use so fence only the parts requiring I/O ports.
> >
> > Co-developed-by: Arnd Bergmann <arnd@...nel.org>
> > Signed-off-by: Arnd Bergmann <arnd@...nel.org>
> > Signed-off-by: Niklas Schnelle <schnelle@...ux.ibm.com>
> ...
> > @@ -422,10 +443,12 @@ static void set_io_from_upio(struct uart_port *p)
> > up->dl_write = default_serial_dl_write;
> >
> > + default:
> > + WARN(1, "Unsupported UART type %x\n", p->iotype);
>
> So, according to this patch, the serial uart on microblaze, nios2,
> openrisc, xtensa, and possibly others is not or no longer supported.
>
> WARNING: CPU: 0 PID: 0 at drivers/tty/serial/8250/8250_port.c:470 serial8250_set_defaults+0x1a8/0x22c
> Unsupported UART type 0
>
> Any special reason ?
>
> Guenter
So according to the warning the p->iotype is 0 which is UPIO_PORT.
For UPIO_PORT the switch above the WARN would pick io_serial_in() and
io_serial_out() as handlers. These use inb() respectively outb() to
access the serial so I don't see how they would work with !HAS_IOPORT
and it most definitely won't work for s390.
Now for Microblaze Kconfig says to select HAS_IOPORT if PCI so I'd
assume that it can use inb()/outb() and maybe the PCI requirement is
not correct if this isn't a PCI device and it used to work with
inb()/outb()? For nios2, openrisc, and xtensa they don't select
HAS_IOPORT so either it really won't work anyway or they should select
it. Can you tell us more about the devices involved where you saw this?
Thanks,
Niklas
Powered by blists - more mailing lists