aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-04-07 10:40:55 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-04-07 10:40:55 -0400
commit44d84afa834b799560d7dbe47250ad7557f5ca2f (patch)
treed18b90078503c956d32f9f0c6524bc43ece96b25 /drivers/serial
parentf8201abcb2badce7eaa6a3715f9a228cfd88a453 (diff)
parent11b55da700eb77905f1c2dde3a0cbeedc665a753 (diff)
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (28 commits) powerpc: Fix oops when loading modules powerpc: Wire up preadv and pwritev powerpc/ftrace: Fix printf format warning powerpc/ftrace: Fix #if that should be #ifdef powerpc: Fix ptrace compat wrapper for FPU register access powerpc: Print information about mapping hw irqs to virtual irqs powerpc: Correct dependency of KEXEC powerpc: Disable VSX or current process in giveup_fpu/altivec powerpc/pseries: Enable relay in pseries_defconfig powerpc/pseries: Fix ibm,client-architecture comment powerpc/pseries: Scan for all events in rtasd powerpc/pseries: Add dispatch dispersion statistics powerpc: Clean up some prom printouts powerpc: Print progress of ibm,client-architecture method powerpc: Remove duplicated #include's powerpc/pmac: Fix internal modem IRQ on Wallstreet PowerBook powerpc/wdrtas: Update wdrtas_get_interval to use rtas_data_buf fsl-diu-fb: Pass the proper device for dma mapping routines powerpc/pq2fads: Update device tree for use with device-tree-aware u-boot. cpm_uart: Disable CPM udbg when re-initing CPM uart, even if not the console. ...
Diffstat (limited to 'drivers/serial')
-rw-r--r--drivers/serial/cpm_uart/cpm_uart_core.c14
-rw-r--r--drivers/serial/pmac_zilog.c15
2 files changed, 22 insertions, 7 deletions
diff --git a/drivers/serial/cpm_uart/cpm_uart_core.c b/drivers/serial/cpm_uart/cpm_uart_core.c
index 5c6ef51da274..f8df0681e160 100644
--- a/drivers/serial/cpm_uart/cpm_uart_core.c
+++ b/drivers/serial/cpm_uart/cpm_uart_core.c
@@ -1106,6 +1106,10 @@ static int cpm_uart_init_port(struct device_node *np,
1106 for (i = 0; i < NUM_GPIOS; i++) 1106 for (i = 0; i < NUM_GPIOS; i++)
1107 pinfo->gpios[i] = of_get_gpio(np, i); 1107 pinfo->gpios[i] = of_get_gpio(np, i);
1108 1108
1109#ifdef CONFIG_PPC_EARLY_DEBUG_CPM
1110 udbg_putc = NULL;
1111#endif
1112
1109 return cpm_uart_request_port(&pinfo->port); 1113 return cpm_uart_request_port(&pinfo->port);
1110 1114
1111out_pram: 1115out_pram:
@@ -1255,10 +1259,6 @@ static int __init cpm_uart_console_setup(struct console *co, char *options)
1255 baud = 9600; 1259 baud = 9600;
1256 } 1260 }
1257 1261
1258#ifdef CONFIG_PPC_EARLY_DEBUG_CPM
1259 udbg_putc = NULL;
1260#endif
1261
1262 if (IS_SMC(pinfo)) { 1262 if (IS_SMC(pinfo)) {
1263 out_be16(&pinfo->smcup->smc_brkcr, 0); 1263 out_be16(&pinfo->smcup->smc_brkcr, 0);
1264 cpm_line_cr_cmd(pinfo, CPM_CR_STOP_TX); 1264 cpm_line_cr_cmd(pinfo, CPM_CR_STOP_TX);
@@ -1339,13 +1339,13 @@ static int __devinit cpm_uart_probe(struct of_device *ofdev,
1339 1339
1340 dev_set_drvdata(&ofdev->dev, pinfo); 1340 dev_set_drvdata(&ofdev->dev, pinfo);
1341 1341
1342 /* initialize the device pointer for the port */
1343 pinfo->port.dev = &ofdev->dev;
1344
1342 ret = cpm_uart_init_port(ofdev->node, pinfo); 1345 ret = cpm_uart_init_port(ofdev->node, pinfo);
1343 if (ret) 1346 if (ret)
1344 return ret; 1347 return ret;
1345 1348
1346 /* initialize the device pointer for the port */
1347 pinfo->port.dev = &ofdev->dev;
1348
1349 return uart_add_one_port(&cpm_reg, &pinfo->port); 1349 return uart_add_one_port(&cpm_reg, &pinfo->port);
1350} 1350}
1351 1351
diff --git a/drivers/serial/pmac_zilog.c b/drivers/serial/pmac_zilog.c
index ad3488504010..9c1243fbd512 100644
--- a/drivers/serial/pmac_zilog.c
+++ b/drivers/serial/pmac_zilog.c
@@ -1538,6 +1538,21 @@ no_dma:
1538 uap->port.type = PORT_PMAC_ZILOG; 1538 uap->port.type = PORT_PMAC_ZILOG;
1539 uap->port.flags = 0; 1539 uap->port.flags = 0;
1540 1540
1541 /*
1542 * Fixup for the port on Gatwick for which the device-tree has
1543 * missing interrupts. Normally, the macio_dev would contain
1544 * fixed up interrupt info, but we use the device-tree directly
1545 * here due to early probing so we need the fixup too.
1546 */
1547 if (uap->port.irq == NO_IRQ &&
1548 np->parent && np->parent->parent &&
1549 of_device_is_compatible(np->parent->parent, "gatwick")) {
1550 /* IRQs on gatwick are offset by 64 */
1551 uap->port.irq = irq_create_mapping(NULL, 64 + 15);
1552 uap->tx_dma_irq = irq_create_mapping(NULL, 64 + 4);
1553 uap->rx_dma_irq = irq_create_mapping(NULL, 64 + 5);
1554 }
1555
1541 /* Setup some valid baud rate information in the register 1556 /* Setup some valid baud rate information in the register
1542 * shadows so we don't write crap there before baud rate is 1557 * shadows so we don't write crap there before baud rate is
1543 * first initialized. 1558 * first initialized.