[ARM] 5298/1: Drop desc_handle_irq()
desc_handle_irq() was declared as obsolete since long ago. Replace it with generic_handle_irq() Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
27c4cae281
commit
d8aa0251f1
|
@ -66,14 +66,6 @@ static void it8152_unmask_irq(unsigned int irq)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void it8152_irq(int irq)
|
|
||||||
{
|
|
||||||
struct irq_desc *desc;
|
|
||||||
|
|
||||||
desc = irq_desc + irq;
|
|
||||||
desc_handle_irq(irq, desc);
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct irq_chip it8152_irq_chip = {
|
static struct irq_chip it8152_irq_chip = {
|
||||||
.name = "it8152",
|
.name = "it8152",
|
||||||
.ack = it8152_mask_irq,
|
.ack = it8152_mask_irq,
|
||||||
|
@ -128,21 +120,21 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
|
||||||
bits_pd &= ((1 << IT8152_PD_IRQ_COUNT) - 1);
|
bits_pd &= ((1 << IT8152_PD_IRQ_COUNT) - 1);
|
||||||
while (bits_pd) {
|
while (bits_pd) {
|
||||||
i = __ffs(bits_pd);
|
i = __ffs(bits_pd);
|
||||||
it8152_irq(IT8152_PD_IRQ(i));
|
generic_handle_irq(IT8152_PD_IRQ(i));
|
||||||
bits_pd &= ~(1 << i);
|
bits_pd &= ~(1 << i);
|
||||||
}
|
}
|
||||||
|
|
||||||
bits_lp &= ((1 << IT8152_LP_IRQ_COUNT) - 1);
|
bits_lp &= ((1 << IT8152_LP_IRQ_COUNT) - 1);
|
||||||
while (bits_lp) {
|
while (bits_lp) {
|
||||||
i = __ffs(bits_lp);
|
i = __ffs(bits_lp);
|
||||||
it8152_irq(IT8152_LP_IRQ(i));
|
generic_handle_irq(IT8152_LP_IRQ(i));
|
||||||
bits_lp &= ~(1 << i);
|
bits_lp &= ~(1 << i);
|
||||||
}
|
}
|
||||||
|
|
||||||
bits_ld &= ((1 << IT8152_LD_IRQ_COUNT) - 1);
|
bits_ld &= ((1 << IT8152_LD_IRQ_COUNT) - 1);
|
||||||
while (bits_ld) {
|
while (bits_ld) {
|
||||||
i = __ffs(bits_ld);
|
i = __ffs(bits_ld);
|
||||||
it8152_irq(IT8152_LD_IRQ(i));
|
generic_handle_irq(IT8152_LD_IRQ(i));
|
||||||
bits_ld &= ~(1 << i);
|
bits_ld &= ~(1 << i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,7 +169,6 @@ static struct locomo_dev_info locomo_devices[] = {
|
||||||
static void locomo_handler(unsigned int irq, struct irq_desc *desc)
|
static void locomo_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
int req, i;
|
int req, i;
|
||||||
struct irq_desc *d;
|
|
||||||
void __iomem *mapbase = get_irq_chip_data(irq);
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
||||||
|
|
||||||
/* Acknowledge the parent IRQ */
|
/* Acknowledge the parent IRQ */
|
||||||
|
@ -181,10 +180,9 @@ static void locomo_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
if (req) {
|
if (req) {
|
||||||
/* generate the next interrupt(s) */
|
/* generate the next interrupt(s) */
|
||||||
irq = LOCOMO_IRQ_START;
|
irq = LOCOMO_IRQ_START;
|
||||||
d = irq_desc + irq;
|
for (i = 0; i <= 3; i++, irq++) {
|
||||||
for (i = 0; i <= 3; i++, d++, irq++) {
|
|
||||||
if (req & (0x0100 << i)) {
|
if (req & (0x0100 << i)) {
|
||||||
desc_handle_irq(irq, d);
|
generic_handle_irq(irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -222,12 +220,10 @@ static struct irq_chip locomo_chip = {
|
||||||
|
|
||||||
static void locomo_key_handler(unsigned int irq, struct irq_desc *desc)
|
static void locomo_key_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
struct irq_desc *d;
|
|
||||||
void __iomem *mapbase = get_irq_chip_data(irq);
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
||||||
|
|
||||||
if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) {
|
if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) {
|
||||||
d = irq_desc + LOCOMO_IRQ_KEY_START;
|
generic_handle_irq(LOCOMO_IRQ_KEY_START);
|
||||||
desc_handle_irq(LOCOMO_IRQ_KEY_START, d);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -268,7 +264,6 @@ static struct irq_chip locomo_key_chip = {
|
||||||
static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc)
|
static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
int req, i;
|
int req, i;
|
||||||
struct irq_desc *d;
|
|
||||||
void __iomem *mapbase = get_irq_chip_data(irq);
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
||||||
|
|
||||||
req = locomo_readl(mapbase + LOCOMO_GIR) &
|
req = locomo_readl(mapbase + LOCOMO_GIR) &
|
||||||
|
@ -277,10 +272,9 @@ static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
if (req) {
|
if (req) {
|
||||||
irq = LOCOMO_IRQ_GPIO_START;
|
irq = LOCOMO_IRQ_GPIO_START;
|
||||||
d = irq_desc + LOCOMO_IRQ_GPIO_START;
|
for (i = 0; i <= 15; i++, irq++) {
|
||||||
for (i = 0; i <= 15; i++, irq++, d++) {
|
|
||||||
if (req & (0x0001 << i)) {
|
if (req & (0x0001 << i)) {
|
||||||
desc_handle_irq(irq, d);
|
generic_handle_irq(irq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -361,12 +355,10 @@ static struct irq_chip locomo_gpio_chip = {
|
||||||
|
|
||||||
static void locomo_lt_handler(unsigned int irq, struct irq_desc *desc)
|
static void locomo_lt_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
struct irq_desc *d;
|
|
||||||
void __iomem *mapbase = get_irq_chip_data(irq);
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
||||||
|
|
||||||
if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) {
|
if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) {
|
||||||
d = irq_desc + LOCOMO_IRQ_LT_START;
|
generic_handle_irq(LOCOMO_IRQ_LT_START);
|
||||||
desc_handle_irq(LOCOMO_IRQ_LT_START, d);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -407,17 +399,15 @@ static struct irq_chip locomo_lt_chip = {
|
||||||
static void locomo_spi_handler(unsigned int irq, struct irq_desc *desc)
|
static void locomo_spi_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
int req, i;
|
int req, i;
|
||||||
struct irq_desc *d;
|
|
||||||
void __iomem *mapbase = get_irq_chip_data(irq);
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
||||||
|
|
||||||
req = locomo_readl(mapbase + LOCOMO_SPI + LOCOMO_SPIIR) & 0x000F;
|
req = locomo_readl(mapbase + LOCOMO_SPI + LOCOMO_SPIIR) & 0x000F;
|
||||||
if (req) {
|
if (req) {
|
||||||
irq = LOCOMO_IRQ_SPI_START;
|
irq = LOCOMO_IRQ_SPI_START;
|
||||||
d = irq_desc + irq;
|
|
||||||
|
|
||||||
for (i = 0; i <= 3; i++, irq++, d++) {
|
for (i = 0; i <= 3; i++, irq++) {
|
||||||
if (req & (0x0001 << i)) {
|
if (req & (0x0001 << i)) {
|
||||||
desc_handle_irq(irq, d);
|
generic_handle_irq(irq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -587,8 +587,7 @@ ecard_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
pending = ecard_default_ops.irqpending(ec);
|
pending = ecard_default_ops.irqpending(ec);
|
||||||
|
|
||||||
if (pending) {
|
if (pending) {
|
||||||
struct irq_desc *d = irq_desc + ec->irq;
|
generic_handle_irq(ec->irq);
|
||||||
desc_handle_irq(ec->irq, d);
|
|
||||||
called ++;
|
called ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -622,7 +621,6 @@ ecard_irqexp_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
ecard_t *ec = slot_to_ecard(slot);
|
ecard_t *ec = slot_to_ecard(slot);
|
||||||
|
|
||||||
if (ec->claimed) {
|
if (ec->claimed) {
|
||||||
struct irq_desc *d = irq_desc + ec->irq;
|
|
||||||
/*
|
/*
|
||||||
* this ugly code is so that we can operate a
|
* this ugly code is so that we can operate a
|
||||||
* prioritorising system:
|
* prioritorising system:
|
||||||
|
@ -635,7 +633,7 @@ ecard_irqexp_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
* Serial cards should go in 0/1, ethernet/scsi in 2/3
|
* Serial cards should go in 0/1, ethernet/scsi in 2/3
|
||||||
* otherwise you will lose serial data at high speeds!
|
* otherwise you will lose serial data at high speeds!
|
||||||
*/
|
*/
|
||||||
desc_handle_irq(ec->irq, d);
|
generic_handle_irq(ec->irq);
|
||||||
} else {
|
} else {
|
||||||
printk(KERN_WARNING "card%d: interrupt from unclaimed "
|
printk(KERN_WARNING "card%d: interrupt from unclaimed "
|
||||||
"card???\n", slot);
|
"card???\n", slot);
|
||||||
|
|
|
@ -112,18 +112,17 @@ static struct irq_desc bad_irq_desc = {
|
||||||
asmlinkage void __exception asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
|
asmlinkage void __exception asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||||
struct irq_desc *desc = irq_desc + irq;
|
|
||||||
|
irq_enter();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Some hardware gives randomly wrong interrupts. Rather
|
* Some hardware gives randomly wrong interrupts. Rather
|
||||||
* than crashing, do something sensible.
|
* than crashing, do something sensible.
|
||||||
*/
|
*/
|
||||||
if (irq >= NR_IRQS)
|
if (irq >= NR_IRQS)
|
||||||
desc = &bad_irq_desc;
|
handle_bad_irq(irq, &bad_irq_desc);
|
||||||
|
else
|
||||||
irq_enter();
|
generic_handle_irq(irq);
|
||||||
|
|
||||||
desc_handle_irq(irq, desc);
|
|
||||||
|
|
||||||
/* AT91 specific workaround */
|
/* AT91 specific workaround */
|
||||||
irq_finish(irq);
|
irq_finish(irq);
|
||||||
|
|
|
@ -404,7 +404,6 @@ static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
|
||||||
}
|
}
|
||||||
|
|
||||||
pin = bank->chipbase;
|
pin = bank->chipbase;
|
||||||
gpio = &irq_desc[pin];
|
|
||||||
|
|
||||||
while (isr) {
|
while (isr) {
|
||||||
if (isr & 1) {
|
if (isr & 1) {
|
||||||
|
@ -417,7 +416,7 @@ static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
|
||||||
gpio_irq_mask(pin);
|
gpio_irq_mask(pin);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
desc_handle_irq(pin, gpio);
|
generic_handle_irq(pin);
|
||||||
}
|
}
|
||||||
pin++;
|
pin++;
|
||||||
gpio++;
|
gpio++;
|
||||||
|
|
|
@ -201,7 +201,6 @@ gpio_irq_handler(unsigned irq, struct irq_desc *desc)
|
||||||
desc->chip->ack(irq);
|
desc->chip->ack(irq);
|
||||||
while (1) {
|
while (1) {
|
||||||
u32 status;
|
u32 status;
|
||||||
struct irq_desc *gpio;
|
|
||||||
int n;
|
int n;
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
|
@ -215,12 +214,10 @@ gpio_irq_handler(unsigned irq, struct irq_desc *desc)
|
||||||
|
|
||||||
/* now demux them to the right lowlevel handler */
|
/* now demux them to the right lowlevel handler */
|
||||||
n = (int)get_irq_data(irq);
|
n = (int)get_irq_data(irq);
|
||||||
gpio = &irq_desc[n];
|
|
||||||
while (status) {
|
while (status) {
|
||||||
res = ffs(status);
|
res = ffs(status);
|
||||||
n += res;
|
n += res;
|
||||||
gpio += res;
|
generic_handle_irq(n - 1);
|
||||||
desc_handle_irq(n - 1, gpio - 1);
|
|
||||||
status >>= res;
|
status >>= res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -192,8 +192,7 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
for (i = 0; i < 8; i++) {
|
for (i = 0; i < 8; i++) {
|
||||||
if (status & (1 << i)) {
|
if (status & (1 << i)) {
|
||||||
int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_A(0)) + i;
|
int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_A(0)) + i;
|
||||||
desc = irq_desc + gpio_irq;
|
generic_handle_irq(gpio_irq);
|
||||||
desc_handle_irq(gpio_irq, desc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,7 +201,7 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
if (status & (1 << i)) {
|
if (status & (1 << i)) {
|
||||||
int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_B(0)) + i;
|
int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_B(0)) + i;
|
||||||
desc = irq_desc + gpio_irq;
|
desc = irq_desc + gpio_irq;
|
||||||
desc_handle_irq(gpio_irq, desc);
|
generic_handle_irq(gpio_irq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -217,7 +216,7 @@ static void ep93xx_gpio_f_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
int port_f_idx = ((irq + 1) & 7) ^ 4; /* {19..22,47..50} -> {0..7} */
|
int port_f_idx = ((irq + 1) & 7) ^ 4; /* {19..22,47..50} -> {0..7} */
|
||||||
int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_F(0)) + port_f_idx;
|
int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_F(0)) + port_f_idx;
|
||||||
|
|
||||||
desc_handle_irq(gpio_irq, irq_desc + gpio_irq);
|
generic_handle_irq(gpio_irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ep93xx_gpio_irq_ack(unsigned int irq)
|
static void ep93xx_gpio_irq_ack(unsigned int irq)
|
||||||
|
|
|
@ -94,8 +94,7 @@ isa_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
desc = irq_desc + isa_irq;
|
generic_handle_irq(isa_irq);
|
||||||
desc_handle_irq(isa_irq, desc);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct irqaction irq_cascade = {
|
static struct irqaction irq_cascade = {
|
||||||
|
|
|
@ -104,14 +104,12 @@ h720x_gpio_handler(unsigned int mask, unsigned int irq,
|
||||||
struct irq_desc *desc)
|
struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
IRQDBG("%s irq: %d\n", __func__, irq);
|
IRQDBG("%s irq: %d\n", __func__, irq);
|
||||||
desc = irq_desc + irq;
|
|
||||||
while (mask) {
|
while (mask) {
|
||||||
if (mask & 1) {
|
if (mask & 1) {
|
||||||
IRQDBG("handling irq %d\n", irq);
|
IRQDBG("handling irq %d\n", irq);
|
||||||
desc_handle_irq(irq, desc);
|
generic_handle_irq(irq);
|
||||||
}
|
}
|
||||||
irq++;
|
irq++;
|
||||||
desc++;
|
|
||||||
mask >>= 1;
|
mask >>= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,12 +120,10 @@ h7202_timerx_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
|
||||||
|
|
||||||
mask >>= 1;
|
mask >>= 1;
|
||||||
irq = IRQ_TIMER1;
|
irq = IRQ_TIMER1;
|
||||||
desc = irq_desc + irq;
|
|
||||||
while (mask) {
|
while (mask) {
|
||||||
if (mask & 1)
|
if (mask & 1)
|
||||||
desc_handle_irq(irq, desc);
|
generic_handle_irq(irq);
|
||||||
irq++;
|
irq++;
|
||||||
desc++;
|
|
||||||
mask >>= 1;
|
mask >>= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -182,14 +182,12 @@ static void
|
||||||
imx_gpio_handler(unsigned int mask, unsigned int irq,
|
imx_gpio_handler(unsigned int mask, unsigned int irq,
|
||||||
struct irq_desc *desc)
|
struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
desc = irq_desc + irq;
|
|
||||||
while (mask) {
|
while (mask) {
|
||||||
if (mask & 1) {
|
if (mask & 1) {
|
||||||
DEBUG_IRQ("handling irq %d\n", irq);
|
DEBUG_IRQ("handling irq %d\n", irq);
|
||||||
desc_handle_irq(irq, desc);
|
generic_handle_irq(irq);
|
||||||
}
|
}
|
||||||
irq++;
|
irq++;
|
||||||
desc++;
|
|
||||||
mask >>= 1;
|
mask >>= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -217,8 +217,7 @@ sic_handle_irq(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
irq += IRQ_SIC_START;
|
irq += IRQ_SIC_START;
|
||||||
|
|
||||||
desc = irq_desc + irq;
|
generic_handle_irq(irq);
|
||||||
desc_handle_irq(irq, desc);
|
|
||||||
} while (status);
|
} while (status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -110,8 +110,7 @@ static void iop13xx_msi_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
do {
|
do {
|
||||||
j = find_first_bit(&status, 32);
|
j = find_first_bit(&status, 32);
|
||||||
(write_imipr[i])(1 << j); /* write back to clear bit */
|
(write_imipr[i])(1 << j); /* write back to clear bit */
|
||||||
desc = irq_desc + IRQ_IOP13XX_MSI_0 + j + (32*i);
|
generic_handle_irq(IRQ_IOP13XX_MSI_0 + j + (32*i));
|
||||||
desc_handle_irq(IRQ_IOP13XX_MSI_0 + j + (32*i), desc);
|
|
||||||
status = (read_imipr[i])();
|
status = (read_imipr[i])();
|
||||||
} while (status);
|
} while (status);
|
||||||
}
|
}
|
||||||
|
|
|
@ -311,8 +311,7 @@ static void ixp2000_GPIO_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
for (i = 0; i <= 7; i++) {
|
for (i = 0; i <= 7; i++) {
|
||||||
if (status & (1<<i)) {
|
if (status & (1<<i)) {
|
||||||
desc = irq_desc + i + IRQ_IXP2000_GPIO0;
|
generic_handle_irq(i + IRQ_IXP2000_GPIO0);
|
||||||
desc_handle_irq(i + IRQ_IXP2000_GPIO0, desc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -404,8 +403,7 @@ static void ixp2000_err_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
for(i = 31; i >= 0; i--) {
|
for(i = 31; i >= 0; i--) {
|
||||||
if(status & (1 << i)) {
|
if(status & (1 << i)) {
|
||||||
desc = irq_desc + IRQ_IXP2000_DRAM0_MIN_ERR + i;
|
generic_handle_irq(IRQ_IXP2000_DRAM0_MIN_ERR + i);
|
||||||
desc_handle_irq(IRQ_IXP2000_DRAM0_MIN_ERR + i, desc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,10 +129,8 @@ static void ixdp2x00_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
for(i = 0; i < board_irq_count; i++) {
|
for(i = 0; i < board_irq_count; i++) {
|
||||||
if(ex_interrupt & (1 << i)) {
|
if(ex_interrupt & (1 << i)) {
|
||||||
struct irq_desc *cpld_desc;
|
|
||||||
int cpld_irq = IXP2000_BOARD_IRQ(0) + i;
|
int cpld_irq = IXP2000_BOARD_IRQ(0) + i;
|
||||||
cpld_desc = irq_desc + cpld_irq;
|
generic_handle_irq(cpld_irq);
|
||||||
desc_handle_irq(cpld_irq, cpld_desc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,10 +79,8 @@ static void ixdp2x01_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
for (i = 0; i < IXP2000_BOARD_IRQS; i++) {
|
for (i = 0; i < IXP2000_BOARD_IRQS; i++) {
|
||||||
if (ex_interrupt & (1 << i)) {
|
if (ex_interrupt & (1 << i)) {
|
||||||
struct irq_desc *cpld_desc;
|
|
||||||
int cpld_irq = IXP2000_BOARD_IRQ(0) + i;
|
int cpld_irq = IXP2000_BOARD_IRQ(0) + i;
|
||||||
cpld_desc = irq_desc + cpld_irq;
|
generic_handle_irq(cpld_irq);
|
||||||
desc_handle_irq(cpld_irq, cpld_desc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -253,7 +253,6 @@ static void pci_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
u32 pci_interrupt;
|
u32 pci_interrupt;
|
||||||
unsigned int irqno;
|
unsigned int irqno;
|
||||||
struct irq_desc *int_desc;
|
|
||||||
|
|
||||||
pci_interrupt = *IXP23XX_PCI_XSCALE_INT_STATUS;
|
pci_interrupt = *IXP23XX_PCI_XSCALE_INT_STATUS;
|
||||||
|
|
||||||
|
@ -268,8 +267,7 @@ static void pci_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
BUG();
|
BUG();
|
||||||
}
|
}
|
||||||
|
|
||||||
int_desc = irq_desc + irqno;
|
generic_handle_irq(irqno);
|
||||||
desc_handle_irq(irqno, int_desc);
|
|
||||||
|
|
||||||
desc->chip->unmask(irq);
|
desc->chip->unmask(irq);
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,11 +68,9 @@ static void ixdp2351_inta_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
for (i = 0; i < IXDP2351_INTA_IRQ_NUM; i++) {
|
for (i = 0; i < IXDP2351_INTA_IRQ_NUM; i++) {
|
||||||
if (ex_interrupt & (1 << i)) {
|
if (ex_interrupt & (1 << i)) {
|
||||||
struct irq_desc *cpld_desc;
|
|
||||||
int cpld_irq =
|
int cpld_irq =
|
||||||
IXP23XX_MACH_IRQ(IXDP2351_INTA_IRQ_BASE + i);
|
IXP23XX_MACH_IRQ(IXDP2351_INTA_IRQ_BASE + i);
|
||||||
cpld_desc = irq_desc + cpld_irq;
|
generic_handle_irq(cpld_irq);
|
||||||
desc_handle_irq(cpld_irq, cpld_desc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,11 +103,9 @@ static void ixdp2351_intb_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
for (i = 0; i < IXDP2351_INTB_IRQ_NUM; i++) {
|
for (i = 0; i < IXDP2351_INTB_IRQ_NUM; i++) {
|
||||||
if (ex_interrupt & (1 << i)) {
|
if (ex_interrupt & (1 << i)) {
|
||||||
struct irq_desc *cpld_desc;
|
|
||||||
int cpld_irq =
|
int cpld_irq =
|
||||||
IXP23XX_MACH_IRQ(IXDP2351_INTB_IRQ_BASE + i);
|
IXP23XX_MACH_IRQ(IXDP2351_INTB_IRQ_BASE + i);
|
||||||
cpld_desc = irq_desc + cpld_irq;
|
generic_handle_irq(cpld_irq);
|
||||||
desc_handle_irq(cpld_irq, cpld_desc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ static void kev7a400_cpld_handler (unsigned int irq, struct irq_desc *desc)
|
||||||
irq = IRQ_KEV7A400_CPLD;
|
irq = IRQ_KEV7A400_CPLD;
|
||||||
for (; mask; mask >>= 1, ++irq)
|
for (; mask; mask >>= 1, ++irq)
|
||||||
if (mask & 1)
|
if (mask & 1)
|
||||||
desc_handle_irq(irq, desc);
|
generic_handle_irq(irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init lh7a40x_init_board_irq (void)
|
void __init lh7a40x_init_board_irq (void)
|
||||||
|
|
|
@ -214,11 +214,11 @@ static void lpd7a40x_cpld_handler (unsigned int irq, struct irq_desc *desc)
|
||||||
desc->chip->ack (irq);
|
desc->chip->ack (irq);
|
||||||
|
|
||||||
if ((mask & (1<<0)) == 0) /* WLAN */
|
if ((mask & (1<<0)) == 0) /* WLAN */
|
||||||
IRQ_DISPATCH (IRQ_LPD7A40X_ETH_INT);
|
generic_handle_irq(IRQ_LPD7A40X_ETH_INT);
|
||||||
|
|
||||||
#if defined (IRQ_TOUCH)
|
#if defined (IRQ_TOUCH)
|
||||||
if ((mask & (1<<1)) == 0) /* Touch */
|
if ((mask & (1<<1)) == 0) /* Touch */
|
||||||
IRQ_DISPATCH (IRQ_TOUCH);
|
generic_handle_irq(IRQ_TOUCH);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
desc->chip->unmask (irq); /* Level-triggered need this */
|
desc->chip->unmask (irq); /* Level-triggered need this */
|
||||||
|
|
|
@ -15,4 +15,3 @@ extern void lh7a404_init_irq (void);
|
||||||
extern void lh7a40x_clcd_init (void);
|
extern void lh7a40x_clcd_init (void);
|
||||||
extern void lh7a40x_init_board_irq (void);
|
extern void lh7a40x_init_board_irq (void);
|
||||||
|
|
||||||
#define IRQ_DISPATCH(irq) desc_handle_irq((irq),(irq_desc + irq))
|
|
||||||
|
|
|
@ -63,10 +63,10 @@ static void lh7a40x_cpld_handler (unsigned int irq, struct irq_desc *desc)
|
||||||
desc->chip->ack (irq);
|
desc->chip->ack (irq);
|
||||||
|
|
||||||
if ((mask & 0x1) == 0) /* WLAN */
|
if ((mask & 0x1) == 0) /* WLAN */
|
||||||
IRQ_DISPATCH (IRQ_LPD7A40X_ETH_INT);
|
generic_handle_irq(IRQ_LPD7A40X_ETH_INT);
|
||||||
|
|
||||||
if ((mask & 0x2) == 0) /* Touch */
|
if ((mask & 0x2) == 0) /* Touch */
|
||||||
IRQ_DISPATCH (IRQ_LPD7A400_TS);
|
generic_handle_irq(IRQ_LPD7A400_TS);
|
||||||
|
|
||||||
desc->chip->unmask (irq); /* Level-triggered need this */
|
desc->chip->unmask (irq); /* Level-triggered need this */
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,15 +77,12 @@ netx_hif_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
|
||||||
stat = ((readl(NETX_DPMAS_INT_EN) &
|
stat = ((readl(NETX_DPMAS_INT_EN) &
|
||||||
readl(NETX_DPMAS_INT_STAT)) >> 24) & 0x1f;
|
readl(NETX_DPMAS_INT_STAT)) >> 24) & 0x1f;
|
||||||
|
|
||||||
desc = irq_desc + NETX_IRQ_HIF_CHAINED(0);
|
|
||||||
|
|
||||||
while (stat) {
|
while (stat) {
|
||||||
if (stat & 1) {
|
if (stat & 1) {
|
||||||
DEBUG_IRQ("handling irq %d\n", irq);
|
DEBUG_IRQ("handling irq %d\n", irq);
|
||||||
desc_handle_irq(irq, desc);
|
generic_handle_irq(irq);
|
||||||
}
|
}
|
||||||
irq++;
|
irq++;
|
||||||
desc++;
|
|
||||||
stat >>= 1;
|
stat >>= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,13 +86,10 @@ static void a9m9750dev_fpga_demux_handler(unsigned int irq,
|
||||||
|
|
||||||
while (stat != 0) {
|
while (stat != 0) {
|
||||||
int irqno = fls(stat) - 1;
|
int irqno = fls(stat) - 1;
|
||||||
struct irq_desc *fpgadesc;
|
|
||||||
|
|
||||||
stat &= ~(1 << irqno);
|
stat &= ~(1 << irqno);
|
||||||
|
|
||||||
fpgadesc = irq_desc + FPGA_IRQ(irqno);
|
generic_handle_irq(FPGA_IRQ(irqno));
|
||||||
|
|
||||||
desc_handle_irq(FPGA_IRQ(irqno), fpgadesc);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
desc->chip->unmask(irq);
|
desc->chip->unmask(irq);
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include <linux/reboot.h>
|
#include <linux/reboot.h>
|
||||||
#include <linux/serial_8250.h>
|
#include <linux/serial_8250.h>
|
||||||
#include <linux/serial_reg.h>
|
#include <linux/serial_reg.h>
|
||||||
|
#include <linux/irq.h>
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
|
|
|
@ -86,7 +86,6 @@ static void fpga_mask_ack_irq(unsigned int irq)
|
||||||
|
|
||||||
void innovator_fpga_IRQ_demux(unsigned int irq, struct irq_desc *desc)
|
void innovator_fpga_IRQ_demux(unsigned int irq, struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
struct irq_desc *d;
|
|
||||||
u32 stat;
|
u32 stat;
|
||||||
int fpga_irq;
|
int fpga_irq;
|
||||||
|
|
||||||
|
@ -99,8 +98,7 @@ void innovator_fpga_IRQ_demux(unsigned int irq, struct irq_desc *desc)
|
||||||
(fpga_irq < OMAP_FPGA_IRQ_END) && stat;
|
(fpga_irq < OMAP_FPGA_IRQ_END) && stat;
|
||||||
fpga_irq++, stat >>= 1) {
|
fpga_irq++, stat >>= 1) {
|
||||||
if (stat & 1) {
|
if (stat & 1) {
|
||||||
d = irq_desc + fpga_irq;
|
generic_handle_irq(fpga_irq);
|
||||||
desc_handle_irq(fpga_irq, d);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -162,7 +162,7 @@ static void orion5x_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
polarity ^= 1 << pin;
|
polarity ^= 1 << pin;
|
||||||
writel(polarity, GPIO_IN_POL);
|
writel(polarity, GPIO_IN_POL);
|
||||||
}
|
}
|
||||||
desc_handle_irq(irq, desc);
|
generic_handle_irq(irq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -275,7 +275,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
loop = 1;
|
loop = 1;
|
||||||
|
|
||||||
n = PXA_GPIO_IRQ_BASE + bit;
|
n = PXA_GPIO_IRQ_BASE + bit;
|
||||||
desc_handle_irq(n, irq_desc + n);
|
generic_handle_irq(n);
|
||||||
|
|
||||||
bit = find_next_bit(gedr, GEDR_BITS, bit + 1);
|
bit = find_next_bit(gedr, GEDR_BITS, bit + 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -125,8 +125,7 @@ static void lpd270_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
GEDR(0) = GPIO_bit(0); /* clear useless edge notification */
|
GEDR(0) = GPIO_bit(0); /* clear useless edge notification */
|
||||||
if (likely(pending)) {
|
if (likely(pending)) {
|
||||||
irq = LPD270_IRQ(0) + __ffs(pending);
|
irq = LPD270_IRQ(0) + __ffs(pending);
|
||||||
desc = irq_desc + irq;
|
generic_handle_irq(irq);
|
||||||
desc_handle_irq(irq, desc);
|
|
||||||
|
|
||||||
pending = __raw_readw(LPD270_INT_STATUS) &
|
pending = __raw_readw(LPD270_INT_STATUS) &
|
||||||
lpd270_irq_enabled;
|
lpd270_irq_enabled;
|
||||||
|
|
|
@ -155,8 +155,7 @@ static void lubbock_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
GEDR(0) = GPIO_bit(0); /* clear our parent irq */
|
GEDR(0) = GPIO_bit(0); /* clear our parent irq */
|
||||||
if (likely(pending)) {
|
if (likely(pending)) {
|
||||||
irq = LUBBOCK_IRQ(0) + __ffs(pending);
|
irq = LUBBOCK_IRQ(0) + __ffs(pending);
|
||||||
desc = irq_desc + irq;
|
generic_handle_irq(irq);
|
||||||
desc_handle_irq(irq, desc);
|
|
||||||
}
|
}
|
||||||
pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled;
|
pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled;
|
||||||
} while (pending);
|
} while (pending);
|
||||||
|
|
|
@ -162,8 +162,7 @@ static void mainstone_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
GEDR(0) = GPIO_bit(0); /* clear useless edge notification */
|
GEDR(0) = GPIO_bit(0); /* clear useless edge notification */
|
||||||
if (likely(pending)) {
|
if (likely(pending)) {
|
||||||
irq = MAINSTONE_IRQ(0) + __ffs(pending);
|
irq = MAINSTONE_IRQ(0) + __ffs(pending);
|
||||||
desc = irq_desc + irq;
|
generic_handle_irq(irq);
|
||||||
desc_handle_irq(irq, desc);
|
|
||||||
}
|
}
|
||||||
pending = MST_INTSETCLR & mainstone_irq_enabled;
|
pending = MST_INTSETCLR & mainstone_irq_enabled;
|
||||||
} while (pending);
|
} while (pending);
|
||||||
|
|
|
@ -262,8 +262,7 @@ static void pcm990_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
GPIO_bit(PCM990_CTRL_INT_IRQ_GPIO);
|
GPIO_bit(PCM990_CTRL_INT_IRQ_GPIO);
|
||||||
if (likely(pending)) {
|
if (likely(pending)) {
|
||||||
irq = PCM027_IRQ(0) + __ffs(pending);
|
irq = PCM027_IRQ(0) + __ffs(pending);
|
||||||
desc = irq_desc + irq;
|
generic_handle_irq(irq);
|
||||||
desc_handle_irq(irq, desc);
|
|
||||||
}
|
}
|
||||||
pending = (~PCM990_INTSETCLR) & pcm990_irq_enabled;
|
pending = (~PCM990_INTSETCLR) & pcm990_irq_enabled;
|
||||||
} while (pending);
|
} while (pending);
|
||||||
|
|
|
@ -130,8 +130,7 @@ bast_irq_pc104_demux(unsigned int irq,
|
||||||
for (i = 0; stat != 0; i++, stat >>= 1) {
|
for (i = 0; stat != 0; i++, stat >>= 1) {
|
||||||
if (stat & 1) {
|
if (stat & 1) {
|
||||||
irqno = bast_pc104_irqs[i];
|
irqno = bast_pc104_irqs[i];
|
||||||
desc = irq_desc + irqno;
|
generic_handle_irq(irqno);
|
||||||
desc_handle_irq(irqno, desc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -123,10 +123,10 @@ static void s3c2412_irq_demux_cfsdi(unsigned int irq, struct irq_desc *desc)
|
||||||
subsrc &= ~submsk;
|
subsrc &= ~submsk;
|
||||||
|
|
||||||
if (subsrc & INTBIT(IRQ_S3C2412_SDI))
|
if (subsrc & INTBIT(IRQ_S3C2412_SDI))
|
||||||
desc_handle_irq(IRQ_S3C2412_SDI, irq_desc + IRQ_S3C2412_SDI);
|
generic_handle_irq(IRQ_S3C2412_SDI);
|
||||||
|
|
||||||
if (subsrc & INTBIT(IRQ_S3C2412_CF))
|
if (subsrc & INTBIT(IRQ_S3C2412_CF))
|
||||||
desc_handle_irq(IRQ_S3C2412_CF, irq_desc + IRQ_S3C2412_CF);
|
generic_handle_irq(IRQ_S3C2412_CF);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define INTMSK_CFSDI (1UL << (IRQ_S3C2412_CFSDI - IRQ_EINT0))
|
#define INTMSK_CFSDI (1UL << (IRQ_S3C2412_CFSDI - IRQ_EINT0))
|
||||||
|
|
|
@ -44,7 +44,6 @@ static void s3c_irq_demux_wdtac97(unsigned int irq,
|
||||||
struct irq_desc *desc)
|
struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
unsigned int subsrc, submsk;
|
unsigned int subsrc, submsk;
|
||||||
struct irq_desc *mydesc;
|
|
||||||
|
|
||||||
/* read the current pending interrupts, and the mask
|
/* read the current pending interrupts, and the mask
|
||||||
* for what it is available */
|
* for what it is available */
|
||||||
|
@ -58,12 +57,10 @@ static void s3c_irq_demux_wdtac97(unsigned int irq,
|
||||||
|
|
||||||
if (subsrc != 0) {
|
if (subsrc != 0) {
|
||||||
if (subsrc & 1) {
|
if (subsrc & 1) {
|
||||||
mydesc = irq_desc + IRQ_S3C2440_WDT;
|
generic_handle_irq(IRQ_S3C2440_WDT);
|
||||||
desc_handle_irq(IRQ_S3C2440_WDT, mydesc);
|
|
||||||
}
|
}
|
||||||
if (subsrc & 2) {
|
if (subsrc & 2) {
|
||||||
mydesc = irq_desc + IRQ_S3C2440_AC97;
|
generic_handle_irq(IRQ_S3C2440_AC97);
|
||||||
desc_handle_irq(IRQ_S3C2440_AC97, mydesc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,6 @@ static inline void s3c2443_irq_demux(unsigned int irq, unsigned int len)
|
||||||
{
|
{
|
||||||
unsigned int subsrc, submsk;
|
unsigned int subsrc, submsk;
|
||||||
unsigned int end;
|
unsigned int end;
|
||||||
struct irq_desc *mydesc;
|
|
||||||
|
|
||||||
/* read the current pending interrupts, and the mask
|
/* read the current pending interrupts, and the mask
|
||||||
* for what it is available */
|
* for what it is available */
|
||||||
|
@ -57,13 +56,11 @@ static inline void s3c2443_irq_demux(unsigned int irq, unsigned int len)
|
||||||
subsrc &= (1 << len)-1;
|
subsrc &= (1 << len)-1;
|
||||||
|
|
||||||
end = len + irq;
|
end = len + irq;
|
||||||
mydesc = irq_desc + irq;
|
|
||||||
|
|
||||||
for (; irq < end && subsrc; irq++) {
|
for (; irq < end && subsrc; irq++) {
|
||||||
if (subsrc & 1)
|
if (subsrc & 1)
|
||||||
desc_handle_irq(irq, mydesc);
|
generic_handle_irq(irq);
|
||||||
|
|
||||||
mydesc++;
|
|
||||||
subsrc >>= 1;
|
subsrc >>= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -122,14 +122,12 @@ sa1100_high_gpio_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
GEDR = mask;
|
GEDR = mask;
|
||||||
|
|
||||||
irq = IRQ_GPIO11;
|
irq = IRQ_GPIO11;
|
||||||
desc = irq_desc + irq;
|
|
||||||
mask >>= 11;
|
mask >>= 11;
|
||||||
do {
|
do {
|
||||||
if (mask & 1)
|
if (mask & 1)
|
||||||
desc_handle_irq(irq, desc);
|
generic_handle_irq(irq);
|
||||||
mask >>= 1;
|
mask >>= 1;
|
||||||
irq++;
|
irq++;
|
||||||
desc++;
|
|
||||||
} while (mask);
|
} while (mask);
|
||||||
|
|
||||||
mask = GEDR & 0xfffff800;
|
mask = GEDR & 0xfffff800;
|
||||||
|
|
|
@ -33,8 +33,6 @@ neponset_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
unsigned int irr;
|
unsigned int irr;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
struct irq_desc *d;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Acknowledge the parent IRQ.
|
* Acknowledge the parent IRQ.
|
||||||
*/
|
*/
|
||||||
|
@ -67,21 +65,18 @@ neponset_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
desc->chip->ack(irq);
|
desc->chip->ack(irq);
|
||||||
|
|
||||||
if (irr & IRR_ETHERNET) {
|
if (irr & IRR_ETHERNET) {
|
||||||
d = irq_desc + IRQ_NEPONSET_SMC9196;
|
generic_handle_irq(IRQ_NEPONSET_SMC9196);
|
||||||
desc_handle_irq(IRQ_NEPONSET_SMC9196, d);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (irr & IRR_USAR) {
|
if (irr & IRR_USAR) {
|
||||||
d = irq_desc + IRQ_NEPONSET_USAR;
|
generic_handle_irq(IRQ_NEPONSET_USAR);
|
||||||
desc_handle_irq(IRQ_NEPONSET_USAR, d);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
desc->chip->unmask(irq);
|
desc->chip->unmask(irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (irr & IRR_SA1111) {
|
if (irr & IRR_SA1111) {
|
||||||
d = irq_desc + IRQ_NEPONSET_SA1111;
|
generic_handle_irq(IRQ_NEPONSET_SA1111);
|
||||||
desc_handle_irq(IRQ_NEPONSET_SA1111, d);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,8 +95,7 @@ sic_handle_irq(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
irq += IRQ_SIC_START;
|
irq += IRQ_SIC_START;
|
||||||
|
|
||||||
desc = irq_desc + irq;
|
generic_handle_irq(irq);
|
||||||
desc_handle_irq(irq, desc);
|
|
||||||
} while (status);
|
} while (status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1051,13 +1051,10 @@ static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
|
|
||||||
gpio_irq = bank->virtual_irq_start;
|
gpio_irq = bank->virtual_irq_start;
|
||||||
for (; isr != 0; isr >>= 1, gpio_irq++) {
|
for (; isr != 0; isr >>= 1, gpio_irq++) {
|
||||||
struct irq_desc *d;
|
|
||||||
|
|
||||||
if (!(isr & 1))
|
if (!(isr & 1))
|
||||||
continue;
|
continue;
|
||||||
d = irq_desc + gpio_irq;
|
|
||||||
|
|
||||||
desc_handle_irq(gpio_irq, d);
|
generic_handle_irq(gpio_irq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* if bank has any level sensitive GPIO pin interrupt
|
/* if bank has any level sensitive GPIO pin interrupt
|
||||||
|
|
|
@ -468,7 +468,6 @@ static void s3c_irq_demux_adc(unsigned int irq,
|
||||||
{
|
{
|
||||||
unsigned int subsrc, submsk;
|
unsigned int subsrc, submsk;
|
||||||
unsigned int offset = 9;
|
unsigned int offset = 9;
|
||||||
struct irq_desc *mydesc;
|
|
||||||
|
|
||||||
/* read the current pending interrupts, and the mask
|
/* read the current pending interrupts, and the mask
|
||||||
* for what it is available */
|
* for what it is available */
|
||||||
|
@ -482,12 +481,10 @@ static void s3c_irq_demux_adc(unsigned int irq,
|
||||||
|
|
||||||
if (subsrc != 0) {
|
if (subsrc != 0) {
|
||||||
if (subsrc & 1) {
|
if (subsrc & 1) {
|
||||||
mydesc = irq_desc + IRQ_TC;
|
generic_handle_irq(IRQ_TC);
|
||||||
desc_handle_irq(IRQ_TC, mydesc);
|
|
||||||
}
|
}
|
||||||
if (subsrc & 2) {
|
if (subsrc & 2) {
|
||||||
mydesc = irq_desc + IRQ_ADC;
|
generic_handle_irq(IRQ_ADC);
|
||||||
desc_handle_irq(IRQ_ADC, mydesc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -496,7 +493,6 @@ static void s3c_irq_demux_uart(unsigned int start)
|
||||||
{
|
{
|
||||||
unsigned int subsrc, submsk;
|
unsigned int subsrc, submsk;
|
||||||
unsigned int offset = start - IRQ_S3CUART_RX0;
|
unsigned int offset = start - IRQ_S3CUART_RX0;
|
||||||
struct irq_desc *desc;
|
|
||||||
|
|
||||||
/* read the current pending interrupts, and the mask
|
/* read the current pending interrupts, and the mask
|
||||||
* for what it is available */
|
* for what it is available */
|
||||||
|
@ -512,20 +508,14 @@ static void s3c_irq_demux_uart(unsigned int start)
|
||||||
subsrc &= 7;
|
subsrc &= 7;
|
||||||
|
|
||||||
if (subsrc != 0) {
|
if (subsrc != 0) {
|
||||||
desc = irq_desc + start;
|
|
||||||
|
|
||||||
if (subsrc & 1)
|
if (subsrc & 1)
|
||||||
desc_handle_irq(start, desc);
|
generic_handle_irq(start);
|
||||||
|
|
||||||
desc++;
|
|
||||||
|
|
||||||
if (subsrc & 2)
|
if (subsrc & 2)
|
||||||
desc_handle_irq(start+1, desc);
|
generic_handle_irq(start+1);
|
||||||
|
|
||||||
desc++;
|
|
||||||
|
|
||||||
if (subsrc & 4)
|
if (subsrc & 4)
|
||||||
desc_handle_irq(start+2, desc);
|
generic_handle_irq(start+2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -572,7 +562,7 @@ s3c_irq_demux_extint8(unsigned int irq,
|
||||||
eintpnd &= ~(1<<irq);
|
eintpnd &= ~(1<<irq);
|
||||||
|
|
||||||
irq += (IRQ_EINT4 - 4);
|
irq += (IRQ_EINT4 - 4);
|
||||||
desc_handle_irq(irq, irq_desc + irq);
|
generic_handle_irq(irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -595,7 +585,7 @@ s3c_irq_demux_extint4t7(unsigned int irq,
|
||||||
|
|
||||||
irq += (IRQ_EINT4 - 4);
|
irq += (IRQ_EINT4 - 4);
|
||||||
|
|
||||||
desc_handle_irq(irq, irq_desc + irq);
|
generic_handle_irq(irq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,6 @@ static void s3c_irq_demux_cam(unsigned int irq,
|
||||||
struct irq_desc *desc)
|
struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
unsigned int subsrc, submsk;
|
unsigned int subsrc, submsk;
|
||||||
struct irq_desc *mydesc;
|
|
||||||
|
|
||||||
/* read the current pending interrupts, and the mask
|
/* read the current pending interrupts, and the mask
|
||||||
* for what it is available */
|
* for what it is available */
|
||||||
|
@ -58,12 +57,10 @@ static void s3c_irq_demux_cam(unsigned int irq,
|
||||||
|
|
||||||
if (subsrc != 0) {
|
if (subsrc != 0) {
|
||||||
if (subsrc & 1) {
|
if (subsrc & 1) {
|
||||||
mydesc = irq_desc + IRQ_S3C2440_CAM_C;
|
generic_handle_irq(IRQ_S3C2440_CAM_C);
|
||||||
desc_handle_irq(IRQ_S3C2440_CAM_C, mydesc);
|
|
||||||
}
|
}
|
||||||
if (subsrc & 2) {
|
if (subsrc & 2) {
|
||||||
mydesc = irq_desc + IRQ_S3C2440_CAM_P;
|
generic_handle_irq(IRQ_S3C2440_CAM_P);
|
||||||
desc_handle_irq(IRQ_S3C2440_CAM_P, mydesc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue