diff options
| -rw-r--r-- | arch/mips/bcm63xx/irq.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/arch/mips/bcm63xx/irq.c b/arch/mips/bcm63xx/irq.c index d40169f83259..da24c2bd9b7c 100644 --- a/arch/mips/bcm63xx/irq.c +++ b/arch/mips/bcm63xx/irq.c | |||
| @@ -438,7 +438,8 @@ static int bcm63xx_external_irq_set_type(struct irq_data *d, | |||
| 438 | reg = bcm_perf_readl(regaddr); | 438 | reg = bcm_perf_readl(regaddr); |
| 439 | irq %= 4; | 439 | irq %= 4; |
| 440 | 440 | ||
| 441 | if (BCMCPU_IS_6348()) { | 441 | switch (bcm63xx_get_cpu_id()) { |
| 442 | case BCM6348_CPU_ID: | ||
| 442 | if (levelsense) | 443 | if (levelsense) |
| 443 | reg |= EXTIRQ_CFG_LEVELSENSE_6348(irq); | 444 | reg |= EXTIRQ_CFG_LEVELSENSE_6348(irq); |
| 444 | else | 445 | else |
| @@ -451,9 +452,13 @@ static int bcm63xx_external_irq_set_type(struct irq_data *d, | |||
| 451 | reg |= EXTIRQ_CFG_BOTHEDGE_6348(irq); | 452 | reg |= EXTIRQ_CFG_BOTHEDGE_6348(irq); |
| 452 | else | 453 | else |
| 453 | reg &= ~EXTIRQ_CFG_BOTHEDGE_6348(irq); | 454 | reg &= ~EXTIRQ_CFG_BOTHEDGE_6348(irq); |
| 454 | } | 455 | break; |
| 455 | 456 | ||
| 456 | if (BCMCPU_IS_6338() || BCMCPU_IS_6358() || BCMCPU_IS_6368()) { | 457 | case BCM6328_CPU_ID: |
| 458 | case BCM6338_CPU_ID: | ||
| 459 | case BCM6345_CPU_ID: | ||
| 460 | case BCM6358_CPU_ID: | ||
| 461 | case BCM6368_CPU_ID: | ||
| 457 | if (levelsense) | 462 | if (levelsense) |
| 458 | reg |= EXTIRQ_CFG_LEVELSENSE(irq); | 463 | reg |= EXTIRQ_CFG_LEVELSENSE(irq); |
| 459 | else | 464 | else |
| @@ -466,6 +471,9 @@ static int bcm63xx_external_irq_set_type(struct irq_data *d, | |||
| 466 | reg |= EXTIRQ_CFG_BOTHEDGE(irq); | 471 | reg |= EXTIRQ_CFG_BOTHEDGE(irq); |
| 467 | else | 472 | else |
| 468 | reg &= ~EXTIRQ_CFG_BOTHEDGE(irq); | 473 | reg &= ~EXTIRQ_CFG_BOTHEDGE(irq); |
| 474 | break; | ||
| 475 | default: | ||
| 476 | BUG(); | ||
| 469 | } | 477 | } |
| 470 | 478 | ||
| 471 | bcm_perf_writel(reg, regaddr); | 479 | bcm_perf_writel(reg, regaddr); |
