ARM: sa1111: irq_data conversion.
Signed-off-by: Lennert Buytenhek <buytenh@secretlab.ca> Acked-by: Kristoffer Ericson <kristoffer.ericson@gmail.com>
This commit is contained in:
parent
680244df88
commit
8231e74150
|
@ -210,7 +210,7 @@ sa1111_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
sa1111_writel(stat0, mapbase + SA1111_INTSTATCLR0);
|
sa1111_writel(stat0, mapbase + SA1111_INTSTATCLR0);
|
||||||
|
|
||||||
desc->chip->ack(irq);
|
desc->irq_data.chip->irq_ack(&desc->irq_data);
|
||||||
|
|
||||||
sa1111_writel(stat1, mapbase + SA1111_INTSTATCLR1);
|
sa1111_writel(stat1, mapbase + SA1111_INTSTATCLR1);
|
||||||
|
|
||||||
|
@ -228,35 +228,35 @@ sa1111_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
generic_handle_irq(i + sachip->irq_base);
|
generic_handle_irq(i + sachip->irq_base);
|
||||||
|
|
||||||
/* For level-based interrupts */
|
/* For level-based interrupts */
|
||||||
desc->chip->unmask(irq);
|
desc->irq_data.chip->irq_unmask(&desc->irq_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SA1111_IRQMASK_LO(x) (1 << (x - sachip->irq_base))
|
#define SA1111_IRQMASK_LO(x) (1 << (x - sachip->irq_base))
|
||||||
#define SA1111_IRQMASK_HI(x) (1 << (x - sachip->irq_base - 32))
|
#define SA1111_IRQMASK_HI(x) (1 << (x - sachip->irq_base - 32))
|
||||||
|
|
||||||
static void sa1111_ack_irq(unsigned int irq)
|
static void sa1111_ack_irq(struct irq_data *d)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sa1111_mask_lowirq(unsigned int irq)
|
static void sa1111_mask_lowirq(struct irq_data *d)
|
||||||
{
|
{
|
||||||
struct sa1111 *sachip = get_irq_chip_data(irq);
|
struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
|
||||||
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
||||||
unsigned long ie0;
|
unsigned long ie0;
|
||||||
|
|
||||||
ie0 = sa1111_readl(mapbase + SA1111_INTEN0);
|
ie0 = sa1111_readl(mapbase + SA1111_INTEN0);
|
||||||
ie0 &= ~SA1111_IRQMASK_LO(irq);
|
ie0 &= ~SA1111_IRQMASK_LO(d->irq);
|
||||||
writel(ie0, mapbase + SA1111_INTEN0);
|
writel(ie0, mapbase + SA1111_INTEN0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sa1111_unmask_lowirq(unsigned int irq)
|
static void sa1111_unmask_lowirq(struct irq_data *d)
|
||||||
{
|
{
|
||||||
struct sa1111 *sachip = get_irq_chip_data(irq);
|
struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
|
||||||
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
||||||
unsigned long ie0;
|
unsigned long ie0;
|
||||||
|
|
||||||
ie0 = sa1111_readl(mapbase + SA1111_INTEN0);
|
ie0 = sa1111_readl(mapbase + SA1111_INTEN0);
|
||||||
ie0 |= SA1111_IRQMASK_LO(irq);
|
ie0 |= SA1111_IRQMASK_LO(d->irq);
|
||||||
sa1111_writel(ie0, mapbase + SA1111_INTEN0);
|
sa1111_writel(ie0, mapbase + SA1111_INTEN0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,11 +267,11 @@ static void sa1111_unmask_lowirq(unsigned int irq)
|
||||||
* be triggered. In fact, its very difficult, if not impossible to get
|
* be triggered. In fact, its very difficult, if not impossible to get
|
||||||
* INTSET to re-trigger the interrupt.
|
* INTSET to re-trigger the interrupt.
|
||||||
*/
|
*/
|
||||||
static int sa1111_retrigger_lowirq(unsigned int irq)
|
static int sa1111_retrigger_lowirq(struct irq_data *d)
|
||||||
{
|
{
|
||||||
struct sa1111 *sachip = get_irq_chip_data(irq);
|
struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
|
||||||
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
||||||
unsigned int mask = SA1111_IRQMASK_LO(irq);
|
unsigned int mask = SA1111_IRQMASK_LO(d->irq);
|
||||||
unsigned long ip0;
|
unsigned long ip0;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -285,15 +285,15 @@ static int sa1111_retrigger_lowirq(unsigned int irq)
|
||||||
|
|
||||||
if (i == 8)
|
if (i == 8)
|
||||||
printk(KERN_ERR "Danger Will Robinson: failed to "
|
printk(KERN_ERR "Danger Will Robinson: failed to "
|
||||||
"re-trigger IRQ%d\n", irq);
|
"re-trigger IRQ%d\n", d->irq);
|
||||||
return i == 8 ? -1 : 0;
|
return i == 8 ? -1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sa1111_type_lowirq(unsigned int irq, unsigned int flags)
|
static int sa1111_type_lowirq(struct irq_data *d, unsigned int flags)
|
||||||
{
|
{
|
||||||
struct sa1111 *sachip = get_irq_chip_data(irq);
|
struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
|
||||||
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
||||||
unsigned int mask = SA1111_IRQMASK_LO(irq);
|
unsigned int mask = SA1111_IRQMASK_LO(d->irq);
|
||||||
unsigned long ip0;
|
unsigned long ip0;
|
||||||
|
|
||||||
if (flags == IRQ_TYPE_PROBE)
|
if (flags == IRQ_TYPE_PROBE)
|
||||||
|
@ -313,11 +313,11 @@ static int sa1111_type_lowirq(unsigned int irq, unsigned int flags)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sa1111_wake_lowirq(unsigned int irq, unsigned int on)
|
static int sa1111_wake_lowirq(struct irq_data *d, unsigned int on)
|
||||||
{
|
{
|
||||||
struct sa1111 *sachip = get_irq_chip_data(irq);
|
struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
|
||||||
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
||||||
unsigned int mask = SA1111_IRQMASK_LO(irq);
|
unsigned int mask = SA1111_IRQMASK_LO(d->irq);
|
||||||
unsigned long we0;
|
unsigned long we0;
|
||||||
|
|
||||||
we0 = sa1111_readl(mapbase + SA1111_WAKEEN0);
|
we0 = sa1111_readl(mapbase + SA1111_WAKEEN0);
|
||||||
|
@ -332,33 +332,33 @@ static int sa1111_wake_lowirq(unsigned int irq, unsigned int on)
|
||||||
|
|
||||||
static struct irq_chip sa1111_low_chip = {
|
static struct irq_chip sa1111_low_chip = {
|
||||||
.name = "SA1111-l",
|
.name = "SA1111-l",
|
||||||
.ack = sa1111_ack_irq,
|
.irq_ack = sa1111_ack_irq,
|
||||||
.mask = sa1111_mask_lowirq,
|
.irq_mask = sa1111_mask_lowirq,
|
||||||
.unmask = sa1111_unmask_lowirq,
|
.irq_unmask = sa1111_unmask_lowirq,
|
||||||
.retrigger = sa1111_retrigger_lowirq,
|
.irq_retrigger = sa1111_retrigger_lowirq,
|
||||||
.set_type = sa1111_type_lowirq,
|
.irq_set_type = sa1111_type_lowirq,
|
||||||
.set_wake = sa1111_wake_lowirq,
|
.irq_set_wake = sa1111_wake_lowirq,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void sa1111_mask_highirq(unsigned int irq)
|
static void sa1111_mask_highirq(struct irq_data *d)
|
||||||
{
|
{
|
||||||
struct sa1111 *sachip = get_irq_chip_data(irq);
|
struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
|
||||||
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
||||||
unsigned long ie1;
|
unsigned long ie1;
|
||||||
|
|
||||||
ie1 = sa1111_readl(mapbase + SA1111_INTEN1);
|
ie1 = sa1111_readl(mapbase + SA1111_INTEN1);
|
||||||
ie1 &= ~SA1111_IRQMASK_HI(irq);
|
ie1 &= ~SA1111_IRQMASK_HI(d->irq);
|
||||||
sa1111_writel(ie1, mapbase + SA1111_INTEN1);
|
sa1111_writel(ie1, mapbase + SA1111_INTEN1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sa1111_unmask_highirq(unsigned int irq)
|
static void sa1111_unmask_highirq(struct irq_data *d)
|
||||||
{
|
{
|
||||||
struct sa1111 *sachip = get_irq_chip_data(irq);
|
struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
|
||||||
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
||||||
unsigned long ie1;
|
unsigned long ie1;
|
||||||
|
|
||||||
ie1 = sa1111_readl(mapbase + SA1111_INTEN1);
|
ie1 = sa1111_readl(mapbase + SA1111_INTEN1);
|
||||||
ie1 |= SA1111_IRQMASK_HI(irq);
|
ie1 |= SA1111_IRQMASK_HI(d->irq);
|
||||||
sa1111_writel(ie1, mapbase + SA1111_INTEN1);
|
sa1111_writel(ie1, mapbase + SA1111_INTEN1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -369,11 +369,11 @@ static void sa1111_unmask_highirq(unsigned int irq)
|
||||||
* be triggered. In fact, its very difficult, if not impossible to get
|
* be triggered. In fact, its very difficult, if not impossible to get
|
||||||
* INTSET to re-trigger the interrupt.
|
* INTSET to re-trigger the interrupt.
|
||||||
*/
|
*/
|
||||||
static int sa1111_retrigger_highirq(unsigned int irq)
|
static int sa1111_retrigger_highirq(struct irq_data *d)
|
||||||
{
|
{
|
||||||
struct sa1111 *sachip = get_irq_chip_data(irq);
|
struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
|
||||||
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
||||||
unsigned int mask = SA1111_IRQMASK_HI(irq);
|
unsigned int mask = SA1111_IRQMASK_HI(d->irq);
|
||||||
unsigned long ip1;
|
unsigned long ip1;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -387,15 +387,15 @@ static int sa1111_retrigger_highirq(unsigned int irq)
|
||||||
|
|
||||||
if (i == 8)
|
if (i == 8)
|
||||||
printk(KERN_ERR "Danger Will Robinson: failed to "
|
printk(KERN_ERR "Danger Will Robinson: failed to "
|
||||||
"re-trigger IRQ%d\n", irq);
|
"re-trigger IRQ%d\n", d->irq);
|
||||||
return i == 8 ? -1 : 0;
|
return i == 8 ? -1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sa1111_type_highirq(unsigned int irq, unsigned int flags)
|
static int sa1111_type_highirq(struct irq_data *d, unsigned int flags)
|
||||||
{
|
{
|
||||||
struct sa1111 *sachip = get_irq_chip_data(irq);
|
struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
|
||||||
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
||||||
unsigned int mask = SA1111_IRQMASK_HI(irq);
|
unsigned int mask = SA1111_IRQMASK_HI(d->irq);
|
||||||
unsigned long ip1;
|
unsigned long ip1;
|
||||||
|
|
||||||
if (flags == IRQ_TYPE_PROBE)
|
if (flags == IRQ_TYPE_PROBE)
|
||||||
|
@ -415,11 +415,11 @@ static int sa1111_type_highirq(unsigned int irq, unsigned int flags)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sa1111_wake_highirq(unsigned int irq, unsigned int on)
|
static int sa1111_wake_highirq(struct irq_data *d, unsigned int on)
|
||||||
{
|
{
|
||||||
struct sa1111 *sachip = get_irq_chip_data(irq);
|
struct sa1111 *sachip = irq_data_get_irq_chip_data(d);
|
||||||
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
void __iomem *mapbase = sachip->base + SA1111_INTC;
|
||||||
unsigned int mask = SA1111_IRQMASK_HI(irq);
|
unsigned int mask = SA1111_IRQMASK_HI(d->irq);
|
||||||
unsigned long we1;
|
unsigned long we1;
|
||||||
|
|
||||||
we1 = sa1111_readl(mapbase + SA1111_WAKEEN1);
|
we1 = sa1111_readl(mapbase + SA1111_WAKEEN1);
|
||||||
|
@ -434,12 +434,12 @@ static int sa1111_wake_highirq(unsigned int irq, unsigned int on)
|
||||||
|
|
||||||
static struct irq_chip sa1111_high_chip = {
|
static struct irq_chip sa1111_high_chip = {
|
||||||
.name = "SA1111-h",
|
.name = "SA1111-h",
|
||||||
.ack = sa1111_ack_irq,
|
.irq_ack = sa1111_ack_irq,
|
||||||
.mask = sa1111_mask_highirq,
|
.irq_mask = sa1111_mask_highirq,
|
||||||
.unmask = sa1111_unmask_highirq,
|
.irq_unmask = sa1111_unmask_highirq,
|
||||||
.retrigger = sa1111_retrigger_highirq,
|
.irq_retrigger = sa1111_retrigger_highirq,
|
||||||
.set_type = sa1111_type_highirq,
|
.irq_set_type = sa1111_type_highirq,
|
||||||
.set_wake = sa1111_wake_highirq,
|
.irq_set_wake = sa1111_wake_highirq,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void sa1111_setup_irq(struct sa1111 *sachip)
|
static void sa1111_setup_irq(struct sa1111 *sachip)
|
||||||
|
|
Loading…
Reference in New Issue