This patch series converts the m68k/mmu (nommu was converted before) architecture to the generic hardirq framework. - [01/28] genirq: Add missing "else" in irq_shutdown() - [02/28] ide-{cd,floppy,tape}: Do not include <linux/irq.> - [03/28] keyboard: Do not include <linux/irq.> - [04/28] m68k/irq: Rename irq_controller to irq_chip - [05/28] m68k/irq: Kill irq_node_t typedef, always use struct irq_node - [06/28] m68k/irq: Rename irq_node to irq_data - [07/28] m68k/irq: Switch irq_chip methods to "struct irq_data *data" - [08/28] m68k/irq: Rename setup_irq() to m68k_setup_irq() and make it static - [09/28] m68k/irq: Extract irq_set_chip() - [10/28] m68k/irq: Add m68k_setup_irq_controller() - [11/28] m68k/irq: Rename {,__}m68k_handle_int() - [12/28] m68k/irq: Remove obsolete IRQ_FLG_* definitions and users - [13/28] m68k/irq: Add genirq support - [14/28] m68k/atari: Convert Atari to genirq - [15/28] m68k/atari: Remove code and comments about different irq types - [16/28] m68k/amiga: Refactor amiints.c - [17/28] m68k/amiga: Convert Amiga to genirq - [18/28] m68k/amiga: Optimize interrupts using chain handlers - [19/28] m68k/mac: Convert Mac to genirq - [20/28] m68k/mac: Optimize interrupts using chain handlers - [21/28] m68k/hp300: Convert HP9000/300 and HP9000/400 to genirq - [22/28] m68k/vme: Convert VME to genirq - [23/28] m68k/apollo: Convert Apollo to genirq - [24/28] m68k/sun3: Use the kstat_irqs_cpu() wrapper - [25/28] m68k/sun3: Convert Sun3/3x to genirq - [26/28] m68k/q40: Convert Q40/Q60 to genirq - [27/28] m68k/irq: Remove obsolete m68k irq framework - [28/28] m68k/irq: Remove obsolete support for user vector interrupt fixups Overview: - [01] is a fix for the core genirq code, - [02-03] are fixes to avoid compile problems later in the conversion process, - [04-12] refactor the current m68k irq framework to match the generic hardirq framework more closely w.r.t. to its (platform) users, - [13] adds generic hardirq support to the core, which can be enabled through a config option, so both legacy and generic hardirq can coexist at the source level during the migration, - [14-26] convert the individual platforms to use generic hardirqs, - [27] removes support for the legacy m68k irq framework, - [28] removes a now unused feature. The code has received some testing on Amiga, Atari (mainly ARAnyM), and Mac. There are some known issues with drivers, which Finn and Michael are looking into. I will update my m68k-genirq branch as soon as master.kernel.org is available again. Thanks for your comments, feedback, and testing! Changelog: v6: - Add [01] genirq: Add missing "else" in irq_shutdown() - Add [27] m68k/irq: Remove obsolete m68k irq framework - Add [28] m68k/irq: Remove obsolete support for user vector interrupt fixups - Split off [02] ide-{cd,floppy,tape}: Do not include <linux/irq.> - Split off [03] keyboard: Do not include <linux/irq.> - Keep irq_canonicalize(), which is needed for ac3200, atari_91C111, serial_core, and 8250. - Correct irq args of irq_set_handler_data() calls in Mac PSC chain handlers, as reported by Finn v5: - Add [20] m68k/mac: Optimize interrupts using chain handlers - Add [26] m68k/q40: Convert Q40/Q60 to genirq - Keep m68k_setup_auto_interrupt(), it's still needed for Q40 v4: - Add [15] m68k/atari: Remove code and comments about different irq types - Add [23] m68k/apollo: Convert Apollo to genirq - Add [24] m68k/sun3: Use the kstat_irqs_cpu() wrapper - Add [25] m68k/sun3: Convert Sun3/3x to genirq v3: - Add [11] m68k/irq: Rename {,__}m68k_handle_int() - Add [12] m68k/irq: Remove obsolete IRQ_FLG_* definitions and users - Add [19] m68k/mac: Convert Mac to genirq - Add [21] m68k/hp300: Convert HP9000/300 and HP9000/400 to genirq - Add [22] m68k/vme: Convert VME to genirq - Use handle_simple_irq() instead of handle_level_irq(), which also means we don't need the .irq_{,un}mask methods anymore, so they can be removed again. - Wrapper __m68k_handle_int() for do_IRQ() is no longer needed - Keep track of spurious interrupts v2: - Add [10] m68k/irq: Add m68k_setup_irq_controller() - Add [16] m68k/amiga: Refactor amiints.c - Add [17] m68k/amiga: Convert Amiga to genirq - Add [18] m68k/amiga: Optimize interrupts using chain handlers] - Add missing "irq" offset in m68k_setup_irq_controller() - Set up default handlers for autovector interrupts, and fill in missing .irq_{,un}mask methods, v1: - Initial version, acked by Thomas Gleixner arch/m68k/Kconfig | 4 +- arch/m68k/amiga/amiints.c | 168 ++++++++------------ arch/m68k/amiga/cia.c | 39 +++-- arch/m68k/apollo/dn_ints.c | 35 +++-- arch/m68k/atari/ataints.c | 274 +++----------------------------- arch/m68k/bvme6000/config.c | 2 +- arch/m68k/hp300/time.c | 2 +- arch/m68k/include/asm/hardirq.h | 5 + arch/m68k/include/asm/irq.h | 82 ++-------- arch/m68k/include/asm/q40ints.h | 3 - arch/m68k/kernel/Makefile_mm | 2 +- arch/m68k/kernel/entry_mm.S | 7 +- arch/m68k/kernel/ints.c | 323 ++++---------------------------------- arch/m68k/mac/baboon.c | 14 +- arch/m68k/mac/iop.c | 10 +- arch/m68k/mac/macints.c | 19 ++- arch/m68k/mac/oss.c | 54 +++---- arch/m68k/mac/psc.c | 49 +++--- arch/m68k/mac/via.c | 74 ++++------ arch/m68k/mvme147/config.c | 5 +- arch/m68k/mvme16x/config.c | 2 +- arch/m68k/q40/q40ints.c | 60 ++++---- arch/m68k/sun3/sun3ints.c | 46 +++--- drivers/ide/ide-cd.c | 1 - drivers/ide/ide-floppy.c | 1 - drivers/ide/ide-tape.c | 1 - drivers/macintosh/via-macii.c | 2 +- drivers/macintosh/via-maciisi.c | 4 +- drivers/net/macsonic.c | 7 +- drivers/scsi/mac_scsi.c | 3 +- drivers/tty/serial/68360serial.c | 4 +- drivers/tty/vt/keyboard.c | 3 +- kernel/irq/chip.c | 2 +- 33 files changed, 358 insertions(+), 949 deletions(-) Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe linux-m68k" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html