• Grant Likely's avatar
    of/irq: Refactor interrupt-map parsing · 23616132
    Grant Likely authored
    All the users of of_irq_parse_raw pass in a raw interrupt specifier from
    the device tree and expect it to be returned (possibly modified) in an
    of_phandle_args structure. However, the primary function of
    of_irq_parse_raw() is to check for translations due to the presence of
    one or more interrupt-map properties. The actual placing of the data
    into an of_phandle_args structure is trivial. If it is refactored to
    accept an of_phandle_args structure directly, then it becomes possible
    to consume of_phandle_args from other sources. This is important for an
    upcoming patch that allows a device to be connected to more than one
    interrupt parent. It also simplifies the code a bit.
    
    The biggest complication with this patch is that the old version works
    on the interrupt specifiers in __be32 form, but the of_phandle_args
    structure is intended to carry it in the cpu-native version. A bit of
    churn was required to make this work. In the end it results in tighter
    code, so the churn is worth it.
    Signed-off-by: default avatarGrant Likely <grant.likely@linaro.org>
    Acked-by: default avatarTony Lindgren <tony@atomide.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    23616132
of_pci_irq.c 2.85 KB