git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
quota: remove superfluous DQUOT_OFF() in fs/namespace.c
[safe/jmp/linux-2.6]
/
drivers
/
serial
/
pmac_zilog.c
diff --git
a/drivers/serial/pmac_zilog.c
b/drivers/serial/pmac_zilog.c
index
a3b99ca
..
794bd0f
100644
(file)
--- a/
drivers/serial/pmac_zilog.c
+++ b/
drivers/serial/pmac_zilog.c
@@
-88,6
+88,16
@@
MODULE_LICENSE("GPL");
#define PWRDBG(fmt, arg...) printk(KERN_DEBUG fmt , ## arg)
#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
@@
-99,9
+109,10
@@
static DEFINE_MUTEX(pmz_irq_mutex);
static struct uart_driver pmz_uart_reg = {
.owner = THIS_MODULE,
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,
};
};
@@
-204,8
+215,7
@@
static void pmz_maybe_update_regs(struct uart_pmac_port *uap)
}
}
}
}
-static struct tty_struct *pmz_receive_chars(struct uart_pmac_port *uap,
- struct pt_regs *regs)
+static struct tty_struct *pmz_receive_chars(struct uart_pmac_port *uap)
{
struct tty_struct *tty = NULL;
unsigned char ch, r1, drop, error, flag;
{
struct tty_struct *tty = NULL;
unsigned char ch, r1, drop, error, flag;
@@
-267,7
+277,7
@@
static struct tty_struct *pmz_receive_chars(struct uart_pmac_port *uap,
if (uap->port.sysrq) {
int swallow;
spin_unlock(&uap->port.lock);
if (uap->port.sysrq) {
int swallow;
spin_unlock(&uap->port.lock);
- swallow = uart_handle_sysrq_char(&uap->port, ch
, regs
);
+ swallow = uart_handle_sysrq_char(&uap->port, ch);
spin_lock(&uap->port.lock);
if (swallow)
goto next_char;
spin_lock(&uap->port.lock);
if (swallow)
goto next_char;
@@
-335,7
+345,7
@@
static struct tty_struct *pmz_receive_chars(struct uart_pmac_port *uap,
return tty;
}
return tty;
}
-static void pmz_status_handle(struct uart_pmac_port *uap
, struct pt_regs *regs
)
+static void pmz_status_handle(struct uart_pmac_port *uap)
{
unsigned char status;
{
unsigned char status;
@@
-438,7
+448,7
@@
ack_tx_int:
}
/* Hrm... we register that twice, fixme later.... */
}
/* Hrm... we register that twice, fixme later.... */
-static irqreturn_t pmz_interrupt(int irq, void *dev_id
, struct pt_regs *regs
)
+static irqreturn_t pmz_interrupt(int irq, void *dev_id)
{
struct uart_pmac_port *uap = dev_id;
struct uart_pmac_port *uap_a;
{
struct uart_pmac_port *uap = dev_id;
struct uart_pmac_port *uap_a;
@@
-462,9
+472,9
@@
static irqreturn_t pmz_interrupt(int irq, void *dev_id, struct pt_regs *regs)
write_zsreg(uap_a, R0, RES_H_IUS);
zssync(uap_a);
if (r3 & CHAEXT)
write_zsreg(uap_a, R0, RES_H_IUS);
zssync(uap_a);
if (r3 & CHAEXT)
- pmz_status_handle(uap_a
, regs
);
+ pmz_status_handle(uap_a);
if (r3 & CHARxIP)
if (r3 & CHARxIP)
- tty = pmz_receive_chars(uap_a
, regs
);
+ tty = pmz_receive_chars(uap_a);
if (r3 & CHATxIP)
pmz_transmit_chars(uap_a);
rc = IRQ_HANDLED;
if (r3 & CHATxIP)
pmz_transmit_chars(uap_a);
rc = IRQ_HANDLED;
@@
-482,9
+492,9
@@
static irqreturn_t pmz_interrupt(int irq, void *dev_id, struct pt_regs *regs)
write_zsreg(uap_b, R0, RES_H_IUS);
zssync(uap_b);
if (r3 & CHBEXT)
write_zsreg(uap_b, R0, RES_H_IUS);
zssync(uap_b);
if (r3 & CHBEXT)
- pmz_status_handle(uap_b
, regs
);
+ pmz_status_handle(uap_b);
if (r3 & CHBRxIP)
if (r3 & CHBRxIP)
- tty = pmz_receive_chars(uap_b
, regs
);
+ tty = pmz_receive_chars(uap_b);
if (r3 & CHBTxIP)
pmz_transmit_chars(uap_b);
rc = IRQ_HANDLED;
if (r3 & CHBTxIP)
pmz_transmit_chars(uap_b);
rc = IRQ_HANDLED;
@@
-1263,8
+1273,8
@@
static void pmz_irda_setup(struct uart_pmac_port *uap, unsigned long *baud)
}
}
-static void __pmz_set_termios(struct uart_port *port, struct termios *termios,
- struct termios *old)
+static void __pmz_set_termios(struct uart_port *port, struct
k
termios *termios,
+ struct
k
termios *old)
{
struct uart_pmac_port *uap = to_pmz(port);
unsigned long baud;
{
struct uart_pmac_port *uap = to_pmz(port);
unsigned long baud;
@@
-1274,7
+1284,7
@@
static void __pmz_set_termios(struct uart_port *port, struct termios *termios,
if (ZS_IS_ASLEEP(uap))
return;
if (ZS_IS_ASLEEP(uap))
return;
- memcpy(&uap->termios_cache, termios, sizeof(struct termios));
+ memcpy(&uap->termios_cache, termios, sizeof(struct
k
termios));
/* XXX Check which revs of machines actually allow 1 and 4Mb speeds
* on the IR dongle. Note that the IRTTY driver currently doesn't know
/* XXX Check which revs of machines actually allow 1 and 4Mb speeds
* on the IR dongle. Note that the IRTTY driver currently doesn't know
@@
-1314,8
+1324,8
@@
static void __pmz_set_termios(struct uart_port *port, struct termios *termios,
}
/* The port lock is not held. */
}
/* The port lock is not held. */
-static void pmz_set_termios(struct uart_port *port, struct termios *termios,
- struct termios *old)
+static void pmz_set_termios(struct uart_port *port, struct
k
termios *termios,
+ struct
k
termios *old)
{
struct uart_pmac_port *uap = to_pmz(port);
unsigned long flags;
{
struct uart_pmac_port *uap = to_pmz(port);
unsigned long flags;
@@
-1451,14
+1461,14
@@
no_dma:
/*
* Detect port type
*/
/*
* Detect port type
*/
- if (device_is_compatible(np, "cobalt"))
+ if (
of_
device_is_compatible(np, "cobalt"))
uap->flags |= PMACZILOG_FLAG_IS_INTMODEM;
uap->flags |= PMACZILOG_FLAG_IS_INTMODEM;
- conn = get_property(np, "AAPL,connector", &len);
+ conn =
of_
get_property(np, "AAPL,connector", &len);
if (conn && (strcmp(conn, "infrared") == 0))
uap->flags |= PMACZILOG_FLAG_IS_IRDA;
uap->port_type = PMAC_SCC_ASYNC;
/* 1999 Powerbook G3 has slot-names property instead */
if (conn && (strcmp(conn, "infrared") == 0))
uap->flags |= PMACZILOG_FLAG_IS_IRDA;
uap->port_type = PMAC_SCC_ASYNC;
/* 1999 Powerbook G3 has slot-names property instead */
- slots = get_property(np, "slot-names", &len);
+ slots =
of_
get_property(np, "slot-names", &len);
if (slots && slots->count > 0) {
if (strcmp(slots->name, "IrDA") == 0)
uap->flags |= PMACZILOG_FLAG_IS_IRDA;
if (slots && slots->count > 0) {
if (strcmp(slots->name, "IrDA") == 0)
uap->flags |= PMACZILOG_FLAG_IS_IRDA;
@@
-1468,10
+1478,11
@@
no_dma:
if (ZS_IS_IRDA(uap))
uap->port_type = PMAC_SCC_IRDA;
if (ZS_IS_INTMODEM(uap)) {
if (ZS_IS_IRDA(uap))
uap->port_type = PMAC_SCC_IRDA;
if (ZS_IS_INTMODEM(uap)) {
- struct device_node* i2c_modem = find_devices("i2c-modem");
+ struct device_node* i2c_modem =
+ of_find_node_by_name(NULL, "i2c-modem");
if (i2c_modem) {
const char* mid =
if (i2c_modem) {
const char* mid =
- get_property(i2c_modem, "modem-id", NULL);
+
of_
get_property(i2c_modem, "modem-id", NULL);
if (mid) switch(*mid) {
case 0x04 :
case 0x05 :
if (mid) switch(*mid) {
case 0x04 :
case 0x05 :
@@
-1483,6
+1494,7
@@
no_dma:
}
printk(KERN_INFO "pmac_zilog: i2c-modem detected, id: %d\n",
mid ? (*mid) : 0);
}
printk(KERN_INFO "pmac_zilog: i2c-modem detected, id: %d\n",
mid ? (*mid) : 0);
+ of_node_put(i2c_modem);
} else {
printk(KERN_INFO "pmac_zilog: serial modem detected\n");
}
} else {
printk(KERN_INFO "pmac_zilog: serial modem detected\n");
}
@@
-1586,7
+1598,7
@@
static int pmz_suspend(struct macio_dev *mdev, pm_message_t pm_state)
if (pm_state.event == mdev->ofdev.dev.power.power_state.event)
return 0;
if (pm_state.event == mdev->ofdev.dev.power.power_state.event)
return 0;
- pmz_debug("suspend, switching to state %d\n", pm_state);
+ pmz_debug("suspend, switching to state %d\n", pm_state
.event
);
state = pmz_uart_reg.state + uap->port.line;
state = pmz_uart_reg.state + uap->port.line;
@@
-1777,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 = {
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,
.write = pmz_console_write,
.device = uart_console_device,
.setup = pmz_console_setup,
@@
-1801,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.nr = pmz_ports_count;
pmz_uart_reg.cons = PMACZILOG_CONSOLE;
- pmz_uart_reg.minor = 64;
/*
* Register this driver with the serial core
/*
* Register this driver with the serial core