devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/53] icc-rpmh multi-RSC voting groundwork
@ 2023-07-11 12:17 Konrad Dybcio
  2023-07-11 12:18 ` [PATCH 01/53] dt-bindings: interconnect: qcom,icc: Introduce fixed BCM voter indices Konrad Dybcio
                   ` (53 more replies)
  0 siblings, 54 replies; 72+ messages in thread
From: Konrad Dybcio @ 2023-07-11 12:17 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Georgi Djakov, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, cros-qcom-dts-watchers
  Cc: Marijn Suijten, linux-arm-msm, linux-pm, devicetree, linux-kernel,
	Konrad Dybcio

Many parts of Qualcomm SoCs are entirely independent of each other and can
run when the other parts are off. The RPMh system architecture embraces
this by giving each (loosely defined) subsystem its own connection (as in,
physical wires) to the AOSS, terminated by per-subsystem RSCs (Resource
State Coordinators) that barter for power, bandwidth etc.

This series introduces the groundwork necessary for voting for resources
through non-APPS RSCs. It should allow for lower-latency vote adjustments
(e.g. for very high bandwidth / multiple displays) and could potentially
allow for full APSS collapse while keeping e.g. MDSS operating (say
refreshing an image from a RAM buffer).

On top of that, a rather necessary and overdue cleanup is performed to
stop adding more and more arguments to the insane preprocessor macros.

Partially reverting (or reimplementing the revert) [1] will be necessary
to coordinate the rather complex relationship between the DPU and RSC
drivers.

The "Point x paths to the x RSC" patches won't do anything (check the
compatibility workaround qcom_icc_pre_aggregate()) until disp_rsc is
properly described in the device tree, along with its BCM voter),
but they prepare ground for when that happens.

I was able to test sending requests through the DISP_RSC on SM8450, but
I had to hack its clocks (_rscc_ in dispcc) to be always-on, as we don't
have any clk handling for qcom,rpmh-rsc today.

Boot-tested on SM8350 and SM8450, nothing exploded.

[1] https://patchwork.kernel.org/project/dri-devel/patch/1521827074-28424-1-git-send-email-ryadav@codeaurora.org/

