diff options
| author | Ingo Molnar <mingo@elte.hu> | 2010-01-29 03:24:57 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2010-01-29 04:36:22 -0500 |
| commit | ae7f6711d6231c9ba54feb5ba9856c3775e482f8 (patch) | |
| tree | 89070c82204b2503348e4fd6c51d25a169375545 /drivers/serial/pmac_zilog.c | |
| parent | 64abebf731df87e6f4ae7d9ffc340bdf0c033e44 (diff) | |
| parent | b23ff0e9330e4b11e18af984d50573598e10e7f9 (diff) | |
Merge branch 'perf/urgent' into perf/core
Merge reason: We want to queue up a dependent patch. Also update to
later -rc's.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'drivers/serial/pmac_zilog.c')
| -rw-r--r-- | drivers/serial/pmac_zilog.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/serial/pmac_zilog.c b/drivers/serial/pmac_zilog.c index 0700cd10b97c..683e66f18e8c 100644 --- a/drivers/serial/pmac_zilog.c +++ b/drivers/serial/pmac_zilog.c | |||
| @@ -411,6 +411,17 @@ static void pmz_transmit_chars(struct uart_pmac_port *uap) | |||
| 411 | goto ack_tx_int; | 411 | goto ack_tx_int; |
| 412 | } | 412 | } |
| 413 | 413 | ||
| 414 | /* Under some circumstances, we see interrupts reported for | ||
| 415 | * a closed channel. The interrupt mask in R1 is clear, but | ||
| 416 | * R3 still signals the interrupts and we see them when taking | ||
| 417 | * an interrupt for the other channel (this could be a qemu | ||
| 418 | * bug but since the ESCC doc doesn't specify precsiely whether | ||
| 419 | * R3 interrup status bits are masked by R1 interrupt enable | ||
| 420 | * bits, better safe than sorry). --BenH. | ||
| 421 | */ | ||
| 422 | if (!ZS_IS_OPEN(uap)) | ||
| 423 | goto ack_tx_int; | ||
| 424 | |||
| 414 | if (uap->port.x_char) { | 425 | if (uap->port.x_char) { |
| 415 | uap->flags |= PMACZILOG_FLAG_TX_ACTIVE; | 426 | uap->flags |= PMACZILOG_FLAG_TX_ACTIVE; |
| 416 | write_zsdata(uap, uap->port.x_char); | 427 | write_zsdata(uap, uap->port.x_char); |
