[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.