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

powerpc: Make "intspec" pointers in irq_host->xlate() const

Writing a driver using SCLPC on the MPC5200B I detected, that the
intspec arrays to map irqs to Linux virq cannot be const, because the
mapping and xlate functions only take non const pointers. All those
functions do not modify the intspec, so a const pointer could be used.

Signed-off-by: Roman Fietze <roman.fietze@telemotive.de>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

authored by

Roman Fietze and committed by
Benjamin Herrenschmidt
40d50cf7 990d89c6

+23 -23
+2 -2
arch/powerpc/include/asm/irq.h
··· 100 100 * interrupt controller has for that line) 101 101 */ 102 102 int (*xlate)(struct irq_host *h, struct device_node *ctrler, 103 - u32 *intspec, unsigned int intsize, 103 + const u32 *intspec, unsigned int intsize, 104 104 irq_hw_number_t *out_hwirq, unsigned int *out_type); 105 105 }; 106 106 ··· 314 314 * of the of_irq_map_*() functions. 315 315 */ 316 316 extern unsigned int irq_create_of_mapping(struct device_node *controller, 317 - u32 *intspec, unsigned int intsize); 317 + const u32 *intspec, unsigned int intsize); 318 318 319 319 /** 320 320 * irq_of_parse_and_map - Parse and Map an interrupt into linux virq space
+1 -1
arch/powerpc/kernel/irq.c
··· 725 725 EXPORT_SYMBOL_GPL(irq_create_mapping); 726 726 727 727 unsigned int irq_create_of_mapping(struct device_node *controller, 728 - u32 *intspec, unsigned int intsize) 728 + const u32 *intspec, unsigned int intsize) 729 729 { 730 730 struct irq_host *host; 731 731 irq_hw_number_t hwirq;
+1 -1
arch/powerpc/platforms/52xx/media5200.c
··· 127 127 } 128 128 129 129 static int media5200_irq_xlate(struct irq_host *h, struct device_node *ct, 130 - u32 *intspec, unsigned int intsize, 130 + const u32 *intspec, unsigned int intsize, 131 131 irq_hw_number_t *out_hwirq, 132 132 unsigned int *out_flags) 133 133 {
+1 -1
arch/powerpc/platforms/52xx/mpc52xx_gpt.c
··· 214 214 } 215 215 216 216 static int mpc52xx_gpt_irq_xlate(struct irq_host *h, struct device_node *ct, 217 - u32 *intspec, unsigned int intsize, 217 + const u32 *intspec, unsigned int intsize, 218 218 irq_hw_number_t *out_hwirq, 219 219 unsigned int *out_flags) 220 220 {
+1 -1
arch/powerpc/platforms/52xx/mpc52xx_pic.c
··· 355 355 * mpc52xx_irqhost_xlate - translate virq# from device tree interrupts property 356 356 */ 357 357 static int mpc52xx_irqhost_xlate(struct irq_host *h, struct device_node *ct, 358 - u32 *intspec, unsigned int intsize, 358 + const u32 *intspec, unsigned int intsize, 359 359 irq_hw_number_t *out_hwirq, 360 360 unsigned int *out_flags) 361 361 {
+1 -1
arch/powerpc/platforms/85xx/socrates_fpga_pic.c
··· 253 253 } 254 254 255 255 static int socrates_fpga_pic_host_xlate(struct irq_host *h, 256 - struct device_node *ct, u32 *intspec, unsigned int intsize, 256 + struct device_node *ct, const u32 *intspec, unsigned int intsize, 257 257 irq_hw_number_t *out_hwirq, unsigned int *out_flags) 258 258 { 259 259 struct socrates_fpga_irq_info *fpga_irq = &fpga_irqs[intspec[0]];
+1 -1
arch/powerpc/platforms/86xx/gef_pic.c
··· 170 170 } 171 171 172 172 static int gef_pic_host_xlate(struct irq_host *h, struct device_node *ct, 173 - u32 *intspec, unsigned int intsize, 173 + const u32 *intspec, unsigned int intsize, 174 174 irq_hw_number_t *out_hwirq, unsigned int *out_flags) 175 175 { 176 176
+2 -2
arch/powerpc/platforms/cell/beat_interrupt.c
··· 166 166 * Note: We have only 1 entry to translate. 167 167 */ 168 168 static int beatic_pic_host_xlate(struct irq_host *h, struct device_node *ct, 169 - u32 *intspec, unsigned int intsize, 169 + const u32 *intspec, unsigned int intsize, 170 170 irq_hw_number_t *out_hwirq, 171 171 unsigned int *out_flags) 172 172 { 173 - u64 *intspec2 = (u64 *)intspec; 173 + const u64 *intspec2 = (const u64 *)intspec; 174 174 175 175 *out_hwirq = *intspec2; 176 176 *out_flags |= IRQ_TYPE_LEVEL_LOW;
+1 -1
arch/powerpc/platforms/cell/interrupt.c
··· 297 297 } 298 298 299 299 static int iic_host_xlate(struct irq_host *h, struct device_node *ct, 300 - u32 *intspec, unsigned int intsize, 300 + const u32 *intspec, unsigned int intsize, 301 301 irq_hw_number_t *out_hwirq, unsigned int *out_flags) 302 302 303 303 {
+1 -1
arch/powerpc/platforms/cell/spider-pic.c
··· 187 187 } 188 188 189 189 static int spider_host_xlate(struct irq_host *h, struct device_node *ct, 190 - u32 *intspec, unsigned int intsize, 190 + const u32 *intspec, unsigned int intsize, 191 191 irq_hw_number_t *out_hwirq, unsigned int *out_flags) 192 192 193 193 {
+1 -1
arch/powerpc/platforms/powermac/pic.c
··· 303 303 } 304 304 305 305 static int pmac_pic_host_xlate(struct irq_host *h, struct device_node *ct, 306 - u32 *intspec, unsigned int intsize, 306 + const u32 *intspec, unsigned int intsize, 307 307 irq_hw_number_t *out_hwirq, 308 308 unsigned int *out_flags) 309 309
+1 -1
arch/powerpc/platforms/pseries/xics.c
··· 434 434 } 435 435 436 436 static int xics_host_xlate(struct irq_host *h, struct device_node *ct, 437 - u32 *intspec, unsigned int intsize, 437 + const u32 *intspec, unsigned int intsize, 438 438 irq_hw_number_t *out_hwirq, unsigned int *out_flags) 439 439 440 440 {
+1 -1
arch/powerpc/sysdev/cpm2_pic.c
··· 218 218 } 219 219 220 220 static int cpm2_pic_host_xlate(struct irq_host *h, struct device_node *ct, 221 - u32 *intspec, unsigned int intsize, 221 + const u32 *intspec, unsigned int intsize, 222 222 irq_hw_number_t *out_hwirq, unsigned int *out_flags) 223 223 { 224 224 *out_hwirq = intspec[0];
+1 -1
arch/powerpc/sysdev/i8259.c
··· 198 198 } 199 199 200 200 static int i8259_host_xlate(struct irq_host *h, struct device_node *ct, 201 - u32 *intspec, unsigned int intsize, 201 + const u32 *intspec, unsigned int intsize, 202 202 irq_hw_number_t *out_hwirq, unsigned int *out_flags) 203 203 { 204 204 static unsigned char map_isa_senses[4] = {
+1 -1
arch/powerpc/sysdev/ipic.c
··· 697 697 } 698 698 699 699 static int ipic_host_xlate(struct irq_host *h, struct device_node *ct, 700 - u32 *intspec, unsigned int intsize, 700 + const u32 *intspec, unsigned int intsize, 701 701 irq_hw_number_t *out_hwirq, unsigned int *out_flags) 702 702 703 703 {
+1 -1
arch/powerpc/sysdev/mpc8xx_pic.c
··· 130 130 131 131 132 132 static int mpc8xx_pic_host_xlate(struct irq_host *h, struct device_node *ct, 133 - u32 *intspec, unsigned int intsize, 133 + const u32 *intspec, unsigned int intsize, 134 134 irq_hw_number_t *out_hwirq, unsigned int *out_flags) 135 135 { 136 136 static unsigned char map_pic_senses[4] = {
+1 -1
arch/powerpc/sysdev/mpic.c
··· 994 994 } 995 995 996 996 static int mpic_host_xlate(struct irq_host *h, struct device_node *ct, 997 - u32 *intspec, unsigned int intsize, 997 + const u32 *intspec, unsigned int intsize, 998 998 irq_hw_number_t *out_hwirq, unsigned int *out_flags) 999 999 1000 1000 {
+1 -1
arch/powerpc/sysdev/qe_lib/qe_ic.c
··· 271 271 } 272 272 273 273 static int qe_ic_host_xlate(struct irq_host *h, struct device_node *ct, 274 - u32 * intspec, unsigned int intsize, 274 + const u32 * intspec, unsigned int intsize, 275 275 irq_hw_number_t * out_hwirq, 276 276 unsigned int *out_flags) 277 277 {
+1 -1
arch/powerpc/sysdev/tsi108_pci.c
··· 384 384 }; 385 385 386 386 static int pci_irq_host_xlate(struct irq_host *h, struct device_node *ct, 387 - u32 *intspec, unsigned int intsize, 387 + const u32 *intspec, unsigned int intsize, 388 388 irq_hw_number_t *out_hwirq, unsigned int *out_flags) 389 389 { 390 390 *out_hwirq = intspec[0];
+1 -1
arch/powerpc/sysdev/uic.c
··· 202 202 } 203 203 204 204 static int uic_host_xlate(struct irq_host *h, struct device_node *ct, 205 - u32 *intspec, unsigned int intsize, 205 + const u32 *intspec, unsigned int intsize, 206 206 irq_hw_number_t *out_hwirq, unsigned int *out_type) 207 207 208 208 {
+1 -1
arch/powerpc/sysdev/xilinx_intc.c
··· 148 148 * xilinx_intc_xlate - translate virq# from device tree interrupts property 149 149 */ 150 150 static int xilinx_intc_xlate(struct irq_host *h, struct device_node *ct, 151 - u32 *intspec, unsigned int intsize, 151 + const u32 *intspec, unsigned int intsize, 152 152 irq_hw_number_t *out_hwirq, 153 153 unsigned int *out_flags) 154 154 {