All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Hurley <peter@hurleysoftware.com>
To: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>,
	Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jiri Slaby <jslaby@suse.cz>,
	linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Tony Lindgren <tony@atomide.com>,
	Grant Likely <grant.likely@linaro.org>
Subject: Re: [PATCH] serial: 8250: Make ISA ports optional
Date: Thu, 08 Jan 2015 18:25:03 -0500	[thread overview]
Message-ID: <54AF11CF.9080600@hurleysoftware.com> (raw)
In-Reply-To: <20150108223626.43fd93d5@lxorguk.ukuu.org.uk>

On 01/08/2015 05:36 PM, One Thousand Gnomes wrote:
>> One idea that has come up in the past but never saw an implementation
>> is to make the ttyS namespace and minor numbers completely generic and
>> let any serial port driver use it. This would be a major rework, but
>> have the added advantage of cleaning up a number of other namespace
>> issues as well. There also lots of open question, in particular how
>> to maintain compatibility with existing drivers. One could imagine
>> that each uart always gets a ttyS device and optionally also gets
>> a device node for the same port with a driver specific chardev as
>> most of them do today. Or it could be an either/or decision that is
>> made at compile time or as a module parameter.
> 
> I'm not sure we should use ttyS for it. ttyS means 8250, a lot of
> existing code knows what ttyS is and what sort of ioctls and the like are
> assumed.

That genie has already escaped the bottle.

