Loading arch/mips/kernel/i8253.c +12 −11 Original line number Original line Diff line number Diff line Loading @@ -12,6 +12,7 @@ #include <asm/delay.h> #include <asm/delay.h> #include <asm/i8253.h> #include <asm/i8253.h> #include <asm/io.h> #include <asm/io.h> #include <asm/time.h> static DEFINE_SPINLOCK(i8253_lock); static DEFINE_SPINLOCK(i8253_lock); Loading Loading @@ -87,11 +88,10 @@ struct clock_event_device pit_clockevent = { .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, .set_mode = init_pit_timer, .set_mode = init_pit_timer, .set_next_event = pit_next_event, .set_next_event = pit_next_event, .shift = 32, .irq = 0, .irq = 0, }; }; irqreturn_t timer_interrupt(int irq, void *dev_id) static irqreturn_t timer_interrupt(int irq, void *dev_id) { { pit_clockevent.event_handler(&pit_clockevent); pit_clockevent.event_handler(&pit_clockevent); Loading @@ -111,19 +111,20 @@ static struct irqaction irq0 = { */ */ void __init setup_pit_timer(void) void __init setup_pit_timer(void) { { struct clock_event_device *cd = &pit_clockevent; unsigned int cpu = smp_processor_id(); /* /* * Start pit with the boot cpu mask and make it global after the * Start pit with the boot cpu mask and make it global after the * IO_APIC has been initialized. * IO_APIC has been initialized. */ */ pit_clockevent.cpumask = cpumask_of_cpu(0); cd->cpumask = cpumask_of_cpu(cpu); pit_clockevent.mult = div_sc(CLOCK_TICK_RATE, NSEC_PER_SEC, 32); clockevent_set_clock(cd, CLOCK_TICK_RATE); pit_clockevent.max_delta_ns = cd->max_delta_ns = clockevent_delta2ns(0x7FFF, cd); clockevent_delta2ns(0x7FFF, &pit_clockevent); cd->min_delta_ns = clockevent_delta2ns(0xF, cd); pit_clockevent.min_delta_ns = clockevents_register_device(cd); clockevent_delta2ns(0xF, &pit_clockevent); clockevents_register_device(&pit_clockevent); irq0.mask = cpumask_of_cpu(cpu); irq0.mask = cpumask_of_cpu(0); setup_irq(0, &irq0); setup_irq(0, &irq0); } } Loading Loading
arch/mips/kernel/i8253.c +12 −11 Original line number Original line Diff line number Diff line Loading @@ -12,6 +12,7 @@ #include <asm/delay.h> #include <asm/delay.h> #include <asm/i8253.h> #include <asm/i8253.h> #include <asm/io.h> #include <asm/io.h> #include <asm/time.h> static DEFINE_SPINLOCK(i8253_lock); static DEFINE_SPINLOCK(i8253_lock); Loading Loading @@ -87,11 +88,10 @@ struct clock_event_device pit_clockevent = { .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, .set_mode = init_pit_timer, .set_mode = init_pit_timer, .set_next_event = pit_next_event, .set_next_event = pit_next_event, .shift = 32, .irq = 0, .irq = 0, }; }; irqreturn_t timer_interrupt(int irq, void *dev_id) static irqreturn_t timer_interrupt(int irq, void *dev_id) { { pit_clockevent.event_handler(&pit_clockevent); pit_clockevent.event_handler(&pit_clockevent); Loading @@ -111,19 +111,20 @@ static struct irqaction irq0 = { */ */ void __init setup_pit_timer(void) void __init setup_pit_timer(void) { { struct clock_event_device *cd = &pit_clockevent; unsigned int cpu = smp_processor_id(); /* /* * Start pit with the boot cpu mask and make it global after the * Start pit with the boot cpu mask and make it global after the * IO_APIC has been initialized. * IO_APIC has been initialized. */ */ pit_clockevent.cpumask = cpumask_of_cpu(0); cd->cpumask = cpumask_of_cpu(cpu); pit_clockevent.mult = div_sc(CLOCK_TICK_RATE, NSEC_PER_SEC, 32); clockevent_set_clock(cd, CLOCK_TICK_RATE); pit_clockevent.max_delta_ns = cd->max_delta_ns = clockevent_delta2ns(0x7FFF, cd); clockevent_delta2ns(0x7FFF, &pit_clockevent); cd->min_delta_ns = clockevent_delta2ns(0xF, cd); pit_clockevent.min_delta_ns = clockevents_register_device(cd); clockevent_delta2ns(0xF, &pit_clockevent); clockevents_register_device(&pit_clockevent); irq0.mask = cpumask_of_cpu(cpu); irq0.mask = cpumask_of_cpu(0); setup_irq(0, &irq0); setup_irq(0, &irq0); } } Loading