]> git.baikalelectronics.ru Git - kernel.git/commit
CUDA ADB fixes
authorFinn Thain <fthain@telegraphics.com.au>
Tue, 1 May 2007 20:33:00 +0000 (22:33 +0200)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Sat, 5 May 2007 00:59:07 +0000 (17:59 -0700)
commit191c7983124a4c799c38f6f146ff2cd4bec2482b
treec0fe5742ca88d7334f02eae5a7835c07df2c03ba
parentfd949de9b909ea4d900141642cd736afa01c7095
CUDA ADB fixes

Fix the flakiness in the CUDA ADB driver on m68k macs (keypresses getting
wedged down or ADB just going AWOL altogether).

The only IRQ used by this driver is the VIA shift register IRQ. The PowerMac
conditional code disables the other VIA IRQ sources, so don't mess with the
other IRQ flags in the common code -- m68k macs need them.

When polling, don't disable local interrupts when we only need to disable the
CUDA interrupt.

Unless polling, don't clear the shift register IRQ flag. On m68k macs this
creates a race that often breaks CUDA ADB.

Tested on Quadra 840av and LC630 (both m68k); also Beige G3 (powerpc).

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/macintosh/via-cuda.c