./arch/powerpc/platforms/powermac/setup.c:	char *devname = "ttyS";
./arch/powerpc/platforms/chrp/setup.c:		add_preferred_console("ttyS", 0, NULL);
./arch/powerpc/kernel/legacy_serial.c:		return add_preferred_console("ttyS", offset, opt);
./arch/xtensa/platforms/iss/console.c:	serial_driver->name = "ttyS";
./arch/mips/sni/setup.c:			add_preferred_console("ttyS", port,
./arch/mips/sgi-ip32/ip32-setup.c:			add_preferred_console("ttyS", *(con + 1) == '2' ? 1 : 0,
./arch/mips/jazz/setup.c:	add_preferred_console("ttyS", 0, "9600");
./arch/mips/sgi-ip22/ip22-setup.c:		add_preferred_console("ttyS", *(ctype + 1) == '2' ? 1 : 0,
./arch/arm/mach-davinci/board-da830-evm.c:	return add_preferred_console("ttyS", 2, "115200");
./arch/arm/mach-davinci/board-mityomapl138.c:	return add_preferred_console("ttyS", 1, "115200");
./arch/arm/mach-davinci/board-da850-evm.c:	return add_preferred_console("ttyS", 2, "115200");
./arch/arm/mach-davinci/board-omapl138-hawk.c:	return add_preferred_console("ttyS", 2, "115200");
./arch/cris/arch-v10/kernel/debugport.c:	name : "ttyS",
./arch/ia64/hp/sim/simserial.c:	hp_simserial_driver->name = "ttyS";
./arch/um/drivers/ssl.c:	.device_name 		= "ttyS",
./arch/s390/kernel/setup.c:			add_preferred_console("ttyS", 1, NULL);
./drivers/tty/amiserial.c:	.name =		"ttyS",
./drivers/tty/serial/serial_txx9.c:#define TXX9_TTY_NAME "ttyS"
./drivers/tty/serial/sunsab.c:	.dev_name		= "ttyS",
./drivers/tty/serial/mcf.c:	.dev_name	= "ttyS",
./drivers/tty/serial/atmel_serial.c:#define ATMEL_DEVICENAME	"ttyS"
./drivers/tty/serial/bcm63xx_uart.c:	.dev_name	= "ttyS",
./drivers/tty/serial/sunsu.c:	.dev_name		= "ttyS",
./drivers/tty/serial/mrst_max3110.c:	.dev_name	= "ttyS",
./drivers/tty/serial/apbuart.c:	.name = "ttyS",
./drivers/tty/serial/apbuart.c:	.dev_name = "ttyS",
./drivers/tty/serial/tilegx.c:#define TILEGX_UART_NAME	"ttyS"
./drivers/tty/serial/pmac_zilog.c:#define PMACZILOG_NAME		"ttyS"
./drivers/tty/serial/pnx8xxx_uart.c:	.dev_name		= "ttyS",
./drivers/tty/serial/m32r_sio.c:	.dev_name		= "ttyS",
./drivers/tty/serial/ip22zilog.c:	.dev_name	= "ttyS",
./drivers/tty/serial/zs.c:	.dev_name		= "ttyS",
./drivers/tty/serial/68328serial.c:	serial_driver->name = "ttyS";
./drivers/tty/serial/crisv10.c:	driver->name = "ttyS";
/drivers/tty/serial/8250/8250_core.c:	.dev_name		= "ttyS",
./drivers/tty/serial/sunzilog.c:	.dev_name	=	"ttyS",
./drivers/tty/serial/pxa.c:	.dev_name	= "ttyS",
./drivers/tty/serial/dz.c:	.dev_name		= "ttyS",
./drivers/tty/serial/sunhv.c:	.dev_name		= "ttyS",
./drivers/s390/char/sclp_vt220.c:#define SCLP_VT220_CONSOLE_NAME		"ttyS"
./drivers/s390/char/sclp_con.c:#define sclp_console_name  "ttyS"
./drivers/s390/char/con3215.c:	driver->name = "ttyS";


Besides, despite its pedigree, omap is no closer to 8250 than anything
else in drivers/tty/serial/

> A generic namespace needs not to be attached to a legacy naming 
> 
> (eg also put all serial ports in /dev/serial/0 /dev/serial/1 etc either
> via the tty layer or via systemd/udev)

This doesn't address pre-init.

Regards,
Peter Hurley

WARNING: multiple messages have this Message-ID (diff)
From: peter@hurleysoftware.com (Peter Hurley)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] serial: 8250: Make ISA ports optional
Date: Thu, 08 Jan 2015 18:25:03 -0500	[thread overview]
Message-ID: <54AF11CF.9080600@hurleysoftware.com> (raw)
In-Reply-To: <20150108223626.43fd93d5@lxorguk.ukuu.org.uk>

On 01/08/2015 05:36 PM, One Thousand Gnomes wrote:
>> One idea that has come up in the past but never saw an implementation
>> is to make the ttyS namespace and minor numbers completely generic and
>> let any serial port driver use it. This would be a major rework, but
>> have the added advantage of cleaning up a number of other namespace
>> issues as well. There also lots of open question, in particular how
>> to maintain compatibility with existing drivers. One could imagine
>> that each uart always gets a ttyS device and optionally also gets
>> a device node for the same port with a driver specific chardev as
>> most of them do today. Or it could be an either/or decision that is
>> made at compile time or as a module parameter.
> 
> I'm not sure we should use ttyS for it. ttyS means 8250, a lot of
> existing code knows what ttyS is and what sort of ioctls and the like are
> assumed.

That genie has already escaped the bottle.

./arch/powerpc/platforms/powermac/setup.c:	char *devname = "ttyS";
./arch/powerpc/platforms/chrp/setup.c:		add_preferred_console("ttyS", 0, NULL);
./arch/powerpc/kernel/legacy_serial.c:		return add_preferred_console("ttyS", offset, opt);
./arch/xtensa/platforms/iss/console.c:	serial_driver->name = "ttyS";
./arch/mips/sni/setup.c:			add_preferred_console("ttyS", port,
./arch/mips/sgi-ip32/ip32-setup.c:			add_preferred_console("ttyS", *(con + 1) == '2' ? 1 : 0,
./arch/mips/jazz/setup.c:	add_preferred_console("ttyS", 0, "9600");
./arch/mips/sgi-ip22/ip22-setup.c:		add_preferred_console("ttyS", *(ctype + 1) == '2' ? 1 : 0,
./arch/arm/mach-davinci/board-da830-evm.c:	return add_preferred_console("ttyS", 2, "115200");
./arch/arm/mach-davinci/board-mityomapl138.c:	return add_preferred_console("ttyS", 1, "115200");
./arch/arm/mach-davinci/board-da850-evm.c:	return add_preferred_console("ttyS", 2, "115200");
./arch/arm/mach-davinci/board-omapl138-hawk.c:	return add_preferred_console("ttyS", 2, "115200");
./arch/cris/arch-v10/kernel/debugport.c:	name : "ttyS",
./arch/ia64/hp/sim/simserial.c:	hp_simserial_driver->name = "ttyS";
./arch/um/drivers/ssl.c:	.device_name 		= "ttyS",
./arch/s390/kernel/setup.c:			add_preferred_console("ttyS", 1, NULL);
./drivers/tty/amiserial.c:	.name =		"ttyS",
./drivers/tty/serial/serial_txx9.c:#define TXX9_TTY_NAME "ttyS"
./drivers/tty/serial/sunsab.c:	.dev_name		= "ttyS",
./drivers/tty/serial/mcf.c:	.dev_name	= "ttyS",
./drivers/tty/serial/atmel_serial.c:#define ATMEL_DEVICENAME	"ttyS"
./drivers/tty/serial/bcm63xx_uart.c:	.dev_name	= "ttyS",
./drivers/tty/serial/sunsu.c:	.dev_name		= "ttyS",
./drivers/tty/serial/mrst_max3110.c:	.dev_name	= "ttyS",
./drivers/tty/serial/apbuart.c:	.name = "ttyS",
./drivers/tty/serial/apbuart.c:	.dev_name = "ttyS",
./drivers/tty/serial/tilegx.c:#define TILEGX_UART_NAME	"ttyS"
./drivers/tty/serial/pmac_zilog.c:#define PMACZILOG_NAME		"ttyS"
./drivers/tty/serial/pnx8xxx_uart.c:	.dev_name		= "ttyS",
./drivers/tty/serial/m32r_sio.c:	.dev_name		= "ttyS",
./drivers/tty/serial/ip22zilog.c:	.dev_name	= "ttyS",
./drivers/tty/serial/zs.c:	.dev_name		= "ttyS",
./drivers/tty/serial/68328serial.c:	serial_driver->name = "ttyS";
./drivers/tty/serial/crisv10.c:	driver->name = "ttyS";
/drivers/tty/serial/8250/8250_core.c:	.dev_name		= "ttyS",
./drivers/tty/serial/sunzilog.c:	.dev_name	=	"ttyS",
./drivers/tty/serial/pxa.c:	.dev_name	= "ttyS",
./drivers/tty/serial/dz.c:	.dev_name		= "ttyS",
./drivers/tty/serial/sunhv.c:	.dev_name		= "ttyS",
./drivers/s390/char/sclp_vt220.c:#define SCLP_VT220_CONSOLE_NAME		"ttyS"
./drivers/s390/char/sclp_con.c:#define sclp_console_name  "ttyS"
./drivers/s390/char/con3215.c:	driver->name = "ttyS";


Besides, despite its pedigree, omap is no closer to 8250 than anything
else in drivers/tty/serial/

> A generic namespace needs not to be attached to a legacy naming 
> 
> (eg also put all serial ports in /dev/serial/0 /dev/serial/1 etc either
> via the tty layer or via systemd/udev)

This doesn't address pre-init.

Regards,
Peter Hurley

  reply	other threads:[~2015-01-08 23:25 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-06  3:09 [PATCH] serial: 8250: Make ISA ports optional Peter Hurley
2015-01-06  3:09 ` Peter Hurley
2015-01-06 13:13 ` Arnd Bergmann
2015-01-06 13:13   ` Arnd Bergmann
2015-01-06 13:13   ` Arnd Bergmann
2015-01-06 14:32   ` Peter Hurley
2015-01-06 14:32     ` Peter Hurley
2015-01-06 19:43     ` Arnd Bergmann
2015-01-06 19:43       ` Arnd Bergmann
2015-01-06 21:47       ` Peter Hurley
2015-01-06 21:47         ` Peter Hurley
2015-01-07 10:05         ` Arnd Bergmann
2015-01-07 10:05           ` Arnd Bergmann
2015-01-08 13:10 ` One Thousand Gnomes
2015-01-08 13:10   ` One Thousand Gnomes
2015-01-08 13:10   ` One Thousand Gnomes
2015-01-08 16:11   ` Peter Hurley
2015-01-08 16:11     ` Peter Hurley
2015-01-08 22:05     ` Arnd Bergmann
2015-01-08 22:05       ` Arnd Bergmann
2015-01-08 22:36       ` One Thousand Gnomes
2015-01-08 22:36         ` One Thousand Gnomes
2015-01-08 23:25         ` Peter Hurley [this message]
2015-01-08 23:25           ` Peter Hurley
2015-01-09  5:13       ` Peter Hurley
2015-01-09  5:13         ` Peter Hurley
2015-01-09  8:48         ` Arnd Bergmann
2015-01-09  8:48           ` Arnd Bergmann
2015-01-09 14:14           ` Peter Hurley
2015-01-09 14:14             ` Peter Hurley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54AF11CF.9080600@hurleysoftware.com \
    --to=peter@hurleysoftware.com \
    --cc=arnd@arndb.de \
    --cc=bigeasy@linutronix.de \
    --cc=gnomes@lxorguk.ukuu.org.uk \
    --cc=grant.likely@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jslaby@suse.cz \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.