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@xxxxxx/ > [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