[POWERPC] Optionally use new device number for pmac_zilog
This adds the option for the pmac_zilog driver to use the major/minor numbers recently allocated specifically for it (/dev/ttyPZn) instead of the /dev/ttySn numbers. The advantage of doing this is that it allows the pmac_zilog and 8250 drivers to coexist. The disadvantage of doing this is that it is a user-visible ABI change and it will break existing working setups on powermacs, and could be confusing to users. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
c4d5e37547
commit
e4533b243e
|
@ -986,6 +986,31 @@ config SERIAL_PMACZILOG
|
|||
PowerMac machines.
|
||||
Say Y or M if you want to be able to these serial ports.
|
||||
|
||||
config SERIAL_PMACZILOG_TTYS
|
||||
bool "Use ttySn device nodes for Zilog z85c30"
|
||||
depends on SERIAL_PMACZILOG
|
||||
help
|
||||
The pmac_zilog driver for the z85C30 chip on many powermacs
|
||||
historically used the device numbers for /dev/ttySn. The
|
||||
8250 serial port driver also uses these numbers, which means
|
||||
the two drivers being unable to coexist; you could not use
|
||||
both z85C30 and 8250 type ports at the same time.
|
||||
|
||||
If this option is not selected, the pmac_zilog driver will
|
||||
use the device numbers allocated for /dev/ttyPZn. This allows
|
||||
the pmac_zilog and 8250 drivers to co-exist, but may cause
|
||||
existing userspace setups to break. Programs that need to
|
||||
access the built-in serial ports on powermacs will need to
|
||||
be reconfigured to use /dev/ttyPZn instead of /dev/ttySn.
|
||||
|
||||
If you enable this option, any z85c30 ports in the system will
|
||||
be registered as ttyS0 onwards as in the past, and you will be
|
||||
unable to use the 8250 module for PCMCIA or other 16C550-style
|
||||
UARTs.
|
||||
|
||||
Say N unless you need the z85c30 ports on your powermac
|
||||
to appear as /dev/ttySn.
|
||||
|
||||
config SERIAL_PMACZILOG_CONSOLE
|
||||
bool "Console on PowerMac z85c30 serial port"
|
||||
depends on SERIAL_PMACZILOG=y
|
||||
|
|
|
@ -88,6 +88,16 @@ MODULE_LICENSE("GPL");
|
|||
|
||||
#define PWRDBG(fmt, arg...) printk(KERN_DEBUG fmt , ## arg)
|
||||
|
||||
#ifdef CONFIG_SERIAL_PMACZILOG_TTYS
|
||||
#define PMACZILOG_MAJOR TTY_MAJOR
|
||||
#define PMACZILOG_MINOR 64
|
||||
#define PMACZILOG_NAME "ttyS"
|
||||
#else
|
||||
#define PMACZILOG_MAJOR 204
|
||||
#define PMACZILOG_MINOR 192
|
||||
#define PMACZILOG_NAME "ttyPZ"
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* For the sake of early serial console, we can do a pre-probe
|
||||
|
@ -99,9 +109,10 @@ static DEFINE_MUTEX(pmz_irq_mutex);
|
|||
|
||||
static struct uart_driver pmz_uart_reg = {
|
||||
.owner = THIS_MODULE,
|
||||
.driver_name = "ttyS",
|
||||
.dev_name = "ttyS",
|
||||
.major = TTY_MAJOR,
|
||||
.driver_name = PMACZILOG_NAME,
|
||||
.dev_name = PMACZILOG_NAME,
|
||||
.major = PMACZILOG_MAJOR,
|
||||
.minor = PMACZILOG_MINOR,
|
||||
};
|
||||
|
||||
|
||||
|
@ -1778,7 +1789,7 @@ static void pmz_console_write(struct console *con, const char *s, unsigned int c
|
|||
static int __init pmz_console_setup(struct console *co, char *options);
|
||||
|
||||
static struct console pmz_console = {
|
||||
.name = "ttyS",
|
||||
.name = PMACZILOG_NAME,
|
||||
.write = pmz_console_write,
|
||||
.device = uart_console_device,
|
||||
.setup = pmz_console_setup,
|
||||
|
@ -1802,7 +1813,6 @@ static int __init pmz_register(void)
|
|||
|
||||
pmz_uart_reg.nr = pmz_ports_count;
|
||||
pmz_uart_reg.cons = PMACZILOG_CONSOLE;
|
||||
pmz_uart_reg.minor = 64;
|
||||
|
||||
/*
|
||||
* Register this driver with the serial core
|
||||
|
|
Loading…
Reference in New Issue