[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [RFC 13/29] xen/arm: Use hierarchical device tree to retrieve GIC information



On 04/30/2013 10:34 AM, Ian Campbell wrote:

> On Mon, 2013-04-29 at 21:42 +0100, Julien Grall wrote:
>> On 04/29/2013 04:35 PM, Ian Campbell wrote:
>>
>>> On Mon, 2013-04-29 at 00:01 +0100, Julien Grall wrote:
>>>> - Remove early parsing for GIC addresses
>>>> - Remove hard coded maintenance IRQ number
>>>
>>> At last, the payoff!
>>>
>>>>
>>>> Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
>>>> ---
>>>>  xen/arch/arm/gic.c            |   63 
>>>> ++++++++++++++++++++++++++++-------------
>>>>  xen/common/device_tree.c      |   42 ---------------------------
>>>
>>> I like this line!
>>>
>>>> @@ -464,7 +486,7 @@ void gic_route_ppis(void)
>>>>  {
>>>>      /* XXX should get these from DT */
>>>>      /* GIC maintenance */
>>>> -    gic_route_irq(25, 1, 1u << smp_processor_id(), 0xa0);
>>>> +    gic_route_dt_irq(&gic.maintenance, 1u << smp_processor_id(), 0xa0);
>>>>      /* Hypervisor Timer */
>>>>      gic_route_irq(26, 1, 1u << smp_processor_id(), 0xa0);
>>>>      /* Virtual Timer */
>>>> @@ -813,7 +835,8 @@ void gic_dump_info(struct vcpu *v)
>>>>  
>>>>  void __cpuinit init_maintenance_interrupt(void)
>>>>  {
>>>> -    request_irq(25, maintenance_interrupt, 0, "irq-maintenance", NULL);
>>>> +    request_irq(gic.maintenance.irq, maintenance_interrupt,
>>>> +                0, "irq-maintenance", NULL);
>>>
>>> Would a dt_request_irq be useful anywhere other than here?
>>
>> As all the interrupts should be retrieved from the device_tree could we
>> remove request_irq for ARM (ie move request_irq definition to
>> asm-x86/irq.h)? It's also a safe guard for developper to avoid hardcoded
>> IRQ.
> 
> Might be something to consider for 4.4, needs discussion with the x86
> chaps and Keir?
> 
> Since request_irq is implerment in arch code we could just skip it, then
> link errors would do the rest.

What do you mean by "implement in arch code"? Except on UART driver
(pl011 and exynos4210) I don't see any usage in common code.
I have also notice that I should create dt_setup_irq. The setup_irq is
used in UART driver.

>> Then we can:
>>   1) modify irq argument type
>>   2) rename the function in request_dt_irq
>>
>> I'm not sure the latter is usefull.
>>
> 
> 



_______________________________________________
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®.