Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: BCM63XX: use a switch for external irq config

Makes the code a bit more readable and easier to add support for
new chips.

Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Patchwork: http://patchwork.linux-mips.org/patch/4093/
Signed-off-by: John Crispin <blogic@openwrt.org>

authored by

Maxime Bizon and committed by
John Crispin
58e380af 6d591805

+11 -3
+11 -3
arch/mips/bcm63xx/irq.c
··· 438 438 reg = bcm_perf_readl(regaddr); 439 439 irq %= 4; 440 440 441 - if (BCMCPU_IS_6348()) { 441 + switch (bcm63xx_get_cpu_id()) { 442 + case BCM6348_CPU_ID: 442 443 if (levelsense) 443 444 reg |= EXTIRQ_CFG_LEVELSENSE_6348(irq); 444 445 else ··· 452 451 reg |= EXTIRQ_CFG_BOTHEDGE_6348(irq); 453 452 else 454 453 reg &= ~EXTIRQ_CFG_BOTHEDGE_6348(irq); 455 - } 454 + break; 456 455 457 - if (BCMCPU_IS_6338() || BCMCPU_IS_6358() || BCMCPU_IS_6368()) { 456 + case BCM6328_CPU_ID: 457 + case BCM6338_CPU_ID: 458 + case BCM6345_CPU_ID: 459 + case BCM6358_CPU_ID: 460 + case BCM6368_CPU_ID: 458 461 if (levelsense) 459 462 reg |= EXTIRQ_CFG_LEVELSENSE(irq); 460 463 else ··· 471 466 reg |= EXTIRQ_CFG_BOTHEDGE(irq); 472 467 else 473 468 reg &= ~EXTIRQ_CFG_BOTHEDGE(irq); 469 + break; 470 + default: 471 + BUG(); 474 472 } 475 473 476 474 bcm_perf_writel(reg, regaddr);