linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: David Woodhouse <dwmw2@infradead.org>
To: Paul Mackerras <paulus@samba.org>
Cc: linuxppc-dev@ozlabs.org, linux-kernel@vger.kernel.org,
	Alan Cox <alan@lxorguk.ukuu.org.uk>
Subject: [PATCH v3] Stop pmac_zilog from abusing 8250's device numbers; optionally.
Date: Wed, 04 Apr 2007 10:19:43 -0400	[thread overview]
Message-ID: <1175696383.2774.24.camel@shinybook.infradead.org> (raw)
In-Reply-To: <17939.17962.248566.886449@cargo.ozlabs.ibm.com>

On Wed, 2007-04-04 at 16:31 +1000, Paul Mackerras wrote:
> It seems Debian has both 8250 and pmac_zilog built in; not sure which
> one wins.  Ubuntu has them both as modules and managed to get the
> right one (pmac_zilog) loaded on a colleague's powerbook. 

So if you insert a PCMCIA card with an 8250-compatible port in it --
like a Bluetooth card or modem -- you won't get it to work, right? 

>  You'd know better than me what FC does.

Fedora has 8250 built in, which means pmac_zilog can never get loaded.

> In any case there definitely are people using pmac_zilog successfully
> on powermacs and we need to come up with a way to avoid breaking their
> setups.  I'm prepared to accept that the Linux way is to be lame about
> serial port naming provided that we avoid breaking existing working
> setups. 

OK, how about a config option to preserve the old behaviour...

Signed-off-by: David Woodhouse <dwmw2@infradead.org>

diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index ad9f321..09b2dd4 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -753,6 +753,25 @@ 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 z85C30 driver historically used the device nodes which 
+	  are registed to the 8250 serial port driver, which led to the
+	  two drivers being unable to coexist; you could not use both
+	  z85C30 and 8250 type ports at the same time.
+
+	  The z83C30 driver was fixed to prevent this abuse by default,
+	  but this configuration option remains in order to allow backward
+	  compatibility by reverting to the old misbehaviour.
+
+	  If you enable this option, any z85c30 ports in the system will
+	  be registered as ttyS0 onwards, and you will be unable to use
+	  the 8250 module for PCMCIA or other standard UARTs.
+
+	  Say N.
+
 config SERIAL_PMACZILOG_CONSOLE
 	bool "Console on PowerMac z85c30 serial port"
 	depends on SERIAL_PMACZILOG=y
diff --git a/drivers/serial/pmac_zilog.c b/drivers/serial/pmac_zilog.c
index 752ef07..28269bb 100644
--- a/drivers/serial/pmac_zilog.c
+++ b/drivers/serial/pmac_zilog.c
@@ -88,9 +88,19 @@ 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
+ * FOR the sake of early serial console, we can do a pre-probe
  * (optional) of the ports at rather early boot time.
  */
 static struct uart_pmac_port	pmz_ports[MAX_ZS_PORTS];
@@ -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,
 };
 
 
@@ -1776,7 +1787,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,
@@ -1800,7 +1811,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

