Message ID | 20200806074826.24607-1-lokeshvutla@ti.com (mailing list archive) |
---|---|
Headers | show |
Series | irqchip: ti, sci-intr/inta: Update the dt bindings to accept different interrupt parents | expand |
Nishanth, Tero, On 06/08/20 1:18 pm, Lokesh Vutla wrote: > Hi Marc, > This is continuation of the RFC patches[0] regarding the driver > updates to support for following interrupt parent connection: > - INTR -> INTR > - INTA -> GICv3 > The current existing driver assumes that INTR is always connected to > GICv3 and INTA is always connected to INTR. > > As discussed this change breaks the DT backward compatibility but it > allows to not depend on TISCI firmware properties in DT node. IMHO, this > will ensure that any future changes will not effect DT properties. > > This series depends on the the new Yaml bindings for common TISCI[1]. > > [0] https://lore.kernel.org/linux-arm-kernel/20190923042405.26064-1-lokeshvutla@ti.com/ > [1] https://patchwork.kernel.org/patch/11676843/ > > Tested with: (There is a build error on Today's master while building dtbs. So I enabled > only the TI specific components for building DTBS). > - DT_SCHEMA_FILES="Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml" > v8make dt_binding_check > - DT_SCHEMA_FILES="Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml" > v8make dt_binding_check > - DT_SCHEMA_FILES="Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml" > v8make dtbs_check > - DT_SCHEMA_FILES="Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml" > v8make dtbs_check > - v8make allmodconfig > > Changes since v5: > - Rebased on latest master. > - Collected Reviewed-by from Rob. > - Included DT changes in the same series so that everything can be merged in a single go. > Without DT changes, there are regressions for DMA and other consumer peripherals so suggestion > is to merge everthing in a single go. DT changes apply cleanly on next and Linus's master > without any merge conflicts. Can you Ack the DT patches? Thanks and regards, Lokesh
Hi Marc On 06/08/20 1:18 pm, Lokesh Vutla wrote: > Hi Marc, > This is continuation of the RFC patches[0] regarding the driver > updates to support for following interrupt parent connection: > - INTR -> INTR > - INTA -> GICv3 > The current existing driver assumes that INTR is always connected to > GICv3 and INTA is always connected to INTR. > > As discussed this change breaks the DT backward compatibility but it > allows to not depend on TISCI firmware properties in DT node. IMHO, this > will ensure that any future changes will not effect DT properties. > > This series depends on the the new Yaml bindings for common TISCI[1]. This dependency is merged into mainline[0]. Is it possible to pull this series in or is it too late to ask now? [0] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/Documentation/devicetree/bindings/mailbox/omap-mailbox.txt?id=2a2180206ab62b42c6a7fd3d77c47c3675cbc893 Thanks and regards, Lokesh > > [0] https://lore.kernel.org/linux-arm-kernel/20190923042405.26064-1-lokeshvutla@ti.com/ > [1] https://patchwork.kernel.org/patch/11676843/ > > Tested with: (There is a build error on Today's master while building dtbs. So I enabled > only the TI specific components for building DTBS). > - DT_SCHEMA_FILES="Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml" > v8make dt_binding_check > - DT_SCHEMA_FILES="Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml" > v8make dt_binding_check > - DT_SCHEMA_FILES="Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml" > v8make dtbs_check > - DT_SCHEMA_FILES="Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml" > v8make dtbs_check > - v8make allmodconfig > > Changes since v5: > - Rebased on latest master. > - Collected Reviewed-by from Rob. > - Included DT changes in the same series so that everything can be merged in a single go. > Without DT changes, there are regressions for DMA and other consumer peripherals so suggestion > is to merge everthing in a single go. DT changes apply cleanly on next and Linus's master > without any merge conflicts. > > Changes since v4: > - Fixed Rob's comment on INTR and INTA yaml documentation > - Collected Reviewed-by's and Acked-by's > > Changes since v3: > - Hardcode param_count based on parent instead of reading it from DT. > - Drop storing TISCI device id in platform device id field. > > Changes since v2: > - Fixed comments from Rob > - Fixed DT schema warnings. > > Changes since v1: > - Rebased on top of latest Linux master > - Dropped DT patches. > > Lokesh Vutla (13): > firmware: ti_sci: Drop the device id to resource type translation > firmware: ti_sci: Drop unused structure ti_sci_rm_type_map > firmware: ti_sci: Add support for getting resource with subtype > dt-bindings: irqchip: ti,sci-intr: Update bindings to drop the usage > of gic as parent > dt-bindings: irqchip: Convert ti,sci-intr bindings to yaml > irqchip/ti-sci-intr: Add support for INTR being a parent to INTR > dt-bindings: irqchip: ti,sci-inta: Update docs to support different > parent. > dt-bindings: irqchip: Convert ti,sci-inta bindings to yaml > irqchip/ti-sci-inta: Do not store TISCI device id in platform device > id field > irqchip/ti-sci-inta: Add support for INTA directly connecting to GIC > arm64: dts: k3-j721e: ti-sci-inta/intr: Update to latest bindings > arm64: dts: k3-am65: ti-sci-inta/intr: Update to latest bindings > arm64: dts: k3-am65: Update the RM resource types > > .../interrupt-controller/ti,sci-inta.txt | 66 -------- > .../interrupt-controller/ti,sci-inta.yaml | 98 +++++++++++ > .../interrupt-controller/ti,sci-intr.txt | 82 --------- > .../interrupt-controller/ti,sci-intr.yaml | 102 ++++++++++++ > MAINTAINERS | 4 +- > arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 36 ++-- > arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi | 12 +- > arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi | 8 +- > .../arm64/boot/dts/ti/k3-am654-base-board.dts | 4 +- > .../dts/ti/k3-j721e-common-proc-board.dts | 10 +- > arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 43 ++--- > .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi | 12 +- > drivers/firmware/ti_sci.c | 155 ++++++++---------- > drivers/irqchip/irq-ti-sci-inta.c | 95 +++++++++-- > drivers/irqchip/irq-ti-sci-intr.c | 152 ++++++++++------- > include/linux/soc/ti/ti_sci_protocol.h | 13 ++ > 16 files changed, 516 insertions(+), 376 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt > create mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml > delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt > create mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml >
On 13:18-20200806, Lokesh Vutla wrote: > Hi Marc, > This is continuation of the RFC patches[0] regarding the driver > updates to support for following interrupt parent connection: > - INTR -> INTR > - INTA -> GICv3 > The current existing driver assumes that INTR is always connected to > GICv3 and INTA is always connected to INTR. > > As discussed this change breaks the DT backward compatibility but it > allows to not depend on TISCI firmware properties in DT node. IMHO, this > will ensure that any future changes will not effect DT properties. > > This series depends on the the new Yaml bindings for common TISCI[1]. > > [0] https://lore.kernel.org/linux-arm-kernel/20190923042405.26064-1-lokeshvutla@ti.com/ > [1] https://patchwork.kernel.org/patch/11676843/ Marc, Noticed that Bjorn's merges seem all done, and checked if the series applies to irq/base-5.9 (but I am not entirely sure where you want the series to go to) - but anyways, I have acked the dts series if you are planning on picking it up in 5.9 - does'nt conflict in master or next-20200812
Hi Lokesh, On 06/08/2020 10.48, Lokesh Vutla wrote: > Hi Marc, > This is continuation of the RFC patches[0] regarding the driver > updates to support for following interrupt parent connection: > - INTR -> INTR > - INTA -> GICv3 > The current existing driver assumes that INTR is always connected to > GICv3 and INTA is always connected to INTR. > > As discussed this change breaks the DT backward compatibility but it > allows to not depend on TISCI firmware properties in DT node. IMHO, this > will ensure that any future changes will not effect DT properties. Just to note: this series will demand new sysfw (with ABI 3.0+) to boot (well, to have usable intr/inta). Sysfw ABI 3.0 carries other non compatible changes affecting DMA on am654: TR mode channels for servicing peripherals will fail at request time since the channel OES offset value is different compared to older sysfw ABI. The good news is that other channels are _not_ affected by this, so packet mode channels and mem2mem TR channel pairs will work just fine - as you have tested it already w/ NFS boot. We do not have upstream users for TR mode channels for peripherals, it is only in my local branch for audio. I can send a patch for UDMA to be picked up by Marc on top of this series to avoid this, if it is OK with Marc to pick it up. The change is well isolated away from the rest of the driver, so it should be safe (famous last words?) - Péter > This series depends on the the new Yaml bindings for common TISCI[1]. > > [0] https://lore.kernel.org/linux-arm-kernel/20190923042405.26064-1-lokeshvutla@ti.com/ > [1] https://patchwork.kernel.org/patch/11676843/ > > Tested with: (There is a build error on Today's master while building dtbs. So I enabled > only the TI specific components for building DTBS). > - DT_SCHEMA_FILES="Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml" > v8make dt_binding_check > - DT_SCHEMA_FILES="Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml" > v8make dt_binding_check > - DT_SCHEMA_FILES="Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml" > v8make dtbs_check > - DT_SCHEMA_FILES="Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml" > v8make dtbs_check > - v8make allmodconfig > > Changes since v5: > - Rebased on latest master. > - Collected Reviewed-by from Rob. > - Included DT changes in the same series so that everything can be merged in a single go. > Without DT changes, there are regressions for DMA and other consumer peripherals so suggestion > is to merge everthing in a single go. DT changes apply cleanly on next and Linus's master > without any merge conflicts. > > Changes since v4: > - Fixed Rob's comment on INTR and INTA yaml documentation > - Collected Reviewed-by's and Acked-by's > > Changes since v3: > - Hardcode param_count based on parent instead of reading it from DT. > - Drop storing TISCI device id in platform device id field. > > Changes since v2: > - Fixed comments from Rob > - Fixed DT schema warnings. > > Changes since v1: > - Rebased on top of latest Linux master > - Dropped DT patches. > > Lokesh Vutla (13): > firmware: ti_sci: Drop the device id to resource type translation > firmware: ti_sci: Drop unused structure ti_sci_rm_type_map > firmware: ti_sci: Add support for getting resource with subtype > dt-bindings: irqchip: ti,sci-intr: Update bindings to drop the usage > of gic as parent > dt-bindings: irqchip: Convert ti,sci-intr bindings to yaml > irqchip/ti-sci-intr: Add support for INTR being a parent to INTR > dt-bindings: irqchip: ti,sci-inta: Update docs to support different > parent. > dt-bindings: irqchip: Convert ti,sci-inta bindings to yaml > irqchip/ti-sci-inta: Do not store TISCI device id in platform device > id field > irqchip/ti-sci-inta: Add support for INTA directly connecting to GIC > arm64: dts: k3-j721e: ti-sci-inta/intr: Update to latest bindings > arm64: dts: k3-am65: ti-sci-inta/intr: Update to latest bindings > arm64: dts: k3-am65: Update the RM resource types > > .../interrupt-controller/ti,sci-inta.txt | 66 -------- > .../interrupt-controller/ti,sci-inta.yaml | 98 +++++++++++ > .../interrupt-controller/ti,sci-intr.txt | 82 --------- > .../interrupt-controller/ti,sci-intr.yaml | 102 ++++++++++++ > MAINTAINERS | 4 +- > arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 36 ++-- > arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi | 12 +- > arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi | 8 +- > .../arm64/boot/dts/ti/k3-am654-base-board.dts | 4 +- > .../dts/ti/k3-j721e-common-proc-board.dts | 10 +- > arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 43 ++--- > .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi | 12 +- > drivers/firmware/ti_sci.c | 155 ++++++++---------- > drivers/irqchip/irq-ti-sci-inta.c | 95 +++++++++-- > drivers/irqchip/irq-ti-sci-intr.c | 152 ++++++++++------- > include/linux/soc/ti/ti_sci_protocol.h | 13 ++ > 16 files changed, 516 insertions(+), 376 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt > create mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml > delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt > create mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml > Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
On 8/13/20 3:11 PM, Peter Ujfalusi wrote: > Hi Lokesh, > > On 06/08/2020 10.48, Lokesh Vutla wrote: >> Hi Marc, >> This is continuation of the RFC patches[0] regarding the driver >> updates to support for following interrupt parent connection: >> - INTR -> INTR >> - INTA -> GICv3 >> The current existing driver assumes that INTR is always connected to >> GICv3 and INTA is always connected to INTR. >> >> As discussed this change breaks the DT backward compatibility but it >> allows to not depend on TISCI firmware properties in DT node. IMHO, this >> will ensure that any future changes will not effect DT properties. > > Just to note: > this series will demand new sysfw (with ABI 3.0+) to boot (well, to have > usable intr/inta). Sysfw ABI 3.0 carries other non compatible changes > affecting DMA on am654: TR mode channels for servicing peripherals will > fail at request time since the channel OES offset value is different > compared to older sysfw ABI. > > The good news is that other channels are _not_ affected by this, so > packet mode channels and mem2mem TR channel pairs will work just fine - > as you have tested it already w/ NFS boot. > We do not have upstream users for TR mode channels for peripherals, it > is only in my local branch for audio. > > I can send a patch for UDMA to be picked up by Marc on top of this > series to avoid this, if it is OK with Marc to pick it up. This series is already straddling too many subsystems, I would not complicate this any further. Moreover, since there are no upstream users for TR mode peripheral channels those changes can wait, right? Thanks, Sekhar
Sekhar, On 13/08/2020 13.03, Sekhar Nori wrote: > On 8/13/20 3:11 PM, Peter Ujfalusi wrote: >> Hi Lokesh, >> >> On 06/08/2020 10.48, Lokesh Vutla wrote: >>> Hi Marc, >>> This is continuation of the RFC patches[0] regarding the driver >>> updates to support for following interrupt parent connection: >>> - INTR -> INTR >>> - INTA -> GICv3 >>> The current existing driver assumes that INTR is always connected to >>> GICv3 and INTA is always connected to INTR. >>> >>> As discussed this change breaks the DT backward compatibility but it >>> allows to not depend on TISCI firmware properties in DT node. IMHO, this >>> will ensure that any future changes will not effect DT properties. >> >> Just to note: >> this series will demand new sysfw (with ABI 3.0+) to boot (well, to have >> usable intr/inta). Sysfw ABI 3.0 carries other non compatible changes >> affecting DMA on am654: TR mode channels for servicing peripherals will >> fail at request time since the channel OES offset value is different >> compared to older sysfw ABI. >> >> The good news is that other channels are _not_ affected by this, so >> packet mode channels and mem2mem TR channel pairs will work just fine - >> as you have tested it already w/ NFS boot. >> We do not have upstream users for TR mode channels for peripherals, it >> is only in my local branch for audio. >> >> I can send a patch for UDMA to be picked up by Marc on top of this >> series to avoid this, if it is OK with Marc to pick it up. > This series is already straddling too many subsystems, I would not > complicate this any further. > > Moreover, since there are no upstream users for TR mode peripheral > channels those changes can wait, right? It can, yes. I can send the patch for -rc2 of the release this series is merged. - Péter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
On Thu, 6 Aug 2020 13:18:13 +0530, Lokesh Vutla wrote: > This is continuation of the RFC patches[0] regarding the driver > updates to support for following interrupt parent connection: > - INTR -> INTR > - INTA -> GICv3 > The current existing driver assumes that INTR is always connected to > GICv3 and INTA is always connected to INTR. > > [...] Applied to irq/irqchip-next, thanks! [01/13] firmware: ti_sci: Drop the device id to resource type translation commit: 4473171db68fe9e3de3f2bc68a00527f23852ad8 [02/13] firmware: ti_sci: Drop unused structure ti_sci_rm_type_map commit: 9b98e02a3d369c5d0875338ea0717030471b5210 [03/13] firmware: ti_sci: Add support for getting resource with subtype commit: 53bf2b0e4e4c1ff0a957474237f9dcd20036ca54 [04/13] dt-bindings: irqchip: ti, sci-intr: Update bindings to drop the usage of gic as parent commit: 9a8e2ae71f3553f1b6cd4e3681f04e5d0f147387 [05/13] dt-bindings: irqchip: Convert ti, sci-intr bindings to yaml commit: b8713af858997c3df5bc5b48e66ac1f1bfe19779 [06/13] irqchip/ti-sci-intr: Add support for INTR being a parent to INTR commit: a5b659bd4bc7518a8e45fda5256c5e5e8d3b7c49 [07/13] dt-bindings: irqchip: ti, sci-inta: Update docs to support different parent. commit: 6dde29dc31aa265a79d9e6b3571987cfa4b179cc [08/13] dt-bindings: irqchip: Convert ti, sci-inta bindings to yaml commit: c4dff06e79d99691f18dfc8a61a1cb17c602a025 [09/13] irqchip/ti-sci-inta: Do not store TISCI device id in platform device id field commit: 7206f3149b8198c65a0ca8c01bfa1d8ace27bf91 [10/13] irqchip/ti-sci-inta: Add support for INTA directly connecting to GIC commit: 5c4b585d29102c7e6a6217112bbf1be774795cd7 [11/13] arm64: dts: k3-j721e: ti-sci-inta/intr: Update to latest bindings commit: 8d523f096da53598c271b5b69fcacb48779884a3 [12/13] arm64: dts: k3-am65: ti-sci-inta/intr: Update to latest bindings commit: fef845122f6c3c92178e4e4a1f85cce84dca06fe [13/13] arm64: dts: k3-am65: Update the RM resource types commit: 6da45875fa174d9db238ea0d6846061e68b41b6d Cheers, M.
Hi Marc, On 8/17/20 2:33 AM, Marc Zyngier wrote: > On Thu, 6 Aug 2020 13:18:13 +0530, Lokesh Vutla wrote: >> This is continuation of the RFC patches[0] regarding the driver >> updates to support for following interrupt parent connection: >> - INTR -> INTR >> - INTA -> GICv3 >> The current existing driver assumes that INTR is always connected to >> GICv3 and INTA is always connected to INTR. >> >> [...] > > Applied to irq/irqchip-next, thanks! Thanks for queuing these! Is there any chance we can get these into v5.9-rc2 instead of v5.10? Without these patches we are stuck with using an old firmware with mainline kernel for both AM65x and J721E devices. There are bugfixes we get with latest firmware and also the ability to shift between mainline and TI vendor kernel without re-flashing the SD card. Thanks, Sekhar