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>
This commit is contained in:
parent
990d89c663
commit
40d50cf7ca
|
@ -100,7 +100,7 @@ struct irq_host_ops {
|
||||||
* interrupt controller has for that line)
|
* interrupt controller has for that line)
|
||||||
*/
|
*/
|
||||||
int (*xlate)(struct irq_host *h, struct device_node *ctrler,
|
int (*xlate)(struct irq_host *h, struct device_node *ctrler,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq, unsigned int *out_type);
|
irq_hw_number_t *out_hwirq, unsigned int *out_type);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -314,7 +314,7 @@ extern void irq_free_virt(unsigned int virq, unsigned int count);
|
||||||
* of the of_irq_map_*() functions.
|
* of the of_irq_map_*() functions.
|
||||||
*/
|
*/
|
||||||
extern unsigned int irq_create_of_mapping(struct device_node *controller,
|
extern unsigned int irq_create_of_mapping(struct device_node *controller,
|
||||||
u32 *intspec, unsigned int intsize);
|
const u32 *intspec, unsigned int intsize);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* irq_of_parse_and_map - Parse and Map an interrupt into linux virq space
|
* irq_of_parse_and_map - Parse and Map an interrupt into linux virq space
|
||||||
|
|
|
@ -725,7 +725,7 @@ unsigned int irq_create_mapping(struct irq_host *host,
|
||||||
EXPORT_SYMBOL_GPL(irq_create_mapping);
|
EXPORT_SYMBOL_GPL(irq_create_mapping);
|
||||||
|
|
||||||
unsigned int irq_create_of_mapping(struct device_node *controller,
|
unsigned int irq_create_of_mapping(struct device_node *controller,
|
||||||
u32 *intspec, unsigned int intsize)
|
const u32 *intspec, unsigned int intsize)
|
||||||
{
|
{
|
||||||
struct irq_host *host;
|
struct irq_host *host;
|
||||||
irq_hw_number_t hwirq;
|
irq_hw_number_t hwirq;
|
||||||
|
|
|
@ -127,7 +127,7 @@ static int media5200_irq_map(struct irq_host *h, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int media5200_irq_xlate(struct irq_host *h, struct device_node *ct,
|
static int media5200_irq_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq,
|
irq_hw_number_t *out_hwirq,
|
||||||
unsigned int *out_flags)
|
unsigned int *out_flags)
|
||||||
{
|
{
|
||||||
|
|
|
@ -214,7 +214,7 @@ static int mpc52xx_gpt_irq_map(struct irq_host *h, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mpc52xx_gpt_irq_xlate(struct irq_host *h, struct device_node *ct,
|
static int mpc52xx_gpt_irq_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq,
|
irq_hw_number_t *out_hwirq,
|
||||||
unsigned int *out_flags)
|
unsigned int *out_flags)
|
||||||
{
|
{
|
||||||
|
|
|
@ -355,7 +355,7 @@ static int mpc52xx_is_extirq(int l1, int l2)
|
||||||
* mpc52xx_irqhost_xlate - translate virq# from device tree interrupts property
|
* mpc52xx_irqhost_xlate - translate virq# from device tree interrupts property
|
||||||
*/
|
*/
|
||||||
static int mpc52xx_irqhost_xlate(struct irq_host *h, struct device_node *ct,
|
static int mpc52xx_irqhost_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq,
|
irq_hw_number_t *out_hwirq,
|
||||||
unsigned int *out_flags)
|
unsigned int *out_flags)
|
||||||
{
|
{
|
||||||
|
|
|
@ -253,7 +253,7 @@ static int socrates_fpga_pic_host_map(struct irq_host *h, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int socrates_fpga_pic_host_xlate(struct irq_host *h,
|
static int socrates_fpga_pic_host_xlate(struct irq_host *h,
|
||||||
struct device_node *ct, u32 *intspec, unsigned int intsize,
|
struct device_node *ct, const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
||||||
{
|
{
|
||||||
struct socrates_fpga_irq_info *fpga_irq = &fpga_irqs[intspec[0]];
|
struct socrates_fpga_irq_info *fpga_irq = &fpga_irqs[intspec[0]];
|
||||||
|
|
|
@ -170,7 +170,7 @@ static int gef_pic_host_map(struct irq_host *h, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int gef_pic_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int gef_pic_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -166,11 +166,11 @@ static void beatic_pic_host_remap(struct irq_host *h, unsigned int virq,
|
||||||
* Note: We have only 1 entry to translate.
|
* Note: We have only 1 entry to translate.
|
||||||
*/
|
*/
|
||||||
static int beatic_pic_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int beatic_pic_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq,
|
irq_hw_number_t *out_hwirq,
|
||||||
unsigned int *out_flags)
|
unsigned int *out_flags)
|
||||||
{
|
{
|
||||||
u64 *intspec2 = (u64 *)intspec;
|
const u64 *intspec2 = (const u64 *)intspec;
|
||||||
|
|
||||||
*out_hwirq = *intspec2;
|
*out_hwirq = *intspec2;
|
||||||
*out_flags |= IRQ_TYPE_LEVEL_LOW;
|
*out_flags |= IRQ_TYPE_LEVEL_LOW;
|
||||||
|
|
|
@ -297,7 +297,7 @@ static int iic_host_map(struct irq_host *h, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int iic_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int iic_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -187,7 +187,7 @@ static int spider_host_map(struct irq_host *h, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int spider_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int spider_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -303,7 +303,7 @@ static int pmac_pic_host_map(struct irq_host *h, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pmac_pic_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int pmac_pic_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq,
|
irq_hw_number_t *out_hwirq,
|
||||||
unsigned int *out_flags)
|
unsigned int *out_flags)
|
||||||
|
|
||||||
|
|
|
@ -434,7 +434,7 @@ static int xics_host_map(struct irq_host *h, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int xics_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int xics_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -218,7 +218,7 @@ static int cpm2_pic_host_map(struct irq_host *h, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cpm2_pic_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int cpm2_pic_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
||||||
{
|
{
|
||||||
*out_hwirq = intspec[0];
|
*out_hwirq = intspec[0];
|
||||||
|
|
|
@ -198,7 +198,7 @@ static void i8259_host_unmap(struct irq_host *h, unsigned int virq)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int i8259_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int i8259_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
||||||
{
|
{
|
||||||
static unsigned char map_isa_senses[4] = {
|
static unsigned char map_isa_senses[4] = {
|
||||||
|
|
|
@ -697,7 +697,7 @@ static int ipic_host_map(struct irq_host *h, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ipic_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int ipic_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -130,7 +130,7 @@ static int mpc8xx_pic_host_map(struct irq_host *h, unsigned int virq,
|
||||||
|
|
||||||
|
|
||||||
static int mpc8xx_pic_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int mpc8xx_pic_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
||||||
{
|
{
|
||||||
static unsigned char map_pic_senses[4] = {
|
static unsigned char map_pic_senses[4] = {
|
||||||
|
|
|
@ -994,7 +994,7 @@ static int mpic_host_map(struct irq_host *h, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mpic_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int mpic_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -271,7 +271,7 @@ static int qe_ic_host_map(struct irq_host *h, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int qe_ic_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int qe_ic_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 * intspec, unsigned int intsize,
|
const u32 * intspec, unsigned int intsize,
|
||||||
irq_hw_number_t * out_hwirq,
|
irq_hw_number_t * out_hwirq,
|
||||||
unsigned int *out_flags)
|
unsigned int *out_flags)
|
||||||
{
|
{
|
||||||
|
|
|
@ -384,7 +384,7 @@ static struct irq_chip tsi108_pci_irq = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static int pci_irq_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int pci_irq_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
irq_hw_number_t *out_hwirq, unsigned int *out_flags)
|
||||||
{
|
{
|
||||||
*out_hwirq = intspec[0];
|
*out_hwirq = intspec[0];
|
||||||
|
|
|
@ -202,7 +202,7 @@ static int uic_host_map(struct irq_host *h, unsigned int virq,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int uic_host_xlate(struct irq_host *h, struct device_node *ct,
|
static int uic_host_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq, unsigned int *out_type)
|
irq_hw_number_t *out_hwirq, unsigned int *out_type)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -148,7 +148,7 @@ static struct irq_chip xilinx_intc_edge_irqchip = {
|
||||||
* xilinx_intc_xlate - translate virq# from device tree interrupts property
|
* xilinx_intc_xlate - translate virq# from device tree interrupts property
|
||||||
*/
|
*/
|
||||||
static int xilinx_intc_xlate(struct irq_host *h, struct device_node *ct,
|
static int xilinx_intc_xlate(struct irq_host *h, struct device_node *ct,
|
||||||
u32 *intspec, unsigned int intsize,
|
const u32 *intspec, unsigned int intsize,
|
||||||
irq_hw_number_t *out_hwirq,
|
irq_hw_number_t *out_hwirq,
|
||||||
unsigned int *out_flags)
|
unsigned int *out_flags)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue