sh: intc - add a clear register to struct intc_prio_reg
authorMagnus Damm <damm@igel.co.jp>
Sun, 12 Aug 2007 06:22:02 +0000 (15:22 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Fri, 21 Sep 2007 02:57:49 +0000 (11:57 +0900)
We need a secondary register member in struct intc_prio_reg to support
dual priority registers used by ipi on x3.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/cpu/irq/intc.c
arch/sh/kernel/cpu/sh3/setup-sh7705.c
arch/sh/kernel/cpu/sh3/setup-sh770x.c
arch/sh/kernel/cpu/sh3/setup-sh7710.c
arch/sh/kernel/cpu/sh4/setup-sh7750.c
arch/sh/kernel/cpu/sh4/setup-sh7760.c
arch/sh/kernel/cpu/sh4a/setup-sh7722.c
arch/sh/kernel/cpu/sh4a/setup-sh7780.c
arch/sh/kernel/cpu/sh4a/setup-sh7785.c
arch/sh/kernel/cpu/sh4a/setup-shx3.c
include/asm-sh/hw_irq.h

index 56819409a36a15eef421999f7ee9a98b132f845c..24a8d554799e6629bd75972b56418ae206a7bd1b 100644 (file)
@@ -59,14 +59,14 @@ static inline unsigned int set_prio_field(struct intc_desc *desc,
 
 static void disable_prio_16(struct intc_desc *desc, unsigned int data)
 {
-       unsigned long addr = _INTC_PTR(desc, prio_regs, data)->reg;
+       unsigned long addr = _INTC_PTR(desc, prio_regs, data)->set_reg;
 
        ctrl_outw(set_prio_field(desc, ctrl_inw(addr), 0, data), addr);
 }
 
 static void enable_prio_16(struct intc_desc *desc, unsigned int data)
 {
-       unsigned long addr = _INTC_PTR(desc, prio_regs, data)->reg;
+       unsigned long addr = _INTC_PTR(desc, prio_regs, data)->set_reg;
        unsigned int prio = _INTC_VALUE(data);
 
        ctrl_outw(set_prio_field(desc, ctrl_inw(addr), prio, data), addr);
@@ -74,14 +74,14 @@ static void enable_prio_16(struct intc_desc *desc, unsigned int data)
 
 static void disable_prio_32(struct intc_desc *desc, unsigned int data)
 {
-       unsigned long addr = _INTC_PTR(desc, prio_regs, data)->reg;
+       unsigned long addr = _INTC_PTR(desc, prio_regs, data)->set_reg;
 
        ctrl_outl(set_prio_field(desc, ctrl_inl(addr), 0, data), addr);
 }
 
 static void enable_prio_32(struct intc_desc *desc, unsigned int data)
 {
-       unsigned long addr = _INTC_PTR(desc, prio_regs, data)->reg;
+       unsigned long addr = _INTC_PTR(desc, prio_regs, data)->set_reg;
        unsigned int prio = _INTC_VALUE(data);
 
        ctrl_outl(set_prio_field(desc, ctrl_inl(addr), prio, data), addr);
index 568cc08c254b885c7082dde238b8c1ee5c49f7be..a1b342e170c66986ef42f94d4c25ecbf87f79a6b 100644 (file)
@@ -73,14 +73,14 @@ static struct intc_prio priorities[] = {
 };
 
 static struct intc_prio_reg prio_registers[] = {
-       { 0xfffffee2, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } },
-       { 0xfffffee4, 16, 4, /* IPRB */ { WDT, REF_RCMI, 0, 0 } },
-       { 0xa4000016, 16, 4, /* IPRC */ { IRQ3, IRQ2, IRQ1, IRQ0 } },
-       { 0xa4000018, 16, 4, /* IPRD */ { PINT07, PINT815, IRQ5, IRQ4 } },
-       { 0xa400001a, 16, 4, /* IPRE */ { DMAC, SCIF0, SCIF2, ADC_ADI } },
-       { 0xa4080000, 16, 4, /* IPRF */ { 0, 0, USB } },
-       { 0xa4080002, 16, 4, /* IPRG */ { TPU0, TPU1 } },
-       { 0xa4080004, 16, 4, /* IPRH */ { TPU2, TPU3 } },
+       { 0xfffffee2, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } },
+       { 0xfffffee4, 0, 16, 4, /* IPRB */ { WDT, REF_RCMI, 0, 0 } },
+       { 0xa4000016, 0, 16, 4, /* IPRC */ { IRQ3, IRQ2, IRQ1, IRQ0 } },
+       { 0xa4000018, 0, 16, 4, /* IPRD */ { PINT07, PINT815, IRQ5, IRQ4 } },
+       { 0xa400001a, 0, 16, 4, /* IPRE */ { DMAC, SCIF0, SCIF2, ADC_ADI } },
+       { 0xa4080000, 0, 16, 4, /* IPRF */ { 0, 0, USB } },
+       { 0xa4080002, 0, 16, 4, /* IPRG */ { TPU0, TPU1 } },
+       { 0xa4080004, 0, 16, 4, /* IPRH */ { TPU2, TPU3 } },
 
 };
 
index eef505b43f0ca1f1027a20fd80abc0382d9a7d45..2980c44ffb2f717e0a51e75c455cdb8fc7225624 100644 (file)
@@ -89,22 +89,22 @@ static struct intc_prio priorities[] = {
 };
 
 static struct intc_prio_reg prio_registers[] = {
-       { 0xfffffee2, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } },
-       { 0xfffffee4, 16, 4, /* IPRB */ { WDT, REF, SCI, 0 } },
+       { 0xfffffee2, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } },
+       { 0xfffffee4, 0, 16, 4, /* IPRB */ { WDT, REF, SCI, 0 } },
 #if defined(CONFIG_CPU_SUBTYPE_SH7706) || \
     defined(CONFIG_CPU_SUBTYPE_SH7707) || \
     defined(CONFIG_CPU_SUBTYPE_SH7709)
-       { 0xa4000016, 16, 4, /* IPRC */ { IRQ3, IRQ2, IRQ1, IRQ0 } },
-       { 0xa4000018, 16, 4, /* IPRD */ { 0, 0, IRQ5, IRQ4 } },
-       { 0xa400001a, 16, 4, /* IPRE */ { DMAC, 0, SCIF2, ADC_ADI } },
+       { 0xa4000016, 0, 16, 4, /* IPRC */ { IRQ3, IRQ2, IRQ1, IRQ0 } },
+       { 0xa4000018, 0, 16, 4, /* IPRD */ { 0, 0, IRQ5, IRQ4 } },
+       { 0xa400001a, 0, 16, 4, /* IPRE */ { DMAC, 0, SCIF2, ADC_ADI } },
 #endif
 #if defined(CONFIG_CPU_SUBTYPE_SH7707) || \
     defined(CONFIG_CPU_SUBTYPE_SH7709)
-       { 0xa4000018, 16, 4, /* IPRD */ { PINT07, PINT815, } },
-       { 0xa400001a, 16, 4, /* IPRE */ { 0, SCIF0 } },
+       { 0xa4000018, 0, 16, 4, /* IPRD */ { PINT07, PINT815, } },
+       { 0xa400001a, 0, 16, 4, /* IPRE */ { 0, SCIF0 } },
 #endif
 #if defined(CONFIG_CPU_SUBTYPE_SH7707)
-       { 0xa400001c, 16, 4, /* IPRF */ { 0, LCDC, PCC0, PCC1, } },
+       { 0xa400001c, 0, 16, 4, /* IPRF */ { 0, LCDC, PCC0, PCC1, } },
 #endif
 };
 
