lkml.org 
[lkml]   [2018]   [Apr]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 169/183] irqchip/gic-v3: Ignore disabled ITS nodes
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Stephen Boyd <sboyd@codeaurora.org>


    [ Upstream commit 95a2562590c2f64a0398183f978d5cf3db6d0284 ]

    On some platforms there's an ITS available but it's not enabled
    because reading or writing the registers is denied by the
    firmware. In fact, reading or writing them will cause the system
    to reset. We could remove the node from DT in such a case, but
    it's better to skip nodes that are marked as "disabled" in DT so
    that we can describe the hardware that exists and use the status
    property to indicate how the firmware has configured things.

    Cc: Stuart Yoder <stuyoder@gmail.com>
    Cc: Laurentiu Tudor <laurentiu.tudor@nxp.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Rajendra Nayak <rnayak@codeaurora.org>
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/irqchip/irq-gic-v3-its-pci-msi.c | 2 ++
    drivers/irqchip/irq-gic-v3-its-platform-msi.c | 2 ++
    drivers/irqchip/irq-gic-v3-its.c | 2 ++
    drivers/staging/fsl-mc/bus/irq-gic-v3-its-fsl-mc-msi.c | 2 ++
    4 files changed, 8 insertions(+)

    --- a/drivers/irqchip/irq-gic-v3-its-pci-msi.c
    +++ b/drivers/irqchip/irq-gic-v3-its-pci-msi.c
    @@ -132,6 +132,8 @@ static int __init its_pci_of_msi_init(vo

    for (np = of_find_matching_node(NULL, its_device_id); np;
    np = of_find_matching_node(np, its_device_id)) {
    + if (!of_device_is_available(np))
    + continue;
    if (!of_property_read_bool(np, "msi-controller"))
    continue;

    --- a/drivers/irqchip/irq-gic-v3-its-platform-msi.c
    +++ b/drivers/irqchip/irq-gic-v3-its-platform-msi.c
    @@ -154,6 +154,8 @@ static void __init its_pmsi_of_init(void

    for (np = of_find_matching_node(NULL, its_device_id); np;
    np = of_find_matching_node(np, its_device_id)) {
    + if (!of_device_is_available(np))
    + continue;
    if (!of_property_read_bool(np, "msi-controller"))
    continue;

    --- a/drivers/irqchip/irq-gic-v3-its.c
    +++ b/drivers/irqchip/irq-gic-v3-its.c
    @@ -3083,6 +3083,8 @@ static int __init its_of_probe(struct de

    for (np = of_find_matching_node(node, its_device_id); np;
    np = of_find_matching_node(np, its_device_id)) {
    + if (!of_device_is_available(np))
    + continue;
    if (!of_property_read_bool(np, "msi-controller")) {
    pr_warn("%pOF: no msi-controller property, ITS ignored\n",
    np);
    --- a/drivers/staging/fsl-mc/bus/irq-gic-v3-its-fsl-mc-msi.c
    +++ b/drivers/staging/fsl-mc/bus/irq-gic-v3-its-fsl-mc-msi.c
    @@ -75,6 +75,8 @@ int __init its_fsl_mc_msi_init(void)

    for (np = of_find_matching_node(NULL, its_device_id); np;
    np = of_find_matching_node(np, its_device_id)) {
    + if (!of_device_is_available(np))
    + continue;
    if (!of_property_read_bool(np, "msi-controller"))
    continue;


    \
     
     \ /
      Last update: 2018-04-25 12:51    [W:4.260 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site