diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /arch/mips/sni | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'arch/mips/sni')
-rw-r--r-- | arch/mips/sni/a20r.c | 26 | ||||
-rw-r--r-- | arch/mips/sni/pcimt.c | 24 | ||||
-rw-r--r-- | arch/mips/sni/pcit.c | 26 | ||||
-rw-r--r-- | arch/mips/sni/rm200.c | 47 | ||||
-rw-r--r-- | arch/mips/sni/time.c | 5 |
5 files changed, 46 insertions, 82 deletions
diff --git a/arch/mips/sni/a20r.c b/arch/mips/sni/a20r.c index e6980892834a..c48194c3073b 100644 --- a/arch/mips/sni/a20r.c +++ b/arch/mips/sni/a20r.c | |||
@@ -10,6 +10,7 @@ | |||
10 | 10 | ||
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/interrupt.h> | 12 | #include <linux/interrupt.h> |
13 | #include <linux/irq.h> | ||
13 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
14 | #include <linux/serial_8250.h> | 15 | #include <linux/serial_8250.h> |
15 | 16 | ||
@@ -167,33 +168,22 @@ static u32 a20r_ack_hwint(void) | |||
167 | return status; | 168 | return status; |
168 | } | 169 | } |
169 | 170 | ||
170 | static inline void unmask_a20r_irq(unsigned int irq) | 171 | static inline void unmask_a20r_irq(struct irq_data *d) |
171 | { | 172 | { |
172 | set_c0_status(0x100 << (irq - SNI_A20R_IRQ_BASE)); | 173 | set_c0_status(0x100 << (d->irq - SNI_A20R_IRQ_BASE)); |
173 | irq_enable_hazard(); | 174 | irq_enable_hazard(); |
174 | } | 175 | } |
175 | 176 | ||
176 | static inline void mask_a20r_irq(unsigned int irq) | 177 | static inline void mask_a20r_irq(struct irq_data *d) |
177 | { | 178 | { |
178 | clear_c0_status(0x100 << (irq - SNI_A20R_IRQ_BASE)); | 179 | clear_c0_status(0x100 << (d->irq - SNI_A20R_IRQ_BASE)); |
179 | irq_disable_hazard(); | 180 | irq_disable_hazard(); |
180 | } | 181 | } |
181 | 182 | ||
182 | static void end_a20r_irq(unsigned int irq) | ||
183 | { | ||
184 | if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) { | ||
185 | a20r_ack_hwint(); | ||
186 | unmask_a20r_irq(irq); | ||
187 | } | ||
188 | } | ||
189 | |||
190 | static struct irq_chip a20r_irq_type = { | 183 | static struct irq_chip a20r_irq_type = { |
191 | .name = "A20R", | 184 | .name = "A20R", |
192 | .ack = mask_a20r_irq, | 185 | .irq_mask = mask_a20r_irq, |
193 | .mask = mask_a20r_irq, | 186 | .irq_unmask = unmask_a20r_irq, |
194 | .mask_ack = mask_a20r_irq, | ||
195 | .unmask = unmask_a20r_irq, | ||
196 | .end = end_a20r_irq, | ||
197 | }; | 187 | }; |
198 | 188 | ||
199 | /* | 189 | /* |
@@ -219,7 +209,7 @@ void __init sni_a20r_irq_init(void) | |||
219 | int i; | 209 | int i; |
220 | 210 | ||
221 | for (i = SNI_A20R_IRQ_BASE + 2 ; i < SNI_A20R_IRQ_BASE + 8; i++) | 211 | for (i = SNI_A20R_IRQ_BASE + 2 ; i < SNI_A20R_IRQ_BASE + 8; i++) |
222 | set_irq_chip_and_handler(i, &a20r_irq_type, handle_level_irq); | 212 | irq_set_chip_and_handler(i, &a20r_irq_type, handle_level_irq); |
223 | sni_hwint = a20r_hwint; | 213 | sni_hwint = a20r_hwint; |
224 | change_c0_status(ST0_IM, IE_IRQ0); | 214 | change_c0_status(ST0_IM, IE_IRQ0); |
225 | setup_irq(SNI_A20R_IRQ_BASE + 3, &sni_isa_irq); | 215 | setup_irq(SNI_A20R_IRQ_BASE + 3, &sni_isa_irq); |
diff --git a/arch/mips/sni/pcimt.c b/arch/mips/sni/pcimt.c index 51e62bbaa23b..ed3b3d317358 100644 --- a/arch/mips/sni/pcimt.c +++ b/arch/mips/sni/pcimt.c | |||
@@ -11,6 +11,7 @@ | |||
11 | 11 | ||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
14 | #include <linux/irq.h> | ||
14 | #include <linux/pci.h> | 15 | #include <linux/pci.h> |
15 | #include <linux/serial_8250.h> | 16 | #include <linux/serial_8250.h> |
16 | 17 | ||
@@ -193,33 +194,24 @@ static struct pci_controller sni_controller = { | |||
193 | .io_map_base = SNI_PORT_BASE | 194 | .io_map_base = SNI_PORT_BASE |
194 | }; | 195 | }; |
195 | 196 | ||
196 | static void enable_pcimt_irq(unsigned int irq) | 197 | static void enable_pcimt_irq(struct irq_data *d) |
197 | { | 198 | { |
198 | unsigned int mask = 1 << (irq - PCIMT_IRQ_INT2); | 199 | unsigned int mask = 1 << (d->irq - PCIMT_IRQ_INT2); |
199 | 200 | ||
200 | *(volatile u8 *) PCIMT_IRQSEL |= mask; | 201 | *(volatile u8 *) PCIMT_IRQSEL |= mask; |
201 | } | 202 | } |
202 | 203 | ||
203 | void disable_pcimt_irq(unsigned int irq) | 204 | void disable_pcimt_irq(struct irq_data *d) |
204 | { | 205 | { |
205 | unsigned int mask = ~(1 << (irq - PCIMT_IRQ_INT2)); | 206 | unsigned int mask = ~(1 << (d->irq - PCIMT_IRQ_INT2)); |
206 | 207 | ||
207 | *(volatile u8 *) PCIMT_IRQSEL &= mask; | 208 | *(volatile u8 *) PCIMT_IRQSEL &= mask; |
208 | } | 209 | } |
209 | 210 | ||
210 | static void end_pcimt_irq(unsigned int irq) | ||
211 | { | ||
212 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) | ||
213 | enable_pcimt_irq(irq); | ||
214 | } | ||
215 | |||
216 | static struct irq_chip pcimt_irq_type = { | 211 | static struct irq_chip pcimt_irq_type = { |
217 | .name = "PCIMT", | 212 | .name = "PCIMT", |
218 | .ack = disable_pcimt_irq, | 213 | .irq_mask = disable_pcimt_irq, |
219 | .mask = disable_pcimt_irq, | 214 | .irq_unmask = enable_pcimt_irq, |
220 | .mask_ack = disable_pcimt_irq, | ||
221 | .unmask = enable_pcimt_irq, | ||
222 | .end = end_pcimt_irq, | ||
223 | }; | 215 | }; |
224 | 216 | ||
225 | /* | 217 | /* |
@@ -304,7 +296,7 @@ void __init sni_pcimt_irq_init(void) | |||
304 | mips_cpu_irq_init(); | 296 | mips_cpu_irq_init(); |
305 | /* Actually we've got more interrupts to handle ... */ | 297 | /* Actually we've got more interrupts to handle ... */ |
306 | for (i = PCIMT_IRQ_INT2; i <= PCIMT_IRQ_SCSI; i++) | 298 | for (i = PCIMT_IRQ_INT2; i <= PCIMT_IRQ_SCSI; i++) |
307 | set_irq_chip_and_handler(i, &pcimt_irq_type, handle_level_irq); | 299 | irq_set_chip_and_handler(i, &pcimt_irq_type, handle_level_irq); |
308 | sni_hwint = sni_pcimt_hwint; | 300 | sni_hwint = sni_pcimt_hwint; |
309 | change_c0_status(ST0_IM, IE_IRQ1|IE_IRQ3); | 301 | change_c0_status(ST0_IM, IE_IRQ1|IE_IRQ3); |
310 | } | 302 | } |
diff --git a/arch/mips/sni/pcit.c b/arch/mips/sni/pcit.c index f4699d35858b..b5246373d16b 100644 --- a/arch/mips/sni/pcit.c +++ b/arch/mips/sni/pcit.c | |||
@@ -10,6 +10,7 @@ | |||
10 | 10 | ||
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/interrupt.h> | 12 | #include <linux/interrupt.h> |
13 | #include <linux/irq.h> | ||
13 | #include <linux/pci.h> | 14 | #include <linux/pci.h> |
14 | #include <linux/serial_8250.h> | 15 | #include <linux/serial_8250.h> |
15 | 16 | ||
@@ -155,33 +156,24 @@ static struct pci_controller sni_pcit_controller = { | |||
155 | .io_map_base = SNI_PORT_BASE | 156 | .io_map_base = SNI_PORT_BASE |
156 | }; | 157 | }; |
157 | 158 | ||
158 | static void enable_pcit_irq(unsigned int irq) | 159 | static void enable_pcit_irq(struct irq_data *d) |
159 | { | 160 | { |
160 | u32 mask = 1 << (irq - SNI_PCIT_INT_START + 24); | 161 | u32 mask = 1 << (d->irq - SNI_PCIT_INT_START + 24); |
161 | 162 | ||
162 | *(volatile u32 *)SNI_PCIT_INT_REG |= mask; | 163 | *(volatile u32 *)SNI_PCIT_INT_REG |= mask; |
163 | } | 164 | } |
164 | 165 | ||
165 | void disable_pcit_irq(unsigned int irq) | 166 | void disable_pcit_irq(struct irq_data *d) |
166 | { | 167 | { |
167 | u32 mask = 1 << (irq - SNI_PCIT_INT_START + 24); | 168 | u32 mask = 1 << (d->irq - SNI_PCIT_INT_START + 24); |
168 | 169 | ||
169 | *(volatile u32 *)SNI_PCIT_INT_REG &= ~mask; | 170 | *(volatile u32 *)SNI_PCIT_INT_REG &= ~mask; |
170 | } | 171 | } |
171 | 172 | ||
172 | void end_pcit_irq(unsigned int irq) | ||
173 | { | ||
174 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) | ||
175 | enable_pcit_irq(irq); | ||
176 | } | ||
177 | |||
178 | static struct irq_chip pcit_irq_type = { | 173 | static struct irq_chip pcit_irq_type = { |
179 | .name = "PCIT", | 174 | .name = "PCIT", |
180 | .ack = disable_pcit_irq, | 175 | .irq_mask = disable_pcit_irq, |
181 | .mask = disable_pcit_irq, | 176 | .irq_unmask = enable_pcit_irq, |
182 | .mask_ack = disable_pcit_irq, | ||
183 | .unmask = enable_pcit_irq, | ||
184 | .end = end_pcit_irq, | ||
185 | }; | 177 | }; |
186 | 178 | ||
187 | static void pcit_hwint1(void) | 179 | static void pcit_hwint1(void) |
@@ -246,7 +238,7 @@ void __init sni_pcit_irq_init(void) | |||
246 | 238 | ||
247 | mips_cpu_irq_init(); | 239 | mips_cpu_irq_init(); |
248 | for (i = SNI_PCIT_INT_START; i <= SNI_PCIT_INT_END; i++) | 240 | for (i = SNI_PCIT_INT_START; i <= SNI_PCIT_INT_END; i++) |
249 | set_irq_chip_and_handler(i, &pcit_irq_type, handle_level_irq); | 241 | irq_set_chip_and_handler(i, &pcit_irq_type, handle_level_irq); |
250 | *(volatile u32 *)SNI_PCIT_INT_REG = 0; | 242 | *(volatile u32 *)SNI_PCIT_INT_REG = 0; |
251 | sni_hwint = sni_pcit_hwint; | 243 | sni_hwint = sni_pcit_hwint; |
252 | change_c0_status(ST0_IM, IE_IRQ1); | 244 | change_c0_status(ST0_IM, IE_IRQ1); |
@@ -259,7 +251,7 @@ void __init sni_pcit_cplus_irq_init(void) | |||
259 | 251 | ||
260 | mips_cpu_irq_init(); | 252 | mips_cpu_irq_init(); |
261 | for (i = SNI_PCIT_INT_START; i <= SNI_PCIT_INT_END; i++) | 253 | for (i = SNI_PCIT_INT_START; i <= SNI_PCIT_INT_END; i++) |
262 | set_irq_chip_and_handler(i, &pcit_irq_type, handle_level_irq); | 254 | irq_set_chip_and_handler(i, &pcit_irq_type, handle_level_irq); |
263 | *(volatile u32 *)SNI_PCIT_INT_REG = 0x40000000; | 255 | *(volatile u32 *)SNI_PCIT_INT_REG = 0x40000000; |
264 | sni_hwint = sni_pcit_hwint_cplus; | 256 | sni_hwint = sni_pcit_hwint_cplus; |
265 | change_c0_status(ST0_IM, IE_IRQ0); | 257 | change_c0_status(ST0_IM, IE_IRQ0); |
diff --git a/arch/mips/sni/rm200.c b/arch/mips/sni/rm200.c index 90c558f7c0fa..a7e5a6d917b1 100644 --- a/arch/mips/sni/rm200.c +++ b/arch/mips/sni/rm200.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/delay.h> | 13 | #include <linux/delay.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
16 | #include <linux/irq.h> | ||
16 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
17 | #include <linux/serial_8250.h> | 18 | #include <linux/serial_8250.h> |
18 | #include <linux/io.h> | 19 | #include <linux/io.h> |
@@ -154,12 +155,11 @@ static __iomem u8 *rm200_pic_slave; | |||
154 | #define cached_master_mask (rm200_cached_irq_mask) | 155 | #define cached_master_mask (rm200_cached_irq_mask) |
155 | #define cached_slave_mask (rm200_cached_irq_mask >> 8) | 156 | #define cached_slave_mask (rm200_cached_irq_mask >> 8) |
156 | 157 | ||
157 | static void sni_rm200_disable_8259A_irq(unsigned int irq) | 158 | static void sni_rm200_disable_8259A_irq(struct irq_data *d) |
158 | { | 159 | { |
159 | unsigned int mask; | 160 | unsigned int mask, irq = d->irq - RM200_I8259A_IRQ_BASE; |
160 | unsigned long flags; | 161 | unsigned long flags; |
161 | 162 | ||
162 | irq -= RM200_I8259A_IRQ_BASE; | ||
163 | mask = 1 << irq; | 163 | mask = 1 << irq; |
164 | raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); | 164 | raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); |
165 | rm200_cached_irq_mask |= mask; | 165 | rm200_cached_irq_mask |= mask; |
@@ -170,12 +170,11 @@ static void sni_rm200_disable_8259A_irq(unsigned int irq) | |||
170 | raw_spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags); | 170 | raw_spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags); |
171 | } | 171 | } |
172 | 172 | ||
173 | static void sni_rm200_enable_8259A_irq(unsigned int irq) | 173 | static void sni_rm200_enable_8259A_irq(struct irq_data *d) |
174 | { | 174 | { |
175 | unsigned int mask; | 175 | unsigned int mask, irq = d->irq - RM200_I8259A_IRQ_BASE; |
176 | unsigned long flags; | 176 | unsigned long flags; |
177 | 177 | ||
178 | irq -= RM200_I8259A_IRQ_BASE; | ||
179 | mask = ~(1 << irq); | 178 | mask = ~(1 << irq); |
180 | raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); | 179 | raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); |
181 | rm200_cached_irq_mask &= mask; | 180 | rm200_cached_irq_mask &= mask; |
@@ -209,12 +208,11 @@ static inline int sni_rm200_i8259A_irq_real(unsigned int irq) | |||
209 | * first, _then_ send the EOI, and the order of EOI | 208 | * first, _then_ send the EOI, and the order of EOI |
210 | * to the two 8259s is important! | 209 | * to the two 8259s is important! |
211 | */ | 210 | */ |
212 | void sni_rm200_mask_and_ack_8259A(unsigned int irq) | 211 | void sni_rm200_mask_and_ack_8259A(struct irq_data *d) |
213 | { | 212 | { |
214 | unsigned int irqmask; | 213 | unsigned int irqmask, irq = d->irq - RM200_I8259A_IRQ_BASE; |
215 | unsigned long flags; | 214 | unsigned long flags; |
216 | 215 | ||
217 | irq -= RM200_I8259A_IRQ_BASE; | ||
218 | irqmask = 1 << irq; | 216 | irqmask = 1 << irq; |
219 | raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); | 217 | raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); |
220 | /* | 218 | /* |
@@ -284,9 +282,9 @@ spurious_8259A_irq: | |||
284 | 282 | ||
285 | static struct irq_chip sni_rm200_i8259A_chip = { | 283 | static struct irq_chip sni_rm200_i8259A_chip = { |
286 | .name = "RM200-XT-PIC", | 284 | .name = "RM200-XT-PIC", |
287 | .mask = sni_rm200_disable_8259A_irq, | 285 | .irq_mask = sni_rm200_disable_8259A_irq, |
288 | .unmask = sni_rm200_enable_8259A_irq, | 286 | .irq_unmask = sni_rm200_enable_8259A_irq, |
289 | .mask_ack = sni_rm200_mask_and_ack_8259A, | 287 | .irq_mask_ack = sni_rm200_mask_and_ack_8259A, |
290 | }; | 288 | }; |
291 | 289 | ||
292 | /* | 290 | /* |
@@ -415,7 +413,7 @@ void __init sni_rm200_i8259_irqs(void) | |||
415 | sni_rm200_init_8259A(); | 413 | sni_rm200_init_8259A(); |
416 | 414 | ||
417 | for (i = RM200_I8259A_IRQ_BASE; i < RM200_I8259A_IRQ_BASE + 16; i++) | 415 | for (i = RM200_I8259A_IRQ_BASE; i < RM200_I8259A_IRQ_BASE + 16; i++) |
418 | set_irq_chip_and_handler(i, &sni_rm200_i8259A_chip, | 416 | irq_set_chip_and_handler(i, &sni_rm200_i8259A_chip, |
419 | handle_level_irq); | 417 | handle_level_irq); |
420 | 418 | ||
421 | setup_irq(RM200_I8259A_IRQ_BASE + PIC_CASCADE_IR, &sni_rm200_irq2); | 419 | setup_irq(RM200_I8259A_IRQ_BASE + PIC_CASCADE_IR, &sni_rm200_irq2); |
@@ -428,33 +426,24 @@ void __init sni_rm200_i8259_irqs(void) | |||
428 | #define SNI_RM200_INT_START 24 | 426 | #define SNI_RM200_INT_START 24 |
429 | #define SNI_RM200_INT_END 28 | 427 | #define SNI_RM200_INT_END 28 |
430 | 428 | ||
431 | static void enable_rm200_irq(unsigned int irq) | 429 | static void enable_rm200_irq(struct irq_data *d) |
432 | { | 430 | { |
433 | unsigned int mask = 1 << (irq - SNI_RM200_INT_START); | 431 | unsigned int mask = 1 << (d->irq - SNI_RM200_INT_START); |
434 | 432 | ||
435 | *(volatile u8 *)SNI_RM200_INT_ENA_REG &= ~mask; | 433 | *(volatile u8 *)SNI_RM200_INT_ENA_REG &= ~mask; |
436 | } | 434 | } |
437 | 435 | ||
438 | void disable_rm200_irq(unsigned int irq) | 436 | void disable_rm200_irq(struct irq_data *d) |
439 | { | 437 | { |
440 | unsigned int mask = 1 << (irq - SNI_RM200_INT_START); | 438 | unsigned int mask = 1 << (d->irq - SNI_RM200_INT_START); |
441 | 439 | ||
442 | *(volatile u8 *)SNI_RM200_INT_ENA_REG |= mask; | 440 | *(volatile u8 *)SNI_RM200_INT_ENA_REG |= mask; |
443 | } | 441 | } |
444 | 442 | ||
445 | void end_rm200_irq(unsigned int irq) | ||
446 | { | ||
447 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) | ||
448 | enable_rm200_irq(irq); | ||
449 | } | ||
450 | |||
451 | static struct irq_chip rm200_irq_type = { | 443 | static struct irq_chip rm200_irq_type = { |
452 | .name = "RM200", | 444 | .name = "RM200", |
453 | .ack = disable_rm200_irq, | 445 | .irq_mask = disable_rm200_irq, |
454 | .mask = disable_rm200_irq, | 446 | .irq_unmask = enable_rm200_irq, |
455 | .mask_ack = disable_rm200_irq, | ||
456 | .unmask = enable_rm200_irq, | ||
457 | .end = end_rm200_irq, | ||
458 | }; | 447 | }; |
459 | 448 | ||
460 | static void sni_rm200_hwint(void) | 449 | static void sni_rm200_hwint(void) |
@@ -488,7 +477,7 @@ void __init sni_rm200_irq_init(void) | |||
488 | mips_cpu_irq_init(); | 477 | mips_cpu_irq_init(); |
489 | /* Actually we've got more interrupts to handle ... */ | 478 | /* Actually we've got more interrupts to handle ... */ |
490 | for (i = SNI_RM200_INT_START; i <= SNI_RM200_INT_END; i++) | 479 | for (i = SNI_RM200_INT_START; i <= SNI_RM200_INT_END; i++) |
491 | set_irq_chip_and_handler(i, &rm200_irq_type, handle_level_irq); | 480 | irq_set_chip_and_handler(i, &rm200_irq_type, handle_level_irq); |
492 | sni_hwint = sni_rm200_hwint; | 481 | sni_hwint = sni_rm200_hwint; |
493 | change_c0_status(ST0_IM, IE_IRQ0); | 482 | change_c0_status(ST0_IM, IE_IRQ0); |
494 | setup_irq(SNI_RM200_INT_START + 0, &sni_rm200_i8259A_irq); | 483 | setup_irq(SNI_RM200_INT_START + 0, &sni_rm200_i8259A_irq); |
diff --git a/arch/mips/sni/time.c b/arch/mips/sni/time.c index f3b60e671207..0904d4d30cb3 100644 --- a/arch/mips/sni/time.c +++ b/arch/mips/sni/time.c | |||
@@ -1,5 +1,6 @@ | |||
1 | #include <linux/types.h> | 1 | #include <linux/types.h> |
2 | #include <linux/interrupt.h> | 2 | #include <linux/interrupt.h> |
3 | #include <linux/irq.h> | ||
3 | #include <linux/smp.h> | 4 | #include <linux/smp.h> |
4 | #include <linux/time.h> | 5 | #include <linux/time.h> |
5 | #include <linux/clockchips.h> | 6 | #include <linux/clockchips.h> |
@@ -94,7 +95,7 @@ static void __init sni_a20r_timer_setup(void) | |||
94 | static __init unsigned long dosample(void) | 95 | static __init unsigned long dosample(void) |
95 | { | 96 | { |
96 | u32 ct0, ct1; | 97 | u32 ct0, ct1; |
97 | volatile u8 msb, lsb; | 98 | volatile u8 msb; |
98 | 99 | ||
99 | /* Start the counter. */ | 100 | /* Start the counter. */ |
100 | outb_p(0x34, 0x43); | 101 | outb_p(0x34, 0x43); |
@@ -107,7 +108,7 @@ static __init unsigned long dosample(void) | |||
107 | /* Latch and spin until top byte of counter0 is zero */ | 108 | /* Latch and spin until top byte of counter0 is zero */ |
108 | do { | 109 | do { |
109 | outb(0x00, 0x43); | 110 | outb(0x00, 0x43); |
110 | lsb = inb(0x40); | 111 | (void) inb(0x40); |
111 | msb = inb(0x40); | 112 | msb = inb(0x40); |
112 | ct1 = read_c0_count(); | 113 | ct1 = read_c0_count(); |
113 | } while (msb); | 114 | } while (msb); |