|
[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 |