index eb55ac9dbf717d47a24fc4abc98e4b7e4a819b62..5aa77710e42bad3ebe3d16f51fc886ec8241ef84 100644 (file)
@@ -86,18 +86,18 @@ static struct intc_prio priorities[] = {
 };
 
 static struct intc_prio_reg prio_registers[] = {
-       { 0xfffffee2, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } },
-       { 0xfffffee4, 16, 4, /* IPRB */ { WDT, REF, 0, 0 } },
-       { 0xa4000016, 16, 4, /* IPRC */ { IRQ3, IRQ2, IRQ1, IRQ0 } },
-       { 0xa4000018, 16, 4, /* IPRD */ { 0, 0, IRQ5, IRQ4 } },
-       { 0xa400001a, 16, 4, /* IPRE */ { DMAC1, SCIF0, SCIF1 } },
-       { 0xa4080000, 16, 4, /* IPRF */ { 0, DMAC2 } },
+       { 0xfffffee2, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } },
+       { 0xfffffee4, 0, 16, 4, /* IPRB */ { WDT, REF, 0, 0 } },
+       { 0xa4000016, 0, 16, 4, /* IPRC */ { IRQ3, IRQ2, IRQ1, IRQ0 } },
+       { 0xa4000018, 0, 16, 4, /* IPRD */ { 0, 0, IRQ5, IRQ4 } },
+       { 0xa400001a, 0, 16, 4, /* IPRE */ { DMAC1, SCIF0, SCIF1 } },
+       { 0xa4080000, 0, 16, 4, /* IPRF */ { 0, DMAC2 } },
 #ifdef CONFIG_CPU_SUBTYPE_SH7710
