Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

m32r: Convert usrv platform irq handling

Convert the irq chips to the new functions and use proper flow
handlers. handle_level_irq is appropriate.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Hirokazu Takata <takata@linux-m32r.org>
Cc: Paul Mundt <lethal@linux-sh.org>

+40 -48
+40 -48
arch/m32r/platforms/usrv/setup.c
··· 37 37 outl(data, port); 38 38 } 39 39 40 - static void mask_and_ack_mappi(unsigned int irq) 40 + static void mask_mappi(struct irq_data *data) 41 41 { 42 - disable_mappi_irq(irq); 42 + disable_mappi_irq(data->irq); 43 43 } 44 44 45 - static void end_mappi_irq(unsigned int irq) 45 + static void unmask_mappi(struct irq_data *data) 46 46 { 47 - enable_mappi_irq(irq); 47 + enable_mappi_irq(data->irq); 48 48 } 49 49 50 - static unsigned int startup_mappi_irq(unsigned int irq) 51 - { 52 - enable_mappi_irq(irq); 53 - return 0; 54 - } 55 - 56 - static void shutdown_mappi_irq(unsigned int irq) 50 + static void shutdown_mappi(struct irq_data *data) 57 51 { 58 52 unsigned long port; 59 53 60 - port = irq2port(irq); 54 + port = irq2port(data->irq); 61 55 outl(M32R_ICUCR_ILEVEL7, port); 62 56 } 63 57 64 58 static struct irq_chip mappi_irq_type = 65 59 { 66 - .name = "M32700-IRQ", 67 - .startup = startup_mappi_irq, 68 - .shutdown = shutdown_mappi_irq, 69 - .enable = enable_mappi_irq, 70 - .disable = disable_mappi_irq, 71 - .ack = mask_and_ack_mappi, 72 - .end = end_mappi_irq 60 + .name = "M32700-IRQ", 61 + .irq_shutdown = shutdown_mappi, 62 + .irq_mask = mask_mappi, 63 + .irq_unmask = unmask_mappi, 73 64 }; 74 65 75 66 /* ··· 98 107 outw(data, port); 99 108 } 100 109 101 - static void mask_and_ack_m32700ut_pld(unsigned int irq) 110 + static void mask_m32700ut_pld(struct irq_data *data) 102 111 { 103 - disable_m32700ut_pld_irq(irq); 112 + disable_m32700ut_pld_irq(data->irq); 104 113 } 105 114 106 - static void end_m32700ut_pld_irq(unsigned int irq) 115 + static void unmask_m32700ut_pld(struct irq_data *data) 107 116 { 108 - enable_m32700ut_pld_irq(irq); 109 - end_mappi_irq(M32R_IRQ_INT1); 117 + enable_m32700ut_pld_irq(data->irq); 118 + enable_mappi_irq(M32R_IRQ_INT1); 110 119 } 111 120 112 - static unsigned int startup_m32700ut_pld_irq(unsigned int irq) 113 - { 114 - enable_m32700ut_pld_irq(irq); 115 - return 0; 116 - } 117 - 118 - static void shutdown_m32700ut_pld_irq(unsigned int irq) 121 + static void shutdown_m32700ut_pld(struct irq_data *data) 119 122 { 120 123 unsigned long port; 121 124 unsigned int pldirq; 122 125 123 - pldirq = irq2pldirq(irq); 126 + pldirq = irq2pldirq(data->irq); 124 127 port = pldirq2port(pldirq); 125 128 outw(PLD_ICUCR_ILEVEL7, port); 126 129 } 127 130 128 131 static struct irq_chip m32700ut_pld_irq_type = 129 132 { 130 - .name = "USRV-PLD-IRQ", 131 - .startup = startup_m32700ut_pld_irq, 132 - .shutdown = shutdown_m32700ut_pld_irq, 133 - .enable = enable_m32700ut_pld_irq, 134 - .disable = disable_m32700ut_pld_irq, 135 - .ack = mask_and_ack_m32700ut_pld, 136 - .end = end_m32700ut_pld_irq 133 + .name = "USRV-PLD-IRQ", 134 + .irq_shutdown = shutdown_m32700ut_pld, 135 + .irq_mask = mask_m32700ut_pld, 136 + .irq_unmask = unmask_m32700ut_pld, 137 137 }; 138 138 139 139 void __init init_IRQ(void) ··· 138 156 once++; 139 157 140 158 /* MFT2 : system timer */ 141 - set_irq_chip(M32R_IRQ_MFT2, &mappi_irq_type); 159 + set_irq_chip_and_handler(M32R_IRQ_MFT2, &mappi_irq_type, 160 + handle_level_irq); 142 161 icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; 143 162 disable_mappi_irq(M32R_IRQ_MFT2); 144 163 145 164 #if defined(CONFIG_SERIAL_M32R_SIO) 146 165 /* SIO0_R : uart receive data */ 147 - set_irq_chip(M32R_IRQ_SIO0_R, &mappi_irq_type); 166 + set_irq_chip_and_handler(M32R_IRQ_SIO0_R, &mappi_irq_type, 167 + handle_level_irq); 148 168 icu_data[M32R_IRQ_SIO0_R].icucr = 0; 149 169 disable_mappi_irq(M32R_IRQ_SIO0_R); 150 170 151 171 /* SIO0_S : uart send data */ 152 - set_irq_chip(M32R_IRQ_SIO0_S, &mappi_irq_type); 172 + set_irq_chip_and_handler(M32R_IRQ_SIO0_S, &mappi_irq_type, 173 + handle_level_irq); 153 174 icu_data[M32R_IRQ_SIO0_S].icucr = 0; 154 175 disable_mappi_irq(M32R_IRQ_SIO0_S); 155 176 156 177 /* SIO1_R : uart receive data */ 157 - set_irq_chip(M32R_IRQ_SIO1_R, &mappi_irq_type); 178 + set_irq_chip_and_handler(M32R_IRQ_SIO1_R, &mappi_irq_type, 179 + handle_level_irq); 158 180 icu_data[M32R_IRQ_SIO1_R].icucr = 0; 159 181 disable_mappi_irq(M32R_IRQ_SIO1_R); 160 182 161 183 /* SIO1_S : uart send data */ 162 - set_irq_chip(M32R_IRQ_SIO1_S, &mappi_irq_type); 184 + set_irq_chip_and_handler(M32R_IRQ_SIO1_S, &mappi_irq_type, 185 + handle_level_irq); 163 186 icu_data[M32R_IRQ_SIO1_S].icucr = 0; 164 187 disable_mappi_irq(M32R_IRQ_SIO1_S); 165 188 #endif /* CONFIG_SERIAL_M32R_SIO */ 166 189 167 190 /* INT#67-#71: CFC#0 IREQ on PLD */ 168 191 for (i = 0 ; i < CONFIG_M32R_CFC_NUM ; i++ ) { 169 - set_irq_chip(PLD_IRQ_CF0 + i, &m32700ut_pld_irq_type); 192 + set_irq_chip_and_handler(PLD_IRQ_CF0 + i, 193 + &m32700ut_pld_irq_type, 194 + handle_level_irq); 170 195 pld_icu_data[irq2pldirq(PLD_IRQ_CF0 + i)].icucr 171 196 = PLD_ICUCR_ISMOD01; /* 'L' level sense */ 172 197 disable_m32700ut_pld_irq(PLD_IRQ_CF0 + i); ··· 181 192 182 193 #if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE) 183 194 /* INT#76: 16552D#0 IREQ on PLD */ 184 - set_irq_chip(PLD_IRQ_UART0, &m32700ut_pld_irq_type); 195 + set_irq_chip_and_handler(PLD_IRQ_UART0, &m32700ut_pld_irq_type, 196 + handle_level_irq); 185 197 pld_icu_data[irq2pldirq(PLD_IRQ_UART0)].icucr 186 198 = PLD_ICUCR_ISMOD03; /* 'H' level sense */ 187 199 disable_m32700ut_pld_irq(PLD_IRQ_UART0); 188 200 189 201 /* INT#77: 16552D#1 IREQ on PLD */ 190 - set_irq_chip(PLD_IRQ_UART1, &m32700ut_pld_irq_type); 202 + set_irq_chip_and_handler(PLD_IRQ_UART1, &m32700ut_pld_irq_type, 203 + handle_level_irq); 191 204 pld_icu_data[irq2pldirq(PLD_IRQ_UART1)].icucr 192 205 = PLD_ICUCR_ISMOD03; /* 'H' level sense */ 193 206 disable_m32700ut_pld_irq(PLD_IRQ_UART1); ··· 197 206 198 207 #if defined(CONFIG_IDC_AK4524) || defined(CONFIG_IDC_AK4524_MODULE) 199 208 /* INT#80: AK4524 IREQ on PLD */ 200 - set_irq_chip(PLD_IRQ_SNDINT, &m32700ut_pld_irq_type); 209 + set_irq_chip_and_handler(PLD_IRQ_SNDINT, &m32700ut_pld_irq_type, 210 + handle_level_irq); 201 211 pld_icu_data[irq2pldirq(PLD_IRQ_SNDINT)].icucr 202 212 = PLD_ICUCR_ISMOD01; /* 'L' level sense */ 203 213 disable_m32700ut_pld_irq(PLD_IRQ_SNDINT);