From: Herman van Hazendonk <github.com@herrie.org>
To: djakov@kernel.org
Cc: dmitry.baryshkov@oss.qualcomm.com,
konrad.dybcio@oss.qualcomm.com, odelu.kukatla@oss.qualcomm.com,
raviteja.laggyshetty@oss.qualcomm.com, luca.weiss@fairphone.com,
abel.vesa@oss.qualcomm.com, jie.gan@oss.qualcomm.com,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Herman van Hazendonk <github.com@herrie.org>
Subject: [PATCH v2 0/2] interconnect: qcom: add MSM8x60 NoC driver
Date: Thu, 4 Jun 2026 20:43:58 +0200 [thread overview]
Message-ID: <20260604184400.801543-1-github.com@herrie.org> (raw)
v2 addresses Jie's, Sashiko's and Dmitry's review of v1:
Binding (PATCH 1/2):
- Add the dt-binding schema (qcom,msm8660.yaml). v1 only shipped
the ID header (Jie flagged the missing schema). The schema
covers all four compatibles, per-fabric clock-name lists
(bus/bus_a/ebi1/ebi1_a for AFAB; bus/bus_a/smi/smi_a for MMFAB;
bus/bus_a for SFAB and DFAB) with descriptions for each clock
(Dmitry), the required qcom,rpm phandle, and
#interconnect-cells = <1>.
- Drop the SFPB/CFPB mention from the header commit message;
those fabrics aren't modelled by the driver (Sashiko Low).
Driver (PATCH 2/2):
- Fix the bandwidth aggregation in msm8660_icc_set() (Sashiko
High). v1 walked provider->nodes and re-summed n->avg_bw
across all nodes, which double-counts: the framework already
writes each path's bw to every node it traverses, so summing
here gives e.g. master_bw + slave_bw for the same flow. v2
takes the max per-node rate across the provider (matches the
qcom_icc_bus_aggregate() convention in icc-rpm.c).
- Switch to dynamic ICC node IDs via icc_node_create_dyn() and
pointer-based linking via icc_link_nodes(), matching the
icc-rpmh-style pattern (Dmitry). Drop the internal MSM8660_*
enum entirely; struct msm8660_icc_node now carries a struct
icc_node *node and a flexible link_nodes[] array of qnode
pointers.
- Expand the DEFINE_QNODE macro (Dmitry); each of the 63 qnodes
is now an explicit static struct definition, with forward
declarations grouped at the top.
- Use dev_err_ptr_probe() in msm8660_get_rpm()'s deferred-probe
paths (Dmitry).
- Limit the clock-bulk-get fallback to -ENOENT only (Dmitry);
propagate every other error including -EPROBE_DEFER instead
of "any non-DEFER continues without clock scaling".
- Kconfig: depend on MFD_QCOM_RPM=y so a built-in interconnect
provider can't link against a modular RPM (Sashiko Low).
- struct msm8660_icc_node: const char *name (Sashiko Low).
On-device validation (HP TouchPad / APQ8060):
All four fabric providers probe cleanly:
qnoc-msm8660 soc:interconnect@0: RPM fabric ARB enabled
(4 masters, 4 slaves, 2 tiered) [AFAB]
qnoc-msm8660 soc:interconnect@1: RPM fabric ARB enabled
(17 masters, 9 slaves, 2 tiered) [SFAB]
qnoc-msm8660 soc:interconnect@2: RPM fabric ARB enabled
(14 masters, 4 slaves, 3 tiered) [MMFAB]
qnoc-msm8660 soc:interconnect@3: MSM8660 interconnect provider
registered [DFAB]
mmcc-msm8660: MMSS fabric: unhalted all master ports (0-13)
msm_hsusb 12500000.usb: USB HS: Setting interconnect
bandwidth avg=61440 peak=61440 kBps
interconnect_summary shows the expected per-node aggregation
(e.g. slv_ebi_ch0 sums MMC + MDP + DMA + USB consumer requests)
and msm8660_icc_set() then derives a single fabric clock rate
from the per-node max rather than the per-node sum (the v1
double-count is gone in v2).
The companion DTS patches that enable the providers for the
HP TouchPad will be sent separately to the ARM/DTS tree.
Herman van Hazendonk (2):
dt-bindings: interconnect: qcom: add msm8660 NoC
interconnect: qcom: add MSM8x60 NoC driver
.../bindings/interconnect/qcom,msm8660.yaml | 157 ++
drivers/interconnect/qcom/Kconfig | 14 +
drivers/interconnect/qcom/Makefile | 2 +
drivers/interconnect/qcom/msm8660.c | 1619 +++++++++++++++++
.../dt-bindings/interconnect/qcom,msm8660.h | 156 ++
5 files changed, 1948 insertions(+)
create mode 100644 Documentation/devicetree/bindings/interconnect/qcom,msm8660.yaml
create mode 100644 drivers/interconnect/qcom/msm8660.c
create mode 100644 include/dt-bindings/interconnect/qcom,msm8660.h
base-commit: 944125b4c454b58d2fe6e35f1087a932b2050dff
--
2.43.0
next reply other threads:[~2026-06-04 18:44 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-04 18:43 Herman van Hazendonk [this message]
2026-06-04 18:43 ` [PATCH v2 1/2] dt-bindings: interconnect: qcom: add msm8660 NoC Herman van Hazendonk
2026-06-04 18:52 ` sashiko-bot
2026-06-04 18:44 ` [PATCH v2 2/2] interconnect: qcom: add MSM8x60 NoC driver Herman van Hazendonk
2026-06-04 18:58 ` sashiko-bot
-- strict thread matches above, loose matches on Subject: below --
2026-05-30 13:59 [PATCH 0/2] clk: qcom: add MSM8x60 LPASS Clock Controller Herman van Hazendonk
2026-05-31 4:09 ` [PATCH v2 0/2] interconnect: qcom: add MSM8x60 NoC driver Herman van Hazendonk
2026-05-31 4:09 ` Herman van Hazendonk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260604184400.801543-1-github.com@herrie.org \
--to=github.com@herrie.org \
--cc=abel.vesa@oss.qualcomm.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=djakov@kernel.org \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=jie.gan@oss.qualcomm.com \
--cc=konrad.dybcio@oss.qualcomm.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=luca.weiss@fairphone.com \
--cc=odelu.kukatla@oss.qualcomm.com \
--cc=raviteja.laggyshetty@oss.qualcomm.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.