Dependencies:
[2] https://lore.kernel.org/linux-arm-msm/113b50f8-35f6-73fc-4fc9-302262927c5e@quicinc.com/
[3] https://lore.kernel.org/linux-arm-msm/20230703-topic-8250_qup_icc-v2-0-9ba0a9460be2@linaro.org/

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
Konrad Dybcio (53):
      dt-bindings: interconnect: qcom,icc: Introduce fixed BCM voter indices
      dt-bindings: interconnect: qcom,bcm-voter: Add qcom,bcm-voter-idx
      interconnect: qcom: icc-rpmh: Store direct BCM voter references
      interconnect: qcom: icc-rpmh: Retire dead code
      interconnect: qcom: icc-rpmh: Implement voting on non-APPS RSCs
      interconnect: qcom: sc7180: Retire DEFINE_QNODE
      interconnect: qcom: sdm670: Retire DEFINE_QNODE
      interconnect: qcom: sdm845: Retire DEFINE_QNODE
      interconnect: qcom: sdx55: Retire DEFINE_QNODE
      interconnect: qcom: sdx65: Retire DEFINE_QNODE
      interconnect: qcom: sm6350: Retire DEFINE_QNODE
      interconnect: qcom: sm8150: Retire DEFINE_QNODE
      interconnect: qcom: sm8250: Retire DEFINE_QNODE
      interconnect: qcom: sm8350: Retire DEFINE_QNODE
      interconnect: qcom: icc-rpmh: Retire DEFINE_QNODE
      interconnect: qcom: sc7180: Retire DEFINE_QBCM
      interconnect: qcom: sdm670: Retire DEFINE_QBCM
      interconnect: qcom: sdm845: Retire DEFINE_QBCM
      interconnect: qcom: sdx55: Retire DEFINE_QBCM
      interconnect: qcom: sdx65: Retire DEFINE_QBCM
      interconnect: qcom: sm6350: Retire DEFINE_QBCM
      interconnect: qcom: sm8150: Retire DEFINE_QBCM
      interconnect: qcom: sm8250: Retire DEFINE_QBCM
      interconnect: qcom: sm8350: Retire DEFINE_QBCM
      interconnect: qcom: icc-rpmh: Retire DEFINE_QBCM
      interconnect: qcom: qdu1000: Explicitly assign voter_idx
      interconnect: qcom: sa8775p: Explicitly assign voter_idx
      interconnect: qcom: sc7280: Explicitly assign voter_idx
      interconnect: qcom: sc8180x: Explicitly assign voter_idx
      interconnect: qcom: sc8280xp: Explicitly assign voter_idx
      interconnect: qcom: sm8450: Explicitly assign voter_idx
      interconnect: qcom: sm8550: Explicitly assign voter_idx
      arm64: dts: qcom: qdu1000: add qcom,bcm-voter-idx
      arm64: dts: qcom: sa8775p: add qcom,bcm-voter-idx
      arm64: dts: qcom: sc7180: add qcom,bcm-voter-idx
      arm64: dts: qcom: sc7280: add qcom,bcm-voter-idx
      arm64: dts: qcom: sc8180x: add qcom,bcm-voter-idx
      arm64: dts: qcom: sc8280xp: add qcom,bcm-voter-idx
      arm64: dts: qcom: sdm670: add qcom,bcm-voter-idx
      arm64: dts: qcom: sdm845: add qcom,bcm-voter-idx
      arm64: dts: qcom: sdx75: add qcom,bcm-voter-idx
      arm64: dts: qcom: sm6350: add qcom,bcm-voter-idx
      arm64: dts: qcom: sm8150: add qcom,bcm-voter-idx
      arm64: dts: qcom: sm8250: add qcom,bcm-voter-idx
      arm64: dts: qcom: sm8350: add qcom,bcm-voter-idx
      arm64: dts: qcom: sm8450: add qcom,bcm-voter-idx
      arm64: dts: qcom: sm8550: add qcom,bcm-voter-idx
      arm64: dts: qcom: sdx55: add qcom,bcm-voter-idx
      arm64: dts: qcom: sdx65: add qcom,bcm-voter-idx
      interconnect: qcom: sm8350: Point display paths to the display RSC
      interconnect: qcom: sm8450: Point display paths to the display RSC
      interconnect: qcom: sm8550: Point display paths to the display RSC
      interconnect: qcom: sm8550: Point camera paths to the camera RSC

 .../bindings/interconnect/qcom,bcm-voter.yaml      |   10 +
 arch/arm/boot/dts/qcom/qcom-sdx55.dtsi             |    1 +
 arch/arm/boot/dts/qcom/qcom-sdx65.dtsi             |    1 +
 arch/arm64/boot/dts/qcom/qdu1000.dtsi              |    2 +
 arch/arm64/boot/dts/qcom/sa8775p.dtsi              |    1 +
 arch/arm64/boot/dts/qcom/sc7180.dtsi               |    1 +
 arch/arm64/boot/dts/qcom/sc7280.dtsi               |    2 +
 arch/arm64/boot/dts/qcom/sc8180x.dtsi              |    2 +
 arch/arm64/boot/dts/qcom/sc8280xp.dtsi             |    2 +
 arch/arm64/boot/dts/qcom/sdm670.dtsi               |    2 +
 arch/arm64/boot/dts/qcom/sdm845.dtsi               |    2 +
 arch/arm64/boot/dts/qcom/sdx75.dtsi                |    2 +
 arch/arm64/boot/dts/qcom/sm6350.dtsi               |    1 +
 arch/arm64/boot/dts/qcom/sm8150.dtsi               |    2 +
 arch/arm64/boot/dts/qcom/sm8250.dtsi               |    2 +
 arch/arm64/boot/dts/qcom/sm8350.dtsi               |    2 +
 arch/arm64/boot/dts/qcom/sm8450.dtsi               |    2 +
 arch/arm64/boot/dts/qcom/sm8550.dtsi               |    2 +
 drivers/interconnect/qcom/bcm-voter.c              |   75 +-
 drivers/interconnect/qcom/bcm-voter.h              |    9 -
 drivers/interconnect/qcom/icc-rpmh.c               |   53 +-
 drivers/interconnect/qcom/icc-rpmh.h               |   14 +-
 drivers/interconnect/qcom/qdu1000.c                |   11 +
 drivers/interconnect/qcom/sa8775p.c                |   28 +
 drivers/interconnect/qcom/sc7180.c                 | 1637 +++++++++++++++--
 drivers/interconnect/qcom/sc7280.c                 |   27 +
 drivers/interconnect/qcom/sc8180x.c                |   23 +
 drivers/interconnect/qcom/sc8280xp.c               |   27 +
 drivers/interconnect/qcom/sdm670.c                 | 1410 +++++++++++++--
 drivers/interconnect/qcom/sdm845.c                 | 1683 ++++++++++++++++--
 drivers/interconnect/qcom/sdx55.c                  |  863 ++++++++-
 drivers/interconnect/qcom/sdx65.c                  |  850 ++++++++-
 drivers/interconnect/qcom/sm6350.c                 | 1551 +++++++++++++++--
 drivers/interconnect/qcom/sm8150.c                 | 1714 ++++++++++++++++--
 drivers/interconnect/qcom/sm8250.c                 | 1772 +++++++++++++++++--
 drivers/interconnect/qcom/sm8350.c                 | 1830 ++++++++++++++++++--
 drivers/interconnect/qcom/sm8450.c                 |   24 +
 drivers/interconnect/qcom/sm8550.c                 |   42 +
 include/dt-bindings/interconnect/qcom,icc.h        |    8 +
 39 files changed, 12320 insertions(+), 1370 deletions(-)
