2023-08-24 10:47:24

by Georgi Djakov

[permalink] [raw]
Subject: [GIT PULL] interconnect changes for 6.6

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 <[email protected]>

----------------------------------------------------------------
Georgi Djakov (8):
Merge branch 'qcom/[email protected]' 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