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

Re: [Xen-devel] [PATCH 4/6] xen/arm: platforms: Add Tegra platform to support basic IRQ routing



Hi Chris,

On 07/07/17 19:08, Chris Patterson wrote:
On Fri, Jul 7, 2017 at 12:25 PM, Julien Grall <julien.grall@xxxxxxx> wrote:
Hi Chris,


On 06/07/17 23:00, Chris Patterson wrote:

The purpose of tegra_interrupt_compat is to maintain a tegra-specific
whitelist of interrupt controllers we know how to route.  Presumably,
there may be custom boards out there that may have additional
interrupt routing capabilities that this patch set would not support
as-is.  I'm not sure of an appropriate way to maintain that logic and
merge them.  However, I am certainly open to suggestion, if you have
any ideas.



Those custom boards would likely have a different machine compatible
string
because the SOC would be different. So I think the tegra_interrupt_compat
is
not necessary.


Sorry about the delayed response...

This check effectively filters out GPIO controllers.  Any GPIO-sourced
interrupts route through the GPIO controller's interrupt, and need not
apply for map_irq_to_domain().  Devices requiring GPIO-based
interrupts would need to be passed through with the associated
controller (or maybe virtualize the GPIO routing?).


I am a bit confused. Could you give a concrete example based on tegra
platform?


I'm thinking of devices where interrupt-parent is &gpio (as opposed to
&lic or &gic). Here is an example on tegra-smaug:

wifi: wifi_bcm4354 {
    compatible = "bcm,bcm4354";
    interrupt-parent = <&gpio>;
    interrupts = <TEGRA_GPIO(H, 2) IRQ_TYPE_LEVEL_HIGH>;
    wl_reg_on = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
    wl_host_wake = <&gpio TEGRA_GPIO(H, 2) IRQ_TYPE_LEVEL_HIGH>;
    nvidia,pmc-wakeup = <&pmc
    PMC_WAKE_TYPE_EVENT 8 PMC_TRIGGER_TYPE_HIGH>;
};


Hmmm, you are right here. What confuse me is the comment on the top of tegra_irq_is_routable:

/*
 * Returns true iff the given IRQ is routable -- that is, if it i descended
 * from the platform's primary GIC.
 */

In both GPIO and LIC, the final interrupt will be coming from the GIC.
However, the later seems to have a direct translation with the GIC, hence why they are routable. Right?

If so I would update the comment to make it clear.

Cheers,

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

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