---
base-commit: 82cee168d497ffcb79e4889fe3c7384788e89f4d
change-id: 20230708-topic-rpmh_icc_rsc-f897080fb207

Best regards,
-- 
Konrad Dybcio <konrad.dybcio@linaro.org>


^ permalink raw reply	[flat|nested] 72+ messages in thread

end of thread, other threads:[~2023-09-16  0:55 UTC | newest]

Thread overview: 72+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-11 12:17 [PATCH 00/53] icc-rpmh multi-RSC voting groundwork Konrad Dybcio
2023-07-11 12:18 ` [PATCH 01/53] dt-bindings: interconnect: qcom,icc: Introduce fixed BCM voter indices Konrad Dybcio
2023-07-12 20:39   ` Krzysztof Kozlowski
2023-07-15 15:09     ` Konrad Dybcio
2023-07-11 12:18 ` [PATCH 02/53] dt-bindings: interconnect: qcom,bcm-voter: Add qcom,bcm-voter-idx Konrad Dybcio
2023-07-11 13:13   ` Rob Herring
2023-07-12 20:43   ` Krzysztof Kozlowski
2023-07-15 15:09     ` Konrad Dybcio
2023-08-05 21:21       ` Krzysztof Kozlowski
2023-09-06 12:43         ` Konrad Dybcio
2023-07-11 12:18 ` [PATCH 03/53] interconnect: qcom: icc-rpmh: Store direct BCM voter references Konrad Dybcio
2023-07-11 12:18 ` [PATCH 04/53] interconnect: qcom: icc-rpmh: Retire dead code Konrad Dybcio
2023-07-11 12:18 ` [PATCH 05/53] interconnect: qcom: icc-rpmh: Implement voting on non-APPS RSCs Konrad Dybcio
2023-07-11 12:18 ` [PATCH 06/53] interconnect: qcom: sc7180: Retire DEFINE_QNODE Konrad Dybcio
2023-07-11 12:18 ` [PATCH 07/53] interconnect: qcom: sdm670: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 08/53] interconnect: qcom: sdm845: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 09/53] interconnect: qcom: sdx55: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 10/53] interconnect: qcom: sdx65: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 11/53] interconnect: qcom: sm6350: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 12/53] interconnect: qcom: sm8150: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 13/53] interconnect: qcom: sm8250: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 14/53] interconnect: qcom: sm8350: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 15/53] interconnect: qcom: icc-rpmh: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 16/53] interconnect: qcom: sc7180: Retire DEFINE_QBCM Konrad Dybcio
2023-07-11 12:18 ` [PATCH 17/53] interconnect: qcom: sdm670: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 18/53] interconnect: qcom: sdm845: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 19/53] interconnect: qcom: sdx55: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 20/53] interconnect: qcom: sdx65: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 21/53] interconnect: qcom: sm6350: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 22/53] interconnect: qcom: sm8150: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 23/53] interconnect: qcom: sm8250: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 24/53] interconnect: qcom: sm8350: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 25/53] interconnect: qcom: icc-rpmh: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 26/53] interconnect: qcom: qdu1000: Explicitly assign voter_idx Konrad Dybcio
2023-07-11 12:18 ` [PATCH 27/53] interconnect: qcom: sa8775p: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 28/53] interconnect: qcom: sc7280: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 29/53] interconnect: qcom: sc8180x: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 30/53] interconnect: qcom: sc8280xp: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 31/53] interconnect: qcom: sm8450: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 32/53] interconnect: qcom: sm8550: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 33/53] arm64: dts: qcom: qdu1000: add qcom,bcm-voter-idx Konrad Dybcio
2023-07-11 12:18 ` [PATCH 34/53] arm64: dts: qcom: sa8775p: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 35/53] arm64: dts: qcom: sc7180: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 36/53] arm64: dts: qcom: sc7280: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 37/53] arm64: dts: qcom: sc8180x: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 38/53] arm64: dts: qcom: sc8280xp: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 39/53] arm64: dts: qcom: sdm670: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 40/53] arm64: dts: qcom: sdm845: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 41/53] arm64: dts: qcom: sdx75: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 42/53] arm64: dts: qcom: sm6350: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 43/53] arm64: dts: qcom: sm8150: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 44/53] arm64: dts: qcom: sm8250: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 45/53] arm64: dts: qcom: sm8350: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 46/53] arm64: dts: qcom: sm8450: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 47/53] arm64: dts: qcom: sm8550: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 48/53] arm64: dts: qcom: sdx55: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 49/53] arm64: dts: qcom: sdx65: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 50/53] interconnect: qcom: sm8350: Point display paths to the display RSC Konrad Dybcio
2023-07-11 14:17   ` Dmitry Baryshkov
2023-07-11 14:18     ` Konrad Dybcio
2023-07-11 12:18 ` [PATCH 51/53] interconnect: qcom: sm8450: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 52/53] interconnect: qcom: sm8550: " Konrad Dybcio
2023-07-11 12:18 ` [PATCH 53/53] interconnect: qcom: sm8550: Point camera paths to the camera RSC Konrad Dybcio
2023-08-03 16:48 ` [PATCH 00/53] icc-rpmh multi-RSC voting groundwork Georgi Djakov
2023-08-07 21:57   ` Mike Tipton
2023-09-06 12:14     ` Konrad Dybcio
2023-09-13  1:29       ` Mike Tipton
2023-09-13  8:31         ` Konrad Dybcio
2023-09-14  2:32           ` Mike Tipton
2023-09-15 13:43             ` Konrad Dybcio
2023-09-15 16:05               ` Mike Tipton
2023-09-16  0:54                 ` Konrad Dybcio

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).