From patchwork Sat Jul 2 22:53:03 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin Herrenschmidt X-Patchwork-Id: 643634 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3rhpTq2MMdz9s5g for ; Sun, 3 Jul 2016 08:53:19 +1000 (AEST) Received: from ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3rhpTq1gb9zDqnh for ; Sun, 3 Jul 2016 08:53:19 +1000 (AEST) X-Original-To: skiboot@lists.ozlabs.org Delivered-To: skiboot@lists.ozlabs.org Received: from gate.crashing.org (gate.crashing.org [63.228.1.57]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3rhpTf2G2WzDqnG for ; Sun, 3 Jul 2016 08:53:08 +1000 (AEST) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.13.8) with ESMTP id u62Mr1iA003833 for ; Sat, 2 Jul 2016 17:53:03 -0500 Message-ID: <1467499983.7422.81.camel@kernel.crashing.org> From: Benjamin Herrenschmidt To: skiboot@lists.ozlabs.org Date: Sun, 03 Jul 2016 08:53:03 +1000 X-Mailer: Evolution 3.20.3 (3.20.3-1.fc24.1) Mime-Version: 1.0 Subject: [Skiboot] [PATCH 23/33 v2] interrupts: Use a #interrupt-cells of 2 for XICS interrupts X-BeenThere: skiboot@lists.ozlabs.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Mailing list for skiboot development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Skiboot" This is more compliant with PAPR, it will also allow us to use the second cell for other attributes on P9. Signed-off-by: Benjamin Herrenschmidt --- v2. Fix a couple of places where we created 1-cell properties core/interrupts.c | 2 +- doc/device-tree.txt | 1 - hdata/test/p8-840-spira.dt | 6 ------ hdata/test/p81-811.spira.dt | 20 -------------------- hw/npu.c | 22 +++++++++++++--------- hw/p7ioc-phb.c | 6 +++++- hw/p7ioc.c | 2 +- hw/phb3.c | 6 +++++- hw/phb4.c | 6 +++++- hw/psi.c | 2 +- platforms/rhesus/rhesus.c | 2 +- 11 files changed, 32 insertions(+), 43 deletions(-) diff --git a/core/interrupts.c b/core/interrupts.c index db39267..7109fae 100644 --- a/core/interrupts.c +++ b/core/interrupts.c @@ -143,7 +143,7 @@ struct dt_node *add_ics_node(void) dt_add_property_strings(ics, "compatible", "IBM,ppc-xics", "IBM,opal-xics"); dt_add_property_cells(ics, "#address-cells", 0); - dt_add_property_cells(ics, "#interrupt-cells", 1); + dt_add_property_cells(ics, "#interrupt-cells", 2); dt_add_property_string(ics, "device_type", "PowerPC-Interrupt-Source-Controller"); dt_add_property(ics, "interrupt-controller", NULL, 0); diff --git a/doc/device-tree.txt b/doc/device-tree.txt index a231d53..742ff43 100644 --- a/doc/device-tree.txt +++ b/doc/device-tree.txt @@ -305,7 +305,6 @@ compatible = "IBM,ppc-xicp", "IBM,power8-icp"; interrupt-controller; #address-cells = <0x0>; - #interrupt-cells = <0x1>; device_type = "PowerPC-External-Interrupt-Presentation"; /* diff --git a/hdata/test/p8-840-spira.dt b/hdata/test/p8-840-spira.dt index 8746bea..324b616 100644 --- a/hdata/test/p8-840-spira.dt +++ b/hdata/test/p8-840-spira.dt @@ -548,7 +548,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8002d00000000000000010000003ffff8002e00000000000000010000003ffff 8002f0000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80060000 @@ -560,7 +559,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8006500000000000000010000003ffff8006600000000000000010000003ffff 800670000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80068000 @@ -572,7 +570,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8006d00000000000000010000003ffff8006e00000000000000010000003ffff 8006f0000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80130000 @@ -584,7 +581,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8013500000000000000010000003ffff8013600000000000000010000003ffff 801370000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80168000 @@ -596,7 +592,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8016d00000000000000010000003ffff8016e00000000000000010000003ffff 8016f0000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80170000 @@ -608,7 +603,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8017500000000000000010000003ffff8017600000000000000010000003ffff 801770000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: ipl-params diff --git a/hdata/test/p81-811.spira.dt b/hdata/test/p81-811.spira.dt index 068152c..5b792b4 100644 --- a/hdata/test/p81-811.spira.dt +++ b/hdata/test/p81-811.spira.dt @@ -1453,7 +1453,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8002500000000000000010000003ffff8002600000000000000010000003ffff 800270000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80030000 @@ -1465,7 +1464,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8003500000000000000010000003ffff8003600000000000000010000003ffff 800370000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80060000 @@ -1477,7 +1475,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8006500000000000000010000003ffff8006600000000000000010000003ffff 800670000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80068000 @@ -1489,7 +1486,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8006d00000000000000010000003ffff8006e00000000000000010000003ffff 8006f0000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80070000 @@ -1501,7 +1497,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8007500000000000000010000003ffff8007600000000000000010000003ffff 800770000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80128000 @@ -1513,7 +1508,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8012d00000000000000010000003ffff8012e00000000000000010000003ffff 8012f0000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80130000 @@ -1525,7 +1519,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8013500000000000000010000003ffff8013600000000000000010000003ffff 801370000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80160000 @@ -1537,7 +1530,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8016500000000000000010000003ffff8016600000000000000010000003ffff 801670000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80168000 @@ -1549,7 +1541,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8016d00000000000000010000003ffff8016e00000000000000010000003ffff 8016f0000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80170000 @@ -1561,7 +1552,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8017500000000000000010000003ffff8017600000000000000010000003ffff 801770000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80828000 @@ -1573,7 +1563,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8082d00000000000000010000003ffff8082e00000000000000010000003ffff 8082f0000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80830000 @@ -1585,7 +1574,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8083500000000000000010000003ffff8083600000000000000010000003ffff 808370000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80860000 @@ -1597,7 +1585,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8086500000000000000010000003ffff8086600000000000000010000003ffff 808670000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80868000 @@ -1609,7 +1596,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8086d00000000000000010000003ffff8086e00000000000000010000003ffff 8086f0000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80870000 @@ -1621,7 +1607,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8087500000000000000010000003ffff8087600000000000000010000003ffff 808770000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80920000 @@ -1633,7 +1618,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8092500000000000000010000003ffff8092600000000000000010000003ffff 809270000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80928000 @@ -1645,7 +1629,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8092d00000000000000010000003ffff8092e00000000000000010000003ffff 8092f0000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80930000 @@ -1657,7 +1640,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8093500000000000000010000003ffff8093600000000000000010000003ffff 809370000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80968000 @@ -1669,7 +1651,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8096d00000000000000010000003ffff8096e00000000000000010000003ffff 8096f0000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: interrupt-controller@3ffff80970000 @@ -1681,7 +1662,6 @@ prop: ibm,enabled-idle-states size: 24 val: 6e617000666173742d736c65657000727677 0010000003ffff8097500000000000000010000003ffff8097600000000000000010000003ffff 809770000000000000001000 prop: #address-cells size: 4 val: 00000000 - prop: #interrupt-cells size: 4 val: 00000001 prop: device_type size: 40 val: 506f77657250432d45787465726e616c2d496e746572727570742d50726573656e746174696f 6e00 node: ipl-params diff --git a/hw/npu.c b/hw/npu.c index f535f8a..34b4f26 100644 --- a/hw/npu.c +++ b/hw/npu.c @@ -1760,15 +1760,19 @@ static void npu_add_phb_properties(struct npu *p) dt_add_property_cells(np, "interrupt-parent", icsp); /* DLPL Interrupts */ - p->phb.lstate.int_size = 1; - p->phb.lstate.int_val[0][0] = p->base_lsi + NPU_LSI_INT_DL0; - p->phb.lstate.int_val[1][0] = p->base_lsi + NPU_LSI_INT_DL1; - p->phb.lstate.int_val[2][0] = p->base_lsi + NPU_LSI_INT_DL2; - p->phb.lstate.int_val[3][0] = p->base_lsi + NPU_LSI_INT_DL3; - p->phb.lstate.int_parent[0] = icsp; - p->phb.lstate.int_parent[1] = icsp; - p->phb.lstate.int_parent[2] = icsp; - p->phb.lstate.int_parent[3] = icsp; + p->phb.lstate.int_size = 2; + p->phb.lstate.int_val[0][0] = p->base_lsi + NPU_LSI_INT_DL0; + p->phb.lstate.int_val[0][1] = 1; + p->phb.lstate.int_val[1][0] = p->base_lsi + NPU_LSI_INT_DL1; + p->phb.lstate.int_val[1][1] = 1; + p->phb.lstate.int_val[2][0] = p->base_lsi + NPU_LSI_INT_DL2; + p->phb.lstate.int_val[2][1] = 1; + p->phb.lstate.int_val[3][0] = p->base_lsi + NPU_LSI_INT_DL3; + p->phb.lstate.int_val[3][1] = 1; + p->phb.lstate.int_parent[0] = icsp; + p->phb.lstate.int_parent[1] = icsp; + p->phb.lstate.int_parent[2] = icsp; + p->phb.lstate.int_parent[3] = icsp; /* Due to the way the emulated PCI devices are structured in * the device tree the core PCI layer doesn't do this for diff --git a/hw/p7ioc-phb.c b/hw/p7ioc-phb.c index 96554c8..6f5a6ab 100644 --- a/hw/p7ioc-phb.c +++ b/hw/p7ioc-phb.c @@ -2617,11 +2617,15 @@ static void p7ioc_pcie_add_node(struct p7ioc_phb *p) * PCI code based on the content of this structure: */ lsibase = p->buid_lsi << 4; - p->phb.lstate.int_size = 1; + p->phb.lstate.int_size = 2; p->phb.lstate.int_val[0][0] = lsibase + PHB_LSI_PCIE_INTA; + p->phb.lstate.int_val[0][1] = 1; p->phb.lstate.int_val[1][0] = lsibase + PHB_LSI_PCIE_INTB; + p->phb.lstate.int_val[1][1] = 1; p->phb.lstate.int_val[2][0] = lsibase + PHB_LSI_PCIE_INTC; + p->phb.lstate.int_val[2][1] = 1; p->phb.lstate.int_val[3][0] = lsibase + PHB_LSI_PCIE_INTD; + p->phb.lstate.int_val[3][1] = 1; p->phb.lstate.int_parent[0] = icsp; p->phb.lstate.int_parent[1] = icsp; p->phb.lstate.int_parent[2] = icsp; diff --git a/hw/p7ioc.c b/hw/p7ioc.c index 85a0a51..e690200 100644 --- a/hw/p7ioc.c +++ b/hw/p7ioc.c @@ -629,7 +629,7 @@ static void p7ioc_create_hub(struct dt_node *np) dt_add_property_cells(np, "ibm,opal-hubid", 0, id); /* XXX Fixme: how many RGC interrupts ? */ - dt_add_property_cells(np, "interrupts", ioc->rgc_buid << 4); + dt_add_property_cells(np, "interrupts", ioc->rgc_buid << 4, 1); dt_add_property_cells(np, "interrupt-base", ioc->rgc_buid << 4); /* XXX What about ibm,opal-mmio-real ? */ diff --git a/hw/phb3.c b/hw/phb3.c index b792bdc..8e4c544 100644 --- a/hw/phb3.c +++ b/hw/phb3.c @@ -4248,11 +4248,15 @@ static void phb3_add_properties(struct phb3 *p) * PCI code based on the content of this structure: */ lsibase = p->base_lsi; - p->phb.lstate.int_size = 1; + p->phb.lstate.int_size = 2; p->phb.lstate.int_val[0][0] = lsibase + PHB3_LSI_PCIE_INTA; + p->phb.lstate.int_val[0][1] = 1; p->phb.lstate.int_val[1][0] = lsibase + PHB3_LSI_PCIE_INTB; + p->phb.lstate.int_val[1][1] = 1; p->phb.lstate.int_val[2][0] = lsibase + PHB3_LSI_PCIE_INTC; + p->phb.lstate.int_val[2][1] = 1; p->phb.lstate.int_val[3][0] = lsibase + PHB3_LSI_PCIE_INTD; + p->phb.lstate.int_val[3][1] = 1; p->phb.lstate.int_parent[0] = icsp; p->phb.lstate.int_parent[1] = icsp; p->phb.lstate.int_parent[2] = icsp; diff --git a/hw/phb4.c b/hw/phb4.c index 31b340f..cf5742b 100644 --- a/hw/phb4.c +++ b/hw/phb4.c @@ -2923,11 +2923,15 @@ static void phb4_add_properties(struct phb4 *p) * PCI code based on the content of this structure: */ lsibase = p->base_lsi; - p->phb.lstate.int_size = 1; + p->phb.lstate.int_size = 2; p->phb.lstate.int_val[0][0] = lsibase + PHB4_LSI_PCIE_INTA; + p->phb.lstate.int_val[0][1] = 1; p->phb.lstate.int_val[1][0] = lsibase + PHB4_LSI_PCIE_INTB; + p->phb.lstate.int_val[1][1] = 1; p->phb.lstate.int_val[2][0] = lsibase + PHB4_LSI_PCIE_INTC; + p->phb.lstate.int_val[2][1] = 1; p->phb.lstate.int_val[3][0] = lsibase + PHB4_LSI_PCIE_INTD; + p->phb.lstate.int_val[3][1] = 1; p->phb.lstate.int_parent[0] = icsp; p->phb.lstate.int_parent[1] = icsp; p->phb.lstate.int_parent[2] = icsp; diff --git a/hw/psi.c b/hw/psi.c index 0823ec8..46e059a 100644 --- a/hw/psi.c +++ b/hw/psi.c @@ -783,7 +783,7 @@ static void psi_create_mm_dtnode(struct psi *psi) dt_add_property_strings(np, "compatible", "ibm,psi"); } dt_add_property_cells(np, "interrupt-parent", get_ics_phandle()); - dt_add_property_cells(np, "interrupts", psi->interrupt); + dt_add_property_cells(np, "interrupts", psi->interrupt, 1); dt_add_property_cells(np, "ibm,chip-id", psi->chip_id); } diff --git a/platforms/rhesus/rhesus.c b/platforms/rhesus/rhesus.c index a3af777..a6c3f76 100644 --- a/platforms/rhesus/rhesus.c +++ b/platforms/rhesus/rhesus.c @@ -199,7 +199,7 @@ static void rhesus_dt_fixup_uart(struct dt_node *lpc, bool has_irq) if (has_irq) { uint32_t chip_id = dt_get_chip_id(lpc); uint32_t irq = get_psi_interrupt(chip_id) + P8_IRQ_PSI_HOST_ERR; - dt_add_property_cells(uart, "interrupts", irq); + dt_add_property_cells(uart, "interrupts", irq, 1); dt_add_property_cells(uart, "interrupt-parent", get_ics_phandle()); }