Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 303174
b: refs/heads/master
c: 012f825
h: refs/heads/master
v: v3
  • Loading branch information
Magnus Damm authored and Rafael J. Wysocki committed Apr 11, 2012
1 parent c76e450 commit 3a1c5f3
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2ff6530c065814035df505ae8a6ddf461b3441d3
refs/heads/master: 012f825f13d8e5f1007d1f604517dba1b9a5586e
23 changes: 14 additions & 9 deletions trunk/arch/arm/mach-shmobile/intc-sh7372.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/irq.h>
#include <linux/io.h>
#include <linux/sh_intc.h>
Expand Down Expand Up @@ -315,8 +316,6 @@ enum {
UNUSED_INTCS = 0,
ENABLED_INTCS,

INTCS,

/* interrupt sources INTCS */

/* IRQ0S - IRQ31S */
Expand Down Expand Up @@ -430,8 +429,6 @@ static struct intc_vect intcs_vectors[] = {
INTCS_VECT(CPORTS2R, 0x1a20),
/* CEC */
INTCS_VECT(JPU6E, 0x1a80),

INTC_VECT(INTCS, 0xf80),
};

static struct intc_group intcs_groups[] __initdata = {
Expand Down Expand Up @@ -494,9 +491,6 @@ static struct intc_mask_reg intcs_mask_registers[] = {
{ 0xffd5019c, 0xffd501dc, 8, /* IMR7SA3 / IMCR7SA3 */
{ MFIS2_INTCS, CPORTS2R, 0, 0,
JPU6E, 0, 0, 0 } },
{ 0xffd20104, 0, 16, /* INTAMASK */
{ 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, INTCS } },
};

/* Priority is needed for INTCA to receive the INTCS interrupt */
Expand Down Expand Up @@ -561,6 +555,7 @@ static void __iomem *intcs_ffd5;
void __init sh7372_init_irq(void)
{
void __iomem *intevtsa;
int n;

intcs_ffd2 = ioremap_nocache(0xffd20000, PAGE_SIZE);
intevtsa = intcs_ffd2 + 0x100;
Expand All @@ -571,9 +566,19 @@ void __init sh7372_init_irq(void)
register_intc_controller(&intca_irq_pins_hi_desc);
register_intc_controller(&intcs_desc);

/* setup dummy cascade chip for INTCS */
n = evt2irq(0xf80);
irq_alloc_desc_at(n, numa_node_id());
irq_set_chip_and_handler_name(n, &dummy_irq_chip,
handle_level_irq, "level");
set_irq_flags(n, IRQF_VALID); /* yuck */

/* demux using INTEVTSA */
irq_set_handler_data(evt2irq(0xf80), (void *)intevtsa);
irq_set_chained_handler(evt2irq(0xf80), intcs_demux);
irq_set_handler_data(n, (void *)intevtsa);
irq_set_chained_handler(n, intcs_demux);

/* unmask INTCS in INTAMASK */
iowrite16(0, intcs_ffd2 + 0x104);
}

static unsigned short ffd2[0x200];
Expand Down

0 comments on commit 3a1c5f3

Please sign in to comment.