ARM: ns9xxx: irq_data conversion.
Signed-off-by: Lennert Buytenhek <buytenh@secretlab.ca> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
This commit is contained in:
parent
4f8d7541b5
commit
9b3ffe523a
2 changed files with 28 additions and 28 deletions
|
@ -37,44 +37,44 @@ void __init board_a9m9750dev_map_io(void)
|
|||
ARRAY_SIZE(board_a9m9750dev_io_desc));
|
||||
}
|
||||
|
||||
static void a9m9750dev_fpga_ack_irq(unsigned int irq)
|
||||
static void a9m9750dev_fpga_ack_irq(struct irq_data *d)
|
||||
{
|
||||
/* nothing */
|
||||
}
|
||||
|
||||
static void a9m9750dev_fpga_mask_irq(unsigned int irq)
|
||||
static void a9m9750dev_fpga_mask_irq(struct irq_data *d)
|
||||
{
|
||||
u8 ier;
|
||||
|
||||
ier = __raw_readb(FPGA_IER);
|
||||
|
||||
ier &= ~(1 << (irq - FPGA_IRQ(0)));
|
||||
ier &= ~(1 << (d->irq - FPGA_IRQ(0)));
|
||||
|
||||
__raw_writeb(ier, FPGA_IER);
|
||||
}
|
||||
|
||||
static void a9m9750dev_fpga_maskack_irq(unsigned int irq)
|
||||
static void a9m9750dev_fpga_maskack_irq(struct irq_data *d)
|
||||
{
|
||||
a9m9750dev_fpga_mask_irq(irq);
|
||||
a9m9750dev_fpga_ack_irq(irq);
|
||||
a9m9750dev_fpga_mask_irq(d);
|
||||
a9m9750dev_fpga_ack_irq(d);
|
||||
}
|
||||
|
||||
static void a9m9750dev_fpga_unmask_irq(unsigned int irq)
|
||||
static void a9m9750dev_fpga_unmask_irq(struct irq_data *d)
|
||||
{
|
||||
u8 ier;
|
||||
|
||||
ier = __raw_readb(FPGA_IER);
|
||||
|
||||
ier |= 1 << (irq - FPGA_IRQ(0));
|
||||
ier |= 1 << (d->irq - FPGA_IRQ(0));
|
||||
|
||||
__raw_writeb(ier, FPGA_IER);
|
||||
}
|
||||
|
||||
static struct irq_chip a9m9750dev_fpga_chip = {
|
||||
.ack = a9m9750dev_fpga_ack_irq,
|
||||
.mask = a9m9750dev_fpga_mask_irq,
|
||||
.mask_ack = a9m9750dev_fpga_maskack_irq,
|
||||
.unmask = a9m9750dev_fpga_unmask_irq,
|
||||
.irq_ack = a9m9750dev_fpga_ack_irq,
|
||||
.irq_mask = a9m9750dev_fpga_mask_irq,
|
||||
.irq_mask_ack = a9m9750dev_fpga_maskack_irq,
|
||||
.irq_unmask = a9m9750dev_fpga_unmask_irq,
|
||||
};
|
||||
|
||||
static void a9m9750dev_fpga_demux_handler(unsigned int irq,
|
||||
|
@ -82,7 +82,7 @@ static void a9m9750dev_fpga_demux_handler(unsigned int irq,
|
|||
{
|
||||
u8 stat = __raw_readb(FPGA_ISR);
|
||||
|
||||
desc->chip->mask_ack(irq);
|
||||
desc->irq_data.chip->irq_mask_ack(&desc->irq_data);
|
||||
|
||||
while (stat != 0) {
|
||||
int irqno = fls(stat) - 1;
|
||||
|
@ -92,7 +92,7 @@ static void a9m9750dev_fpga_demux_handler(unsigned int irq,
|
|||
generic_handle_irq(FPGA_IRQ(irqno));
|
||||
}
|
||||
|
||||
desc->chip->unmask(irq);
|
||||
desc->irq_data.chip->irq_unmask(&desc->irq_data);
|
||||
}
|
||||
|
||||
void __init board_a9m9750dev_init_irq(void)
|
||||
|
|
|
@ -22,40 +22,40 @@
|
|||
#define irq2prio(i) (i)
|
||||
#define prio2irq(p) (p)
|
||||
|
||||
static void ns9xxx_mask_irq(unsigned int irq)
|
||||
static void ns9xxx_mask_irq(struct irq_data *d)
|
||||
{
|
||||
/* XXX: better use cpp symbols */
|
||||
int prio = irq2prio(irq);
|
||||
int prio = irq2prio(d->irq);
|
||||
u32 ic = __raw_readl(SYS_IC(prio / 4));
|
||||
ic &= ~(1 << (7 + 8 * (3 - (prio & 3))));
|
||||
__raw_writel(ic, SYS_IC(prio / 4));
|
||||
}
|
||||
|
||||
static void ns9xxx_ack_irq(unsigned int irq)
|
||||
static void ns9xxx_ack_irq(struct irq_data *d)
|
||||
{
|
||||
__raw_writel(0, SYS_ISRADDR);
|
||||
}
|
||||
|
||||
static void ns9xxx_maskack_irq(unsigned int irq)
|
||||
static void ns9xxx_maskack_irq(struct irq_data *d)
|
||||
{
|
||||
ns9xxx_mask_irq(irq);
|
||||
ns9xxx_ack_irq(irq);
|
||||
ns9xxx_mask_irq(d);
|
||||
ns9xxx_ack_irq(d);
|
||||
}
|
||||
|
||||
static void ns9xxx_unmask_irq(unsigned int irq)
|
||||
static void ns9xxx_unmask_irq(struct irq_data *d)
|
||||
{
|
||||
/* XXX: better use cpp symbols */
|
||||
int prio = irq2prio(irq);
|
||||
int prio = irq2prio(d->irq);
|
||||
u32 ic = __raw_readl(SYS_IC(prio / 4));
|
||||
ic |= 1 << (7 + 8 * (3 - (prio & 3)));
|
||||
__raw_writel(ic, SYS_IC(prio / 4));
|
||||
}
|
||||
|
||||
static struct irq_chip ns9xxx_chip = {
|
||||
.ack = ns9xxx_ack_irq,
|
||||
.mask = ns9xxx_mask_irq,
|
||||
.mask_ack = ns9xxx_maskack_irq,
|
||||
.unmask = ns9xxx_unmask_irq,
|
||||
.irq_ack = ns9xxx_ack_irq,
|
||||
.irq_mask = ns9xxx_mask_irq,
|
||||
.irq_mask_ack = ns9xxx_maskack_irq,
|
||||
.irq_unmask = ns9xxx_unmask_irq,
|
||||
};
|
||||
|
||||
#if 0
|
||||
|
@ -92,10 +92,10 @@ static void handle_prio_irq(unsigned int irq, struct irq_desc *desc)
|
|||
|
||||
if (desc->status & IRQ_DISABLED)
|
||||
out_mask:
|
||||
desc->chip->mask(irq);
|
||||
desc->irq_data.chip->irq_mask(&desc->irq_data);
|
||||
|
||||
/* ack unconditionally to unmask lower prio irqs */
|
||||
desc->chip->ack(irq);
|
||||
desc->irq_data.chip->irq_ack(&desc->irq_data);
|
||||
|
||||
raw_spin_unlock(&desc->lock);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue