sh: fix r2d board detection
authorMagnus Damm <damm@igel.co.jp>
Wed, 10 Oct 2007 09:03:58 +0000 (18:03 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 10 Oct 2007 09:03:58 +0000 (18:03 +0900)
This patch fixes the R2D-PLUS and R2D-1 board detection code. Tested on two
R2D-PLUS and two R2D-1 boards.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/boards/renesas/rts7751r2d/irq.c

index dadc4aa5ae825973c83ddc16f287361fc3afc6ad..7cc2813adfe4bb172a97d32b9d2f3cd8fa08d95f 100644 (file)
@@ -130,7 +130,7 @@ void __init init_rts7751r2d_IRQ(void)
 {
        struct intc_desc *d;
 
-       switch (ctrl_inw(PA_BVERREG)) {
+       switch (ctrl_inw(PA_VERREG) & 0xf0) {
 #ifdef CONFIG_RTS7751R2D_PLUS
        case 0x10:
                printk(KERN_INFO "Using R2D-PLUS interrupt controller.\n");
@@ -139,13 +139,16 @@ void __init init_rts7751r2d_IRQ(void)
                break;
 #endif
 #ifdef CONFIG_RTS7751R2D_1
-       case 0x11:
+       case 0x00: /* according to manual */
+       case 0x30: /* in reality */
                printk(KERN_INFO "Using R2D-1 interrupt controller.\n");
                d = &intc_desc_r2d_1;
                memcpy(irl2irq, irl2irq_r2d_1, R2D_NR_IRL);
                break;
 #endif
        default:
+               printk(KERN_INFO "Unknown R2D interrupt controller 0x%04x\n",
+                      ctrl_inw(PA_VERREG));
                return;
        }