[GIT,PULL] interconnect changes for 6.6

Message ID 20230824094633.866043-1-djakov@kernel.org
State New
Headers
Series [GIT,PULL] interconnect changes for 6.6 |

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc.git tags/icc-6.6-rc1

Message

Georgi Djakov Aug. 24, 2023, 9:46 a.m. UTC
  Hello Greg,

This is the pull request with interconnect updates for the 6.6-rc1 merge
window. In contains a mix of core and driver changes as usual. This time
it might look a bit bigger as lines of code, but 97.5% of these are related
to expanding some macros in drivers and bring no functional change. There
are also a few patches that touch qcom clock drivers and these are in
immutable branch that is pulled also by the qcom tree. It contains also a
debugfs patch that you acked recently. The complete summary and details
are in the signed tag.

All patches have been in linux-next during last few days. Please pull into
char-misc-next when possible.

Thanks,
Georgi

The following changes since commit 2ccdd1b13c591d306f0401d98dedc4bdcd02b421:

  Linux 6.5-rc6 (2023-08-13 11:29:55 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc.git tags/icc-6.6-rc1

for you to fetch changes up to 6ac3f01201fa1c453fc8a8ce5a7208da9cca254d:

  Merge branch 'icc-debugfs' into icc-next (2023-08-22 21:05:09 +0300)

----------------------------------------------------------------
interconnect changes for 6.6

This pull request contains the interconnect changes for the 6.6-rc1 merge
window which is a mix of core and driver changes with the following highlights:

Core changes:
- New generic test client driver that allows issuing bandwidth requests
  between endpoints via debugfs.
- Annotate all structs with flexible array members with the __counted_by
  attribute.
- Introduce new icc_bw_lock for cases where we need to serialize bandwidth
  aggregation and update to decouple that from paths that require memory
  allocation.

Driver changes:
- Move the Qualcomm SMD RPM bus-clocks from CCF to interconnect framework
  where they actually belong. This brings power management improvements
  and reduces the overhead and layering. These changes are in immutable
  branch that is being pulled also into the qcom tree.
- Fixes for QUP nodes on SM8250.
- Enable sync_state and keepalive for QCM2290.
- Enable sync_state for SM8450.
- Improve enable_mask-based BCMs handling and fix some bugs.
- Add compatible string for the OSM-L3 on SDM670.
- Add compatible strings for SC7180, SM8250 and SM6350 bandwidth monitors.
- Expand and retire the DEFINE_QNODE and DEFINE_QBCM macros, which have
  become ugly beasts with many different arguments.

Signed-off-by: Georgi Djakov <djakov@kernel.org>

----------------------------------------------------------------
Georgi Djakov (8):
      Merge branch 'qcom/20230526-topic-smd_icc-v7-0-09c78c175546@linaro.org' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git into icc-next
      interconnect: qcom: icc-rpm: Explicitly return 0 at the end of the function
      Merge branch 'icc-sm8250-qup' into icc-next
      Merge tag 'v6.5-rc6' into icc-next
      Merge branch 'icc-qcm2290' into icc-next
      Merge branch 'icc-enable-mask' into icc-next
      Merge branch 'icc-retire-macros' into icc-next
      Merge branch 'icc-debugfs' into icc-next

Kees Cook (3):
      interconnect: icc-clk: Annotate struct icc_clk_provider with __counted_by
      interconnect: Annotate struct icc_path with __counted_by
      interconnect: qcom: Annotate struct icc_onecell_data with __counted_by

Konrad Dybcio (52):
      dt-bindings: interconnect: qcom,bwmon: Document SC7180 BWMONs
      dt-bindings: interconnect: qcom,msm8998-bwmon: Add SM8250 bwmon instances
      dt-bindings: interconnect: qcom,msm8998-bwmon: Add SM6350 bwmon instances
      dt-bindings: interconnect: Add Qcom RPM ICC bindings
      soc: qcom: smd-rpm: Add QCOM_SMD_RPM_STATE_NUM
      soc: qcom: smd-rpm: Use tabs for defines
      clk: qcom: smd-rpm: Move some RPM resources to the common header
      interconnect: qcom: icc-rpm: Introduce keep_alive
      interconnect: qcom: Add missing headers in icc-rpm.h
      interconnect: qcom: Fold smd-rpm.h into icc-rpm.h
      interconnect: qcom: smd-rpm: Add rpmcc handling skeleton code
      interconnect: qcom: Define RPM bus clocks
      interconnect: qcom: sdm660: Hook up RPM bus clk definitions
      interconnect: qcom: msm8996: Hook up RPM bus clk definitions
      interconnect: qcom: qcs404: Hook up RPM bus clk definitions
      interconnect: qcom: msm8939: Hook up RPM bus clk definitions
      interconnect: qcom: msm8916: Hook up RPM bus clk definitions
      interconnect: qcom: qcm2290: Hook up RPM bus clk definitions
      interconnect: qcom: icc-rpm: Control bus rpmcc from icc
      clk: qcom: smd-rpm: Separate out interconnect bus clocks
      interconnect: qcom: icc-rpm: Fix bucket number
      interconnect: qcom: icc-rpm: Set bandwidth on both contexts
      interconnect: qcom: icc-rpm: Set correct bandwidth through RPM bw req
      interconnect: qcom: icc-rpm: Fix bandwidth calculations
      dt-bindings: interconnect: qcom,rpmh: Add SM8250 QUP virt
      dt-bindings: interconnect: qcom,sm8250: Add QUP virt
      interconnect: qcom: sm8250: Fix QUP0 nodes
      interconnect: qcom: qcm2290: Enable keep_alive on all buses
      interconnect: qcom: qcm2290: Enable sync state
      interconnect: qcom: sm8450: Enable sync_state
      interconnect: qcom: bcm-voter: Improve enable_mask handling
      interconnect: qcom: bcm-voter: Use enable_maks for keepalive voting
      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

Mike Tipton (3):
      debugfs: Add write support to debugfs_create_str()
      interconnect: Reintroduce icc_get()
      interconnect: Add debugfs test client

Richard Acayan (1):
      dt-bindings: interconnect: OSM L3: add SDM670 compatible

Rob Clark (2):
      interconnect: Fix locking for runpm vs reclaim
      interconnect: Teach lockdep about icc_bw_lock order

Rob Herring (1):
      interconnect: Explicitly include correct DT includes

Stephan Gerhold (1):
      soc: qcom: smd-rpm: Move icc_smd_rpm registration to clk-smd-rpm

 .../devicetree/bindings/interconnect/qcom,msm8998-bwmon.yaml   |    6 +
 .../devicetree/bindings/interconnect/qcom,osm-l3.yaml          |    1 +
 Documentation/devicetree/bindings/interconnect/qcom,rpmh.yaml  |   18 +-
 Documentation/driver-api/interconnect.rst                      |   25 +
 drivers/clk/qcom/clk-smd-rpm.c                                 |  314 +-
 drivers/interconnect/Makefile                                  |    2 +-
 drivers/interconnect/core.c                                    |   84 +-
 drivers/interconnect/debugfs-client.c                          |  168 +
 drivers/interconnect/icc-clk.c                                 |    2 +-
 drivers/interconnect/imx/imx8mp.c                              |    1 -
 drivers/interconnect/internal.h                                |    5 +-
 drivers/interconnect/qcom/Makefile                             |    2 +-
 drivers/interconnect/qcom/bcm-voter.c                          |   43 +-
 drivers/interconnect/qcom/bcm-voter.h                          |    8 -
 drivers/interconnect/qcom/icc-rpm-clocks.c                     |   77 +
 drivers/interconnect/qcom/icc-rpm.c                            |  224 +-
 drivers/interconnect/qcom/icc-rpm.h                            |   56 +-
 drivers/interconnect/qcom/icc-rpmh.c                           |    5 +-
 drivers/interconnect/qcom/icc-rpmh.h                           |   10 -
 drivers/interconnect/qcom/msm8916.c                            |    7 +-
 drivers/interconnect/qcom/msm8939.c                            |    8 +-
 drivers/interconnect/qcom/msm8974.c                            |    7 +-
 drivers/interconnect/qcom/msm8996.c                            |   13 +-
 drivers/interconnect/qcom/osm-l3.c                             |    4 +-
 drivers/interconnect/qcom/qcm2290.c                            |   18 +-
 drivers/interconnect/qcom/qcs404.c                             |    7 +-
 drivers/interconnect/qcom/qdu1000.c                            |    3 +-
 drivers/interconnect/qcom/sa8775p.c                            |    3 +-
 drivers/interconnect/qcom/sc7180.c                             | 1616 ++++++-
 drivers/interconnect/qcom/sc7280.c                             |    3 +-
 drivers/interconnect/qcom/sc8180x.c                            |    3 +-
 drivers/interconnect/qcom/sc8280xp.c                           |    3 +-
 drivers/interconnect/qcom/sdm660.c                             |   11 +-
 drivers/interconnect/qcom/sdm670.c                             | 1389 +++++-
 drivers/interconnect/qcom/sdm845.c                             | 1658 ++++++-
 drivers/interconnect/qcom/sdx55.c                              |  846 +++-
 drivers/interconnect/qcom/sdx65.c                              |  833 +++-
 drivers/interconnect/qcom/sm6350.c                             | 1529 +++++-
 drivers/interconnect/qcom/sm8150.c                             | 1689 ++++++-
 drivers/interconnect/qcom/sm8250.c                             | 1822 +++++++-
 drivers/interconnect/qcom/sm8250.h                             |    6 +
 drivers/interconnect/qcom/sm8350.c                             | 1801 ++++++-
 drivers/interconnect/qcom/sm8450.c                             |    5 +-
 drivers/interconnect/qcom/sm8550.c                             |    4 +-
 drivers/interconnect/qcom/smd-rpm.c                            |   25 +-
 drivers/interconnect/qcom/smd-rpm.h                            |   15 -
 drivers/soc/qcom/smd-rpm.c                                     |   17 +-
 fs/debugfs/file.c                                              |   48 +-
 include/dt-bindings/interconnect/qcom,rpm-icc.h                |   13 +
 include/dt-bindings/interconnect/qcom,sm8250.h                 |    7 +
 include/linux/interconnect-provider.h                          |    2 +-
 include/linux/soc/qcom/smd-rpm.h                               |   20 +-
 52 files changed, 12766 insertions(+), 1720 deletions(-)
 create mode 100644 drivers/interconnect/debugfs-client.c
 create mode 100644 drivers/interconnect/qcom/icc-rpm-clocks.c
 delete mode 100644 drivers/interconnect/qcom/smd-rpm.h
 create mode 100644 include/dt-bindings/interconnect/qcom,rpm-icc.h