Merge branch 'for-linus' of git://gitserver.sunplusct.com/linux-2.6-score

* 'for-linus' of git://gitserver.sunplusct.com/linux-2.6-score:
score: Use generic show_interrupts()
score: Convert to new irq function names
score: lost a semicolon in asm/irqflags.h
score: Select GENERIC_HARDIRQS_NO_DEPRECATED
score: Convert irq_chip to new functions

+11 -46
+2
arch/score/Kconfig
··· 3 config SCORE 4 def_bool y 5 select HAVE_GENERIC_HARDIRQS 6 7 choice 8 prompt "System type"
··· 3 config SCORE 4 def_bool y 5 select HAVE_GENERIC_HARDIRQS 6 + select GENERIC_HARDIRQS_NO_DEPRECATED 7 + select GENERIC_IRQ_SHOW 8 9 choice 10 prompt "System type"
+1 -1
arch/score/include/asm/irqflags.h
··· 29 30 static inline unsigned long arch_local_irq_save(void) 31 { 32 - unsigned long flags 33 34 asm volatile( 35 " mfcr r8, cr0 \n"
··· 29 30 static inline unsigned long arch_local_irq_save(void) 31 { 32 + unsigned long flags; 33 34 asm volatile( 35 " mfcr r8, cr0 \n"
+8 -45
arch/score/kernel/irq.c
··· 52 irq_exit(); 53 } 54 55 - static void score_mask(unsigned int irq_nr) 56 { 57 - unsigned int irq_source = 63 - irq_nr; 58 59 if (irq_source < 32) 60 __raw_writel((__raw_readl(SCORE_PIC + INT_MASKL) | \ ··· 64 (1 << (irq_source - 32))), SCORE_PIC + INT_MASKH); 65 } 66 67 - static void score_unmask(unsigned int irq_nr) 68 { 69 - unsigned int irq_source = 63 - irq_nr; 70 71 if (irq_source < 32) 72 __raw_writel((__raw_readl(SCORE_PIC + INT_MASKL) & \ ··· 78 79 struct irq_chip score_irq_chip = { 80 .name = "Score7-level", 81 - .mask = score_mask, 82 - .mask_ack = score_mask, 83 - .unmask = score_unmask, 84 }; 85 86 /* ··· 92 unsigned long target_addr; 93 94 for (index = 0; index < NR_IRQS; ++index) 95 - set_irq_chip_and_handler(index, &score_irq_chip, 96 handle_level_irq); 97 98 for (target_addr = IRQ_VECTOR_BASE_ADDR; ··· 108 "mtcr %0, cr3\n\t" 109 : : "r" (EXCEPTION_VECTOR_BASE_ADDR | \ 110 VECTOR_ADDRESS_OFFSET_MODE16)); 111 - } 112 - 113 - /* 114 - * Generic, controller-independent functions: 115 - */ 116 - int show_interrupts(struct seq_file *p, void *v) 117 - { 118 - int i = *(loff_t *)v, cpu; 119 - struct irqaction *action; 120 - unsigned long flags; 121 - 122 - if (i == 0) { 123 - seq_puts(p, " "); 124 - for_each_online_cpu(cpu) 125 - seq_printf(p, "CPU%d ", cpu); 126 - seq_putc(p, '\n'); 127 - } 128 - 129 - if (i < NR_IRQS) { 130 - spin_lock_irqsave(&irq_desc[i].lock, flags); 131 - action = irq_desc[i].action; 132 - if (!action) 133 - goto unlock; 134 - 135 - seq_printf(p, "%3d: ", i); 136 - seq_printf(p, "%10u ", kstat_irqs(i)); 137 - seq_printf(p, " %8s", irq_desc[i].chip->name ? : "-"); 138 - seq_printf(p, " %s", action->name); 139 - for (action = action->next; action; action = action->next) 140 - seq_printf(p, ", %s", action->name); 141 - 142 - seq_putc(p, '\n'); 143 - unlock: 144 - spin_unlock_irqrestore(&irq_desc[i].lock, flags); 145 - } 146 - 147 - return 0; 148 }
··· 52 irq_exit(); 53 } 54 55 + static void score_mask(struct irq_data *d) 56 { 57 + unsigned int irq_source = 63 - d->irq; 58 59 if (irq_source < 32) 60 __raw_writel((__raw_readl(SCORE_PIC + INT_MASKL) | \ ··· 64 (1 << (irq_source - 32))), SCORE_PIC + INT_MASKH); 65 } 66 67 + static void score_unmask(struct irq_data *d) 68 { 69 + unsigned int irq_source = 63 - d->irq; 70 71 if (irq_source < 32) 72 __raw_writel((__raw_readl(SCORE_PIC + INT_MASKL) & \ ··· 78 79 struct irq_chip score_irq_chip = { 80 .name = "Score7-level", 81 + .irq_mask = score_mask, 82 + .irq_mask_ack = score_mask, 83 + .irq_unmask = score_unmask, 84 }; 85 86 /* ··· 92 unsigned long target_addr; 93 94 for (index = 0; index < NR_IRQS; ++index) 95 + irq_set_chip_and_handler(index, &score_irq_chip, 96 handle_level_irq); 97 98 for (target_addr = IRQ_VECTOR_BASE_ADDR; ··· 108 "mtcr %0, cr3\n\t" 109 : : "r" (EXCEPTION_VECTOR_BASE_ADDR | \ 110 VECTOR_ADDRESS_OFFSET_MODE16)); 111 }