[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V2 16/33] xen/arm: Retrieve timer interrupts from the device tree
> @@ -167,6 +204,15 @@ static void vtimer_interrupt(int irq, void *dev_id, > struct cpu_user_regs *regs) > vgic_vcpu_inject_irq(current, irq, 1); > } > > +/* Route timer's IRQ on this CPU */ > +void __cpuinit route_timer_interrupt(void) > +{ > + gic_route_dt_irq(&timer_irq[PHYS_NONSECURE_PPI], > + 1u << smp_processor_id(), 0xa0); > + gic_route_dt_irq(&timer_irq[HYP_PPI], 1u << smp_processor_id(), 0xa0); > + gic_route_dt_irq(&timer_irq[VIRT_PPI], 1u << smp_processor_id(), 0xa0); It occurs to me that this guy (and the underlying function) should probably take a cpumask_t. Not now though. > +} > + > /* Set up the timer interrupt on this CPU */ > void __cpuinit init_timer_interrupt(void) > { > @@ -184,10 +230,11 @@ void __cpuinit init_timer_interrupt(void) > WRITE_SYSREG32(0, CNTHP_CTL_EL2); /* Hypervisor's timer disabled */ > isb(); > > - /* XXX Need to find this IRQ number from devicetree? */ > - request_irq(26, timer_interrupt, 0, "hyptimer", NULL); > - request_irq(27, vtimer_interrupt, 0, "virtimer", NULL); > - request_irq(30, timer_interrupt, 0, "phytimer", NULL); > + request_dt_irq(&timer_irq[HYP_PPI], timer_interrupt, 0, "hyptimer", > NULL); > + request_dt_irq(&timer_irq[VIRT_PPI], vtimer_interrupt, 0, > + "virtimer", NULL); > + request_dt_irq(&timer_irq[PHYS_NONSECURE_PPI], timer_interrupt, 2, > + "phytimer", NULL); Why the change to flags == 2 here? Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |