Loading arch/arm/mach-ks8695/irq.c +22 −21 Original line number Diff line number Diff line Loading @@ -34,29 +34,29 @@ #include <mach/regs-irq.h> #include <mach/regs-gpio.h> static void ks8695_irq_mask(unsigned int irqno) static void ks8695_irq_mask(struct irq_data *d) { unsigned long inten; inten = __raw_readl(KS8695_IRQ_VA + KS8695_INTEN); inten &= ~(1 << irqno); inten &= ~(1 << d->irq); __raw_writel(inten, KS8695_IRQ_VA + KS8695_INTEN); } static void ks8695_irq_unmask(unsigned int irqno) static void ks8695_irq_unmask(struct irq_data *d) { unsigned long inten; inten = __raw_readl(KS8695_IRQ_VA + KS8695_INTEN); inten |= (1 << irqno); inten |= (1 << d->irq); __raw_writel(inten, KS8695_IRQ_VA + KS8695_INTEN); } static void ks8695_irq_ack(unsigned int irqno) static void ks8695_irq_ack(struct irq_data *d) { __raw_writel((1 << irqno), KS8695_IRQ_VA + KS8695_INTST); __raw_writel((1 << d->irq), KS8695_IRQ_VA + KS8695_INTST); } Loading @@ -64,7 +64,7 @@ static struct irq_chip ks8695_irq_level_chip; static struct irq_chip ks8695_irq_edge_chip; static int ks8695_irq_set_type(unsigned int irqno, unsigned int type) static int ks8695_irq_set_type(struct irq_data *d, unsigned int type) { unsigned long ctrl, mode; unsigned short level_triggered = 0; Loading Loading @@ -93,7 +93,7 @@ static int ks8695_irq_set_type(unsigned int irqno, unsigned int type) return -EINVAL; } switch (irqno) { switch (d->irq) { case KS8695_IRQ_EXTERN0: ctrl &= ~IOPC_IOEINT0TM; ctrl |= IOPC_IOEINT0_MODE(mode); Loading @@ -115,12 +115,12 @@ static int ks8695_irq_set_type(unsigned int irqno, unsigned int type) } if (level_triggered) { set_irq_chip(irqno, &ks8695_irq_level_chip); set_irq_handler(irqno, handle_level_irq); set_irq_chip(d->irq, &ks8695_irq_level_chip); set_irq_handler(d->irq, handle_level_irq); } else { set_irq_chip(irqno, &ks8695_irq_edge_chip); set_irq_handler(irqno, handle_edge_irq); set_irq_chip(d->irq, &ks8695_irq_edge_chip); set_irq_handler(d->irq, handle_edge_irq); } __raw_writel(ctrl, KS8695_GPIO_VA + KS8695_IOPC); Loading @@ -128,17 +128,17 @@ static int ks8695_irq_set_type(unsigned int irqno, unsigned int type) } static struct irq_chip ks8695_irq_level_chip = { .ack = ks8695_irq_mask, .mask = ks8695_irq_mask, .unmask = ks8695_irq_unmask, .set_type = ks8695_irq_set_type, .irq_ack = ks8695_irq_mask, .irq_mask = ks8695_irq_mask, .irq_unmask = ks8695_irq_unmask, .irq_set_type = ks8695_irq_set_type, }; static struct irq_chip ks8695_irq_edge_chip = { .ack = ks8695_irq_ack, .mask = ks8695_irq_mask, .unmask = ks8695_irq_unmask, .set_type = ks8695_irq_set_type, .irq_ack = ks8695_irq_ack, .irq_mask = ks8695_irq_mask, .irq_unmask = ks8695_irq_unmask, .irq_set_type = ks8695_irq_set_type, }; void __init ks8695_init_irq(void) Loading @@ -164,7 +164,8 @@ void __init ks8695_init_irq(void) /* Edge-triggered interrupts */ default: ks8695_irq_ack(irq); /* clear pending bit */ /* clear pending bit */ ks8695_irq_ack(irq_get_irq_data(irq)); set_irq_chip(irq, &ks8695_irq_edge_chip); set_irq_handler(irq, handle_edge_irq); } Loading Loading
arch/arm/mach-ks8695/irq.c +22 −21 Original line number Diff line number Diff line Loading @@ -34,29 +34,29 @@ #include <mach/regs-irq.h> #include <mach/regs-gpio.h> static void ks8695_irq_mask(unsigned int irqno) static void ks8695_irq_mask(struct irq_data *d) { unsigned long inten; inten = __raw_readl(KS8695_IRQ_VA + KS8695_INTEN); inten &= ~(1 << irqno); inten &= ~(1 << d->irq); __raw_writel(inten, KS8695_IRQ_VA + KS8695_INTEN); } static void ks8695_irq_unmask(unsigned int irqno) static void ks8695_irq_unmask(struct irq_data *d) { unsigned long inten; inten = __raw_readl(KS8695_IRQ_VA + KS8695_INTEN); inten |= (1 << irqno); inten |= (1 << d->irq); __raw_writel(inten, KS8695_IRQ_VA + KS8695_INTEN); } static void ks8695_irq_ack(unsigned int irqno) static void ks8695_irq_ack(struct irq_data *d) { __raw_writel((1 << irqno), KS8695_IRQ_VA + KS8695_INTST); __raw_writel((1 << d->irq), KS8695_IRQ_VA + KS8695_INTST); } Loading @@ -64,7 +64,7 @@ static struct irq_chip ks8695_irq_level_chip; static struct irq_chip ks8695_irq_edge_chip; static int ks8695_irq_set_type(unsigned int irqno, unsigned int type) static int ks8695_irq_set_type(struct irq_data *d, unsigned int type) { unsigned long ctrl, mode; unsigned short level_triggered = 0; Loading Loading @@ -93,7 +93,7 @@ static int ks8695_irq_set_type(unsigned int irqno, unsigned int type) return -EINVAL; } switch (irqno) { switch (d->irq) { case KS8695_IRQ_EXTERN0: ctrl &= ~IOPC_IOEINT0TM; ctrl |= IOPC_IOEINT0_MODE(mode); Loading @@ -115,12 +115,12 @@ static int ks8695_irq_set_type(unsigned int irqno, unsigned int type) } if (level_triggered) { set_irq_chip(irqno, &ks8695_irq_level_chip); set_irq_handler(irqno, handle_level_irq); set_irq_chip(d->irq, &ks8695_irq_level_chip); set_irq_handler(d->irq, handle_level_irq); } else { set_irq_chip(irqno, &ks8695_irq_edge_chip); set_irq_handler(irqno, handle_edge_irq); set_irq_chip(d->irq, &ks8695_irq_edge_chip); set_irq_handler(d->irq, handle_edge_irq); } __raw_writel(ctrl, KS8695_GPIO_VA + KS8695_IOPC); Loading @@ -128,17 +128,17 @@ static int ks8695_irq_set_type(unsigned int irqno, unsigned int type) } static struct irq_chip ks8695_irq_level_chip = { .ack = ks8695_irq_mask, .mask = ks8695_irq_mask, .unmask = ks8695_irq_unmask, .set_type = ks8695_irq_set_type, .irq_ack = ks8695_irq_mask, .irq_mask = ks8695_irq_mask, .irq_unmask = ks8695_irq_unmask, .irq_set_type = ks8695_irq_set_type, }; static struct irq_chip ks8695_irq_edge_chip = { .ack = ks8695_irq_ack, .mask = ks8695_irq_mask, .unmask = ks8695_irq_unmask, .set_type = ks8695_irq_set_type, .irq_ack = ks8695_irq_ack, .irq_mask = ks8695_irq_mask, .irq_unmask = ks8695_irq_unmask, .irq_set_type = ks8695_irq_set_type, }; void __init ks8695_init_irq(void) Loading @@ -164,7 +164,8 @@ void __init ks8695_init_irq(void) /* Edge-triggered interrupts */ default: ks8695_irq_ack(irq); /* clear pending bit */ /* clear pending bit */ ks8695_irq_ack(irq_get_irq_data(irq)); set_irq_chip(irq, &ks8695_irq_edge_chip); set_irq_handler(irq, handle_edge_irq); } Loading