-       { 0xa4080000, 16, 4, /* IPRF */ { IPSEC } },
+       { 0xa4080000, 0, 16, 4, /* IPRF */ { IPSEC } },
 #endif
-       { 0xa4080002, 16, 4, /* IPRG */ { EDMAC0, EDMAC1, EDMAC2 } },
-       { 0xa4080004, 16, 4, /* IPRH */ { 0, 0, 0, SIOF0 } },
-       { 0xa4080006, 16, 4, /* IPRI */ { 0, 0, SIOF1 } },
+       { 0xa4080002, 0, 16, 4, /* IPRG */ { EDMAC0, EDMAC1, EDMAC2 } },
+       { 0xa4080004, 0, 16, 4, /* IPRH */ { 0, 0, 0, SIOF0 } },
+       { 0xa4080006, 0, 16, 4, /* IPRI */ { 0, 0, SIOF1 } },
 };
 
 static DECLARE_INTC_DESC(intc_desc, "sh7710", vectors, groups,
index e313be2498406f4efb046b09ff64d2e89b62fb89..062c3c1b243134f07d6826131c963d7fa65fcb0e 100644 (file)
@@ -133,13 +133,13 @@ static struct intc_prio priorities[] = {
 };
 
 static struct intc_prio_reg prio_registers[] = {
-       { 0xffd00004, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } },
-       { 0xffd00008, 16, 4, /* IPRB */ { WDT, REF, SCI1, 0 } },
-       { 0xffd0000c, 16, 4, /* IPRC */ { GPIOI, DMAC, SCIF, HUDI } },
-       { 0xffd00010, 16, 4, /* IPRD */ { IRL0, IRL1, IRL2, IRL3 } },
-       { 0xfe080000, 32, 4, /* INTPRI00 */ { 0, 0, 0, 0,
-                                             TMU4, TMU3,
-                                             PCIC1, PCIC0_PCISERR } },
+       { 0xffd00004, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } },
+       { 0xffd00008, 0, 16, 4, /* IPRB */ { WDT, REF, SCI1, 0 } },
+       { 0xffd0000c, 0, 16, 4, /* IPRC */ { GPIOI, DMAC, SCIF, HUDI } },
+       { 0xffd00010, 0, 16, 4, /* IPRD */ { IRL0, IRL1, IRL2, IRL3 } },
+       { 0xfe080000, 0, 32, 4, /* INTPRI00 */ { 0, 0, 0, 0,
+                                                TMU4, TMU3,
+                                                PCIC1, PCIC0_PCISERR } },
 };
 
 static DECLARE_INTC_DESC(intc_desc, "sh7750", vectors, groups,
index 6a6686d71fbc07da3bdf82f2942bae8a2ba5f2e1..6b4e48cbe7ff97b3a3deef814b971da15fc92d86 100644 (file)
@@ -118,17 +118,17 @@ static struct intc_mask_reg mask_registers[] = {
 };
 
 static struct intc_prio_reg prio_registers[] = {
-       { 0xffd00004, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2 } },
-       { 0xffd00008, 16, 4, /* IPRB */ { WDT, REF, 0, 0 } },
-       { 0xffd0000c, 16, 4, /* IPRC */ { GPIOI, DMAC, 0, HUDI } },
-       { 0xffd00010, 16, 4, /* IPRD */ { IRL0, IRL1, IRL2, IRL3 } },
-       { 0xfe080000, 32, 4, /* INTPRI00 */ { IRQ4, IRQ5, IRQ6, IRQ7 } },
-       { 0xfe080004, 32, 4, /* INTPRI04 */ { HCAN20, HCAN21, SSI0, SSI1,
-                                             HAC0, HAC1, I2C0, I2C1 } },
-       { 0xfe080008, 32, 4, /* INTPRI08 */ { USB, LCDC, DMABRG, SCIF0,
-                                             SCIF1, SCIF2, SIM, HSPI } },
-       { 0xfe08000c, 32, 4, /* INTPRI0C */ { 0, 0, MMCIF, 0,
-                                             MFI, 0, ADC, CMT } },
+       { 0xffd00004, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2 } },
+       { 0xffd00008, 0, 16, 4, /* IPRB */ { WDT, REF, 0, 0 } },
+       { 0xffd0000c, 0, 16, 4, /* IPRC */ { GPIOI, DMAC, 0, HUDI } },
+       { 0xffd00010, 0, 16, 4, /* IPRD */ { IRL0, IRL1, IRL2, IRL3 } },
+       { 0xfe080000, 0, 32, 4, /* INTPRI00 */ { IRQ4, IRQ5, IRQ6, IRQ7 } },
+       { 0xfe080004, 0, 32, 4, /* INTPRI04 */ { HCAN20, HCAN21, SSI0, SSI1,
+                                                HAC0, HAC1, I2C0, I2C1 } },
+       { 0xfe080008, 0, 32, 4, /* INTPRI08 */ { USB, LCDC, DMABRG, SCIF0,
+                                                SCIF1, SCIF2, SIM, HSPI } },
+       { 0xfe08000c, 0, 32, 4, /* INTPRI0C */ { 0, 0, MMCIF, 0,
+                                                MFI, 0, ADC, CMT } },
 };
 
 static DECLARE_INTC_DESC(intc_desc, "sh7760", vectors, groups,
index 25b913e07e2ca3984e066c43987fe0101082723c..ae63635cf1efdb211c548d56a48a43f236d157d8 100644 (file)
@@ -169,19 +169,19 @@ static struct intc_mask_reg mask_registers[] = {
 };
 
 static struct intc_prio_reg prio_registers[] = {
-       { 0xa4080000, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, IRDA } },
-       { 0xa4080004, 16, 4, /* IPRB */ { JPU, LCDC, SIM } },
-       { 0xa4080008, 16, 4, /* IPRC */ { } },
-       { 0xa408000c, 16, 4, /* IPRD */ { } },
-       { 0xa4080010, 16, 4, /* IPRE */ { DMAC0123, VIOVOU, 0, VPU } },
-       { 0xa4080014, 16, 4, /* IPRF */ { KEYSC, DMAC45, USB, CMT } },
-       { 0xa4080018, 16, 4, /* IPRG */ { SCIF0, SCIF1, SCIF2 } },
-       { 0xa408001c, 16, 4, /* IPRH */ { SIOF0, SIOF1, FLCTL, I2C } },
-       { 0xa4080020, 16, 4, /* IPRI */ { SIO, 0, TSIF, RTC } },
-       { 0xa4080024, 16, 4, /* IPRJ */ { 0, 0, SIU } },
-       { 0xa4080028, 16, 4, /* IPRK */ { 0, 0, 0, SDHI } },
-       { 0xa408002c, 16, 4, /* IPRL */ { TWODG, 0, TPU } },
-       { 0xa4140010, 32, 4, /* INTPRI00 */
+       { 0xa4080000, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, IRDA } },
+       { 0xa4080004, 0, 16, 4, /* IPRB */ { JPU, LCDC, SIM } },
+       { 0xa4080008, 0, 16, 4, /* IPRC */ { } },
+       { 0xa408000c, 0, 16, 4, /* IPRD */ { } },
+       { 0xa4080010, 0, 16, 4, /* IPRE */ { DMAC0123, VIOVOU, 0, VPU } },
+       { 0xa4080014, 0, 16, 4, /* IPRF */ { KEYSC, DMAC45, USB, CMT } },
+       { 0xa4080018, 0, 16, 4, /* IPRG */ { SCIF0, SCIF1, SCIF2 } },
+       { 0xa408001c, 0, 16, 4, /* IPRH */ { SIOF0, SIOF1, FLCTL, I2C } },
+       { 0xa4080020, 0, 16, 4, /* IPRI */ { SIO, 0, TSIF, RTC } },
+       { 0xa4080024, 0, 16, 4, /* IPRJ */ { 0, 0, SIU } },
+       { 0xa4080028, 0, 16, 4, /* IPRK */ { 0, 0, 0, SDHI } },
+       { 0xa408002c, 0, 16, 4, /* IPRL */ { TWODG, 0, TPU } },
+       { 0xa4140010, 0, 32, 4, /* INTPRI00 */
          { IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7 } },
 };
 
