Skip to content
Snippets Groups Projects

Tags

Tags give the ability to mark specific points in history as being important
  • Name
  • Oldest updated
  • Updated date
  • Latest version
  • Oldest version
  • sent/20250321-topic-ufs-use-threaded-irq-53af30f2529f-v2
    [RFC] ufs: core: cleanup and threaded irq handler
    
    On systems with a large number request slots and unavailable MCQ,
    the current design of the interrupt handler can delay handling of
    other subsystems interrupts causing display artifacts, GPU stalls
    or system firmware requests timeouts.
    
    Example of errors reported on a loaded system:
     [drm:dpu_encoder_frame_done_timeout:2706] [dpu error]enc32 frame done timeout
     msm_dpu ae01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* 67.5.20.1: hangcheck detected gpu lockup rb 2!
     msm_dpu ae01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* 67.5.20.1:     completed fence: 74285
     msm_dpu ae01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* 67.5.20.1:     submitted fence: 74286
     Error sending AMC RPMH requests (-110)
    
    To: Alim Akhtar <alim.akhtar@samsung.com>
    To: Avri Altman <avri.altman@wdc.com>
    To: Bart Van Assche <bvanassche@acm.org>
    To: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
    To: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: linux-scsi@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v2:
    - Removed last_intr_status/last_intr_ts stats
    - Handle irq in prinmary handler for MCQ case
    - Stop touching REG_INTERRUPT_ENABLE register
    - Link to v1: https://lore.kernel.org/r/20250321-topic-ufs-use-threaded-irq-v1-1-7a55816a4b1d@linaro.org
    
    ---
    Neil Armstrong (2):
          ufs: core: drop last_intr_status/ts stats
          ufs: core: delegate the interrupt service routine to a threaded irq handler
    
     drivers/ufs/core/ufshcd.c | 45 ++++++++++++++++++++++++++++++++++-----------
     include/ufs/ufshcd.h      |  5 -----
     2 files changed, 34 insertions(+), 16 deletions(-)
    ---
    base-commit: ff7f9b199e3f4cc7d61df5a9a26a7cbb5c1492e6
    change-id: 20250321-topic-ufs-use-threaded-irq-53af30f2529f
    
    Best regards,
  • sent/20250321-topic-ufs-use-threaded-irq-53af30f2529f-v1
    [RFC] Sent as RFC since I would need some feedback on other platforms.
    
    To: Alim Akhtar <alim.akhtar@samsung.com>
    To: Avri Altman <avri.altman@wdc.com>
    To: Bart Van Assche <bvanassche@acm.org>
    To: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
    To: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: linux-scsi@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Neil Armstrong (1):
          ufs: delegate the interrupt service routine to a threaded irq handler
    
     drivers/ufs/core/ufshcd.c | 43 ++++++++++++++++++++++++++++++++++++-------
     include/ufs/ufshcd.h      |  2 ++
     2 files changed, 38 insertions(+), 7 deletions(-)
    ---
    base-commit: ff7f9b199e3f4cc7d61df5a9a26a7cbb5c1492e6
    change-id: 20250321-topic-ufs-use-threaded-irq-53af30f2529f
    
    Best regards,
  • sent/20241204-topic-misc-da7280-convert-20efaad588ca-v4
    input: convert dlg,da7280.txt to dt-schema & update MAINTAINERS
    
    Convert the Dialog Semiconductor DA7280 Low Power High-Definition
    Haptic Driver bindings to dt-schema. and update the corresponding
    MAINTAINERS entry.
    
    To: Support Opensource <support.opensource@diasemi.com>
    To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Roy Im <roy.im.opensource@diasemi.com>
    Cc: linux-input@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v4:
    - Rebase on next-20250306
    - Link to v3: https://lore.kernel.org/r/20241211-topic-misc-da7280-convert-v3-0-4df87ac08881@linaro.org
    
    Changes in v3:
    - Add conor's review
    - Also fix the MAINTAINERS entry
    - Link to v2: https://lore.kernel.org/r/20241206-topic-misc-da7280-convert-v2-1-1c3539f75604@linaro.org
    
    Changes in v2:
    - Switched to flag instead of boolean
    - Switched the array to unit32_t, because this is how it was defined in the txt, DT and driver
    - Link to v1: https://lore.kernel.org/r/20241204-topic-misc-da7280-convert-v1-1-0f89971beca9@linaro.org
    
    ---
    Neil Armstrong (2):
          dt-bindings: input: convert dlg,da7280.txt to dt-schema
          MAINTAINERS: update dlg,da72??.txt to yaml
    
     .../devicetree/bindings/input/dlg,da7280.txt       | 108 ---------
     .../devicetree/bindings/input/dlg,da7280.yaml      | 248 +++++++++++++++++++++
     MAINTAINERS                                        |   2 +-
     3 files changed, 249 insertions(+), 109 deletions(-)
    ---
    base-commit: 565351ae7e0cee80e9b5ed84452a5b13644ffc4d
    change-id: 20241204-topic-misc-da7280-convert-20efaad588ca
    
    Best regards,
  • sent/20250225-topic-sm8x50-iris-v10-a219b8a8b477-v2
    media: qcom: iris: add support for SM8650
    
    Add support for the IRIS accelerator for the SM8650
    platform, which uses the iris33 hardware.
    
    The vpu33 requires a different reset & poweroff sequence
    in order to properly get out of runtime suspend.
    
    Based on the downstream implementation at:
    - https://git.codelinaro.org/clo/la/platform/vendor/opensource/video-driver/
      branch video-kernel.lnx.4.0.r4-rel
    
    To: Vikash Garodia <quic_vgarodia@quicinc.com>
    To: Dikshita Agarwal <quic_dikshita@quicinc.com>
    To: Abhinav Kumar <quic_abhinavk@quicinc.com>
    To: Mauro Carvalho Chehab <mchehab@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Philipp Zabel <p.zabel@pengutronix.de>
    Cc: linux-media@vger.kernel.org
    Cc: linux-arm-msm@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    ---
    Changes in v2:
    - Collected bindings review
    - Reworked rest handling by adding a secondary optional table to be used by controller poweroff
    - Reworked power_off_controller to be reused and extended by vpu33 support
    - Removed useless and unneeded vpu33 init
    - Moved vpu33 into vpu3x files to reuse code from vpu3
    - Moved sm8650 data table into sm8550
    - Link to v1: https://lore.kernel.org/r/20250225-topic-sm8x50-iris-v10-v1-0-128ef05d9665@linaro.org
    
    ---
    Neil Armstrong (7):
          dt-bindings: media: qcom,sm8550-iris: document SM8650 IRIS accelerator
          media: platform: qcom/iris: split iris_vpu_power_off_controller in multiple steps
          media: platform: qcom/iris: add power_off_controller to vpu_ops
          media: platform: qcom/iris: introduce optional controller_rst_tbl
          media: platform: qcom/iris: rename iris_vpu3 to iris_vpu3x
          media: platform: qcom/iris: add support for vpu33
          media: platform: qcom/iris: add sm8650 support
    
     .../bindings/media/qcom,sm8550-iris.yaml           |  33 ++-
     drivers/media/platform/qcom/iris/Makefile          |   2 +-
     drivers/media/platform/qcom/iris/iris_core.h       |   1 +
     .../platform/qcom/iris/iris_platform_common.h      |   3 +
     .../platform/qcom/iris/iris_platform_sm8550.c      |  64 ++++++
     drivers/media/platform/qcom/iris/iris_probe.c      |  43 +++-
     drivers/media/platform/qcom/iris/iris_vpu2.c       |   1 +
     drivers/media/platform/qcom/iris/iris_vpu3.c       | 122 -----------
     drivers/media/platform/qcom/iris/iris_vpu3x.c      | 244 +++++++++++++++++++++
     drivers/media/platform/qcom/iris/iris_vpu_common.c |  58 +++--
     drivers/media/platform/qcom/iris/iris_vpu_common.h |   5 +
     11 files changed, 420 insertions(+), 156 deletions(-)
    ---
    base-commit: 7774f84cfb99eb068539c27485602396a579da57
    change-id: 20250225-topic-sm8x50-iris-v10-a219b8a8b477
    
    Best regards,
  • sent/20250305-topic-sm8650-upstream-fix-usb-suspend-20979d5a0170-v1
    (no cover subject)
    
    To: Bjorn Andersson <andersson@kernel.org>
    To: Michael Turquette <mturquette@baylibre.com>
    To: Stephen Boyd <sboyd@kernel.org>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: linux-clk@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Neil Armstrong (1):
          clk: qcom: gcc-sm8650: Do not turn off USB GDSCs during gdsc_disable()
    
     drivers/clk/qcom/gcc-sm8650.c | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    ---
    base-commit: 7ec162622e66a4ff886f8f28712ea1b13069e1aa
    change-id: 20250305-topic-sm8650-upstream-fix-usb-suspend-20979d5a0170
    
    Best regards,
  • sent/20250303-topic-ath12k-fix-crash-49e9055c61a1-v1
    [net] (no cover subject)
    
    Bisect log for reference:
    The bisect leaded to:
    git bisect start 'v6.14-rc4' 'v6.12'
    git bisect good 5757b31666277e2b177b406e48878dc48d587a46
    git bisect bad d78794d4f4dbeac0a39e15d2fbc8e917741b5b7c
    git bisect bad cf33d96f50903214226b379b3f10d1f262dae018
    git bisect good 12e070eb6964b341b41677fd260af5a305316a1f
    git bisect bad 6917d207b469ee81e6dc7f8ccca29c234a16916d
    git bisect good 4fefbc66dfb356145633e571475be2459d73ce16
    git bisect bad a6ac667467b642c94928c24ac2eb40d20110983c
    git bisect bad b05d30c2b6df7e2172b18bf1baee9b202f9c6b53
    git bisect good 56dcbf0b520796e26b2bbe5686bdd305ad924954
    git bisect bad d302ac65ac938516487f57ae20f11e9cf6327606
    git bisect good 8c2143702d0719a0357600bca0236900781ffc78
    git bisect good a5686ae820fa7ab03226a3b0ff529720b7bac599
    git bisect bad 6f245ea0ec6c29b90c8fa4fdf6e178c646125d7e
    git bisect bad 46d16f7e1d1413ad7ff99c1334d8874623717745
    
    To: Johannes Berg <johannes@sipsolutions.net>
    To: Jeff Johnson <jjohnson@kernel.org>
    To: Aditya Kumar Singh <quic_adisi@quicinc.com>
    To: Kalle Valo <kvalo@kernel.org>
    Cc: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
    Cc: linux-wireless@vger.kernel.org
    Cc: ath12k@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-arm-msm@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Neil Armstrong (1):
          wifi: ath12k: properly set single_chip_mlo_supp to true in ath12k_core_alloc()
    
     drivers/net/wireless/ath/ath12k/core.c | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    ---
    base-commit: 7eb172143d5508b4da468ed59ee857c6e5e01da6
    change-id: 20250303-topic-ath12k-fix-crash-49e9055c61a1
    
    Best regards,
  • sent/20250207-topic-sm8650-pmu-ppi-partition-1e9df8b877da-v2
    arm64: dts: qcom: sm8650: switch to 4 interrupt cells to add PPI partitions for PMUs
    
    Swich to 4 interrupt cells on the GIC node to allow us passing
    the proper PPI interrupt partitions for the ARM PMUs.
    
    To: Bjorn Andersson <andersson@kernel.org>
    To: Konrad Dybcio <konradybcio@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v2:
    - Added Konrad's reviews
    - Rebased on linux-next
    - Link to v1: https://lore.kernel.org/r/20250207-topic-sm8650-pmu-ppi-partition-v1-0-dd3ba17b3eea@linaro.org
    
    ---
    Neil Armstrong (2):
          arm64: dts: qcom: sm8650: switch to interrupt-cells 4 to add PPI partitions
          arm64: dts: qcom: sm8650: add PPI interrupt partitions for the ARM PMUs
    
     arch/arm64/boot/dts/qcom/sm8650.dtsi | 556 ++++++++++++++++++-----------------
     1 file changed, 285 insertions(+), 271 deletions(-)
    ---
    base-commit: 0e2a500eff87c710f3947926e274fd83d0cabb02
    change-id: 20250207-topic-sm8650-pmu-ppi-partition-1e9df8b877da
    
    Best regards,
  • sent/20250207-topic-sm8x50-mdss-interconnect-bindings-fix-dd975f223d05-v5
    dt-bindings: display: qcom,sm8[56]50-mdss: properly document the interconnect paths
    
    The mdp1-mem is not supported on the SM8550 & SM8650 SoCs, so properly document
    the mdp0-mem and cpu-cfg interconnect entries.
    
    This fixes the following errors:
    display-subsystem@ae00000: interconnects: [[200, 3, 7, 32, 1, 7]] is too short
            from schema $id: http://devicetree.org/schemas/display/msm/qcom,sm8650-mdss.yaml#
    display-subsystem@ae00000: interconnect-names: ['mdp0-mem'] is too short
            from schema $id: http://devicetree.org/schemas/display/msm/qcom,sm8650-mdss.yaml#
    
    Depends on:
    - https://lore.kernel.org/all/20250115-topic-sm8x50-upstream-dt-icc-update-v1-0-eaa8b10e2af7@linaro.org/#t
    
    To: Bjorn Andersson <andersson@kernel.org>
    To: Konrad Dybcio <konradybcio@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Cc: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    ---
    Changes in v5:
    - Drop applied bindings patches
    - Updated commit msg with Dmitry's suggestion
    - Link to v4: https://lore.kernel.org/r/20250213-topic-sm8x50-mdss-interconnect-bindings-fix-v4-0-3fa0bc42dd38@linaro.org
    
    Changes in v4:
    - Add review tags
    - Rebased on top of https://lore.kernel.org/all/20250115-topic-sm8x50-upstream-dt-icc-update-v1-0-eaa8b10e2af7@linaro.org/#t
    - Use ICC tags
    - Link to v3: https://lore.kernel.org/r/20250210-topic-sm8x50-mdss-interconnect-bindings-fix-v3-0-54c96a9d2b7f@linaro.org
    
    Changes in v3:
    - make sure we use cpu-cfg instead
    - Link to v2: https://lore.kernel.org/r/20250207-topic-sm8x50-mdss-interconnect-bindings-fix-v2-0-f712b8df6020@linaro.org
    
    Changes in v2:
    - fixed example in qcom,sm8550-mdss.yaml
    - Link to v1: https://lore.kernel.org/r/20250207-topic-sm8x50-mdss-interconnect-bindings-fix-v1-0-852b1d6aee46@linaro.org
    
    ---
    Neil Armstrong (2):
          arm64: dts: qcom: sm8550: add missing cpu-cfg interconnect path in the mdss node
          arm64: dts: qcom: sm8650: add missing cpu-cfg interconnect path in the mdss node
    
     arch/arm64/boot/dts/qcom/sm8550.dtsi | 6 ++++--
     arch/arm64/boot/dts/qcom/sm8650.dtsi | 7 +++++--
     2 files changed, 9 insertions(+), 4 deletions(-)
    ---
    base-commit: 379487e17ca406b47392e7ab6cf35d1c3bacb371
    change-id: 20250207-topic-sm8x50-mdss-interconnect-bindings-fix-dd975f223d05
    prerequisite-message-id: <20250115-topic-sm8x50-upstream-dt-icc-update-v1-0-eaa8b10e2af7@linaro.org>
    prerequisite-patch-id: b2052194cecb6796ba6f1e58e0aaa9a7267f3d0b
    prerequisite-patch-id: a3def6c1e27e43153ae1f63343a092021926af8f
    prerequisite-patch-id: 7daf103007dc6f7ed97ce26c67799766197e0cfd
    prerequisite-patch-id: 68b4f5c2bce33ce6034716cfe4f7b9e2cd2d0f98
    prerequisite-patch-id: 8b4cfaa99eb145b533a6ca63f4813e38649d6c8f
    prerequisite-patch-id: a0d5112490c42e1c7752371d6b3818fda5c06bbf
    prerequisite-patch-id: 7b72193dd00f7a2e8fef3f36e6e53fab4691a65b
    prerequisite-patch-id: 8e3be7c0aae177f77e42570c28a1ad22aef25768
    prerequisite-patch-id: 8a641540de8fd86787102b3e682fa8baca295d66
    prerequisite-patch-id: 8b31e6775ccb7811557ece74172dda96f368f0c5
    
    Best regards,
  • sent/20250225-topic-sm8x50-upstream-iris-defconfig-b56662147b20-v2
    (no cover subject)
    
    To: Bjorn Andersson <andersson@kernel.org>
    To: Konrad Dybcio <konradybcio@kernel.org>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-arm-msm@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    ---
    Changes in v2:
    - Reorder iris before venus
    - Link to v1: https://lore.kernel.org/r/20250225-topic-sm8x50-upstream-iris-defconfig-v1-1-8a17e2e193d9@linaro.org
    
    ---
    Neil Armstrong (1):
          arm64: defconfig: enable Qualcomm IRIS & VIDEOCC_8550 as module
    
     arch/arm64/configs/defconfig | 2 ++
     1 file changed, 2 insertions(+)
    ---
    base-commit: 0226d0ce98a477937ed295fb7df4cc30b46fc304
    change-id: 20250225-topic-sm8x50-upstream-iris-defconfig-b56662147b20
    
    Best regards,
  • sent/20250225-topic-sm8x50-upstream-iris-defconfig-b56662147b20-v1
    (no cover subject)
    
    To: Bjorn Andersson <andersson@kernel.org>
    To: Konrad Dybcio <konradybcio@kernel.org>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-arm-msm@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Neil Armstrong (1):
          arm64: defconfig: enable Qualcomm IRIS & VIDEOCC_8550 as module
    
     arch/arm64/configs/defconfig | 2 ++
     1 file changed, 2 insertions(+)
    ---
    base-commit: 0226d0ce98a477937ed295fb7df4cc30b46fc304
    change-id: 20250225-topic-sm8x50-upstream-iris-defconfig-b56662147b20
    
    Best regards,
  • sent/20250225-topic-sm8x50-iris-v10-a219b8a8b477-v1
    media: qcom: iris: add support for SM8650
    
    Add support for the IRIS accelerator for the SM8650
    platform, which uses the iris33 hardware.
    
    The vpu33 requires a different reset & poweroff sequence
    in order to properly get out of runtime suspend.
    
    Based on the downstream implementation at:
    - https://git.codelinaro.org/clo/la/platform/vendor/opensource/video-driver/
      branch video-kernel.lnx.4.0.r4-rel
    
    To: Vikash Garodia <quic_vgarodia@quicinc.com>
    To: Dikshita Agarwal <quic_dikshita@quicinc.com>
    To: Abhinav Kumar <quic_abhinavk@quicinc.com>
    To: Mauro Carvalho Chehab <mchehab@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Philipp Zabel <p.zabel@pengutronix.de>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: linux-media@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Neil Armstrong (4):
          dt-bindings: media: qcom,sm8550-iris: document SM8650 IRIS accelerator
          media: platform: qcom/iris: add reset_controller & power_off_controller to vpu_ops
          media: platform: qcom/iris: add support for vpu33
          media: platform: qcom/iris: add sm8650 support
    
     .../bindings/media/qcom,sm8550-iris.yaml           |  33 ++-
     drivers/media/platform/qcom/iris/Makefile          |   2 +
     .../platform/qcom/iris/iris_platform_common.h      |   1 +
     .../platform/qcom/iris/iris_platform_sm8650.c      | 266 +++++++++++++++++
     drivers/media/platform/qcom/iris/iris_probe.c      |   4 +
     drivers/media/platform/qcom/iris/iris_vpu2.c       |   2 +
     drivers/media/platform/qcom/iris/iris_vpu3.c       |   2 +
     drivers/media/platform/qcom/iris/iris_vpu33.c      | 315 +++++++++++++++++++++
     drivers/media/platform/qcom/iris/iris_vpu_common.c |  14 +-
     drivers/media/platform/qcom/iris/iris_vpu_common.h |   5 +
     10 files changed, 635 insertions(+), 9 deletions(-)
    ---
    base-commit: e2e6906b4ed2aae7441754b28db63dc7ce84d779
    change-id: 20250225-topic-sm8x50-iris-v10-a219b8a8b477
    
    Best regards,
  • sent/20250207-topic-sm8x50-mdss-interconnect-bindings-fix-dd975f223d05-v4
    dt-bindings: display: qcom,sm8[56]50-mdss: properly document the interconnect paths
    
    The mdp1-mem is not supported on the SM8550 & SM8650 SoCs, so properly document
    the mdp0-mem and cpu-cfg interconnect entries.
    
    This fixes the following errors:
    display-subsystem@ae00000: interconnects: [[200, 3, 7, 32, 1, 7]] is too short
            from schema $id: http://devicetree.org/schemas/display/msm/qcom,sm8650-mdss.yaml#
    display-subsystem@ae00000: interconnect-names: ['mdp0-mem'] is too short
            from schema $id: http://devicetree.org/schemas/display/msm/qcom,sm8650-mdss.yaml#
    
    Depends on:
    - https://lore.kernel.org/all/20250115-topic-sm8x50-upstream-dt-icc-update-v1-0-eaa8b10e2af7@linaro.org/#t
    
    To: Rob Clark <robdclark@gmail.com>
    To: Abhinav Kumar <quic_abhinavk@quicinc.com>
    To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    To: Sean Paul <sean@poorly.run>
    To: Marijn Suijten <marijn.suijten@somainline.org>
    To: David Airlie <airlied@gmail.com>
    To: Simona Vetter <simona@ffwll.ch>
    To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    To: Maxime Ripard <mripard@kernel.org>
    To: Thomas Zimmermann <tzimmermann@suse.de>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Bjorn Andersson <andersson@kernel.org>
    To: Konrad Dybcio <konradybcio@kernel.org>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: dri-devel@lists.freedesktop.org
    Cc: freedreno@lists.freedesktop.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    ---
    Changes in v4:
    - Add review tags
    - Rebased on top of https://lore.kernel.org/all/20250115-topic-sm8x50-upstream-dt-icc-update-v1-0-eaa8b10e2af7@linaro.org/#t
    - Use ICC tags
    - Link to v3: https://lore.kernel.org/r/20250210-topic-sm8x50-mdss-interconnect-bindings-fix-v3-0-54c96a9d2b7f@linaro.org
    
    Changes in v3:
    - make sure we use cpu-cfg instead
    - Link to v2: https://lore.kernel.org/r/20250207-topic-sm8x50-mdss-interconnect-bindings-fix-v2-0-f712b8df6020@linaro.org
    
    Changes in v2:
    - fixed example in qcom,sm8550-mdss.yaml
    - Link to v1: https://lore.kernel.org/r/20250207-topic-sm8x50-mdss-interconnect-bindings-fix-v1-0-852b1d6aee46@linaro.org
    
    ---
    Neil Armstrong (4):
          dt-bindings: display: qcom,sm8550-mdss: explicitly document mdp0-mem and cpu-cfg interconnect paths
          dt-bindings: display: qcom,sm8650-mdss: explicitly document mdp0-mem and cpu-cfg interconnect paths
          arm64: dts: qcom: sm8550: add missing cpu-cfg interconnect path in the mdss node
          arm64: dts: qcom: sm8650: add missing cpu-cfg interconnect path in the mdss node
    
     .../devicetree/bindings/display/msm/qcom,sm8550-mdss.yaml  | 14 +++++++++-----
     .../devicetree/bindings/display/msm/qcom,sm8650-mdss.yaml  | 13 +++++++++++--
     arch/arm64/boot/dts/qcom/sm8550.dtsi                       |  6 ++++--
     arch/arm64/boot/dts/qcom/sm8650.dtsi                       |  7 +++++--
     4 files changed, 29 insertions(+), 11 deletions(-)
    ---
    base-commit: 379487e17ca406b47392e7ab6cf35d1c3bacb371
    change-id: 20250207-topic-sm8x50-mdss-interconnect-bindings-fix-dd975f223d05
    prerequisite-message-id: <20250115-topic-sm8x50-upstream-dt-icc-update-v1-0-eaa8b10e2af7@linaro.org>
    prerequisite-patch-id: b2052194cecb6796ba6f1e58e0aaa9a7267f3d0b
    prerequisite-patch-id: a3def6c1e27e43153ae1f63343a092021926af8f
    prerequisite-patch-id: 7daf103007dc6f7ed97ce26c67799766197e0cfd
    prerequisite-patch-id: 68b4f5c2bce33ce6034716cfe4f7b9e2cd2d0f98
    prerequisite-patch-id: 8b4cfaa99eb145b533a6ca63f4813e38649d6c8f
    prerequisite-patch-id: a0d5112490c42e1c7752371d6b3818fda5c06bbf
    prerequisite-patch-id: 7b72193dd00f7a2e8fef3f36e6e53fab4691a65b
    prerequisite-patch-id: 8e3be7c0aae177f77e42570c28a1ad22aef25768
    prerequisite-patch-id: 8a641540de8fd86787102b3e682fa8baca295d66
    prerequisite-patch-id: 8b31e6775ccb7811557ece74172dda96f368f0c5
    
    Best regards,
  • sent/20250207-topic-sm8x50-mdss-interconnect-bindings-fix-dd975f223d05-v3
    dt-bindings: display: qcom,sm8[56]50-mdss: properly document the interconnect paths
    
    The mdp1-mem is not supported on the SM8550 & SM8650 SoCs, so properly document
    the mdp0-mem and cpu-cfg interconnect entries.
    
    This fixes the following errors:
    display-subsystem@ae00000: interconnects: [[200, 3, 7, 32, 1, 7]] is too short
            from schema $id: http://devicetree.org/schemas/display/msm/qcom,sm8650-mdss.yaml#
    display-subsystem@ae00000: interconnect-names: ['mdp0-mem'] is too short
            from schema $id: http://devicetree.org/schemas/display/msm/qcom,sm8650-mdss.yaml#
    
    To: Rob Clark <robdclark@gmail.com>
    To: Abhinav Kumar <quic_abhinavk@quicinc.com>
    To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    To: Sean Paul <sean@poorly.run>
    To: Marijn Suijten <marijn.suijten@somainline.org>
    To: David Airlie <airlied@gmail.com>
    To: Simona Vetter <simona@ffwll.ch>
    To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    To: Maxime Ripard <mripard@kernel.org>
    To: Thomas Zimmermann <tzimmermann@suse.de>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Bjorn Andersson <andersson@kernel.org>
    To: Konrad Dybcio <konradybcio@kernel.org>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: dri-devel@lists.freedesktop.org
    Cc: freedreno@lists.freedesktop.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    ---
    Changes in v3:
    - EDITME: describe what is new in this series revision.
    - EDITME: use bulletpoints and terse descriptions.
    - Link to v2: https://lore.kernel.org/r/20250207-topic-sm8x50-mdss-interconnect-bindings-fix-v2-0-f712b8df6020@linaro.org
    
    Changes in v2:
    - fixed example in qcom,sm8550-mdss.yaml
    - Link to v1: https://lore.kernel.org/r/20250207-topic-sm8x50-mdss-interconnect-bindings-fix-v1-0-852b1d6aee46@linaro.org
    
    ---
    Neil Armstrong (4):
          dt-bindings: display: qcom,sm8550-mdss: explicitly document mdp0-mem and cpu-cfg interconnect paths
          dt-bindings: display: qcom,sm8650-mdss: explicitly document mdp0-mem and cpu-cfg interconnect paths
          arm64: dts: qcom: sm8550: add missing cpu-cfg interconnect path in the mdss node
          arm64: dts: qcom: sm8650: add missing cpu-cfg interconnect path in the mdss node
    
     .../devicetree/bindings/display/msm/qcom,sm8550-mdss.yaml  | 14 +++++++++-----
     .../devicetree/bindings/display/msm/qcom,sm8650-mdss.yaml  | 13 +++++++++++--
     arch/arm64/boot/dts/qcom/sm8550.dtsi                       |  5 +++--
     arch/arm64/boot/dts/qcom/sm8650.dtsi                       |  7 +++++--
     4 files changed, 28 insertions(+), 11 deletions(-)
    ---
    base-commit: 808eb958781e4ebb6e9c0962af2e856767e20f45
    change-id: 20250207-topic-sm8x50-mdss-interconnect-bindings-fix-dd975f223d05
    
    Best regards,
  • sent/20250207-topic-sm8650-pmu-ppi-partition-1e9df8b877da-v1
    arm64: dts: qcom: sm8650: switch to 4 interrupt cells to add PPI partitions for PMUs
    
    Swich to 4 interrupt cells on the GIC node to allow us passing
    the proper PPI interrupt partitions for the ARM PMUs.
    
    To: Bjorn Andersson <andersson@kernel.org>
    To: Konrad Dybcio <konradybcio@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Neil Armstrong (2):
          arm64: dts: qcom: sm8650: switch to interrupt-cells 4 to add PPI partitions
          arm64: dts: qcom: sm8650: add PPI interrupt partitions for the ARM PMUs
    
     arch/arm64/boot/dts/qcom/sm8650.dtsi | 556 ++++++++++++++++++-----------------
     1 file changed, 285 insertions(+), 271 deletions(-)
    ---
    base-commit: 808eb958781e4ebb6e9c0962af2e856767e20f45
    change-id: 20250207-topic-sm8650-pmu-ppi-partition-1e9df8b877da
    
    Best regards,
  • sent/20250103-topic-sm8650-thermal-cpu-idle-1e19181a94ed-v4
    arm64: dts: qcom: sm8650: rework CPU & GPU thermal zones
    
    On the SM8650 platform, the dynamic clock and voltage scaling (DCVS) for
    the CPUs is handled by hardware & firmware using factory and
    form-factor determined parameters in order to maximize frequency while
    keeping the temperature way below the junction temperature where the SoC
    would experience a thermal shutdown if not permanent damages.
    
    On the other side, the High Level Ooperating System (HLOS), like Linux,
    is able to adjust the CPU and GPU frequency using the internal SoC
    temperature sensors (here tsens) and it's UP/LOW interrupts, but it
    effectly does the same work twice for CPU in an less effective manner.
    
    Let's take the CPU Hardware & Firmware action in account and design the
    thermal zones trip points and cooling devices mapping to use the HLOS
    as a safety warant in case the platform experiences a temperature surge
    to helpfully avoid a thermal shutdown and handle the scenario gracefully.
    
    On the CPU side, the LMh hardware does the DCVS control loop, so
    only keep the critical trip point that would do a software system
    reboot as an emergency action to avoid the thermal shutdown.
    
    On the GPU side, the GPU can achieve much higher temperature,
    update the trip point with the downstream implementation as a
    reference.
    
    Those 2 changes optimizes the thermal management design by avoiding
    concurrent thermal management, calculations & avoidable interrupts
    for CPU, and allows us to use reach higher OPPs for the GPUs and
    squeeze more performances in both cases.
    
    While we're at it, also harmonize the remaining thermal blocks
    by using 110C as hot trip point, and 115 as critical trip point,
    and remove the unneeded polling-delay-passive properties.
    
    To: Bjorn Andersson <andersson@kernel.org>
    To: Konrad Dybcio <konradybcio@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v4:
    - Also uniformize the other thermal blocks, using 110 as hot, 115 as critical
    - Also remove the uneeded polling-delay-passive
    - Link to v3: https://lore.kernel.org/r/20250129-topic-sm8650-thermal-cpu-idle-v3-0-62ab1a64098d@linaro.org
    
    Changes in v3:
    - The GMU doesn't handle temperature, remove it from all texts, just bump the temps
    - Link to v2: https://lore.kernel.org/r/20250110-topic-sm8650-thermal-cpu-idle-v2-0-5787ad79abbb@linaro.org
    
    Changes in v2:
    - Drop idle injection
    - only keep critical trip points
    - reword commmit msg and cover letter
    - Link to v1: https://lore.kernel.org/r/20250103-topic-sm8650-thermal-cpu-idle-v1-0-faa1f011ecd9@linaro.org
    
    ---
    Neil Armstrong (4):
          arm64: dts: qcom: sm8650: drop cpu thermal passive trip points
          arm64: dts: qcom: sm8650: setup gpu thermal with higher temperatures
          arm64: dts: qcom: sm8650: harmonize all unregulated thermal trip points
          arm64: dts: qcom: sm8650: drop remaining polling-delay-passive properties
    
     arch/arm64/boot/dts/qcom/sm8650.dtsi | 430 ++++++++++-------------------------
     1 file changed, 117 insertions(+), 313 deletions(-)
    ---
    base-commit: 8155b4ef3466f0e289e8fcc9e6e62f3f4dceeac2
    change-id: 20250103-topic-sm8650-thermal-cpu-idle-1e19181a94ed
    
    Best regards,
  • sent/20250103-topic-sm8650-thermal-cpu-idle-1e19181a94ed-v2
    arm64: dts: qcom: sm8650: rework CPU & GPU thermal zones
    
    On the SM8650 platform, the dynamic clock and voltage scaling (DCVS) for
    the CPUs and GPU is handled by hardware & firmware using factory and
    form-factor determined parameters in order to maximize frequency while
    keeping the temperature way below the junction temperature where the SoC
    would experience a thermal shutdown if not permanent damages.
    
    On the other side, the High Level Ooperating System (HLOS), like Linux,
    is able to adjust the CPU and GPU frequency using the internal SoC
    temperature sensors (here tsens) and it's UP/LOW interrupts, but it
    effectly does the same work twice in an less effective manner.
    
    Let's take the Hardware & Firmware action in account and design the
    thermal zones trip points and cooling devices mapping to use the HLOS
    as a safety warant in case the platform experiences a temperature surge
    to helpfully avoid a thermal shutdown and handle the scenario gracefully.
    
    On the CPU side, the LMh hardware does the DCVS control loop, so
    only keep the critical trip point that would do a software system
    reboot as an emergency action to avoid the thermal shutdown.
    
    On the GPU side, the GPU Management Unit (GMU) acts as the DCVS
    control loop, but since we can't perform idle injection, let's
    also set higher trip points temperatures closer to the junction
    and thermal shutdown temperatures to reduce the GPU frequency only
    as an emergency action before the thermal shutdown.
    
    Those 2 changes optimizes the thermal management design by avoiding
    concurrent thermal management, calculations & avoidable interrupts
    by moving the HLOS management to a last resort emergency if the
    Hardware & Firmwares fails to avoid a thermal shutdown.
    
    To: Bjorn Andersson <andersson@kernel.org>
    To: Konrad Dybcio <konradybcio@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v2:
    - Drop idle injection
    - only keep critical trip points
    - reword commmit msg and cover letter
    - Link to v1: https://lore.kernel.org/r/20250103-topic-sm8650-thermal-cpu-idle-v1-0-faa1f011ecd9@linaro.org
    
    ---
    Neil Armstrong (2):
          arm64: dts: qcom: sm8650: drop cpu thermal passive trip points
          arm64: dts: qcom: sm8650: setup gpu thermal with higher temperatures
    
     arch/arm64/boot/dts/qcom/sm8650.dtsi | 228 ++++-------------------------------
     1 file changed, 24 insertions(+), 204 deletions(-)
    ---
    base-commit: 8155b4ef3466f0e289e8fcc9e6e62f3f4dceeac2
    change-id: 20250103-topic-sm8650-thermal-cpu-idle-1e19181a94ed
    
    Best regards,
  • sent/20250103-topic-sm8650-thermal-cpu-idle-1e19181a94ed-v1
    arm64: dts: qcom: sm8650: rework CPU & GPU thermal zones
    
    On the SM8650 platform, the dynamic clock and voltage scaling (DCVS) for
    the CPUs and GPU is handled by hardware & firmware using factory and
    form-factor determined parameters in order to maximize frequency while
    keeping the temperature way below the junction temperature where the SoC
    would experience a thermal shutdown if not permanent damages.
    
    On the other side, the High Level Ooperating System (HLOS), like Linux,
    is able to adjust the CPU and GPU frequency using the internal SoC
    temperature sensors (here tsens) and it's UP/LOW interrupts, but it
    effectly does the same work twice in an less effective manner.
    
    Let's take the Hardware & Firmware action in account and design the
    thermal zones trip points and cooling devices mapping to use the HLOS
    as a safety warant in case the platform experiences a temperature surge
    to helpfully avoid a thermal shutdown and handle the scenario gracefully.
    
    On the CPU side, the LMh hardware does the DCVS control loop, so
    let's set higher trip points temperatures closer to the junction
    and thermal shutdown temperatures and add some idle injection cooling
    device with 100% duty cycle for each CPU that would act as emergency
    action to avoid the thermal shutdown.
    
    On the GPU side, the GPU Management Unit (GMU) acts as the DCVS
    control loop, but since we can't perform idle injection, let's
    also set higher trip points temperatures closer to the junction
    and thermal shutdown temperatures to reduce the GPU frequency only
    as an emergency action before the thermal shutdown.
    
    Those 2 changes optimizes the thermal management design by avoiding
    concurrent thermal management, calculations & avoidable interrupts
    by moving the HLOS management to a last resort emergency if the
    Hardware & Firmwares fails to avoid a thermal shutdown.
    
    To: Bjorn Andersson <andersson@kernel.org>
    To: Konrad Dybcio <konradybcio@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Neil Armstrong (2):
          arm64: dts: qcom: sm8650: setup cpu thermal with idle on high temperatures
          arm64: dts: qcom: sm8650: setup gpu thermal with higher temperatures
    
     arch/arm64/boot/dts/qcom/sm8650.dtsi | 322 ++++++++++++++++++++++++++---------
     1 file changed, 238 insertions(+), 84 deletions(-)
    ---
    base-commit: 8155b4ef3466f0e289e8fcc9e6e62f3f4dceeac2
    change-id: 20250103-topic-sm8650-thermal-cpu-idle-1e19181a94ed
    
    Best regards,
  • sent/20241113-topic-sm8x50-gpu-bw-vote-f5e022fe7a47-v6
    drm/msm: adreno: add support for DDR bandwidth scaling via GMU
    
    The Adreno GPU Management Unit (GMU) can also vote for DDR Bandwidth
    along the Frequency and Power Domain level, but by default we leave the
    OPP core scale the interconnect ddr path.
    
    While scaling the interconnect path was sufficient, newer GPUs
    like the A750 requires specific vote parameters and bandwidth to
    achieve full functionnality.
    
    In order to get the vote values to be used by the GPU Management
    Unit (GMU), we need to parse all the possible OPP Bandwidths and
    create a vote value to be send to the appropriate Bus Control
    Modules (BCMs) declared in the GPU info struct.
    The added dev_pm_opp_get_bw() is used in this case.
    
    The vote array will then be used to dynamically generate the GMU
    bw_table sent during the GMU power-up.
    
    Those entries will then be used by passing the appropriate
    bandwidth level when voting for a GPU frequency.
    
    This will make sure all resources are equally voted for a
    same OPP, whatever decision is done by the GMU, it will
    ensure all resources votes are synchronized.
    
    Depends on [1] to avoid crashing when getting OPP bandwidths.
    
    [1] https://lore.kernel.org/all/20241203-topic-opp-fix-assert-index-check-v3-0-1d4f6f763138@linaro.org/
    
    Ran full vulkan-cts-1.3.7.3-0-gd71a36db16d98313c431829432a136dbda692a08 with mesa 25.0.0+git3ecf2a0518 on:
    - QRD8550
    - QRD8650
    - HDK8650
    
    Any feedback is welcome.
    
    To: Rob Clark <robdclark@gmail.com>
    To: Sean Paul <sean@poorly.run>
    To: Konrad Dybcio <konradybcio@kernel.org>
    To: Abhinav Kumar <quic_abhinavk@quicinc.com>
    To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    To: Marijn Suijten <marijn.suijten@somainline.org>
    To: David Airlie <airlied@gmail.com>
    To: Simona Vetter <simona@ffwll.ch>
    To: Bjorn Andersson <andersson@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Akhil P Oommen <quic_akhilpo@quicinc.com>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: dri-devel@lists.freedesktop.org
    Cc: freedreno@lists.freedesktop.org
    Cc: linux-kernel@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    ---
    Changes in v6:
    - Account for A6xx in a6xx_gmu_rpmh_bw_votes_init():
      - always vote the perfmode bit on a6xx
      - only vote X & Y on A7xx
    - Only AB vote starting from A750
    - Cleanup a6xx_gmu_rpmh_bw_votes_init()
      - drop useless tests
      - add local const struct a6xx_bcm to avoid &info->bcms[bcm_index]
      - remove useless ULL to 1000ULL
      - add an error if cmd_db_read_aux_data() returns count==0
    - Link to v5: https://lore.kernel.org/r/20241211-topic-sm8x50-gpu-bw-vote-v5-0-6112f9f785ec@linaro.org
    
    Changes in v5:
    - Dropped bogus qcom,icc.h flags
    - Properly calculate _wait_bitmask from votes
    - Switch DT to qcom,bus-freq values from downstream
    - Added review tags
    - Link to v4: https://lore.kernel.org/r/20241205-topic-sm8x50-gpu-bw-vote-v4-0-9650d15dd435@linaro.org
    
    Changes in v4:
    - Collected review tags
    - Dropped bcm_div() and switched to clamp() instead
    - Dropped pre-calculation of AB votes
    - Instead calculate a 25% floor vote in a6xx_gmu_set_freq() as recommended
    - Use QCOM_ICC_TAG_ALWAYS in DT
    - Made a740_generate_bw_table() generic, using defines to fill the table
    - Link to v3: https://lore.kernel.org/r/20241128-topic-sm8x50-gpu-bw-vote-v3-0-81d60c10fb73@linaro.org
    
    Changes in v3:
    - I didn't take Dmitry's review tags since I significantly changed the patches
    - Dropped applied OPP change
    - Dropped QUIRK/FEATURE addition/rename in favor of checking the a6xx_info->bcms pointer
    - Switch a6xx_info->bcms to a pointer, so it can be easy to share the table
    - Generate AB votes in advance, the voting was wrong in v2 we need to quantitiwe each bandwidth value
    - Do not vote via GMU is there's only the OFF vote because DT doesn't have the right properties
    - Added defines for the a6xx_gmu freqs tables to not have magic 16 and 4 values
    - Renamed gpu_bw_votes to gpu_ib_votes to match the downstream naming
    - Changed the parameters of a6xx_hfi_set_freq() to u32 to match the data type we pass
    - Drop "request for maximum bus bandwidth usage" and merge it in previous changes
    - Link to v2: https://lore.kernel.org/r/20241119-topic-sm8x50-gpu-bw-vote-v2-0-4deb87be2498@linaro.org
    
    Changes in v2:
    - opp: rename to dev_pm_opp_get_bw, fix commit message and kerneldoc
    - remove quirks that are features and move them to a dedicated .features bitfield
    - get icc bcm kerneldoc, and simplify/cleanup a6xx_gmu_rpmh_bw_votes_init()
      - no more copies of data
      - take calculations from icc-rpmh/bcm-voter
      - move into a single cleaner function
    - fix a6xx_gmu_set_freq() but not calling dev_pm_opp_set_opp() if !bw_index
    - also vote for maximum bus bandwidth usage (AB)
    - overall fix typos in commit messages
    - Link to v1: https://lore.kernel.org/r/20241113-topic-sm8x50-gpu-bw-vote-v1-0-3b8d39737a9b@linaro.org
    
    ---
    Neil Armstrong (7):
          drm/msm: adreno: add defines for gpu & gmu frequency table sizes
          drm/msm: adreno: add plumbing to generate bandwidth vote table for GMU
          drm/msm: adreno: dynamically generate GMU bw table
          drm/msm: adreno: find bandwidth index of OPP and set it along freq index
          drm/msm: adreno: enable GMU bandwidth for A740 and A750
          arm64: qcom: dts: sm8550: add interconnect and opp-peak-kBps for GPU
          arm64: qcom: dts: sm8650: add interconnect and opp-peak-kBps for GPU
    
     arch/arm64/boot/dts/qcom/sm8550.dtsi      |  13 +++
     arch/arm64/boot/dts/qcom/sm8650.dtsi      |  15 +++
     drivers/gpu/drm/msm/adreno/a6xx_catalog.c |  22 ++++
     drivers/gpu/drm/msm/adreno/a6xx_gmu.c     | 186 +++++++++++++++++++++++++++++-
     drivers/gpu/drm/msm/adreno/a6xx_gmu.h     |  26 ++++-
     drivers/gpu/drm/msm/adreno/a6xx_gpu.h     |   1 +
     drivers/gpu/drm/msm/adreno/a6xx_hfi.c     |  54 ++++++++-
     drivers/gpu/drm/msm/adreno/a6xx_hfi.h     |   5 +
     drivers/gpu/drm/msm/adreno/adreno_gpu.h   |   5 +
     9 files changed, 316 insertions(+), 11 deletions(-)
    ---
    base-commit: 4176cf5c5651c33769de83bb61b0287f4ec7719f
    change-id: 20241113-topic-sm8x50-gpu-bw-vote-f5e022fe7a47
    
    Best regards,
  • sent/20241113-topic-sm8x50-gpu-bw-vote-f5e022fe7a47-v5
    drm/msm: adreno: add support for DDR bandwidth scaling via GMU
    
    The Adreno GPU Management Unit (GMU) can also vote for DDR Bandwidth
    along the Frequency and Power Domain level, but by default we leave the
    OPP core scale the interconnect ddr path.
    
    While scaling the interconnect path was sufficient, newer GPUs
    like the A750 requires specific vote parameters and bandwidth to
    achieve full functionnality.
    
    In order to get the vote values to be used by the GPU Management
    Unit (GMU), we need to parse all the possible OPP Bandwidths and
    create a vote value to be send to the appropriate Bus Control
    Modules (BCMs) declared in the GPU info struct.
    The added dev_pm_opp_get_bw() is used in this case.
    
    The vote array will then be used to dynamically generate the GMU
    bw_table sent during the GMU power-up.
    
    Those entries will then be used by passing the appropriate
    bandwidth level when voting for a GPU frequency.
    
    This will make sure all resources are equally voted for a
    same OPP, whatever decision is done by the GMU, it will
    ensure all resources votes are synchronized.
    
    Depends on [1] to avoid crashing when getting OPP bandwidths.
    
    [1] https://lore.kernel.org/all/20241203-topic-opp-fix-assert-index-check-v3-0-1d4f6f763138@linaro.org/
    
    Ran full vulkan-cts-1.3.7.3-0-gd71a36db16d98313c431829432a136dbda692a08 with mesa 25.0.0+git3ecf2a0518 on:
    - QRD8550
    - QRD8650
    - HDK8650
    
    Any feedback is welcome.
    
    To: Rob Clark <robdclark@gmail.com>
    To: Sean Paul <sean@poorly.run>
    To: Konrad Dybcio <konradybcio@kernel.org>
    To: Abhinav Kumar <quic_abhinavk@quicinc.com>
    To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    To: Marijn Suijten <marijn.suijten@somainline.org>
    To: David Airlie <airlied@gmail.com>
    To: Simona Vetter <simona@ffwll.ch>
    To: Bjorn Andersson <andersson@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Akhil P Oommen <quic_akhilpo@quicinc.com>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: dri-devel@lists.freedesktop.org
    Cc: freedreno@lists.freedesktop.org
    Cc: linux-kernel@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    ---
    Changes in v5:
    - Dropped bogus qcom,icc.h flags
    - Properly calculate _wait_bitmask from votes
    - Switch DT to qcom,bus-freq values from downstream
    - Added review tags
    - Link to v4: https://lore.kernel.org/r/20241205-topic-sm8x50-gpu-bw-vote-v4-0-9650d15dd435@linaro.org
    
    Changes in v4:
    - Collected review tags
    - Dropped bcm_div() and switched to clamp() instead
    - Dropped pre-calculation of AB votes
    - Instead calculate a 25% floor vote in a6xx_gmu_set_freq() as recommended
    - Use QCOM_ICC_TAG_ALWAYS in DT
    - Made a740_generate_bw_table() generic, using defines to fill the table
    - Link to v3: https://lore.kernel.org/r/20241128-topic-sm8x50-gpu-bw-vote-v3-0-81d60c10fb73@linaro.org
    
    Changes in v3:
    - I didn't take Dmitry's review tags since I significantly changed the patches
    - Dropped applied OPP change
    - Dropped QUIRK/FEATURE addition/rename in favor of checking the a6xx_info->bcms pointer
    - Switch a6xx_info->bcms to a pointer, so it can be easy to share the table
    - Generate AB votes in advance, the voting was wrong in v2 we need to quantitiwe each bandwidth value
    - Do not vote via GMU is there's only the OFF vote because DT doesn't have the right properties
    - Added defines for the a6xx_gmu freqs tables to not have magic 16 and 4 values
    - Renamed gpu_bw_votes to gpu_ib_votes to match the downstream naming
    - Changed the parameters of a6xx_hfi_set_freq() to u32 to match the data type we pass
    - Drop "request for maximum bus bandwidth usage" and merge it in previous changes
    - Link to v2: https://lore.kernel.org/r/20241119-topic-sm8x50-gpu-bw-vote-v2-0-4deb87be2498@linaro.org
    
    Changes in v2:
    - opp: rename to dev_pm_opp_get_bw, fix commit message and kerneldoc
    - remove quirks that are features and move them to a dedicated .features bitfield
    - get icc bcm kerneldoc, and simplify/cleanup a6xx_gmu_rpmh_bw_votes_init()
      - no more copies of data
      - take calculations from icc-rpmh/bcm-voter
      - move into a single cleaner function
    - fix a6xx_gmu_set_freq() but not calling dev_pm_opp_set_opp() if !bw_index
    - also vote for maximum bus bandwidth usage (AB)
    - overall fix typos in commit messages
    - Link to v1: https://lore.kernel.org/r/20241113-topic-sm8x50-gpu-bw-vote-v1-0-3b8d39737a9b@linaro.org
    
    ---
    Neil Armstrong (7):
          drm/msm: adreno: add defines for gpu & gmu frequency table sizes
          drm/msm: adreno: add plumbing to generate bandwidth vote table for GMU
          drm/msm: adreno: dynamically generate GMU bw table
          drm/msm: adreno: find bandwidth index of OPP and set it along freq index
          drm/msm: adreno: enable GMU bandwidth for A740 and A750
          arm64: qcom: dts: sm8550: add interconnect and opp-peak-kBps for GPU
          arm64: qcom: dts: sm8650: add interconnect and opp-peak-kBps for GPU
    
     arch/arm64/boot/dts/qcom/sm8550.dtsi      |  13 +++
     arch/arm64/boot/dts/qcom/sm8650.dtsi      |  15 +++
     drivers/gpu/drm/msm/adreno/a6xx_catalog.c |  22 ++++
     drivers/gpu/drm/msm/adreno/a6xx_gmu.c     | 183 +++++++++++++++++++++++++++++-
     drivers/gpu/drm/msm/adreno/a6xx_gmu.h     |  26 ++++-
     drivers/gpu/drm/msm/adreno/a6xx_gpu.h     |   1 +
     drivers/gpu/drm/msm/adreno/a6xx_hfi.c     |  54 ++++++++-
     drivers/gpu/drm/msm/adreno/a6xx_hfi.h     |   5 +
     8 files changed, 308 insertions(+), 11 deletions(-)
    ---
    base-commit: df210b30304e9113866a213363894a6d768411ec
    change-id: 20241113-topic-sm8x50-gpu-bw-vote-f5e022fe7a47
    
    Best regards,
  • sent/20241204-topic-misc-rt5682-convert-3b0320e1a700-v2
    (no cover subject)
    
    To: Liam Girdwood <lgirdwood@gmail.com>
    To: Mark Brown <broonie@kernel.org>
    To: Rob Herring <robh@kernel.org>
    To: Krzysztof Kozlowski <krzk+dt@kernel.org>
    To: Conor Dooley <conor+dt@kernel.org>
    To: Bard Liao <bardliao@realtek.com>
    Cc: linux-sound@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
    
    ---
    Changes in v2:
    - Dropped invalid realtek,amic-delay-ms
    - Wrapped descriptions
    - Moved unevaluatedProperties after required
    - Link to v1: https://lore.kernel.org/r/20241204-topic-misc-rt5682-convert-v1-1-0fedc4ab15e8@linaro.org
    
    ---
    Neil Armstrong (1):
          ASoC: dt-bindings: convert rt5682.txt to dt-schema
    
     .../devicetree/bindings/sound/realtek,rt5682.yaml  | 156 +++++++++++++++++++++
     Documentation/devicetree/bindings/sound/rt5682.txt |  98 -------------
     2 files changed, 156 insertions(+), 98 deletions(-)
    ---
    base-commit: 695ead81c12bf5430239b43e9d862d6d790e12ce
    change-id: 20241204-topic-misc-rt5682-convert-3b0320e1a700
    
    Best regards,