Skip to content

Commit

Permalink
Merge tag 'icc-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/…
Browse files Browse the repository at this point in the history
…git/djakov/icc into char-misc-next

Georgi writes:

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>

* tag 'icc-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc: (64 commits)
  interconnect: Add debugfs test client
  interconnect: Reintroduce icc_get()
  debugfs: Add write support to debugfs_create_str()
  interconnect: qcom: icc-rpmh: Retire DEFINE_QBCM
  interconnect: qcom: sm8350: Retire DEFINE_QBCM
  interconnect: qcom: sm8250: Retire DEFINE_QBCM
  interconnect: qcom: sm8150: Retire DEFINE_QBCM
  interconnect: qcom: sm6350: Retire DEFINE_QBCM
  interconnect: qcom: sdx65: Retire DEFINE_QBCM
  interconnect: qcom: sdx55: Retire DEFINE_QBCM
  interconnect: qcom: sdm845: Retire DEFINE_QBCM
  interconnect: qcom: sdm670: Retire DEFINE_QBCM
  interconnect: qcom: sc7180: Retire DEFINE_QBCM
  interconnect: qcom: icc-rpmh: Retire DEFINE_QNODE
  interconnect: qcom: sm8350: Retire DEFINE_QNODE
  interconnect: qcom: sm8250: Retire DEFINE_QNODE
  interconnect: qcom: sm8150: Retire DEFINE_QNODE
  interconnect: qcom: sm6350: Retire DEFINE_QNODE
  interconnect: qcom: sdx65: Retire DEFINE_QNODE
  interconnect: qcom: sdx55: Retire DEFINE_QNODE
  ...
  • Loading branch information
Greg Kroah-Hartman committed Aug 24, 2023
2 parents eb176cb + 6ac3f01 commit 704e2c6
Show file tree
Hide file tree
Showing 52 changed files with 12,766 additions and 1,720 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,20 @@ properties:
- const: qcom,msm8998-bwmon # BWMON v4
- items:
- enum:
- qcom,sc7180-cpu-bwmon
- qcom,sc7280-cpu-bwmon
- qcom,sc8280xp-cpu-bwmon
- qcom,sdm845-cpu-bwmon
- qcom,sm6350-llcc-bwmon
- qcom,sm8250-cpu-bwmon
- qcom,sm8550-cpu-bwmon
- const: qcom,sdm845-bwmon # BWMON v4, unified register space
- items:
- enum:
- qcom,sc7180-llcc-bwmon
- qcom,sc8280xp-llcc-bwmon
- qcom,sm6350-cpu-bwmon
- qcom,sm8250-llcc-bwmon
- qcom,sm8550-llcc-bwmon
- const: qcom,sc7280-llcc-bwmon
- const: qcom,sc7280-llcc-bwmon # BWMON v5
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ properties:
- enum:
- qcom,sc7180-osm-l3
- qcom,sc8180x-osm-l3
- qcom,sdm670-osm-l3
- qcom,sdm845-osm-l3
- qcom,sm6350-osm-l3
- qcom,sm8150-osm-l3
Expand Down
18 changes: 14 additions & 4 deletions Documentation/devicetree/bindings/interconnect/qcom,rpmh.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@ description: |
least one RPMh device child node pertaining to their RSC and each provider
can map to multiple RPMh resources.
allOf:
- $ref: qcom,rpmh-common.yaml#

properties:
reg:
maxItems: 1
Expand Down Expand Up @@ -91,6 +88,7 @@ properties:
- qcom,sm8250-mc-virt
- qcom,sm8250-mmss-noc
- qcom,sm8250-npu-noc
- qcom,sm8250-qup-virt
- qcom,sm8250-system-noc
- qcom,sm8350-aggre1-noc
- qcom,sm8350-aggre2-noc
Expand All @@ -107,7 +105,19 @@ properties:

required:
- compatible
- reg

allOf:
- $ref: qcom,rpmh-common.yaml#
- if:
not:
properties:
compatible:
enum:
- qcom,sm8250-qup-virt
then:
required:
- reg


unevaluatedProperties: false

Expand Down
25 changes: 25 additions & 0 deletions Documentation/driver-api/interconnect.rst
Original file line number Diff line number Diff line change
Expand Up @@ -113,3 +113,28 @@ through dot to generate diagrams in many graphical formats::

$ cat /sys/kernel/debug/interconnect/interconnect_graph | \
dot -Tsvg > interconnect_graph.svg

The ``test-client`` directory provides interfaces for issuing BW requests to
any arbitrary path. Note that for safety reasons, this feature is disabled by
default without a Kconfig to enable it. Enabling it requires code changes to
``#define INTERCONNECT_ALLOW_WRITE_DEBUGFS``. Example usage::

cd /sys/kernel/debug/interconnect/test-client/

# Configure node endpoints for the path from CPU to DDR on
# qcom/sm8550.
echo chm_apps > src_node
echo ebi > dst_node

# Get path between src_node and dst_node. This is only
# necessary after updating the node endpoints.
echo 1 > get

# Set desired BW to 1GBps avg and 2GBps peak.
echo 1000000 > avg_bw
echo 2000000 > peak_bw

# Vote for avg_bw and peak_bw on the latest path from "get".
# Voting for multiple paths is possible by repeating this
# process for different nodes endpoints.
echo 1 > commit
Loading

0 comments on commit 704e2c6

Please sign in to comment.