linux/drivers/tty
Finn Thain 7cf82b1b65 pmac_zilog: Fix unexpected irq
On most 68k Macs the SCC IRQ is an autovector interrupt and cannot be
masked. This can be a problem when pmac_zilog starts up.

For example, the serial debugging code in arch/m68k/kernel/head.S may be
used beforehand. It disables the SCC interrupts at the chip but doesn't
ack them. Then when a pmac_zilog port is used, the machine locks up with
"unexpected interrupt".

This can happen in pmz_shutdown() since the irq is freed before the
channel interrupts are disabled.

Fix this by clearing interrupt enable bits before the handler is
uninstalled. Also move the interrupt control bit flipping into a separate
pmz_interrupt_control() routine. Replace all instances of these operations
with calls to this routine. Omit the zssync() calls that seem to serve no
purpose.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2011-12-08 14:22:53 +11:00
..
hvc tty: hvc_dcc: Fix duplicate character inputs 2011-11-15 12:02:13 -08:00
ipwireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2011-05-24 13:28:35 -07:00
serial pmac_zilog: Fix unexpected irq 2011-12-08 14:22:53 +11:00
vt tty: Add export.h for EXPORT_SYMBOL/THIS_MODULE to exporters 2011-10-31 19:31:28 -04:00
amiserial.c TTY: irq: Remove IRQF_DISABLED 2011-09-22 16:08:57 -07:00
bfin_jtag_comm.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
cyclades.c TTY: irq: Remove IRQF_DISABLED 2011-09-22 16:08:57 -07:00
ehv_bytechan.c drivers/tty: don't use the byte channel handle as a parameter in ehv_bytechan.c 2011-09-26 16:38:43 -07:00
isicom.c TTY: irq: Remove IRQF_DISABLED 2011-09-22 16:08:57 -07:00
Kconfig Merge branch 'for-linus' of git://github.com/richardweinberger/linux 2011-11-02 09:45:39 -07:00
Makefile tty/powerpc: introduce the ePAPR embedded hypervisor byte channel driver 2011-08-23 10:32:56 -07:00
moxa.c drivers/tty: use printk_ratelimited() instead of printk_ratelimit() 2011-07-01 15:35:45 -07:00
moxa.h
mxser.c TTY: mxser+cyclades remove wait_until_sent debug code 2011-08-23 10:34:07 -07:00
mxser.h Fix common misspellings 2011-03-31 11:26:23 -03:00
n_gsm.c n_gsm: Fix timings 2011-11-08 10:10:20 -08:00
n_hdlc.c Revert "tty: make receive_buf() return the amout of bytes received" 2011-06-04 06:33:24 +09:00
n_r3964.c Revert "tty: make receive_buf() return the amout of bytes received" 2011-06-04 06:33:24 +09:00
n_tracerouter.c n_tracerouter and n_tracesink ldisc additions. 2011-05-13 16:31:00 -07:00
n_tracesink.c n_tracerouter and n_tracesink ldisc additions. 2011-05-13 16:31:00 -07:00
n_tracesink.h n_tracerouter and n_tracesink ldisc additions. 2011-05-13 16:31:00 -07:00
n_tty.c Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 2011-07-25 23:09:27 -07:00
nozomi.c Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 2011-05-26 13:19:00 -07:00
pty.c Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty 2011-10-26 15:11:09 +02:00
rocket_int.h
rocket.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
rocket.h
synclink_gt.c Fix common misspellings 2011-03-31 11:26:23 -03:00
synclink.c drivers/tty/synclink: remove double comment 2011-08-23 10:32:56 -07:00
synclinkmp.c TTY: snyclinkmp: forever loop in tx_load_dma_buffer() 2011-09-29 13:23:33 -07:00
sysrq.c lib, arch: add filter argument to show_mem and fix private implementations 2011-03-24 17:49:37 -07:00
tty_audit.c
tty_buffer.c tty_buffer: get rid of 'seen_tail' logic in flush_to_ldisc 2011-06-08 07:46:30 -07:00
tty_io.c Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty 2011-10-26 15:11:09 +02:00
tty_ioctl.c tty: Support compat_ioctl get/set termios_locked 2011-10-18 14:17:11 -07:00
tty_ldisc.c TTY: ldisc, wait for ldisc infinitely in hangup 2011-11-17 11:36:12 -08:00
tty_mutex.c TTY: remove tty_locked 2011-08-23 10:34:07 -07:00
tty_port.c TTY: use tty_wait_until_sent_from_close in tty_port_close_start 2011-08-25 09:00:41 -07:00