Here's another round of Alchemy IRQ changes, intended to be applied on
top of the alchemy pcmcia changes in Ralf's linux-queue.git tree.
Major theme is to stop the name-sharing of certain Alchemy interrupt
sources. Some parts of the alchemy core code currently rely on
specially-named irq constants in order to save code (platform.c, and
time.c for instance); however the au1000.h header is full of
compile-time checks for a certain CPU subtype.
Eventually I'd like to get rid of all CONFIG_SOC_AU1??? checks in
au1000.h altogether (for easier Au1300 integration); preferably
also in the vast majority of the alchemy common code. But I'm not
really convinced any more that it is at all possible.
Patch overview:
#1 tries to get rid of the special case for the usb device interrupt,
rather than adding #ifdefs for each cpu subtype with this
particular usb device ip, i opted to use the hardware to do the
prioritization.
I'm not sure whether this really is equivalent to the previous
solution since I neither have the hardware nor a driver for the
Au1000 UDC.
#2 changes the rtcmatch2 (system timer) irq priority to high.
not strictly related, but it fit into the irq upddate theme.
#3 re-introduces the alchemy cpu subtype detector, it's required
by changes in #4.
#4 does the constant renaming: irq sources are prefixed with a
cpu subtype string, and gpio int sources get the "_INT" postfix
(they're interrupt sources, not gpio numbers after all).
Run-tested on the DB1200, and known to build for all db1x00/pb1x00,
xxs1500, mtx-1.
Please apply (and test if you have any of the other boards).
Thanks!
Manuel Lauss
Manuel Lauss (4):
Alchemy: remove USB_DEV_REQ_INT prioritization hack
Alchemy: higher priority for system timer.
Alchemy: simple cpu subtype detector
Alchemy: Stop IRQ name sharing
arch/mips/alchemy/common/dbdma.c | 61 ++-
arch/mips/alchemy/common/dma.c | 36 +-
arch/mips/alchemy/common/irq.c | 322 +++++-----
arch/mips/alchemy/common/platform.c | 8 +-
arch/mips/alchemy/common/time.c | 35 +-
arch/mips/alchemy/devboards/db1x00/board_setup.c | 64 ++-
arch/mips/alchemy/devboards/db1x00/platform.c | 52 +-
arch/mips/alchemy/devboards/pb1000/board_setup.c | 2 +-
arch/mips/alchemy/devboards/pb1100/board_setup.c | 8 +-
arch/mips/alchemy/devboards/pb1100/platform.c | 6 +-
arch/mips/alchemy/devboards/pb1200/board_setup.c | 4 +-
arch/mips/alchemy/devboards/pb1500/board_setup.c | 20 +-
arch/mips/alchemy/devboards/pb1500/platform.c | 6 +-
arch/mips/alchemy/devboards/pb1550/board_setup.c | 10 +-
arch/mips/alchemy/devboards/pb1550/platform.c | 8 +-
arch/mips/alchemy/mtx-1/board_setup.c | 26 +-
arch/mips/alchemy/xxs1500/board_setup.c | 24 +-
arch/mips/include/asm/mach-au1x00/au1000.h | 704 +++++++++++-----------
arch/mips/include/asm/mach-au1x00/gpio-au1000.h | 76 +--
19 files changed, 788 insertions(+), 684 deletions(-)
|