diff options
Diffstat (limited to 'arch/mips/jazz')
-rw-r--r-- | arch/mips/jazz/irq.c | 30 | ||||
-rw-r--r-- | arch/mips/jazz/setup.c | 29 |
2 files changed, 37 insertions, 22 deletions
diff --git a/arch/mips/jazz/irq.c b/arch/mips/jazz/irq.c index eef05093deb4..d5bd6b3a0933 100644 --- a/arch/mips/jazz/irq.c +++ b/arch/mips/jazz/irq.c | |||
@@ -94,26 +94,26 @@ void __init arch_init_irq(void) | |||
94 | change_c0_status(ST0_IM, IE_IRQ4 | IE_IRQ3 | IE_IRQ2 | IE_IRQ1); | 94 | change_c0_status(ST0_IM, IE_IRQ4 | IE_IRQ3 | IE_IRQ2 | IE_IRQ1); |
95 | } | 95 | } |
96 | 96 | ||
97 | static void loc_call(unsigned int irq, struct pt_regs *regs, unsigned int mask) | 97 | static void loc_call(unsigned int irq, unsigned int mask) |
98 | { | 98 | { |
99 | r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, | 99 | r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, |
100 | r4030_read_reg16(JAZZ_IO_IRQ_ENABLE) & mask); | 100 | r4030_read_reg16(JAZZ_IO_IRQ_ENABLE) & mask); |
101 | do_IRQ(irq, regs); | 101 | do_IRQ(irq); |
102 | r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, | 102 | r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, |
103 | r4030_read_reg16(JAZZ_IO_IRQ_ENABLE) | mask); | 103 | r4030_read_reg16(JAZZ_IO_IRQ_ENABLE) | mask); |
104 | } | 104 | } |
105 | 105 | ||
106 | static void ll_local_dev(struct pt_regs *regs) | 106 | static void ll_local_dev(void) |
107 | { | 107 | { |
108 | switch (r4030_read_reg32(JAZZ_IO_IRQ_SOURCE)) { | 108 | switch (r4030_read_reg32(JAZZ_IO_IRQ_SOURCE)) { |
109 | case 0: | 109 | case 0: |
110 | panic("Unimplemented loc_no_irq handler"); | 110 | panic("Unimplemented loc_no_irq handler"); |
111 | break; | 111 | break; |
112 | case 4: | 112 | case 4: |
113 | loc_call(JAZZ_PARALLEL_IRQ, regs, JAZZ_IE_PARALLEL); | 113 | loc_call(JAZZ_PARALLEL_IRQ, JAZZ_IE_PARALLEL); |
114 | break; | 114 | break; |
115 | case 8: | 115 | case 8: |
116 | loc_call(JAZZ_PARALLEL_IRQ, regs, JAZZ_IE_FLOPPY); | 116 | loc_call(JAZZ_PARALLEL_IRQ, JAZZ_IE_FLOPPY); |
117 | break; | 117 | break; |
118 | case 12: | 118 | case 12: |
119 | panic("Unimplemented loc_sound handler"); | 119 | panic("Unimplemented loc_sound handler"); |
@@ -122,27 +122,27 @@ static void ll_local_dev(struct pt_regs *regs) | |||
122 | panic("Unimplemented loc_video handler"); | 122 | panic("Unimplemented loc_video handler"); |
123 | break; | 123 | break; |
124 | case 20: | 124 | case 20: |
125 | loc_call(JAZZ_ETHERNET_IRQ, regs, JAZZ_IE_ETHERNET); | 125 | loc_call(JAZZ_ETHERNET_IRQ, JAZZ_IE_ETHERNET); |
126 | break; | 126 | break; |
127 | case 24: | 127 | case 24: |
128 | loc_call(JAZZ_SCSI_IRQ, regs, JAZZ_IE_SCSI); | 128 | loc_call(JAZZ_SCSI_IRQ, JAZZ_IE_SCSI); |
129 | break; | 129 | break; |
130 | case 28: | 130 | case 28: |
131 | loc_call(JAZZ_KEYBOARD_IRQ, regs, JAZZ_IE_KEYBOARD); | 131 | loc_call(JAZZ_KEYBOARD_IRQ, JAZZ_IE_KEYBOARD); |
132 | break; | 132 | break; |
133 | case 32: | 133 | case 32: |
134 | loc_call(JAZZ_MOUSE_IRQ, regs, JAZZ_IE_MOUSE); | 134 | loc_call(JAZZ_MOUSE_IRQ, JAZZ_IE_MOUSE); |
135 | break; | 135 | break; |
136 | case 36: | 136 | case 36: |
137 | loc_call(JAZZ_SERIAL1_IRQ, regs, JAZZ_IE_SERIAL1); | 137 | loc_call(JAZZ_SERIAL1_IRQ, JAZZ_IE_SERIAL1); |
138 | break; | 138 | break; |
139 | case 40: | 139 | case 40: |
140 | loc_call(JAZZ_SERIAL2_IRQ, regs, JAZZ_IE_SERIAL2); | 140 | loc_call(JAZZ_SERIAL2_IRQ, JAZZ_IE_SERIAL2); |
141 | break; | 141 | break; |
142 | } | 142 | } |
143 | } | 143 | } |
144 | 144 | ||
145 | asmlinkage void plat_irq_dispatch(struct pt_regs *regs) | 145 | asmlinkage void plat_irq_dispatch(void) |
146 | { | 146 | { |
147 | unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM; | 147 | unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM; |
148 | 148 | ||
@@ -150,13 +150,13 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs) | |||
150 | write_c0_compare(0); | 150 | write_c0_compare(0); |
151 | else if (pending & IE_IRQ4) { | 151 | else if (pending & IE_IRQ4) { |
152 | r4030_read_reg32(JAZZ_TIMER_REGISTER); | 152 | r4030_read_reg32(JAZZ_TIMER_REGISTER); |
153 | do_IRQ(JAZZ_TIMER_IRQ, regs); | 153 | do_IRQ(JAZZ_TIMER_IRQ); |
154 | } else if (pending & IE_IRQ3) | 154 | } else if (pending & IE_IRQ3) |
155 | panic("Unimplemented ISA NMI handler"); | 155 | panic("Unimplemented ISA NMI handler"); |
156 | else if (pending & IE_IRQ2) | 156 | else if (pending & IE_IRQ2) |
157 | do_IRQ(r4030_read_reg32(JAZZ_EISA_IRQ_ACK), regs); | 157 | do_IRQ(r4030_read_reg32(JAZZ_EISA_IRQ_ACK)); |
158 | else if (pending & IE_IRQ1) { | 158 | else if (pending & IE_IRQ1) { |
159 | ll_local_dev(regs); | 159 | ll_local_dev(); |
160 | } else if (unlikely(pending & IE_IRQ0)) | 160 | } else if (unlikely(pending & IE_IRQ0)) |
161 | panic("Unimplemented local_dma handler"); | 161 | panic("Unimplemented local_dma handler"); |
162 | else if (pending & IE_SW1) { | 162 | else if (pending & IE_SW1) { |
diff --git a/arch/mips/jazz/setup.c b/arch/mips/jazz/setup.c index 487a9ea1ef00..6dc4135d6e11 100644 --- a/arch/mips/jazz/setup.c +++ b/arch/mips/jazz/setup.c | |||
@@ -19,12 +19,12 @@ | |||
19 | #include <linux/fb.h> | 19 | #include <linux/fb.h> |
20 | #include <linux/ide.h> | 20 | #include <linux/ide.h> |
21 | #include <linux/pm.h> | 21 | #include <linux/pm.h> |
22 | #include <linux/screen_info.h> | ||
22 | 23 | ||
23 | #include <asm/bootinfo.h> | 24 | #include <asm/bootinfo.h> |
24 | #include <asm/irq.h> | 25 | #include <asm/irq.h> |
25 | #include <asm/jazz.h> | 26 | #include <asm/jazz.h> |
26 | #include <asm/jazzdma.h> | 27 | #include <asm/jazzdma.h> |
27 | #include <asm/ptrace.h> | ||
28 | #include <asm/reboot.h> | 28 | #include <asm/reboot.h> |
29 | #include <asm/io.h> | 29 | #include <asm/io.h> |
30 | #include <asm/pgtable.h> | 30 | #include <asm/pgtable.h> |
@@ -45,10 +45,27 @@ void __init plat_time_init(struct irqaction *irq) | |||
45 | } | 45 | } |
46 | 46 | ||
47 | static struct resource jazz_io_resources[] = { | 47 | static struct resource jazz_io_resources[] = { |
48 | { "dma1", 0x00, 0x1f, IORESOURCE_BUSY }, | 48 | { |
49 | { "timer", 0x40, 0x5f, IORESOURCE_BUSY }, | 49 | .start = 0x00, |
50 | { "dma page reg", 0x80, 0x8f, IORESOURCE_BUSY }, | 50 | .end = 0x1f, |
51 | { "dma2", 0xc0, 0xdf, IORESOURCE_BUSY }, | 51 | .name = "dma1", |
52 | .flags = IORESOURCE_BUSY | ||
53 | }, { | ||
54 | .start = 0x40, | ||
55 | .end = 0x5f, | ||
56 | .name = "timer", | ||
57 | .end = IORESOURCE_BUSY | ||
58 | }, { | ||
59 | .start = 0x80, | ||
60 | .end = 0x8f, | ||
61 | .name = "dma page reg", | ||
62 | .flags = IORESOURCE_BUSY | ||
63 | }, { | ||
64 | .start = 0xc0, | ||
65 | .end = 0xdf, | ||
66 | .name = "dma2", | ||
67 | .flags = IORESOURCE_BUSY | ||
68 | } | ||
52 | }; | 69 | }; |
53 | 70 | ||
54 | void __init plat_mem_setup(void) | 71 | void __init plat_mem_setup(void) |
@@ -81,8 +98,6 @@ void __init plat_mem_setup(void) | |||
81 | _machine_halt = jazz_machine_halt; | 98 | _machine_halt = jazz_machine_halt; |
82 | pm_power_off = jazz_machine_power_off; | 99 | pm_power_off = jazz_machine_power_off; |
83 | 100 | ||
84 | #warning "Somebody should check if screen_info is ok for Jazz." | ||
85 | |||
86 | screen_info = (struct screen_info) { | 101 | screen_info = (struct screen_info) { |
87 | 0, 0, /* orig-x, orig-y */ | 102 | 0, 0, /* orig-x, orig-y */ |
88 | 0, /* unused */ | 103 | 0, /* unused */ |