Loading MAINTAINERS +4 −3 Original line number Diff line number Diff line Loading @@ -2057,9 +2057,10 @@ L: linux-kernel@vger.kernel.org S: Maintained NI5010 NETWORK DRIVER P: Jan-Pascal van Best and Andreas Mohr M: Jan-Pascal van Best <jvbest@qv3pluto.leidenuniv.nl> M: Andreas Mohr <100.30936@germany.net> P: Jan-Pascal van Best M: janpascal@vanbest.org P: Andreas Mohr M: andi@lisas.de L: netdev@vger.kernel.org S: Maintained Loading Makefile +3 −3 Original line number Diff line number Diff line VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 17 EXTRAVERSION = SUBLEVEL = 18 EXTRAVERSION = -rc1 NAME=Crazed Snow-Weasel # *DOCUMENTATION* Loading Loading @@ -528,7 +528,7 @@ export MODLIB ifdef INSTALL_MOD_STRIP ifeq ($(INSTALL_MOD_STRIP),1) mod_strip_cmd = $STRIP) --strip-debug mod_strip_cmd = $(STRIP) --strip-debug else mod_strip_cmd = $(STRIP) $(INSTALL_MOD_STRIP) endif # INSTALL_MOD_STRIP=1 Loading arch/arm/mach-at91rm9200/at91rm9200.c +45 −0 Original line number Diff line number Diff line Loading @@ -107,3 +107,48 @@ void __init at91rm9200_map_io(void) iotable_init(at91rm9200_io_desc, ARRAY_SIZE(at91rm9200_io_desc)); } /* * The default interrupt priority levels (0 = lowest, 7 = highest). */ static unsigned int at91rm9200_default_irq_priority[NR_AIC_IRQS] __initdata = { 7, /* Advanced Interrupt Controller (FIQ) */ 7, /* System Peripherals */ 0, /* Parallel IO Controller A */ 0, /* Parallel IO Controller B */ 0, /* Parallel IO Controller C */ 0, /* Parallel IO Controller D */ 6, /* USART 0 */ 6, /* USART 1 */ 6, /* USART 2 */ 6, /* USART 3 */ 0, /* Multimedia Card Interface */ 4, /* USB Device Port */ 0, /* Two-Wire Interface */ 6, /* Serial Peripheral Interface */ 5, /* Serial Synchronous Controller 0 */ 5, /* Serial Synchronous Controller 1 */ 5, /* Serial Synchronous Controller 2 */ 0, /* Timer Counter 0 */ 0, /* Timer Counter 1 */ 0, /* Timer Counter 2 */ 0, /* Timer Counter 3 */ 0, /* Timer Counter 4 */ 0, /* Timer Counter 5 */ 3, /* USB Host port */ 3, /* Ethernet MAC */ 0, /* Advanced Interrupt Controller (IRQ0) */ 0, /* Advanced Interrupt Controller (IRQ1) */ 0, /* Advanced Interrupt Controller (IRQ2) */ 0, /* Advanced Interrupt Controller (IRQ3) */ 0, /* Advanced Interrupt Controller (IRQ4) */ 0, /* Advanced Interrupt Controller (IRQ5) */ 0 /* Advanced Interrupt Controller (IRQ6) */ }; void __init at91rm9200_init_irq(unsigned int priority[NR_AIC_IRQS]) { if (!priority) priority = at91rm9200_default_irq_priority; at91_aic_init(priority); } arch/arm/mach-at91rm9200/generic.h +7 −1 Original line number Diff line number Diff line Loading @@ -8,13 +8,19 @@ * published by the Free Software Foundation. */ void at91_gpio_irq_setup(unsigned banks); /* Interrupts */ extern void __init at91rm9200_init_irq(unsigned int priority[]); extern void __init at91_aic_init(unsigned int priority[]); extern void __init at91_gpio_irq_setup(unsigned banks); /* Timer */ struct sys_timer; extern struct sys_timer at91rm9200_timer; /* Memory Map */ extern void __init at91rm9200_map_io(void); /* Clocks */ extern int __init at91_clock_init(unsigned long main_clock); struct device; extern void __init at91_clock_associate(const char *id, struct device *dev, const char *func); Loading arch/arm/mach-at91rm9200/irq.c +14 −56 Original line number Diff line number Diff line Loading @@ -36,58 +36,20 @@ #include "generic.h" /* * The default interrupt priority levels (0 = lowest, 7 = highest). */ static unsigned int at91rm9200_default_irq_priority[NR_AIC_IRQS] __initdata = { 7, /* Advanced Interrupt Controller */ 7, /* System Peripheral */ 0, /* Parallel IO Controller A */ 0, /* Parallel IO Controller B */ 0, /* Parallel IO Controller C */ 0, /* Parallel IO Controller D */ 6, /* USART 0 */ 6, /* USART 1 */ 6, /* USART 2 */ 6, /* USART 3 */ 0, /* Multimedia Card Interface */ 4, /* USB Device Port */ 0, /* Two-Wire Interface */ 6, /* Serial Peripheral Interface */ 5, /* Serial Synchronous Controller */ 5, /* Serial Synchronous Controller */ 5, /* Serial Synchronous Controller */ 0, /* Timer Counter 0 */ 0, /* Timer Counter 1 */ 0, /* Timer Counter 2 */ 0, /* Timer Counter 3 */ 0, /* Timer Counter 4 */ 0, /* Timer Counter 5 */ 3, /* USB Host port */ 3, /* Ethernet MAC */ 0, /* Advanced Interrupt Controller */ 0, /* Advanced Interrupt Controller */ 0, /* Advanced Interrupt Controller */ 0, /* Advanced Interrupt Controller */ 0, /* Advanced Interrupt Controller */ 0, /* Advanced Interrupt Controller */ 0 /* Advanced Interrupt Controller */ }; static void at91rm9200_mask_irq(unsigned int irq) static void at91_aic_mask_irq(unsigned int irq) { /* Disable interrupt on AIC */ at91_sys_write(AT91_AIC_IDCR, 1 << irq); } static void at91rm9200_unmask_irq(unsigned int irq) static void at91_aic_unmask_irq(unsigned int irq) { /* Enable interrupt on AIC */ at91_sys_write(AT91_AIC_IECR, 1 << irq); } static int at91rm9200_irq_type(unsigned irq, unsigned type) static int at91_aic_set_type(unsigned irq, unsigned type) { unsigned int smr, srctype; Loading Loading @@ -122,7 +84,7 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type) static u32 wakeups; static u32 backups; static int at91rm9200_irq_set_wake(unsigned irq, unsigned value) static int at91_aic_set_wake(unsigned irq, unsigned value) { if (unlikely(irq >= 32)) return -EINVAL; Loading @@ -149,28 +111,24 @@ void at91_irq_resume(void) } #else #define at91rm9200_irq_set_wake NULL #define at91_aic_set_wake NULL #endif static struct irqchip at91rm9200_irq_chip = { .ack = at91rm9200_mask_irq, .mask = at91rm9200_mask_irq, .unmask = at91rm9200_unmask_irq, .set_type = at91rm9200_irq_type, .set_wake = at91rm9200_irq_set_wake, static struct irqchip at91_aic_chip = { .ack = at91_aic_mask_irq, .mask = at91_aic_mask_irq, .unmask = at91_aic_unmask_irq, .set_type = at91_aic_set_type, .set_wake = at91_aic_set_wake, }; /* * Initialize the AIC interrupt controller. */ void __init at91rm9200_init_irq(unsigned int priority[NR_AIC_IRQS]) void __init at91_aic_init(unsigned int priority[NR_AIC_IRQS]) { unsigned int i; /* No priority list specified for this board -> use defaults */ if (priority == NULL) priority = at91rm9200_default_irq_priority; /* * The IVR is used by macro get_irqnr_and_base to read and verify. * The irq number is NR_AIC_IRQS when a spurious interrupt has occurred. Loading @@ -178,10 +136,10 @@ void __init at91rm9200_init_irq(unsigned int priority[NR_AIC_IRQS]) for (i = 0; i < NR_AIC_IRQS; i++) { /* Put irq number in Source Vector Register: */ at91_sys_write(AT91_AIC_SVR(i), i); /* Store the Source Mode Register as defined in table above */ /* Active Low interrupt, with the specified priority */ at91_sys_write(AT91_AIC_SMR(i), AT91_AIC_SRCTYPE_LOW | priority[i]); set_irq_chip(i, &at91rm9200_irq_chip); set_irq_chip(i, &at91_aic_chip); set_irq_handler(i, do_level_IRQ); set_irq_flags(i, IRQF_VALID | IRQF_PROBE); Loading Loading
MAINTAINERS +4 −3 Original line number Diff line number Diff line Loading @@ -2057,9 +2057,10 @@ L: linux-kernel@vger.kernel.org S: Maintained NI5010 NETWORK DRIVER P: Jan-Pascal van Best and Andreas Mohr M: Jan-Pascal van Best <jvbest@qv3pluto.leidenuniv.nl> M: Andreas Mohr <100.30936@germany.net> P: Jan-Pascal van Best M: janpascal@vanbest.org P: Andreas Mohr M: andi@lisas.de L: netdev@vger.kernel.org S: Maintained Loading
Makefile +3 −3 Original line number Diff line number Diff line VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 17 EXTRAVERSION = SUBLEVEL = 18 EXTRAVERSION = -rc1 NAME=Crazed Snow-Weasel # *DOCUMENTATION* Loading Loading @@ -528,7 +528,7 @@ export MODLIB ifdef INSTALL_MOD_STRIP ifeq ($(INSTALL_MOD_STRIP),1) mod_strip_cmd = $STRIP) --strip-debug mod_strip_cmd = $(STRIP) --strip-debug else mod_strip_cmd = $(STRIP) $(INSTALL_MOD_STRIP) endif # INSTALL_MOD_STRIP=1 Loading
arch/arm/mach-at91rm9200/at91rm9200.c +45 −0 Original line number Diff line number Diff line Loading @@ -107,3 +107,48 @@ void __init at91rm9200_map_io(void) iotable_init(at91rm9200_io_desc, ARRAY_SIZE(at91rm9200_io_desc)); } /* * The default interrupt priority levels (0 = lowest, 7 = highest). */ static unsigned int at91rm9200_default_irq_priority[NR_AIC_IRQS] __initdata = { 7, /* Advanced Interrupt Controller (FIQ) */ 7, /* System Peripherals */ 0, /* Parallel IO Controller A */ 0, /* Parallel IO Controller B */ 0, /* Parallel IO Controller C */ 0, /* Parallel IO Controller D */ 6, /* USART 0 */ 6, /* USART 1 */ 6, /* USART 2 */ 6, /* USART 3 */ 0, /* Multimedia Card Interface */ 4, /* USB Device Port */ 0, /* Two-Wire Interface */ 6, /* Serial Peripheral Interface */ 5, /* Serial Synchronous Controller 0 */ 5, /* Serial Synchronous Controller 1 */ 5, /* Serial Synchronous Controller 2 */ 0, /* Timer Counter 0 */ 0, /* Timer Counter 1 */ 0, /* Timer Counter 2 */ 0, /* Timer Counter 3 */ 0, /* Timer Counter 4 */ 0, /* Timer Counter 5 */ 3, /* USB Host port */ 3, /* Ethernet MAC */ 0, /* Advanced Interrupt Controller (IRQ0) */ 0, /* Advanced Interrupt Controller (IRQ1) */ 0, /* Advanced Interrupt Controller (IRQ2) */ 0, /* Advanced Interrupt Controller (IRQ3) */ 0, /* Advanced Interrupt Controller (IRQ4) */ 0, /* Advanced Interrupt Controller (IRQ5) */ 0 /* Advanced Interrupt Controller (IRQ6) */ }; void __init at91rm9200_init_irq(unsigned int priority[NR_AIC_IRQS]) { if (!priority) priority = at91rm9200_default_irq_priority; at91_aic_init(priority); }
arch/arm/mach-at91rm9200/generic.h +7 −1 Original line number Diff line number Diff line Loading @@ -8,13 +8,19 @@ * published by the Free Software Foundation. */ void at91_gpio_irq_setup(unsigned banks); /* Interrupts */ extern void __init at91rm9200_init_irq(unsigned int priority[]); extern void __init at91_aic_init(unsigned int priority[]); extern void __init at91_gpio_irq_setup(unsigned banks); /* Timer */ struct sys_timer; extern struct sys_timer at91rm9200_timer; /* Memory Map */ extern void __init at91rm9200_map_io(void); /* Clocks */ extern int __init at91_clock_init(unsigned long main_clock); struct device; extern void __init at91_clock_associate(const char *id, struct device *dev, const char *func); Loading
arch/arm/mach-at91rm9200/irq.c +14 −56 Original line number Diff line number Diff line Loading @@ -36,58 +36,20 @@ #include "generic.h" /* * The default interrupt priority levels (0 = lowest, 7 = highest). */ static unsigned int at91rm9200_default_irq_priority[NR_AIC_IRQS] __initdata = { 7, /* Advanced Interrupt Controller */ 7, /* System Peripheral */ 0, /* Parallel IO Controller A */ 0, /* Parallel IO Controller B */ 0, /* Parallel IO Controller C */ 0, /* Parallel IO Controller D */ 6, /* USART 0 */ 6, /* USART 1 */ 6, /* USART 2 */ 6, /* USART 3 */ 0, /* Multimedia Card Interface */ 4, /* USB Device Port */ 0, /* Two-Wire Interface */ 6, /* Serial Peripheral Interface */ 5, /* Serial Synchronous Controller */ 5, /* Serial Synchronous Controller */ 5, /* Serial Synchronous Controller */ 0, /* Timer Counter 0 */ 0, /* Timer Counter 1 */ 0, /* Timer Counter 2 */ 0, /* Timer Counter 3 */ 0, /* Timer Counter 4 */ 0, /* Timer Counter 5 */ 3, /* USB Host port */ 3, /* Ethernet MAC */ 0, /* Advanced Interrupt Controller */ 0, /* Advanced Interrupt Controller */ 0, /* Advanced Interrupt Controller */ 0, /* Advanced Interrupt Controller */ 0, /* Advanced Interrupt Controller */ 0, /* Advanced Interrupt Controller */ 0 /* Advanced Interrupt Controller */ }; static void at91rm9200_mask_irq(unsigned int irq) static void at91_aic_mask_irq(unsigned int irq) { /* Disable interrupt on AIC */ at91_sys_write(AT91_AIC_IDCR, 1 << irq); } static void at91rm9200_unmask_irq(unsigned int irq) static void at91_aic_unmask_irq(unsigned int irq) { /* Enable interrupt on AIC */ at91_sys_write(AT91_AIC_IECR, 1 << irq); } static int at91rm9200_irq_type(unsigned irq, unsigned type) static int at91_aic_set_type(unsigned irq, unsigned type) { unsigned int smr, srctype; Loading Loading @@ -122,7 +84,7 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type) static u32 wakeups; static u32 backups; static int at91rm9200_irq_set_wake(unsigned irq, unsigned value) static int at91_aic_set_wake(unsigned irq, unsigned value) { if (unlikely(irq >= 32)) return -EINVAL; Loading @@ -149,28 +111,24 @@ void at91_irq_resume(void) } #else #define at91rm9200_irq_set_wake NULL #define at91_aic_set_wake NULL #endif static struct irqchip at91rm9200_irq_chip = { .ack = at91rm9200_mask_irq, .mask = at91rm9200_mask_irq, .unmask = at91rm9200_unmask_irq, .set_type = at91rm9200_irq_type, .set_wake = at91rm9200_irq_set_wake, static struct irqchip at91_aic_chip = { .ack = at91_aic_mask_irq, .mask = at91_aic_mask_irq, .unmask = at91_aic_unmask_irq, .set_type = at91_aic_set_type, .set_wake = at91_aic_set_wake, }; /* * Initialize the AIC interrupt controller. */ void __init at91rm9200_init_irq(unsigned int priority[NR_AIC_IRQS]) void __init at91_aic_init(unsigned int priority[NR_AIC_IRQS]) { unsigned int i; /* No priority list specified for this board -> use defaults */ if (priority == NULL) priority = at91rm9200_default_irq_priority; /* * The IVR is used by macro get_irqnr_and_base to read and verify. * The irq number is NR_AIC_IRQS when a spurious interrupt has occurred. Loading @@ -178,10 +136,10 @@ void __init at91rm9200_init_irq(unsigned int priority[NR_AIC_IRQS]) for (i = 0; i < NR_AIC_IRQS; i++) { /* Put irq number in Source Vector Register: */ at91_sys_write(AT91_AIC_SVR(i), i); /* Store the Source Mode Register as defined in table above */ /* Active Low interrupt, with the specified priority */ at91_sys_write(AT91_AIC_SMR(i), AT91_AIC_SRCTYPE_LOW | priority[i]); set_irq_chip(i, &at91rm9200_irq_chip); set_irq_chip(i, &at91_aic_chip); set_irq_handler(i, do_level_IRQ); set_irq_flags(i, IRQF_VALID | IRQF_PROBE); Loading