diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-07 10:40:55 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-07 10:40:55 -0400 |
commit | 44d84afa834b799560d7dbe47250ad7557f5ca2f (patch) | |
tree | d18b90078503c956d32f9f0c6524bc43ece96b25 /drivers/serial | |
parent | f8201abcb2badce7eaa6a3715f9a228cfd88a453 (diff) | |
parent | 11b55da700eb77905f1c2dde3a0cbeedc665a753 (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.c | 14 | ||||
-rw-r--r-- | drivers/serial/pmac_zilog.c | 15 |
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 | ||
1111 | out_pram: | 1115 | out_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. |