diff options
author | Paul Mackerras <paulus@samba.org> | 2007-04-29 22:38:01 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-04-29 22:38:01 -0400 |
commit | 49e1900d4cc2e7bcecb681fe60f0990bec2dcce8 (patch) | |
tree | 253801ebf57e0a23856a2c7be129c2c178f62fdf /drivers/serial | |
parent | 34f6d749c0a328817d5e36274e53121c1db734dc (diff) | |
parent | b9099ff63c75216d6ca10bce5a1abcd9293c27e6 (diff) |
Merge branch 'linux-2.6' into for-2.6.22
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/8250.c | 8 | ||||
-rw-r--r-- | drivers/serial/icom.c | 9 | ||||
-rw-r--r-- | drivers/serial/icom.h | 1 | ||||
-rw-r--r-- | drivers/serial/sunsu.c | 4 |
4 files changed, 11 insertions, 11 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index c129a0e8e807..90621c3312bc 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -1310,7 +1310,8 @@ static unsigned int check_modem_status(struct uart_8250_port *up) | |||
1310 | { | 1310 | { |
1311 | unsigned int status = serial_in(up, UART_MSR); | 1311 | unsigned int status = serial_in(up, UART_MSR); |
1312 | 1312 | ||
1313 | if (status & UART_MSR_ANY_DELTA && up->ier & UART_IER_MSI) { | 1313 | if (status & UART_MSR_ANY_DELTA && up->ier & UART_IER_MSI && |
1314 | up->port.info != NULL) { | ||
1314 | if (status & UART_MSR_TERI) | 1315 | if (status & UART_MSR_TERI) |
1315 | up->port.icount.rng++; | 1316 | up->port.icount.rng++; |
1316 | if (status & UART_MSR_DDSR) | 1317 | if (status & UART_MSR_DDSR) |
@@ -1333,8 +1334,9 @@ static inline void | |||
1333 | serial8250_handle_port(struct uart_8250_port *up) | 1334 | serial8250_handle_port(struct uart_8250_port *up) |
1334 | { | 1335 | { |
1335 | unsigned int status; | 1336 | unsigned int status; |
1337 | unsigned long flags; | ||
1336 | 1338 | ||
1337 | spin_lock(&up->port.lock); | 1339 | spin_lock_irqsave(&up->port.lock, flags); |
1338 | 1340 | ||
1339 | status = serial_inp(up, UART_LSR); | 1341 | status = serial_inp(up, UART_LSR); |
1340 | 1342 | ||
@@ -1346,7 +1348,7 @@ serial8250_handle_port(struct uart_8250_port *up) | |||
1346 | if (status & UART_LSR_THRE) | 1348 | if (status & UART_LSR_THRE) |
1347 | transmit_chars(up); | 1349 | transmit_chars(up); |
1348 | 1350 | ||
1349 | spin_unlock(&up->port.lock); | 1351 | spin_unlock_irqrestore(&up->port.lock, flags); |
1350 | } | 1352 | } |
1351 | 1353 | ||
1352 | /* | 1354 | /* |
diff --git a/drivers/serial/icom.c b/drivers/serial/icom.c index 41431d0d5512..246c5572667b 100644 --- a/drivers/serial/icom.c +++ b/drivers/serial/icom.c | |||
@@ -164,7 +164,7 @@ static void free_port_memory(struct icom_port *icom_port) | |||
164 | } | 164 | } |
165 | } | 165 | } |
166 | 166 | ||
167 | static int __init get_port_memory(struct icom_port *icom_port) | 167 | static int __devinit get_port_memory(struct icom_port *icom_port) |
168 | { | 168 | { |
169 | int index; | 169 | int index; |
170 | unsigned long stgAddr; | 170 | unsigned long stgAddr; |
@@ -1380,7 +1380,7 @@ static void icom_port_active(struct icom_port *icom_port, struct icom_adapter *i | |||
1380 | 0x8024 + 2 - 2 * (icom_port->port - 2); | 1380 | 0x8024 + 2 - 2 * (icom_port->port - 2); |
1381 | } | 1381 | } |
1382 | } | 1382 | } |
1383 | static int __init icom_load_ports(struct icom_adapter *icom_adapter) | 1383 | static int __devinit icom_load_ports(struct icom_adapter *icom_adapter) |
1384 | { | 1384 | { |
1385 | struct icom_port *icom_port; | 1385 | struct icom_port *icom_port; |
1386 | int port_num; | 1386 | int port_num; |
@@ -1473,7 +1473,7 @@ static void icom_remove_adapter(struct icom_adapter *icom_adapter) | |||
1473 | } | 1473 | } |
1474 | } | 1474 | } |
1475 | 1475 | ||
1476 | free_irq(icom_adapter->irq_number, (void *) icom_adapter); | 1476 | free_irq(icom_adapter->pci_dev->irq, (void *) icom_adapter); |
1477 | iounmap(icom_adapter->base_addr); | 1477 | iounmap(icom_adapter->base_addr); |
1478 | icom_free_adapter(icom_adapter); | 1478 | icom_free_adapter(icom_adapter); |
1479 | pci_release_regions(icom_adapter->pci_dev); | 1479 | pci_release_regions(icom_adapter->pci_dev); |
@@ -1539,7 +1539,6 @@ static int __devinit icom_probe(struct pci_dev *dev, | |||
1539 | } | 1539 | } |
1540 | 1540 | ||
1541 | icom_adapter->base_addr_pci = pci_resource_start(dev, 0); | 1541 | icom_adapter->base_addr_pci = pci_resource_start(dev, 0); |
1542 | icom_adapter->irq_number = dev->irq; | ||
1543 | icom_adapter->pci_dev = dev; | 1542 | icom_adapter->pci_dev = dev; |
1544 | icom_adapter->version = ent->driver_data; | 1543 | icom_adapter->version = ent->driver_data; |
1545 | icom_adapter->subsystem_id = ent->subdevice; | 1544 | icom_adapter->subsystem_id = ent->subdevice; |
@@ -1570,7 +1569,7 @@ static int __devinit icom_probe(struct pci_dev *dev, | |||
1570 | icom_port = &icom_adapter->port_info[index]; | 1569 | icom_port = &icom_adapter->port_info[index]; |
1571 | 1570 | ||
1572 | if (icom_port->status == ICOM_PORT_ACTIVE) { | 1571 | if (icom_port->status == ICOM_PORT_ACTIVE) { |
1573 | icom_port->uart_port.irq = icom_port->adapter->irq_number; | 1572 | icom_port->uart_port.irq = icom_port->adapter->pci_dev->irq; |
1574 | icom_port->uart_port.type = PORT_ICOM; | 1573 | icom_port->uart_port.type = PORT_ICOM; |
1575 | icom_port->uart_port.iotype = UPIO_MEM; | 1574 | icom_port->uart_port.iotype = UPIO_MEM; |
1576 | icom_port->uart_port.membase = | 1575 | icom_port->uart_port.membase = |
diff --git a/drivers/serial/icom.h b/drivers/serial/icom.h index 798f1ef23712..e8578d8cd35e 100644 --- a/drivers/serial/icom.h +++ b/drivers/serial/icom.h | |||
@@ -258,7 +258,6 @@ struct icom_port { | |||
258 | struct icom_adapter { | 258 | struct icom_adapter { |
259 | void __iomem * base_addr; | 259 | void __iomem * base_addr; |
260 | unsigned long base_addr_pci; | 260 | unsigned long base_addr_pci; |
261 | unsigned char irq_number; | ||
262 | struct pci_dev *pci_dev; | 261 | struct pci_dev *pci_dev; |
263 | struct icom_port port_info[4]; | 262 | struct icom_port port_info[4]; |
264 | int index; | 263 | int index; |
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c index 96a852aa1903..bfd44177a215 100644 --- a/drivers/serial/sunsu.c +++ b/drivers/serial/sunsu.c | |||
@@ -1387,8 +1387,8 @@ static enum su_type __devinit su_get_type(struct device_node *dp) | |||
1387 | struct device_node *ap = of_find_node_by_path("/aliases"); | 1387 | struct device_node *ap = of_find_node_by_path("/aliases"); |
1388 | 1388 | ||
1389 | if (ap) { | 1389 | if (ap) { |
1390 | char *keyb = of_get_property(ap, "keyboard", NULL); | 1390 | const char *keyb = of_get_property(ap, "keyboard", NULL); |
1391 | char *ms = of_get_property(ap, "mouse", NULL); | 1391 | const char *ms = of_get_property(ap, "mouse", NULL); |
1392 | 1392 | ||
1393 | if (keyb) { | 1393 | if (keyb) { |
1394 | if (dp == of_find_node_by_path(keyb)) | 1394 | if (dp == of_find_node_by_path(keyb)) |