+1
-1
arch/sh/boards/hp6xx/hp6xx_apm.c
+1
-1
arch/sh/boards/hp6xx/hp6xx_apm.c
+1
-1
arch/sh/boards/hp6xx/pm.c
+1
-1
arch/sh/boards/hp6xx/pm.c
+1
-1
arch/sh/boards/hp6xx/setup.c
+1
-1
arch/sh/boards/hp6xx/setup.c
+1
-1
arch/sh/boards/renesas/hs7751rvoip/io.c
+1
-1
arch/sh/boards/renesas/hs7751rvoip/io.c
+1
-1
arch/sh/boards/renesas/hs7751rvoip/irq.c
+1
-1
arch/sh/boards/renesas/hs7751rvoip/irq.c
+1
-6
arch/sh/boards/renesas/hs7751rvoip/setup.c
+1
-6
arch/sh/boards/renesas/hs7751rvoip/setup.c
···
10
10
#include <linux/init.h>
11
11
#include <linux/irq.h>
12
12
#include <linux/mm.h>
13
-
#include <linux/vmalloc.h>
14
-
#include <linux/hdreg.h>
15
-
#include <linux/ide.h>
16
13
#include <linux/pm.h>
14
+
#include <asm/hs7751rvoip.h>
17
15
#include <asm/io.h>
18
-
#include <asm/hs7751rvoip/hs7751rvoip.h>
19
16
#include <asm/machvec.h>
20
-
#include <asm/rtc.h>
21
-
#include <asm/irq.h>
22
17
23
18
static void __init hs7751rvoip_init_irq(void)
24
19
{
+1
-1
arch/sh/boards/renesas/r7780rp/io.c
+1
-1
arch/sh/boards/renesas/r7780rp/io.c
+5
-4
arch/sh/boards/renesas/r7780rp/irq.c
+5
-4
arch/sh/boards/renesas/r7780rp/irq.c
···
10
10
*/
11
11
#include <linux/init.h>
12
12
#include <linux/irq.h>
13
-
#include <asm/io.h>
13
+
#include <linux/io.h>
14
+
#include <asm/r7780rp.h>
14
15
15
16
#ifdef CONFIG_SH_R7780MP
16
17
static int mask_pos[] = {12, 11, 9, 14, 15, 8, 13, 6, 5, 4, 3, 2, 0, 0, 1, 0};
···
33
32
}
34
33
35
34
static struct irq_chip r7780rp_irq_chip __read_mostly = {
36
-
.name = "r7780rp",
35
+
.name = "R7780RP",
37
36
.mask = disable_r7780rp_irq,
38
37
.unmask = enable_r7780rp_irq,
39
38
.mask_ack = disable_r7780rp_irq,
···
48
47
49
48
for (i = 0; i < 15; i++) {
50
49
disable_irq_nosync(i);
51
-
set_irq_chip_and_handler(i, &r7780rp_irq_chip,
52
-
handle_level_irq);
50
+
set_irq_chip_and_handler_name(i, &r7780rp_irq_chip,
51
+
handle_level_irq, "level");
53
52
enable_r7780rp_irq(i);
54
53
}
55
54
}
+1
-1
arch/sh/boards/renesas/r7780rp/setup.c
+1
-1
arch/sh/boards/renesas/r7780rp/setup.c
+2
-2
arch/sh/boards/renesas/rts7751r2d/io.c
+2
-2
arch/sh/boards/renesas/rts7751r2d/io.c
+2
-4
arch/sh/boards/renesas/rts7751r2d/irq.c
+2
-4
arch/sh/boards/renesas/rts7751r2d/irq.c
···
8
8
* Modified for RTS7751R2D by
9
9
* Atom Create Engineering Co., Ltd. 2002.
10
10
*/
11
-
12
11
#include <linux/init.h>
13
12
#include <linux/irq.h>
14
-
#include <asm/io.h>
15
-
#include <asm/irq.h>
16
-
#include <asm/rts7751r2d/rts7751r2d.h>
13
+
#include <linux/io.h>
14
+
#include <asm/rts7751r2d.h>
17
15
18
16
#if defined(CONFIG_RTS7751R2D_REV11)
19
17
static int mask_pos[] = {11, 9, 8, 12, 10, 6, 5, 4, 7, 14, 13, 0, 0, 0, 0};
+2
-13
arch/sh/boards/renesas/rts7751r2d/led.c
+2
-13
arch/sh/boards/renesas/rts7751r2d/led.c
···
8
8
*
9
9
* This file contains Renesas Technology Sales RTS7751R2D specific LED code.
10
10
*/
11
-
12
-
#include <asm/io.h>
13
-
#include <asm/rts7751r2d/rts7751r2d.h>
14
-
15
-
#ifdef CONFIG_HEARTBEAT
16
-
11
+
#include <linux/io.h>
17
12
#include <linux/sched.h>
13
+
#include <asm/rts7751r2d.h>
18
14
19
15
/* Cycle the LED's in the clasic Knightriger/Sun pattern */
20
16
void heartbeat_rts7751r2d(void)
···
42
46
else
43
47
bit--;
44
48
}
45
-
#endif /* CONFIG_HEARTBEAT */
46
-
47
-
void rts7751r2d_led(unsigned short value)
48
-
{
49
-
ctrl_outw(value, PA_OUTPORT);
50
-
}
51
-
+1
-1
arch/sh/boards/renesas/rts7751r2d/setup.c
+1
-1
arch/sh/boards/renesas/rts7751r2d/setup.c
···
12
12
#include <linux/platform_device.h>
13
13
#include <linux/serial_8250.h>
14
14
#include <linux/pm.h>
15
-
#include <asm/io.h>
16
15
#include <asm/machvec.h>
17
16
#include <asm/mach/rts7751r2d.h>
17
+
#include <asm/io.h>
18
18
#include <asm/voyagergx.h>
19
19
20
20
extern void heartbeat_rts7751r2d(void);
+1
-1
arch/sh/boards/shmin/setup.c
+1
-1
arch/sh/boards/shmin/setup.c
+5
-17
arch/sh/cchips/voyagergx/irq.c
+5
-17
arch/sh/cchips/voyagergx/irq.c
···
17
17
18
18
Copyright 2003 (c) Lineo uSolutions,Inc.
19
19
*/
20
-
/* -------------------------------------------------------------------- */
21
-
22
-
#undef DEBUG
23
-
24
-
#include <linux/sched.h>
25
-
#include <linux/module.h>
26
-
#include <linux/kernel.h>
27
-
#include <linux/param.h>
28
-
#include <linux/ioport.h>
29
20
#include <linux/interrupt.h>
30
21
#include <linux/init.h>
31
-
#include <linux/irq.h>
32
-
33
-
#include <asm/io.h>
34
-
#include <asm/irq.h>
22
+
#include <linux/io.h>
35
23
#include <asm/voyagergx.h>
24
+
#include <asm/rts7751r2d.h>
36
25
37
26
static void disable_voyagergx_irq(unsigned int irq)
38
27
{
39
28
unsigned long val;
40
29
unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
41
30
42
-
pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask);
31
+
pr_debug("disable_voyagergx_irq(%d): mask=%lx\n", irq, mask);
43
32
val = inl(VOYAGER_INT_MASK);
44
33
val &= ~mask;
45
34
outl(val, VOYAGER_INT_MASK);
···
39
50
unsigned long val;
40
51
unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
41
52
42
-
pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask);
53
+
pr_debug("disable_voyagergx_irq(%d): mask=%lx\n", irq, mask);
43
54
val = inl(VOYAGER_INT_MASK);
44
55
val |= mask;
45
56
outl(val, VOYAGER_INT_MASK);
···
126
137
} else {
127
138
printk("Unexpected IRQ irq = %d status = 0x%08lx\n", irq, val);
128
139
}
129
-
pr_debug("voyagergx_irq_demux %d \n", i);
140
+
pr_debug("voyagergx_irq_demux %ld\n", i);
130
141
#else
131
142
for (bit = 1, i = 0 ; i < VOYAGER_IRQ_NUM ; bit <<= 1, i++)
132
143
if (val & bit)
···
174
185
175
186
setup_irq(IRQ_VOYAGER, &irq0);
176
187
}
177
-
+1
-1
arch/sh/drivers/pci/ops-r7780rp.c
+1
-1
arch/sh/drivers/pci/ops-r7780rp.c
+10
-14
arch/sh/drivers/pci/ops-rts7751r2d.c
+10
-14
arch/sh/drivers/pci/ops-rts7751r2d.c
···
10
10
*
11
11
* PCI initialization for the Renesas SH7751R RTS7751R2D board
12
12
*/
13
-
14
13
#include <linux/kernel.h>
15
14
#include <linux/types.h>
16
15
#include <linux/init.h>
17
-
#include <linux/delay.h>
18
16
#include <linux/pci.h>
19
-
#include <linux/module.h>
20
-
#include <asm/rts7751r2d/rts7751r2d.h>
21
-
#include <asm/io.h>
17
+
#include <linux/io.h>
18
+
#include <asm/rts7751r2d.h>
22
19
#include "pci-sh4.h"
20
+
21
+
static u8 rts7751r2d_irq_tab[] __initdata = {
22
+
IRQ_PCISLOT1,
23
+
IRQ_PCISLOT2,
24
+
IRQ_PCMCIA,
25
+
IRQ_PCIETH,
26
+
};
23
27
24
28
int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin)
25
29
{
26
-
switch (slot) {
27
-
case 0: return IRQ_PCISLOT1; /* PCI Extend slot #1 */
28
-
case 1: return IRQ_PCISLOT2; /* PCI Extend slot #2 */
29
-
case 2: return IRQ_PCMCIA; /* PCI Cardbus Bridge */
30
-
case 3: return IRQ_PCIETH; /* Realtek Ethernet controller */
31
-
default:
32
-
printk("PCI: Bad IRQ mapping request for slot %d\n", slot);
33
-
return -1;
34
-
}
30
+
return rts7751r2d_irq_tab[slot];
35
31
}
36
32
37
33
static struct resource sh7751_io_resource = {
+30
-145
arch/sh/kernel/cpu/irq/intc2.c
+30
-145
arch/sh/kernel/cpu/irq/intc2.c
···
11
11
* Hitachi 7751, the STM ST40 STB1, SH7760, and SH7780.
12
12
*/
13
13
#include <linux/kernel.h>
14
-
#include <linux/init.h>
15
14
#include <linux/irq.h>
15
+
#include <linux/io.h>
16
16
#include <asm/system.h>
17
-
#include <asm/io.h>
18
17
19
18
static void disable_intc2_irq(unsigned int irq)
20
19
{
···
30
31
}
31
32
32
33
static struct irq_chip intc2_irq_chip = {
33
-
.typename = "intc2",
34
+
.name = "INTC2",
34
35
.mask = disable_intc2_irq,
35
36
.unmask = enable_intc2_irq,
36
37
.mask_ack = disable_intc2_irq,
···
44
45
* PIO1 which is INTPRI00[19,16] and INTMSK00[13]
45
46
* would be: ^ ^ ^ ^
46
47
* | | | |
47
-
* make_intc2_irq(84, 0, 16, 0, 13);
48
+
* { 84, 0, 16, 0, 13 },
49
+
*
50
+
* in the intc2_data table.
48
51
*/
49
-
void make_intc2_irq(struct intc2_data *p)
50
-
{
51
-
unsigned int flags;
52
-
unsigned long ipr;
53
-
54
-
disable_irq_nosync(p->irq);
55
-
56
-
/* Set the priority level */
57
-
local_irq_save(flags);
58
-
59
-
ipr = ctrl_inl(INTC2_BASE + INTC2_INTPRI_OFFSET + p->ipr_offset);
60
-
ipr &= ~(0xf << p->ipr_shift);
61
-
ipr |= p->priority << p->ipr_shift;
62
-
ctrl_outl(ipr, INTC2_BASE + INTC2_INTPRI_OFFSET + p->ipr_offset);
63
-
64
-
local_irq_restore(flags);
65
-
66
-
set_irq_chip_and_handler(p->irq, &intc2_irq_chip, handle_level_irq);
67
-
set_irq_chip_data(p->irq, p);
68
-
69
-
enable_intc2_irq(p->irq);
70
-
}
71
-
72
-
static struct intc2_data intc2_irq_table[] = {
73
-
#if defined(CONFIG_CPU_SUBTYPE_ST40)
74
-
{64, 0, 0, 0, 0, 13}, /* PCI serr */
75
-
{65, 0, 4, 0, 1, 13}, /* PCI err */
76
-
{66, 0, 4, 0, 2, 13}, /* PCI ad */
77
-
{67, 0, 4, 0, 3, 13}, /* PCI pwd down */
78
-
{72, 0, 8, 0, 5, 13}, /* DMAC INT0 */
79
-
{73, 0, 8, 0, 6, 13}, /* DMAC INT1 */
80
-
{74, 0, 8, 0, 7, 13}, /* DMAC INT2 */
81
-
{75, 0, 8, 0, 8, 13}, /* DMAC INT3 */
82
-
{76, 0, 8, 0, 9, 13}, /* DMAC INT4 */
83
-
{78, 0, 8, 0, 11, 13}, /* DMAC ERR */
84
-
{80, 0, 12, 0, 12, 13}, /* PIO0 */
85
-
{84, 0, 16, 0, 13, 13}, /* PIO1 */
86
-
{88, 0, 20, 0, 14, 13}, /* PIO2 */
87
-
{112, 4, 0, 4, 0, 13}, /* Mailbox */
88
-
#ifdef CONFIG_CPU_SUBTYPE_ST40GX1
89
-
{116, 4, 4, 4, 4, 13}, /* SSC0 */
90
-
{120, 4, 8, 4, 8, 13}, /* IR Blaster */
91
-
{124, 4, 12, 4, 12, 13}, /* USB host */
92
-
{128, 4, 16, 4, 16, 13}, /* Video processor BLITTER */
93
-
{132, 4, 20, 4, 20, 13}, /* UART0 */
94
-
{134, 4, 20, 4, 22, 13}, /* UART2 */
95
-
{136, 4, 24, 4, 24, 13}, /* IO_PIO0 */
96
-
{140, 4, 28, 4, 28, 13}, /* EMPI */
97
-
{144, 8, 0, 8, 0, 13}, /* MAFE */
98
-
{148, 8, 4, 8, 4, 13}, /* PWM */
99
-
{152, 8, 8, 8, 8, 13}, /* SSC1 */
100
-
{156, 8, 12, 8, 12, 13}, /* IO_PIO1 */
101
-
{160, 8, 16, 8, 16, 13}, /* USB target */
102
-
{164, 8, 20, 8, 20, 13}, /* UART1 */
103
-
{168, 8, 24, 8, 24, 13}, /* Teletext */
104
-
{172, 8, 28, 8, 28, 13}, /* VideoSync VTG */
105
-
{173, 8, 28, 8, 29, 13}, /* VideoSync DVP0 */
106
-
{174, 8, 28, 8, 30, 13}, /* VideoSync DVP1 */
107
-
#endif
108
-
#elif defined(CONFIG_CPU_SUBTYPE_SH7760)
109
-
/*
110
-
* SH7760 INTC2-Style interrupts, vectors IRQ48-111 INTEVT 0x800-0xFE0
111
-
*/
112
-
/* INTPRIO0 | INTMSK0 */
113
-
{48, 0, 28, 0, 31, 3}, /* IRQ 4 */
114
-
{49, 0, 24, 0, 30, 3}, /* IRQ 3 */
115
-
{50, 0, 20, 0, 29, 3}, /* IRQ 2 */
116
-
{51, 0, 16, 0, 28, 3}, /* IRQ 1 */
117
-
/* 52-55 (INTEVT 0x880-0x8E0) unused/reserved */
118
-
/* INTPRIO4 | INTMSK0 */
119
-
{56, 4, 28, 0, 25, 3}, /* HCAN2_CHAN0 */
120
-
{57, 4, 24, 0, 24, 3}, /* HCAN2_CHAN1 */
121
-
{58, 4, 20, 0, 23, 3}, /* I2S_CHAN0 */
122
-
{59, 4, 16, 0, 22, 3}, /* I2S_CHAN1 */
123
-
{60, 4, 12, 0, 21, 3}, /* AC97_CHAN0 */
124
-
{61, 4, 8, 0, 20, 3}, /* AC97_CHAN1 */
125
-
{62, 4, 4, 0, 19, 3}, /* I2C_CHAN0 */
126
-
{63, 4, 0, 0, 18, 3}, /* I2C_CHAN1 */
127
-
/* INTPRIO8 | INTMSK0 */
128
-
{52, 8, 16, 0, 11, 3}, /* SCIF0_ERI_IRQ */
129
-
{53, 8, 16, 0, 10, 3}, /* SCIF0_RXI_IRQ */
130
-
{54, 8, 16, 0, 9, 3}, /* SCIF0_BRI_IRQ */
131
-
{55, 8, 16, 0, 8, 3}, /* SCIF0_TXI_IRQ */
132
-
{64, 8, 28, 0, 17, 3}, /* USBHI_IRQ */
133
-
{65, 8, 24, 0, 16, 3}, /* LCDC */
134
-
/* 66, 67 unused */
135
-
{68, 8, 20, 0, 14, 13}, /* DMABRGI0_IRQ */
136
-
{69, 8, 20, 0, 13, 13}, /* DMABRGI1_IRQ */
137
-
{70, 8, 20, 0, 12, 13}, /* DMABRGI2_IRQ */
138
-
/* 71 unused */
139
-
{72, 8, 12, 0, 7, 3}, /* SCIF1_ERI_IRQ */
140
-
{73, 8, 12, 0, 6, 3}, /* SCIF1_RXI_IRQ */
141
-
{74, 8, 12, 0, 5, 3}, /* SCIF1_BRI_IRQ */
142
-
{75, 8, 12, 0, 4, 3}, /* SCIF1_TXI_IRQ */
143
-
{76, 8, 8, 0, 3, 3}, /* SCIF2_ERI_IRQ */
144
-
{77, 8, 8, 0, 2, 3}, /* SCIF2_RXI_IRQ */
145
-
{78, 8, 8, 0, 1, 3}, /* SCIF2_BRI_IRQ */
146
-
{79, 8, 8, 0, 0, 3}, /* SCIF2_TXI_IRQ */
147
-
/* | INTMSK4 */
148
-
{80, 8, 4, 4, 23, 3}, /* SIM_ERI */
149
-
{81, 8, 4, 4, 22, 3}, /* SIM_RXI */
150
-
{82, 8, 4, 4, 21, 3}, /* SIM_TXI */
151
-
{83, 8, 4, 4, 20, 3}, /* SIM_TEI */
152
-
{84, 8, 0, 4, 19, 3}, /* HSPII */
153
-
/* INTPRIOC | INTMSK4 */
154
-
/* 85-87 unused/reserved */
155
-
{88, 12, 20, 4, 18, 3}, /* MMCI0 */
156
-
{89, 12, 20, 4, 17, 3}, /* MMCI1 */
157
-
{90, 12, 20, 4, 16, 3}, /* MMCI2 */
158
-
{91, 12, 20, 4, 15, 3}, /* MMCI3 */
159
-
{92, 12, 12, 4, 6, 3}, /* MFI (unsure, bug? in my 7760 manual*/
160
-
/* 93-107 reserved/undocumented */
161
-
{108,12, 4, 4, 1, 3}, /* ADC */
162
-
{109,12, 0, 4, 0, 3}, /* CMTI */
163
-
/* 110-111 reserved/unused */
164
-
#elif defined(CONFIG_CPU_SUBTYPE_SH7780)
165
-
{ TIMER_IRQ, 0, 24, 0, INTC_TMU0_MSK, 2},
166
-
{ 21, 1, 0, 0, INTC_RTC_MSK, TIMER_PRIORITY },
167
-
{ 22, 1, 1, 0, INTC_RTC_MSK, TIMER_PRIORITY },
168
-
{ 23, 1, 2, 0, INTC_RTC_MSK, TIMER_PRIORITY },
169
-
{ SCIF0_ERI_IRQ, 8, 24, 0, INTC_SCIF0_MSK, SCIF0_PRIORITY },
170
-
{ SCIF0_RXI_IRQ, 8, 24, 0, INTC_SCIF0_MSK, SCIF0_PRIORITY },
171
-
{ SCIF0_BRI_IRQ, 8, 24, 0, INTC_SCIF0_MSK, SCIF0_PRIORITY },
172
-
{ SCIF0_TXI_IRQ, 8, 24, 0, INTC_SCIF0_MSK, SCIF0_PRIORITY },
173
-
174
-
{ SCIF1_ERI_IRQ, 8, 16, 0, INTC_SCIF1_MSK, SCIF1_PRIORITY },
175
-
{ SCIF1_RXI_IRQ, 8, 16, 0, INTC_SCIF1_MSK, SCIF1_PRIORITY },
176
-
{ SCIF1_BRI_IRQ, 8, 16, 0, INTC_SCIF1_MSK, SCIF1_PRIORITY },
177
-
{ SCIF1_TXI_IRQ, 8, 16, 0, INTC_SCIF1_MSK, SCIF1_PRIORITY },
178
-
179
-
{ PCIC0_IRQ, 0x10, 8, 0, INTC_PCIC0_MSK, PCIC0_PRIORITY },
180
-
{ PCIC1_IRQ, 0x10, 0, 0, INTC_PCIC1_MSK, PCIC1_PRIORITY },
181
-
{ PCIC2_IRQ, 0x14, 24, 0, INTC_PCIC2_MSK, PCIC2_PRIORITY },
182
-
{ PCIC3_IRQ, 0x14, 16, 0, INTC_PCIC3_MSK, PCIC3_PRIORITY },
183
-
{ PCIC4_IRQ, 0x14, 8, 0, INTC_PCIC4_MSK, PCIC4_PRIORITY },
184
-
#endif
185
-
};
186
-
187
-
void __init init_IRQ_intc2(void)
52
+
void make_intc2_irq(struct intc2_data *table, unsigned int nr_irqs)
188
53
{
189
54
int i;
190
55
191
-
for (i = 0; i < ARRAY_SIZE(intc2_irq_table); i++)
192
-
make_intc2_irq(intc2_irq_table + i);
56
+
for (i = 0; i < nr_irqs; i++) {
57
+
unsigned long ipr, flags;
58
+
struct intc2_data *p = table + i;
59
+
60
+
disable_irq_nosync(p->irq);
61
+
62
+
/* Set the priority level */
63
+
local_irq_save(flags);
64
+
65
+
ipr = ctrl_inl(INTC2_BASE + INTC2_INTPRI_OFFSET +
66
+
p->ipr_offset);
67
+
ipr &= ~(0xf << p->ipr_shift);
68
+
ipr |= p->priority << p->ipr_shift;
69
+
ctrl_outl(ipr, INTC2_BASE + INTC2_INTPRI_OFFSET +
70
+
p->ipr_offset);
71
+
72
+
local_irq_restore(flags);
73
+
74
+
set_irq_chip_and_handler_name(p->irq, &intc2_irq_chip,
75
+
handle_level_irq, "level");
76
+
set_irq_chip_data(p->irq, p);
77
+
78
+
enable_intc2_irq(p->irq);
79
+
}
193
80
}
+3
-2
arch/sh/kernel/cpu/irq/ipr.c
+3
-2
arch/sh/kernel/cpu/irq/ipr.c
···
44
44
}
45
45
46
46
static struct irq_chip ipr_irq_chip = {
47
-
.name = "ipr",
47
+
.name = "IPR",
48
48
.mask = disable_ipr_irq,
49
49
.unmask = enable_ipr_irq,
50
50
.mask_ack = disable_ipr_irq,
···
60
60
ipr_data.shift = pos*4; /* POSition (0-3) x 4 means shift */
61
61
ipr_data.priority = priority;
62
62
63
-
set_irq_chip_and_handler(irq, &ipr_irq_chip, handle_level_irq);
63
+
set_irq_chip_and_handler_name(irq, &ipr_irq_chip,
64
+
handle_level_irq, "level");
64
65
set_irq_chip_data(irq, &ipr_data);
65
66
66
67
enable_ipr_irq(irq);
+8
-1
arch/sh/kernel/cpu/sh3/ex.S
+8
-1
arch/sh/kernel/cpu/sh3/ex.S
···
4
4
* The SH-3 exception vector table.
5
5
6
6
* Copyright (C) 1999, 2000, 2002 Niibe Yutaka
7
-
* Copyright (C) 2003 Paul Mundt
7
+
* Copyright (C) 2003 - 2006 Paul Mundt
8
8
*
9
9
* This file is subject to the terms and conditions of the GNU General Public
10
10
* License. See the file "COPYING" in the main directory of this archive
···
49
49
#endif
50
50
ENTRY(user_break_point_trap)
51
51
.long break_point_trap /* 1E0 */
52
+
53
+
/*
54
+
* Pad the remainder of the table out, exceptions residing in far
55
+
* away offsets can be manually inserted in to their appropriate
56
+
* location via set_exception_table_{evt,vec}().
57
+
*/
58
+
.balign 4096,0,4096
+8
-1
arch/sh/kernel/cpu/sh4/ex.S
+8
-1
arch/sh/kernel/cpu/sh4/ex.S
···
4
4
* The SH-4 exception vector table.
5
5
6
6
* Copyright (C) 1999, 2000, 2002 Niibe Yutaka
7
-
* Copyright (C) 2003 Paul Mundt
7
+
* Copyright (C) 2003 - 2006 Paul Mundt
8
8
*
9
9
* This file is subject to the terms and conditions of the GNU General Public
10
10
* License. See the file "COPYING" in the main directory of this archive
···
53
53
#endif
54
54
ENTRY(user_break_point_trap)
55
55
.long break_point_trap /* 1E0 */
56
+
57
+
/*
58
+
* Pad the remainder of the table out, exceptions residing in far
59
+
* away offsets can be manually inserted in to their appropriate
60
+
* location via set_exception_table_{evt,vec}().
61
+
*/
62
+
.balign 4096,0,4096
+63
arch/sh/kernel/cpu/sh4/setup-sh7760.c
+63
arch/sh/kernel/cpu/sh4/setup-sh7760.c
···
51
51
ARRAY_SIZE(sh7760_devices));
52
52
}
53
53
__initcall(sh7760_devices_setup);
54
+
55
+
/*
56
+
* SH7760 INTC2-Style interrupts, vectors IRQ48-111 INTEVT 0x800-0xFE0
57
+
*/
58
+
static struct intc2_data intc2_irq_table[] = {
59
+
/* INTPRIO0 | INTMSK0 */
60
+
{48, 0, 28, 0, 31, 3}, /* IRQ 4 */
61
+
{49, 0, 24, 0, 30, 3}, /* IRQ 3 */
62
+
{50, 0, 20, 0, 29, 3}, /* IRQ 2 */
63
+
{51, 0, 16, 0, 28, 3}, /* IRQ 1 */
64
+
/* 52-55 (INTEVT 0x880-0x8E0) unused/reserved */
65
+
/* INTPRIO4 | INTMSK0 */
66
+
{56, 4, 28, 0, 25, 3}, /* HCAN2_CHAN0 */
67
+
{57, 4, 24, 0, 24, 3}, /* HCAN2_CHAN1 */
68
+
{58, 4, 20, 0, 23, 3}, /* I2S_CHAN0 */
69
+
{59, 4, 16, 0, 22, 3}, /* I2S_CHAN1 */
70
+
{60, 4, 12, 0, 21, 3}, /* AC97_CHAN0 */
71
+
{61, 4, 8, 0, 20, 3}, /* AC97_CHAN1 */
72
+
{62, 4, 4, 0, 19, 3}, /* I2C_CHAN0 */
73
+
{63, 4, 0, 0, 18, 3}, /* I2C_CHAN1 */
74
+
/* INTPRIO8 | INTMSK0 */
75
+
{52, 8, 16, 0, 11, 3}, /* SCIF0_ERI_IRQ */
76
+
{53, 8, 16, 0, 10, 3}, /* SCIF0_RXI_IRQ */
77
+
{54, 8, 16, 0, 9, 3}, /* SCIF0_BRI_IRQ */
78
+
{55, 8, 16, 0, 8, 3}, /* SCIF0_TXI_IRQ */
79
+
{64, 8, 28, 0, 17, 3}, /* USBHI_IRQ */
80
+
{65, 8, 24, 0, 16, 3}, /* LCDC */
81
+
/* 66, 67 unused */
82
+
{68, 8, 20, 0, 14, 13}, /* DMABRGI0_IRQ */
83
+
{69, 8, 20, 0, 13, 13}, /* DMABRGI1_IRQ */
84
+
{70, 8, 20, 0, 12, 13}, /* DMABRGI2_IRQ */
85
+
/* 71 unused */
86
+
{72, 8, 12, 0, 7, 3}, /* SCIF1_ERI_IRQ */
87
+
{73, 8, 12, 0, 6, 3}, /* SCIF1_RXI_IRQ */
88
+
{74, 8, 12, 0, 5, 3}, /* SCIF1_BRI_IRQ */
89
+
{75, 8, 12, 0, 4, 3}, /* SCIF1_TXI_IRQ */
90
+
{76, 8, 8, 0, 3, 3}, /* SCIF2_ERI_IRQ */
91
+
{77, 8, 8, 0, 2, 3}, /* SCIF2_RXI_IRQ */
92
+
{78, 8, 8, 0, 1, 3}, /* SCIF2_BRI_IRQ */
93
+
{79, 8, 8, 0, 0, 3}, /* SCIF2_TXI_IRQ */
94
+
/* | INTMSK4 */
95
+
{80, 8, 4, 4, 23, 3}, /* SIM_ERI */
96
+
{81, 8, 4, 4, 22, 3}, /* SIM_RXI */
97
+
{82, 8, 4, 4, 21, 3}, /* SIM_TXI */
98
+
{83, 8, 4, 4, 20, 3}, /* SIM_TEI */
99
+
{84, 8, 0, 4, 19, 3}, /* HSPII */
100
+
/* INTPRIOC | INTMSK4 */
101
+
/* 85-87 unused/reserved */
102
+
{88, 12, 20, 4, 18, 3}, /* MMCI0 */
103
+
{89, 12, 20, 4, 17, 3}, /* MMCI1 */
104
+
{90, 12, 20, 4, 16, 3}, /* MMCI2 */
105
+
{91, 12, 20, 4, 15, 3}, /* MMCI3 */
106
+
{92, 12, 12, 4, 6, 3}, /* MFI (unsure, bug? in my 7760 manual*/
107
+
/* 93-107 reserved/undocumented */
108
+
{108,12, 4, 4, 1, 3}, /* ADC */
109
+
{109,12, 0, 4, 0, 3}, /* CMTI */
110
+
/* 110-111 reserved/unused */
111
+
};
112
+
113
+
void __init init_IRQ_intc2(void)
114
+
{
115
+
make_intc2_irq(intc2_irq_table, ARRAY_SIZE(intc2_irq_table));
116
+
}
+27
arch/sh/kernel/cpu/sh4/setup-sh7780.c
+27
arch/sh/kernel/cpu/sh4/setup-sh7780.c
···
77
77
ARRAY_SIZE(sh7780_devices));
78
78
}
79
79
__initcall(sh7780_devices_setup);
80
+
81
+
static struct intc2_data intc2_irq_table[] = {
82
+
{ TIMER_IRQ, 0, 24, 0, INTC_TMU0_MSK, 2 },
83
+
{ 21, 1, 0, 0, INTC_RTC_MSK, TIMER_PRIORITY },
84
+
{ 22, 1, 1, 0, INTC_RTC_MSK, TIMER_PRIORITY },
85
+
{ 23, 1, 2, 0, INTC_RTC_MSK, TIMER_PRIORITY },
86
+
{ SCIF0_ERI_IRQ, 8, 24, 0, INTC_SCIF0_MSK, SCIF0_PRIORITY },
87
+
{ SCIF0_RXI_IRQ, 8, 24, 0, INTC_SCIF0_MSK, SCIF0_PRIORITY },
88
+
{ SCIF0_BRI_IRQ, 8, 24, 0, INTC_SCIF0_MSK, SCIF0_PRIORITY },
89
+
{ SCIF0_TXI_IRQ, 8, 24, 0, INTC_SCIF0_MSK, SCIF0_PRIORITY },
90
+
91
+
{ SCIF1_ERI_IRQ, 8, 16, 0, INTC_SCIF1_MSK, SCIF1_PRIORITY },
92
+
{ SCIF1_RXI_IRQ, 8, 16, 0, INTC_SCIF1_MSK, SCIF1_PRIORITY },
93
+
{ SCIF1_BRI_IRQ, 8, 16, 0, INTC_SCIF1_MSK, SCIF1_PRIORITY },
94
+
{ SCIF1_TXI_IRQ, 8, 16, 0, INTC_SCIF1_MSK, SCIF1_PRIORITY },
95
+
96
+
{ PCIC0_IRQ, 0x10, 8, 0, INTC_PCIC0_MSK, PCIC0_PRIORITY },
97
+
{ PCIC1_IRQ, 0x10, 0, 0, INTC_PCIC1_MSK, PCIC1_PRIORITY },
98
+
{ PCIC2_IRQ, 0x14, 24, 0, INTC_PCIC2_MSK, PCIC2_PRIORITY },
99
+
{ PCIC3_IRQ, 0x14, 16, 0, INTC_PCIC3_MSK, PCIC3_PRIORITY },
100
+
{ PCIC4_IRQ, 0x14, 8, 0, INTC_PCIC4_MSK, PCIC4_PRIORITY },
101
+
};
102
+
103
+
void __init init_IRQ_intc2(void)
104
+
{
105
+
make_intc2_irq(intc2_irq_table, ARRAY_SIZE(intc2_irq_table));
106
+
}
+1
-1
arch/sh/kernel/irq.c
+1
-1
arch/sh/kernel/irq.c
···
54
54
for_each_online_cpu(j)
55
55
seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]);
56
56
seq_printf(p, " %14s", irq_desc[i].chip->name);
57
-
seq_printf(p, "-%s", handle_irq_name(irq_desc[i].handle_irq));
57
+
seq_printf(p, "-%-8s", irq_desc[i].name);
58
58
seq_printf(p, " %s", action->name);
59
59
60
60
for (action=action->next; action; action = action->next)
+2
-10
arch/sh/kernel/process.c
+2
-10
arch/sh/kernel/process.c
···
105
105
{
106
106
printk("\n");
107
107
printk("Pid : %d, Comm: %20s\n", current->pid, current->comm);
108
-
print_symbol("PC is at %s\n", regs->pc);
108
+
print_symbol("PC is at %s\n", instruction_pointer(regs));
109
109
printk("PC : %08lx SP : %08lx SR : %08lx ",
110
110
regs->pc, regs->regs[15], regs->sr);
111
111
#ifdef CONFIG_MMU
···
130
130
printk("MACH: %08lx MACL: %08lx GBR : %08lx PR : %08lx\n",
131
131
regs->mach, regs->macl, regs->gbr, regs->pr);
132
132
133
-
/*
134
-
* If we're in kernel mode, dump the stack too..
135
-
*/
136
-
if (!user_mode(regs)) {
137
-
extern void show_task(unsigned long *sp);
138
-
unsigned long sp = regs->regs[15];
139
-
140
-
show_task((unsigned long *)sp);
141
-
}
133
+
show_trace(NULL, (unsigned long *)regs->regs[15], regs);
142
134
}
143
135
144
136
/*
+98
-77
arch/sh/kernel/traps.c
+98
-77
arch/sh/kernel/traps.c
···
1
-
/* $Id: traps.c,v 1.17 2004/05/02 01:46:30 sugioka Exp $
2
-
*
3
-
* linux/arch/sh/traps.c
1
+
/*
2
+
* 'traps.c' handles hardware traps and faults after we have saved some
3
+
* state in 'entry.S'.
4
4
*
5
5
* SuperH version: Copyright (C) 1999 Niibe Yutaka
6
6
* Copyright (C) 2000 Philipp Rumpf
7
7
* Copyright (C) 2000 David Howells
8
-
* Copyright (C) 2002, 2003 Paul Mundt
8
+
* Copyright (C) 2002 - 2006 Paul Mundt
9
+
*
10
+
* This file is subject to the terms and conditions of the GNU General Public
11
+
* License. See the file "COPYING" in the main directory of this archive
12
+
* for more details.
9
13
*/
10
-
11
-
/*
12
-
* 'Traps.c' handles hardware traps and faults after we have saved some
13
-
* state in 'entry.S'.
14
-
*/
15
-
#include <linux/sched.h>
16
14
#include <linux/kernel.h>
17
-
#include <linux/string.h>
18
-
#include <linux/errno.h>
19
15
#include <linux/ptrace.h>
20
-
#include <linux/timer.h>
21
-
#include <linux/mm.h>
22
-
#include <linux/smp.h>
23
-
#include <linux/smp_lock.h>
24
16
#include <linux/init.h>
25
-
#include <linux/delay.h>
26
17
#include <linux/spinlock.h>
27
18
#include <linux/module.h>
28
19
#include <linux/kallsyms.h>
29
-
20
+
#include <linux/io.h>
30
21
#include <asm/system.h>
31
22
#include <asm/uaccess.h>
32
-
#include <asm/io.h>
33
-
#include <asm/atomic.h>
34
-
#include <asm/processor.h>
35
-
#include <asm/sections.h>
36
23
37
24
#ifdef CONFIG_SH_KGDB
38
25
#include <asm/kgdb.h>
···
40
53
#define TRAP_ILLEGAL_SLOT_INST 13
41
54
#endif
42
55
43
-
/*
44
-
* These constants are for searching for possible module text
45
-
* segments. VMALLOC_OFFSET comes from mm/vmalloc.c; MODULE_RANGE is
46
-
* a guess of how much space is likely to be vmalloced.
47
-
*/
48
-
#define VMALLOC_OFFSET (8*1024*1024)
49
-
#define MODULE_RANGE (8*1024*1024)
56
+
static void dump_mem(const char *str, unsigned long bottom, unsigned long top)
57
+
{
58
+
unsigned long p;
59
+
int i;
60
+
61
+
printk("%s(0x%08lx to 0x%08lx)\n", str, bottom, top);
62
+
63
+
for (p = bottom & ~31; p < top; ) {
64
+
printk("%04lx: ", p & 0xffff);
65
+
66
+
for (i = 0; i < 8; i++, p += 4) {
67
+
unsigned int val;
68
+
69
+
if (p < bottom || p >= top)
70
+
printk(" ");
71
+
else {
72
+
if (__get_user(val, (unsigned int __user *)p)) {
73
+
printk("\n");
74
+
return;
75
+
}
76
+
printk("%08x ", val);
77
+
}
78
+
}
79
+
printk("\n");
80
+
}
81
+
}
50
82
51
83
DEFINE_SPINLOCK(die_lock);
52
84
···
75
69
76
70
console_verbose();
77
71
spin_lock_irq(&die_lock);
72
+
bust_spinlocks(1);
73
+
78
74
printk("%s: %04lx [#%d]\n", str, err & 0xffff, ++die_counter);
75
+
79
76
CHK_REMOTE_DEBUG(regs);
77
+
print_modules();
80
78
show_regs(regs);
79
+
80
+
printk("Process: %s (pid: %d, stack limit = %p)\n",
81
+
current->comm, current->pid, task_stack_page(current) + 1);
82
+
83
+
if (!user_mode(regs) || in_interrupt())
84
+
dump_mem("Stack: ", regs->regs[15], THREAD_SIZE +
85
+
(unsigned long)task_stack_page(current));
86
+
87
+
bust_spinlocks(0);
81
88
spin_unlock_irq(&die_lock);
82
89
do_exit(SIGSEGV);
83
90
}
84
91
85
-
static inline void die_if_kernel(const char * str, struct pt_regs * regs, long err)
92
+
static inline void die_if_kernel(const char *str, struct pt_regs *regs,
93
+
long err)
86
94
{
87
95
if (!user_mode(regs))
88
96
die(str, regs, err);
···
113
93
*/
114
94
static int die_if_no_fixup(const char * str, struct pt_regs * regs, long err)
115
95
{
116
-
if (!user_mode(regs))
117
-
{
96
+
if (!user_mode(regs)) {
118
97
const struct exception_table_entry *fixup;
119
98
fixup = search_exception_tables(regs->pc);
120
99
if (fixup) {
···
569
550
#define is_dsp_inst(regs) (0)
570
551
#endif /* CONFIG_SH_DSP */
571
552
572
-
extern int do_fpu_inst(unsigned short, struct pt_regs*);
553
+
/* arch/sh/kernel/cpu/sh4/fpu.c */
554
+
extern int do_fpu_inst(unsigned short, struct pt_regs *);
555
+
extern asmlinkage void do_fpu_state_restore(unsigned long r4, unsigned long r5,
556
+
unsigned long r6, unsigned long r7, struct pt_regs regs);
573
557
574
558
asmlinkage void do_reserved_inst(unsigned long r4, unsigned long r5,
575
559
unsigned long r6, unsigned long r7,
···
731
709
: "memory");
732
710
}
733
711
734
-
void __init trap_init(void)
712
+
void *set_exception_table_vec(unsigned int vec, void *handler)
735
713
{
736
714
extern void *exception_handling_table[];
715
+
void *old_handler;
716
+
717
+
old_handler = exception_handling_table[vec];
718
+
exception_handling_table[vec] = handler;
719
+
return old_handler;
720
+
}
737
721
738
-
exception_handling_table[TRAP_RESERVED_INST]
739
-
= (void *)do_reserved_inst;
740
-
exception_handling_table[TRAP_ILLEGAL_SLOT_INST]
741
-
= (void *)do_illegal_slot_inst;
722
+
void __init trap_init(void)
723
+
{
724
+
set_exception_table_vec(TRAP_RESERVED_INST, do_reserved_inst);
725
+
set_exception_table_vec(TRAP_ILLEGAL_SLOT_INST, do_illegal_slot_inst);
742
726
743
727
#if defined(CONFIG_CPU_SH4) && !defined(CONFIG_SH_FPU) || \
744
728
defined(CONFIG_SH_FPU_EMU)
···
753
725
* reserved. They'll be handled in the math-emu case, or faulted on
754
726
* otherwise.
755
727
*/
756
-
/* entry 64 corresponds to EXPEVT=0x800 */
757
-
exception_handling_table[64] = (void *)do_reserved_inst;
758
-
exception_handling_table[65] = (void *)do_illegal_slot_inst;
728
+
set_exception_table_evt(0x800, do_reserved_inst);
729
+
set_exception_table_evt(0x820, do_illegal_slot_inst);
730
+
#elif defined(CONFIG_SH_FPU)
731
+
set_exception_table_evt(0x800, do_fpu_state_restore);
732
+
set_exception_table_evt(0x820, do_fpu_state_restore);
759
733
#endif
760
734
761
735
/* Setup VBR for boot cpu */
762
736
per_cpu_trap_init();
763
737
}
764
738
739
+
void show_trace(struct task_struct *tsk, unsigned long *sp,
740
+
struct pt_regs *regs)
741
+
{
742
+
unsigned long addr;
743
+
744
+
if (regs && user_mode(regs))
745
+
return;
746
+
747
+
printk("\nCall trace: ");
748
+
#ifdef CONFIG_KALLSYMS
749
+
printk("\n");
750
+
#endif
751
+
752
+
while (!kstack_end(sp)) {
753
+
addr = *sp++;
754
+
if (kernel_text_address(addr))
755
+
print_ip_sym(addr);
756
+
}
757
+
758
+
printk("\n");
759
+
}
760
+
765
761
void show_stack(struct task_struct *tsk, unsigned long *sp)
766
762
{
767
-
unsigned long *stack, addr;
768
-
unsigned long module_start = VMALLOC_START;
769
-
unsigned long module_end = VMALLOC_END;
770
-
int i = 1;
763
+
unsigned long stack;
771
764
772
765
if (!tsk)
773
766
tsk = current;
···
797
748
else
798
749
sp = (unsigned long *)tsk->thread.sp;
799
750
800
-
stack = sp;
801
-
802
-
printk("\nCall trace: ");
803
-
#ifdef CONFIG_KALLSYMS
804
-
printk("\n");
805
-
#endif
806
-
807
-
while (!kstack_end(stack)) {
808
-
addr = *stack++;
809
-
if (((addr >= (unsigned long)_text) &&
810
-
(addr <= (unsigned long)_etext)) ||
811
-
((addr >= module_start) && (addr <= module_end))) {
812
-
/*
813
-
* For 80-columns display, 6 entry is maximum.
814
-
* NOTE: '[<8c00abcd>] ' consumes 13 columns .
815
-
*/
816
-
#ifndef CONFIG_KALLSYMS
817
-
if (i && ((i % 6) == 0))
818
-
printk("\n ");
819
-
#endif
820
-
printk("[<%08lx>] ", addr);
821
-
print_symbol("%s\n", addr);
822
-
i++;
823
-
}
824
-
}
825
-
826
-
printk("\n");
827
-
}
828
-
829
-
void show_task(unsigned long *sp)
830
-
{
831
-
show_stack(NULL, sp);
751
+
stack = (unsigned long)sp;
752
+
dump_mem("Stack: ", stack, THREAD_SIZE +
753
+
(unsigned long)task_stack_page(tsk));
754
+
show_trace(tsk, sp, NULL);
832
755
}
833
756
834
757
void dump_stack(void)
+1
-1
drivers/input/touchscreen/hp680_ts_input.c
+1
-1
drivers/input/touchscreen/hp680_ts_input.c
-1
drivers/video/hitfb.c
-1
drivers/video/hitfb.c
include/asm-sh/edosk7705/io.h
include/asm-sh/edosk7705.h
include/asm-sh/edosk7705/io.h
include/asm-sh/edosk7705.h
include/asm-sh/hp6xx/hp6xx.h
include/asm-sh/hp6xx.h
include/asm-sh/hp6xx/hp6xx.h
include/asm-sh/hp6xx.h
-8
include/asm-sh/hp6xx/ide.h
-8
include/asm-sh/hp6xx/ide.h
-10
include/asm-sh/hp6xx/io.h
-10
include/asm-sh/hp6xx/io.h
include/asm-sh/hs7751rvoip/hs7751rvoip.h
include/asm-sh/hs7751rvoip.h
include/asm-sh/hs7751rvoip/hs7751rvoip.h
include/asm-sh/hs7751rvoip.h
-8
include/asm-sh/hs7751rvoip/ide.h
-8
include/asm-sh/hs7751rvoip/ide.h
-10
include/asm-sh/irq-sh7780.h
-10
include/asm-sh/irq-sh7780.h
···
6
6
*
7
7
* Copyright (C) 2004 Takashi SHUDO <shudo@hitachi-ul.co.jp>
8
8
*/
9
-
10
-
#ifdef CONFIG_IDE
11
-
# ifndef IRQ_CFCARD
12
-
# define IRQ_CFCARD 14
13
-
# endif
14
-
# ifndef IRQ_PCMCIA
15
-
# define IRQ_PCMCIA 15
16
-
# endif
17
-
#endif
18
-
19
9
#define INTC_BASE 0xffd00000
20
10
#define INTC_ICR0 (INTC_BASE+0x0)
21
11
#define INTC_ICR1 (INTC_BASE+0x1c)
+1
-20
include/asm-sh/irq.h
+1
-20
include/asm-sh/irq.h
···
14
14
#include <asm/machvec.h>
15
15
#include <asm/ptrace.h> /* for pt_regs */
16
16
17
-
#if defined(CONFIG_SH_HP6XX) || \
18
-
defined(CONFIG_SH_RTS7751R2D) || \
19
-
defined(CONFIG_SH_HS7751RVOIP) || \
20
-
defined(CONFIG_SH_HS7751RVOIP) || \
21
-
defined(CONFIG_SH_SH03) || \
22
-
defined(CONFIG_SH_R7780RP) || \
23
-
defined(CONFIG_SH_LANDISK)
24
-
#include <asm/mach/ide.h>
25
-
#endif
26
-
27
17
#ifndef CONFIG_CPU_SUBTYPE_SH7780
28
18
29
19
#define INTC_DMAC0_MSK 0
···
26
36
#define INTC_IPRB 0xffd00008UL
27
37
#define INTC_IPRC 0xffd0000cUL
28
38
#define INTC_IPRD 0xffd00010UL
29
-
#endif
30
-
31
-
#ifdef CONFIG_IDE
32
-
# ifndef IRQ_CFCARD
33
-
# define IRQ_CFCARD 14
34
-
# endif
35
-
# ifndef IRQ_PCMCIA
36
-
# define IRQ_PCMCIA 15
37
-
# endif
38
39
#endif
39
40
40
41
#define TIMER_IRQ 16
···
685
704
unsigned char priority;
686
705
};
687
706
688
-
void make_intc2_irq(struct intc2_data *);
707
+
void make_intc2_irq(struct intc2_data *, unsigned int nr_irqs);
689
708
void init_IRQ_intc2(void);
690
709
#endif
691
710
-14
include/asm-sh/landisk/ide.h
-14
include/asm-sh/landisk/ide.h
···
1
-
/*
2
-
* modifed by kogiidena
3
-
* 2005.03.03
4
-
*/
5
-
6
-
#ifndef __ASM_SH_LANDISK_IDE_H
7
-
#define __ASM_SH_LANDISK_IDE_H
8
-
9
-
/* Nothing to see here.. */
10
-
#include <asm/landisk/iodata_landisk.h>
11
-
#define IRQ_CFCARD IRQ_FATA /* CF Card IRQ */
12
-
#define IRQ_PCMCIA IRQ_ATA /* PCMCIA IRQ */
13
-
14
-
#endif /* __ASM_SH_LANDISK_IDE_H */
+2
include/asm-sh/processor.h
+2
include/asm-sh/processor.h
-8
include/asm-sh/r7780rp/ide.h
-8
include/asm-sh/r7780rp/ide.h
-6
include/asm-sh/r7780rp/r7780rp.h
include/asm-sh/r7780rp.h
-6
include/asm-sh/r7780rp/r7780rp.h
include/asm-sh/r7780rp.h
···
72
72
73
73
#define PA_AX88796L 0xa4100400 /* AX88796L Area */
74
74
#define PA_SC1602BSLB 0xa6000000 /* SC1602BSLB Area */
75
-
#define PA_AREA5_IO 0xb4000000 /* Area 5 IO Memory */
76
-
#define PA_AREA6_IO 0xb8000000 /* Area 6 IO Memory */
77
75
#define PA_IDE_OFFSET 0x1f0 /* CF IDE Offset */
78
76
#define AX88796L_IO_BASE 0x1000 /* AX88796L IO Base Address */
79
77
···
81
83
#define IRQ_PCISLOT2 66 /* PCI Slot #2 IRQ */
82
84
#define IRQ_PCISLOT3 67 /* PCI Slot #3 IRQ */
83
85
#define IRQ_PCISLOT4 68 /* PCI Slot #4 IRQ */
84
-
#define IRQ_CFCARD 1 /* CF Card IRQ */
85
86
// #define IRQ_CFINST 0 /* CF Card Insert IRQ */
86
87
#define IRQ_TP 2 /* Touch Panel IRQ */
87
88
#define IRQ_SCI1 3 /* SCI1 IRQ */
···
143
146
144
147
#define PA_AX88796L 0xa5800400 /* AX88796L Area */
145
148
#define PA_SC1602BSLB 0xa6000000 /* SC1602BSLB Area */
146
-
#define PA_AREA5_IO 0xb4000000 /* Area 5 IO Memory */
147
-
#define PA_AREA6_IO 0xb8000000 /* Area 6 IO Memory */
148
149
#define PA_IDE_OFFSET 0x1f0 /* CF IDE Offset */
149
150
#define AX88796L_IO_BASE 0x1000 /* AX88796L IO Base Address */
150
151
···
152
157
#define IRQ_PCISLOT2 1 /* PCI Slot #2 IRQ */
153
158
#define IRQ_PCISLOT3 2 /* PCI Slot #3 IRQ */
154
159
#define IRQ_PCISLOT4 3 /* PCI Slot #4 IRQ */
155
-
#define IRQ_CFCARD 4 /* CF Card IRQ */
156
160
#define IRQ_CFINST 5 /* CF Card Insert IRQ */
157
161
#define IRQ_M66596 6 /* M66596 IRQ */
158
162
#define IRQ_SDCARD 7 /* SD Card IRQ */
-8
include/asm-sh/rts7751r2d/ide.h
-8
include/asm-sh/rts7751r2d/ide.h
include/asm-sh/rts7751r2d/rts7751r2d.h
include/asm-sh/rts7751r2d.h
include/asm-sh/rts7751r2d/rts7751r2d.h
include/asm-sh/rts7751r2d.h
-7
include/asm-sh/sh03/ide.h
-7
include/asm-sh/sh03/ide.h
include/asm-sh/shmin/shmin.h
include/asm-sh/shmin.h
include/asm-sh/shmin/shmin.h
include/asm-sh/shmin.h
+7
include/asm-sh/system.h
+7
include/asm-sh/system.h
···
353
353
(unsigned long)_n_, sizeof(*(ptr))); \
354
354
})
355
355
356
+
extern void *set_exception_table_vec(unsigned int vec, void *handler);
357
+
358
+
static inline void *set_exception_table_evt(unsigned int evt, void *handler)
359
+
{
360
+
return set_exception_table_vec(evt >> 5, handler);
361
+
}
362
+
356
363
/* XXX
357
364
* disable hlt during certain critical i/o operations
358
365
*/