-- 
dwmw2

  reply	other threads:[~2007-04-04 14:20 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-03 14:25 [PATCH] Stop pmac_zilog from abusing 8250's device numbers David Woodhouse
2007-04-03 20:37 ` Brad Boyer
2007-04-03 22:58   ` David Woodhouse
2007-04-03 23:14 ` Paul Mackerras
2007-04-03 23:28   ` David Woodhouse
2007-04-03 21:29     ` Brad Boyer
2007-04-03 23:57       ` David Woodhouse
     [not found]         ` <200704032210 02.GA13210@cynthia.pants.nu>
2007-04-03 22:10         ` Brad Boyer
2007-04-04  0:54           ` David Woodhouse
2007-04-03 23:09             ` Brad Boyer
2007-04-04  1:38               ` Alan Cox
2007-04-04  2:10               ` Valdis.Kletnieks
2007-04-04  1:57                 ` David Lang
2007-04-04  8:51               ` Russell King
2007-04-04  9:48                 ` Geert Uytterhoeven
2007-04-04 16:09                   ` H. Peter Anvin
2007-04-04 16:22               ` Linas Vepstas
2007-04-04 16:34                 ` David Woodhouse
2007-04-04 17:38                   ` Linas Vepstas
2007-04-04  1:16             ` David Miller
2007-04-04  1:28               ` Alan Cox
2007-04-04  1:07                 ` David Lang
2007-04-04  1:44                   ` Alan Cox
2007-04-04  1:23                     ` David Lang
2007-04-04  1:32                       ` David Lang
2007-04-04 16:07                       ` H. Peter Anvin
2007-04-04 17:50                       ` Linas Vepstas
2007-04-04  1:50                     ` David Miller
2007-04-04 11:14                       ` Alan Cox
2007-04-04 12:20                         ` Olivier Galibert
2007-04-04  1:48                   ` David Miller
2007-04-04  3:07                 ` Gerhard Mack
2007-04-11 16:30                   ` Benny Amorsen
2007-04-12 15:34                     ` Roland Dreier
2007-04-13  2:45                       ` Gerhard Mack
2007-04-13  2:24                         ` David Lang
2007-04-13  8:09                           ` Geert Uytterhoeven
2007-04-04  0:02         ` David Miller
2007-04-04  0:12           ` David Woodhouse
2007-04-03 22:14             ` Brad Boyer
2007-04-04  1:13             ` Benjamin Herrenschmidt
2007-04-04  1:17               ` David Miller
2007-04-04  1:32                 ` Benjamin Herrenschmidt
2007-04-04  0:01       ` [PATCH v2] " David Woodhouse
2007-04-04  1:25       ` [PATCH] " Alan Cox
2007-04-04  4:20         ` Paul Mackerras
2007-04-04  5:19           ` David Woodhouse
2007-04-04  5:50             ` David Miller
2007-04-04  7:04               ` Geert Uytterhoeven
2007-04-04 13:43                 ` Maciej W. Rozycki
2007-04-04  7:52               ` Russell King
2007-04-04  8:41                 ` David Miller
2007-04-04  5:53             ` Paul Mackerras
2007-04-04  6:03               ` David Woodhouse
2007-04-04  6:31                 ` Paul Mackerras
2007-04-04 14:19                   ` David Woodhouse [this message]
2007-04-04 23:48                     ` [PATCH v3] Stop pmac_zilog from abusing 8250's device numbers; optionally Paul Mackerras
2007-04-05 12:45                       ` David Woodhouse
2007-04-05 22:53                         ` Paul Mackerras
2007-04-05 22:59                           ` David Woodhouse
2007-04-05 14:31                     ` Atsushi Nemoto
2007-04-05 14:47                       ` David Woodhouse
2007-04-05 15:09                         ` Atsushi Nemoto
2007-04-05 15:18                           ` David Woodhouse
2007-04-05 15:49                             ` Atsushi Nemoto
2007-04-05 15:56                         ` Geert Uytterhoeven
2007-04-04  8:12                 ` [PATCH] Stop pmac_zilog from abusing 8250's device numbers David Miller
2007-04-04  8:38                   ` Russell King
2007-04-04  8:43                     ` David Miller
2007-04-04  9:00                       ` Russell King
2007-04-04 19:58                         ` David Miller
2007-04-04 12:21                     ` Theodore Tso
2007-04-04 16:10                       ` Russell King
2007-04-04 16:16                       ` H. Peter Anvin
2007-04-04 16:25                         ` Alan Cox
2007-04-04 17:41                         ` Theodore Tso
2007-04-04 18:15                           ` Russell King
2007-04-04 19:50                             ` David Woodhouse
2007-04-05  6:05                               ` Paul Mackerras
2007-04-05  8:50                                 ` Russell King
2007-04-05 16:15                             ` Olivier Galibert
2007-04-05 21:41                 ` Pavel Machek
2007-04-03 23:56     ` David Miller
2007-04-04  1:13       ` Benjamin Herrenschmidt
2007-04-04  6:58     ` Paul Mackerras
2007-04-04 14:16       ` David Woodhouse
2007-04-03 23:55   ` David Miller
2007-04-04  1:19     ` Alan Cox
2007-04-04  1:21       ` David Miller
2007-04-04  1:36         ` Alan Cox
2007-04-04  1:47           ` David Miller
2007-04-04  7:47         ` Russell King
2007-04-04  9:55           ` Paul Mackerras
2007-04-04 16:06             ` Russell King
2007-04-04  6:58     ` Geert Uytterhoeven
2007-08-14 11:49   ` Olaf Hering
2007-08-14 11:53     ` David Woodhouse
2007-08-14 16:24       ` Olaf Hering
2007-04-04  7:55 ` Olaf Hering

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=1175696383.2774.24.camel@shinybook.infradead.org \
    --to=dwmw2@infradead.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=paulus@samba.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).