summaryrefslogtreecommitdiff
path: root/drivers/serial
diff options
context:
space:
mode:
authorAlexander Viro <viro@parcelfarce.linux.theplanet.co.uk>2003-04-24 08:38:30 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-04-24 08:38:30 -0700
commitb7d752fb6dc63357ed6673181a8afd4b169488df (patch)
tree9415e23a033b0ee43929b9973149cb78a6854043 /drivers/serial
parentb8f652d56f34bc2ce6e3505bbf7d3746d33eb022 (diff)
[PATCH] console cleanup (1/2)
Preparation to console->device() cleanup: serial drivers converted to common helper for their ->device() methods.
Diffstat (limited to 'drivers/serial')
-rw-r--r--drivers/serial/21285.c12
-rw-r--r--drivers/serial/8250.c9
-rw-r--r--drivers/serial/amba.c9
-rw-r--r--drivers/serial/anakin.c11
-rw-r--r--drivers/serial/clps711x.c9
-rw-r--r--drivers/serial/core.c6
-rw-r--r--drivers/serial/nb85e_uart.c9
-rw-r--r--drivers/serial/sa1100.c9
-rw-r--r--drivers/serial/serial98.c10
-rw-r--r--drivers/serial/sunsab.c8
-rw-r--r--drivers/serial/sunsu.c8
-rw-r--r--drivers/serial/sunzilog.c8
-rw-r--r--drivers/serial/uart00.c9
13 files changed, 41 insertions, 76 deletions
diff --git a/drivers/serial/21285.c b/drivers/serial/21285.c
index 01593c1cfd78..a5315c3100df 100644
--- a/drivers/serial/21285.c
+++ b/drivers/serial/21285.c
@@ -414,11 +414,6 @@ serial21285_console_write(struct console *co, const char *s,
}
}
-static kdev_t serial21285_console_device(struct console *c)
-{
- return mk_kdev(SERIAL_21285_MAJOR, SERIAL_21285_MINOR);
-}
-
static void __init
serial21285_get_options(struct uart_port *port, int *baud,
int *parity, int *bits)
@@ -479,15 +474,17 @@ static int __init serial21285_console_setup(struct console *co, char *options)
return uart_set_options(port, co, baud, parity, bits, flow);
}
+extern struct uart_driver serial21285_reg;
#ifdef CONFIG_SERIAL_21285_OLD
static struct console serial21285_old_cons =
{
.name = SERIAL_21285_OLD_NAME,
.write = serial21285_console_write,
- .device = serial21285_console_device,
+ .device = uart_console_device,
.setup = serial21285_console_setup,
.flags = CON_PRINTBUFFER,
.index = -1,
+ .data = &serial21285_reg,
};
#endif
@@ -495,10 +492,11 @@ static struct console serial21285_console =
{
.name = SERIAL_21285_NAME,
.write = serial21285_console_write,
- .device = serial21285_console_device,
+ .device = uart_console_device,
.setup = serial21285_console_setup,
.flags = CON_PRINTBUFFER,
.index = -1,
+ .data = &serial21285_reg,
};
static int __init rs285_console_init(void)
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 4b365700d78f..b554e894f79d 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -1944,11 +1944,6 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count)
serial_out(up, UART_IER, ier);
}
-static kdev_t serial8250_console_device(struct console *co)
-{
- return mk_kdev(TTY_MAJOR, 64 + co->index);
-}
-
static int __init serial8250_console_setup(struct console *co, char *options)
{
struct uart_port *port;
@@ -1977,13 +1972,15 @@ static int __init serial8250_console_setup(struct console *co, char *options)
return uart_set_options(port, co, baud, parity, bits, flow);
}
+extern struct uart_driver serial8250_reg;
static struct console serial8250_console = {
.name = "ttyS",
.write = serial8250_console_write,
- .device = serial8250_console_device,
+ .device = uart_console_device,
.setup = serial8250_console_setup,
.flags = CON_PRINTBUFFER,
.index = -1,
+ .data = &serial8250_reg,
};
static int __init serial8250_console_init(void)
diff --git a/drivers/serial/amba.c b/drivers/serial/amba.c
index e1abc2633196..7ffa50b6f00b 100644
--- a/drivers/serial/amba.c
+++ b/drivers/serial/amba.c
@@ -640,11 +640,6 @@ ambauart_console_write(struct console *co, const char *s, unsigned int count)
UART_PUT_CR(port, old_cr);
}
-static kdev_t ambauart_console_device(struct console *co)
-{
- return mk_kdev(SERIAL_AMBA_MAJOR, SERIAL_AMBA_MINOR + co->index);
-}
-
static void __init
ambauart_console_get_options(struct uart_port *port, int *baud,
int *parity, int *bits)
@@ -696,13 +691,15 @@ static int __init ambauart_console_setup(struct console *co, char *options)
return uart_set_options(port, co, baud, parity, bits, flow);
}
+extern struct uart_driver amba_reg;
static struct console amba_console = {
.name = "ttyAM",
.write = ambauart_console_write,
- .device = ambauart_console_device,
+ .device = uart_console_device,
.setup = ambauart_console_setup,
.flags = CON_PRINTBUFFER,
.index = -1,
+ .data = &amba_reg,
};
static int __init ambauart_console_init(void)
diff --git a/drivers/serial/anakin.c b/drivers/serial/anakin.c
index 392e8b8430b4..1716e234861f 100644
--- a/drivers/serial/anakin.c
+++ b/drivers/serial/anakin.c
@@ -444,12 +444,6 @@ anakin_console_write(struct console *co, const char *s, unsigned int count)
}
}
-static kdev_t
-anakin_console_device(struct console *co)
-{
- return mk_kdev(SERIAL_ANAKIN_MAJOR, SERIAL_ANAKIN_MINOR + co->index);
-}
-
/*
* Read the current UART setup.
*/
@@ -493,10 +487,11 @@ anakin_console_setup(struct console *co, char *options)
return uart_set_options(port, co, baud, parity, bits);
}
+extern struct uart_driver anakin_reg;
static struct console anakin_console = {
.name = SERIAL_ANAKIN_NAME,
.write = anakin_console_write,
- .device = anakin_console_device,
+ .device = uart_console_device,
.setup = anakin_console_setup,
.flags = CON_PRINTBUFFER,
.index = -1,
@@ -514,7 +509,7 @@ console_initcall(anakin_console_init);
#define ANAKIN_CONSOLE NULL
#endif
-static struct uart_register anakin_reg = {
+static struct uart_driver anakin_reg = {
.driver_name = SERIAL_ANAKIN_NAME,
.dev_name = SERIAL_ANAKIN_NAME,
.major = SERIAL_ANAKIN_MAJOR,
diff --git a/drivers/serial/clps711x.c b/drivers/serial/clps711x.c
index c6952eb73228..a32dae486b77 100644
--- a/drivers/serial/clps711x.c
+++ b/drivers/serial/clps711x.c
@@ -503,11 +503,6 @@ clps711xuart_console_write(struct console *co, const char *s,
clps_writel(syscon, SYSCON(port));
}
-static kdev_t clps711xuart_console_device(struct console *co)
-{
- return mk_kdev(SERIAL_CLPS711X_MAJOR, SERIAL_CLPS711X_MINOR + co->index);
-}
-
static void __init
clps711xuart_console_get_options(struct uart_port *port, int *baud,
int *parity, int *bits)
@@ -558,13 +553,15 @@ static int __init clps711xuart_console_setup(struct console *co, char *options)
return uart_set_options(port, co, baud, parity, bits, flow);
}
+extern struct uart_driver clps711x_reg;
static struct console clps711x_console = {
.name = "ttyCL",
.write = clps711xuart_console_write,
- .device = clps711xuart_console_device,
+ .device = uart_console_device,
.setup = clps711xuart_console_setup,
.flags = CON_PRINTBUFFER,
.index = -1,
+ .data = &clps711x_reg,
};
static int __init clps711xuart_console_init(void)
diff --git a/drivers/serial/core.c b/drivers/serial/core.c
index 2e585223f1e6..7359f3f71b14 100644
--- a/drivers/serial/core.c
+++ b/drivers/serial/core.c
@@ -2194,6 +2194,12 @@ void uart_unregister_driver(struct uart_driver *drv)
kfree(drv->tty_driver);
}
+kdev_t uart_console_device(struct console *co)
+{
+ struct uart_driver *p = co->data;
+ return mk_kdev(p->major, p->minor + co->index);
+}
+
/**
* uart_add_one_port - attach a driver-defined port structure
* @drv: pointer to the uart low level driver structure for this port
diff --git a/drivers/serial/nb85e_uart.c b/drivers/serial/nb85e_uart.c
index 97f664e08f5f..1d9da1d786d4 100644
--- a/drivers/serial/nb85e_uart.c
+++ b/drivers/serial/nb85e_uart.c
@@ -272,19 +272,16 @@ static void nb85e_uart_cons_write (struct console *co,
}
}
-static kdev_t nb85e_uart_cons_device (struct console *c)
-{
- return mk_kdev (TTY_MAJOR, NB85E_UART_MINOR_BASE + c->index);
-}
-
+extern struct uart_driver nb85e_uart_driver;
static struct console nb85e_uart_cons =
{
.name = "ttyS",
.write = nb85e_uart_cons_write,
- .device = nb85e_uart_cons_device,
+ .device = uart_console_device,
.flags = CON_PRINTBUFFER,
.cflag = NB85E_UART_INIT_CFLAGS,
.index = -1,
+ .data = &nb85e_uart_driver,
};
void nb85e_uart_cons_init (unsigned chan)
diff --git a/drivers/serial/sa1100.c b/drivers/serial/sa1100.c
index 6df20e91174c..2cd9a64b88fc 100644
--- a/drivers/serial/sa1100.c
+++ b/drivers/serial/sa1100.c
@@ -760,11 +760,6 @@ sa1100_console_write(struct console *co, const char *s, unsigned int count)
UART_PUT_UTCR3(sport, old_utcr3);
}
-static kdev_t sa1100_console_device(struct console *co)
-{
- return mk_kdev(SERIAL_SA1100_MAJOR, MINOR_START + co->index);
-}
-
/*
* If the port was already initialised (eg, by a boot loader),
* try to determine the current setup.
@@ -827,13 +822,15 @@ sa1100_console_setup(struct console *co, char *options)
return uart_set_options(&sport->port, co, baud, parity, bits, flow);
}
+extern struct uart_driver sa1100_reg;
static struct console sa1100_console = {
.name = "ttySA",
.write = sa1100_console_write,
- .device = sa1100_console_device,
+ .device = uart_console_device,
.setup = sa1100_console_setup,
.flags = CON_PRINTBUFFER,
.index = -1,
+ .data = sa1100_reg,
};
static int __init sa1100_rs_console_init(void)
diff --git a/drivers/serial/serial98.c b/drivers/serial/serial98.c
index 9b597943de06..c34f89968530 100644
--- a/drivers/serial/serial98.c
+++ b/drivers/serial/serial98.c
@@ -136,16 +136,17 @@ struct serial98_port {
#ifdef CONFIG_SERIAL98_CONSOLE
static void
serial98_console_write(struct console *co, const char *s, unsigned int count);
-static kdev_t serial98_console_device(struct console *co);
static int __init serial98_console_setup(struct console *co, char *options);
+extern struct uart_driver serial98_reg;
static struct console serial98_console = {
.name = "ttyS",
.write = serial98_console_write,
- .device = serial98_console_device,
+ .device = uart_console_device,
.setup = serial98_console_setup,
.flags = CON_PRINTBUFFER,
.index = -1,
+ .data = &serial98_reg,
};
#define SERIAL98_CONSOLE &serial98_console
@@ -994,11 +995,6 @@ serial98_console_write(struct console *co, const char *s, unsigned int count)
outb(ier2, IER2_8251F);
}
-static kdev_t serial98_console_device(struct console *co)
-{
- return mk_kdev(TTY_MAJOR, 64 + co->index);
-}
-
static int __init serial98_console_setup(struct console *co, char *options)
{
struct uart_port *port;
diff --git a/drivers/serial/sunsab.c b/drivers/serial/sunsab.c
index 9c464d9c698b..fd434fa05e9d 100644
--- a/drivers/serial/sunsab.c
+++ b/drivers/serial/sunsab.c
@@ -863,11 +863,6 @@ static void sunsab_console_write(struct console *con, const char *s, unsigned n)
sunsab_tec_wait(up);
}
-static kdev_t sunsab_console_device(struct console *con)
-{
- return mk_kdev(sunsab_reg.major, sunsab_reg.minor + con->index);
-}
-
static int sunsab_console_setup(struct console *con, char *options)
{
struct uart_sunsab_port *up = &sunsab_ports[con->index];
@@ -928,10 +923,11 @@ static int sunsab_console_setup(struct console *con, char *options)
static struct console sunsab_console = {
.name = "ttyS",
.write = sunsab_console_write,
- .device = sunsab_console_device,
+ .device = uart_console_device,
.setup = sunsab_console_setup,
.flags = CON_PRINTBUFFER,
.index = -1,
+ .data = &sunsab_reg,
};
static void __init sunsab_console_init(void)
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c
index b52734b30e71..91c3b6233d42 100644
--- a/drivers/serial/sunsu.c
+++ b/drivers/serial/sunsu.c
@@ -1422,11 +1422,6 @@ static void sunsu_console_write(struct console *co, const char *s,
serial_out(up, UART_IER, ier);
}
-static kdev_t sunsu_console_device(struct console *co)
-{
- return mk_kdev(sunsu_reg.major, sunsu_reg.minor + co->index);
-}
-
/*
* Setup initial baud/bits/parity. We do two things here:
* - construct a cflag setting for the first su_open()
@@ -1467,10 +1462,11 @@ static int __init sunsu_console_setup(struct console *co, char *options)
static struct console sunsu_cons = {
.name = "ttyS",
.write = sunsu_console_write,
- .device = sunsu_console_device,
+ .device = uart_console_device,
.setup = sunsu_console_setup,
.flags = CON_PRINTBUFFER,
.index = -1,
+ .data = &sunsu_reg,
};
/*
diff --git a/drivers/serial/sunzilog.c b/drivers/serial/sunzilog.c
index 7fa1c7a484d6..d91ae7dd5b27 100644
--- a/drivers/serial/sunzilog.c
+++ b/drivers/serial/sunzilog.c
@@ -1352,11 +1352,6 @@ sunzilog_console_write(struct console *con, const char *s, unsigned int count)
spin_unlock_irqrestore(&up->port.lock, flags);
}
-static kdev_t sunzilog_console_device(struct console *con)
-{
- return mk_kdev(sunzilog_reg.major, sunzilog_reg.minor + con->index);
-}
-
static int __init sunzilog_console_setup(struct console *con, char *options)
{
struct uart_sunzilog_port *up = &sunzilog_port_table[con->index];
@@ -1402,10 +1397,11 @@ static int __init sunzilog_console_setup(struct console *con, char *options)
static struct console sunzilog_console = {
.name = "ttyS",
.write = sunzilog_console_write,
- .device = sunzilog_console_device,
+ .device = uart_console_device,
.setup = sunzilog_console_setup,
.flags = CON_PRINTBUFFER,
.index = -1,
+ .data = &sunzilog_reg,
};
static int __init sunzilog_console_init(void)
diff --git a/drivers/serial/uart00.c b/drivers/serial/uart00.c
index 2a7d39014919..0601bd634b7b 100644
--- a/drivers/serial/uart00.c
+++ b/drivers/serial/uart00.c
@@ -576,11 +576,6 @@ static void uart00_console_write(struct console *co, const char *s, unsigned cou
#endif
}
-static kdev_t uart00_console_device(struct console *co)
-{
- return mk_kdev(SERIAL_UART00_MAJOR, SERIAL_UART00_MINOR + co->index);
-}
-
static void __init
uart00_console_get_options(struct uart_port *port, int *baud,
int *parity, int *bits)
@@ -636,13 +631,15 @@ static int __init uart00_console_setup(struct console *co, char *options)
return uart_set_options(port, co, baud, parity, bits, flow);
}
+extern struct uart_driver uart00_reg;
static struct console uart00_console = {
.name = SERIAL_UART00_NAME,
.write = uart00_console_write,
- .device = uart00_console_device,
+ .device = uart_console_device,
.setup = uart00_console_setup,
.flags = CON_PRINTBUFFER,
.index = 0,
+ .data = &uart00_reg;
};
static int __init uart00_console_init(void)