index a4127ec15203dc78352cc24060edafb3db02611c..c9965c0dde6df7949373767adb890ed4a9d56c4f 100644 (file)
@@ -181,15 +181,17 @@ static struct intc_mask_reg mask_registers[] = {
 };
 
 static struct intc_prio_reg prio_registers[] = {
-       { 0xffd40000, 32, 8, /* INT2PRI0 */ { TMU0, TMU1, TMU2, TMU2_TICPI } },
-       { 0xffd40004, 32, 8, /* INT2PRI1 */ { TMU3, TMU4, TMU5, RTC } },
-       { 0xffd40008, 32, 8, /* INT2PRI2 */ { SCIF0, SCIF1, WDT } },
-       { 0xffd4000c, 32, 8, /* INT2PRI3 */ { HUDI, DMAC0, DMAC1 } },
-       { 0xffd40010, 32, 8, /* INT2PRI4 */ { CMT, HAC, PCISERR, PCIINTA, } },
-       { 0xffd40014, 32, 8, /* INT2PRI5 */ { PCIINTB, PCIINTC,
-                                             PCIINTD, PCIC5 } },
-       { 0xffd40018, 32, 8, /* INT2PRI6 */ { SIOF, HSPI, MMCIF, SSI } },
-       { 0xffd4001c, 32, 8, /* INT2PRI7 */ { FLCTL, GPIO } },
+       { 0xffd40000, 0, 32, 8, /* INT2PRI0 */ { TMU0, TMU1,
+                                                TMU2, TMU2_TICPI } },
+       { 0xffd40004, 0, 32, 8, /* INT2PRI1 */ { TMU3, TMU4, TMU5, RTC } },
+       { 0xffd40008, 0, 32, 8, /* INT2PRI2 */ { SCIF0, SCIF1, WDT } },
+       { 0xffd4000c, 0, 32, 8, /* INT2PRI3 */ { HUDI, DMAC0, DMAC1 } },
+       { 0xffd40010, 0, 32, 8, /* INT2PRI4 */ { CMT, HAC,
+                                                PCISERR, PCIINTA, } },
+       { 0xffd40014, 0, 32, 8, /* INT2PRI5 */ { PCIINTB, PCIINTC,
+                                                PCIINTD, PCIC5 } },
+       { 0xffd40018, 0, 32, 8, /* INT2PRI6 */ { SIOF, HSPI, MMCIF, SSI } },
+       { 0xffd4001c, 0, 32, 8, /* INT2PRI7 */ { FLCTL, GPIO } },
 };
 
 static DECLARE_INTC_DESC(intc_desc, "sh7780", vectors, groups, priorities,
@@ -210,8 +212,8 @@ static struct intc_mask_reg irq_mask_registers[] = {
 };
 
 static struct intc_prio_reg irq_prio_registers[] = {
-       { 0xffd00010, 32, 4, /* INTPRI */ { IRQ0, IRQ1, IRQ2, IRQ3,
-                                           IRQ4, IRQ5, IRQ6, IRQ7 } },
+       { 0xffd00010, 0, 32, 4, /* INTPRI */ { IRQ0, IRQ1, IRQ2, IRQ3,
+                                              IRQ4, IRQ5, IRQ6, IRQ7 } },
 };
 
 static struct intc_sense_reg irq_sense_registers[] = {
index c49fcb0800cc45f131ea1b28a16a22e97fc556e1..a33d6a54c03dce293c18e51cbdac0a2617c16d55 100644 (file)
@@ -206,19 +206,22 @@ static struct intc_mask_reg mask_registers[] = {
 };
 
 static struct intc_prio_reg prio_registers[] = {
-       { 0xffd00010, 32, 4, /* INTPRI */   { IRQ0, IRQ1, IRQ2, IRQ3,
-                                             IRQ4, IRQ5, IRQ6, IRQ7 } },
-       { 0xffd40000, 32, 8, /* INT2PRI0 */ { TMU0, TMU1, TMU2, TMU2_TICPI } },
-       { 0xffd40004, 32, 8, /* INT2PRI1 */ { TMU3, TMU4, TMU5, } },
-       { 0xffd40008, 32, 8, /* INT2PRI2 */ { SCIF0, SCIF1, SCIF2, SCIF3 } },
-       { 0xffd4000c, 32, 8, /* INT2PRI3 */ { SCIF4, SCIF5, WDT, } },
-       { 0xffd40010, 32, 8, /* INT2PRI4 */ { HUDI, DMAC0, DMAC1, } },
-       { 0xffd40014, 32, 8, /* INT2PRI5 */ { HAC0, HAC1, PCISERR, PCIINTA } },
-       { 0xffd40018, 32, 8, /* INT2PRI6 */ { PCIINTB, PCIINTC,
-                                             PCIINTD, PCIC5 } },
-       { 0xffd4001c, 32, 8, /* INT2PRI7 */ { SIOF, HSPI, MMCIF, } },
-       { 0xffd40020, 32, 8, /* INT2PRI8 */ { FLCTL, GPIO, SSI0, SSI1, } },
-       { 0xffd40024, 32, 8, /* INT2PRI9 */ { DU, GDTA, } },
+       { 0xffd00010, 0, 32, 4, /* INTPRI */   { IRQ0, IRQ1, IRQ2, IRQ3,
+                                                IRQ4, IRQ5, IRQ6, IRQ7 } },
+       { 0xffd40000, 0, 32, 8, /* INT2PRI0 */ { TMU0, TMU1,
+                                                TMU2, TMU2_TICPI } },
+       { 0xffd40004, 0, 32, 8, /* INT2PRI1 */ { TMU3, TMU4, TMU5, } },
+       { 0xffd40008, 0, 32, 8, /* INT2PRI2 */ { SCIF0, SCIF1,
+                                                SCIF2, SCIF3 } },
+       { 0xffd4000c, 0, 32, 8, /* INT2PRI3 */ { SCIF4, SCIF5, WDT, } },
+       { 0xffd40010, 0, 32, 8, /* INT2PRI4 */ { HUDI, DMAC0, DMAC1, } },
+       { 0xffd40014, 0, 32, 8, /* INT2PRI5 */ { HAC0, HAC1,
+                                                PCISERR, PCIINTA } },
+       { 0xffd40018, 0, 32, 8, /* INT2PRI6 */ { PCIINTB, PCIINTC,
+                                                PCIINTD, PCIC5 } },
+       { 0xffd4001c, 0, 32, 8, /* INT2PRI7 */ { SIOF, HSPI, MMCIF, } },
+       { 0xffd40020, 0, 32, 8, /* INT2PRI8 */ { FLCTL, GPIO, SSI0, SSI1, } },
+       { 0xffd40024, 0, 32, 8, /* INT2PRI9 */ { DU, GDTA, } },
 };
 
 static DECLARE_INTC_DESC(intc_desc, "sh7785", vectors, groups, priorities,
index 610343ea9a84970b970c55bdd73a5619749c9ead..2c13f9ceac74ba24dcc0fb748086268264db67db 100644 (file)
@@ -192,18 +192,21 @@ static struct intc_mask_reg mask_registers[] = {
 };
 
 static struct intc_prio_reg prio_registers[] = {
-       { 0xfe410010, 32, 4, /* INTPRI */ { IRQ0, IRQ1, IRQ2, IRQ3 } },
+       { 0xfe410010, 0, 32, 4, /* INTPRI */ { IRQ0, IRQ1, IRQ2, IRQ3 } },
 
-       { 0xfe410800, 32, 4, /* INT2PRI0 */ { 0, HUDII, TMU5, TMU4,
-                                             TMU3, TMU2, TMU1, TMU0 } },
-       { 0xfe410804, 32, 4, /* INT2PRI1 */ { DTU3, DTU2, DTU1, DTU0,
-                                             SCIF3, SCIF2, SCIF1, SCIF0 } },
-       { 0xfe410808, 32, 4, /* INT2PRI2 */ { DMAC1, DMAC0, PCII56789, PCII4,
-                                             PCII3, PCII2, PCII1, PCII0 } },
-       { 0xfe41080c, 32, 4, /* INT2PRI3 */ { FE1, FE0, ATAPI, VCORE0,
-                                             VIN1, VIN0, IIC, DU} },
-       { 0xfe410810, 32, 4, /* INT2PRI4 */ { 0, 0, PAM, GPIO3,
-                                             GPIO2, GPIO1, GPIO0, IRM } },
+       { 0xfe410800, 0, 32, 4, /* INT2PRI0 */ { 0, HUDII, TMU5, TMU4,
+                                                TMU3, TMU2, TMU1, TMU0 } },
+       { 0xfe410804, 0, 32, 4, /* INT2PRI1 */ { DTU3, DTU2, DTU1, DTU0,
+                                                SCIF3, SCIF2,
+                                                SCIF1, SCIF0 } },
+       { 0xfe410808, 0, 32, 4, /* INT2PRI2 */ { DMAC1, DMAC0,
+                                                PCII56789, PCII4,
+                                                PCII3, PCII2,
+                                                PCII1, PCII0 } },
+       { 0xfe41080c, 0, 32, 4, /* INT2PRI3 */ { FE1, FE0, ATAPI, VCORE0,
+                                                VIN1, VIN0, IIC, DU} },
+       { 0xfe410810, 0, 32, 4, /* INT2PRI4 */ { 0, 0, PAM, GPIO3,
+                                                GPIO2, GPIO1, GPIO0, IRM } },
 };
 
 static DECLARE_INTC_DESC(intc_desc, "shx3", vectors, groups, priorities,
index a4086ea313c7dbad5340c891bec224085456a929..6c759b2b892938b38332862cf5f3bdcbcc177487 100644 (file)
@@ -53,7 +53,7 @@ struct intc_mask_reg {
 };
 
 struct intc_prio_reg {
-       unsigned long reg, reg_width, field_width;
+       unsigned long set_reg, clr_reg, reg_width, field_width;
        intc_enum enum_ids[16];
 };