* [PATCH 0/5] Enable QoS configuration for SM6350
@ 2025-11-07 16:08 Luca Weiss
2025-11-07 16:08 ` [PATCH 1/5] dt-bindings: interconnect: qcom,sm6350-rpmh: Add clocks for QoS Luca Weiss
` (4 more replies)
0 siblings, 5 replies; 12+ messages in thread
From: Luca Weiss @ 2025-11-07 16:08 UTC (permalink / raw)
To: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bjorn Andersson, Konrad Dybcio
Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-pm,
devicetree, linux-kernel, Luca Weiss
Update dt-bindings, driver and dts in order to configure the QoS
registers for the various SM6350 interconnects.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
Luca Weiss (5):
dt-bindings: interconnect: qcom,sm6350-rpmh: Add clocks for QoS
interconnect: qcom: icc-rpmh: Get parent's regmap for nested NoCs
interconnect: qcom: sm6350: Remove empty BCM arrays
interconnect: qcom: sm6350: enable QoS configuration
arm64: dts: qcom: sm6350: Add clocks for aggre1 & aggre2 NoC
.../bindings/interconnect/qcom,sm6350-rpmh.yaml | 65 ++++-
arch/arm64/boot/dts/qcom/sm6350.dtsi | 3 +
drivers/interconnect/qcom/icc-rpmh.c | 12 +-
drivers/interconnect/qcom/sm6350.c | 298 ++++++++++++++++++++-
4 files changed, 356 insertions(+), 22 deletions(-)
---
base-commit: 33b5a67d76ce575ea38bc3de55719a6cdf42287d
change-id: 20251107-sm6350-icc-qos-d319ffb3e6bf
prerequisite-change-id: 20250613-rework-icc-0d3b7276a798:v3
prerequisite-patch-id: dc49cf2810a33db590997c9e9969f09fcbba207e
prerequisite-patch-id: bd229a10bfd7485726f341f1bbc179fa032e4beb
prerequisite-patch-id: ea3e9a509dc2d590f647560df3fa773165d5df48
prerequisite-patch-id: 95b82df224ac0515c56d41cad8547099248697c1
prerequisite-patch-id: c793efccb33da5b78d634fc0f7259c01854c7da2
prerequisite-patch-id: b25a3cc84427ed3d321575d32dee239aa6dcfa65
prerequisite-patch-id: 8262f845f906a575f9ee06c002d8626c7b25a87e
prerequisite-patch-id: f3b9493e64d90665d7093c7f7af335452010cf13
prerequisite-patch-id: 4e05eb6178064d4b4541fccbff31e18d4e5ae258
prerequisite-patch-id: 4c169d0f54fb39999cf62eaba98208fd94e0d250
prerequisite-patch-id: 91f18aff5b2cc765964c8991647dd53e75e97648
prerequisite-patch-id: 7749a4cc2e2e8e2ac191844f8c42f338d0a80392
prerequisite-patch-id: 75a9009c7cdbeb94b2c7528f6ecc54d7a4b7a6be
prerequisite-patch-id: 9566648a76666548a85084664ba6fd4a240fe602
prerequisite-patch-id: c2ba63308bedf78640d64d9662ebfe2ceb7e6d26
prerequisite-patch-id: a08ad34a60042b2693b91f24712ccc10e0d5666b
prerequisite-patch-id: 8227a4926c64a28215b6c03d43df5518d72094e8
prerequisite-patch-id: 15ece9c03dbae75dbfb1b16a2e2c1d2ed1766c82
prerequisite-patch-id: e69ae611580f951450269b4a7df8789f6b2e2c89
prerequisite-patch-id: 5e54f850197bc33dc581ff8907fcad1dccef20a8
prerequisite-patch-id: 73caecb9e342117c2a83832f0d2346119466a899
prerequisite-patch-id: 79abd6d335f0bdd8725c27797d4fbc7ffc017007
prerequisite-patch-id: faa043f224857fad9bd8368d83d5154e3f7013c1
prerequisite-patch-id: 5d7fdb3ea01a6066079dd89a4e494165b75159db
prerequisite-patch-id: 0234857c8f0119652dcf3fd6e7e1fe051f40a6ea
Best regards,
--
Luca Weiss <luca.weiss@fairphone.com>
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH 1/5] dt-bindings: interconnect: qcom,sm6350-rpmh: Add clocks for QoS 2025-11-07 16:08 [PATCH 0/5] Enable QoS configuration for SM6350 Luca Weiss @ 2025-11-07 16:08 ` Luca Weiss 2025-11-08 12:09 ` Krzysztof Kozlowski 2025-11-07 16:08 ` [PATCH 2/5] interconnect: qcom: icc-rpmh: Get parent's regmap for nested NoCs Luca Weiss ` (3 subsequent siblings) 4 siblings, 1 reply; 12+ messages in thread From: Luca Weiss @ 2025-11-07 16:08 UTC (permalink / raw) To: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-pm, devicetree, linux-kernel, Luca Weiss Add the clocks for some interconnects to the bindings that are required to set up the QoS correctly. Update one of the examples to aggre2_noc to have an example with clocks. Also while we're at it, remove #interconnect-cells: true as that's already provided from qcom,rpmh-common.yaml. Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> --- .../bindings/interconnect/qcom,sm6350-rpmh.yaml | 65 ++++++++++++++++++---- 1 file changed, 54 insertions(+), 11 deletions(-) diff --git a/Documentation/devicetree/bindings/interconnect/qcom,sm6350-rpmh.yaml b/Documentation/devicetree/bindings/interconnect/qcom,sm6350-rpmh.yaml index 49eb156b08e0..2dc16e4293a9 100644 --- a/Documentation/devicetree/bindings/interconnect/qcom,sm6350-rpmh.yaml +++ b/Documentation/devicetree/bindings/interconnect/qcom,sm6350-rpmh.yaml @@ -12,9 +12,6 @@ maintainers: description: Qualcomm RPMh-based interconnect provider on SM6350. -allOf: - - $ref: qcom,rpmh-common.yaml# - properties: compatible: enum: @@ -30,7 +27,9 @@ properties: reg: maxItems: 1 - '#interconnect-cells': true + clocks: + minItems: 1 + maxItems: 2 patternProperties: '^interconnect-[a-z0-9\-]+$': @@ -46,8 +45,6 @@ patternProperties: - qcom,sm6350-clk-virt - qcom,sm6350-compute-noc - '#interconnect-cells': true - required: - compatible @@ -57,10 +54,54 @@ required: - compatible - reg +allOf: + - $ref: qcom,rpmh-common.yaml# + - if: + properties: + compatible: + contains: + enum: + - qcom,sm6350-aggre1-noc + then: + properties: + clocks: + items: + - description: aggre UFS PHY AXI clock + + - if: + properties: + compatible: + contains: + enum: + - qcom,sm6350-aggre2-noc + then: + properties: + clocks: + items: + - description: aggre USB3 PRIM AXI clock + - description: RPMH CC IPA clock + + - if: + properties: + compatible: + contains: + enum: + - qcom,sm6350-aggre1-noc + - qcom,sm6350-aggre2-noc + then: + required: + - clocks + else: + properties: + clocks: false + unevaluatedProperties: false examples: - | + #include <dt-bindings/clock/qcom,gcc-sm6350.h> + #include <dt-bindings/clock/qcom,rpmh.h> + config_noc: interconnect@1500000 { compatible = "qcom,sm6350-config-noc"; reg = <0x01500000 0x28000>; @@ -68,14 +109,16 @@ examples: qcom,bcm-voters = <&apps_bcm_voter>; }; - system_noc: interconnect@1620000 { - compatible = "qcom,sm6350-system-noc"; - reg = <0x01620000 0x17080>; + aggre2_noc: interconnect@1700000 { + compatible = "qcom,sm6350-aggre2-noc"; + reg = <0x01700000 0x1f880>; #interconnect-cells = <2>; qcom,bcm-voters = <&apps_bcm_voter>; + clocks = <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>, + <&rpmhcc RPMH_IPA_CLK>; - clk_virt: interconnect-clk-virt { - compatible = "qcom,sm6350-clk-virt"; + compute_noc: interconnect-compute-noc { + compatible = "qcom,sm6350-compute-noc"; #interconnect-cells = <2>; qcom,bcm-voters = <&apps_bcm_voter>; }; -- 2.51.2 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/5] dt-bindings: interconnect: qcom,sm6350-rpmh: Add clocks for QoS 2025-11-07 16:08 ` [PATCH 1/5] dt-bindings: interconnect: qcom,sm6350-rpmh: Add clocks for QoS Luca Weiss @ 2025-11-08 12:09 ` Krzysztof Kozlowski 0 siblings, 0 replies; 12+ messages in thread From: Krzysztof Kozlowski @ 2025-11-08 12:09 UTC (permalink / raw) To: Luca Weiss Cc: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio, ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-pm, devicetree, linux-kernel On Fri, Nov 07, 2025 at 05:08:47PM +0100, Luca Weiss wrote: > Add the clocks for some interconnects to the bindings that are required > to set up the QoS correctly. Update one of the examples to aggre2_noc to > have an example with clocks. > > Also while we're at it, remove #interconnect-cells: true as that's > already provided from qcom,rpmh-common.yaml. > > Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> > --- > .../bindings/interconnect/qcom,sm6350-rpmh.yaml | 65 ++++++++++++++++++---- > 1 file changed, 54 insertions(+), 11 deletions(-) Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/5] interconnect: qcom: icc-rpmh: Get parent's regmap for nested NoCs 2025-11-07 16:08 [PATCH 0/5] Enable QoS configuration for SM6350 Luca Weiss 2025-11-07 16:08 ` [PATCH 1/5] dt-bindings: interconnect: qcom,sm6350-rpmh: Add clocks for QoS Luca Weiss @ 2025-11-07 16:08 ` Luca Weiss 2025-11-08 17:46 ` Dmitry Baryshkov 2025-11-07 16:08 ` [PATCH 3/5] interconnect: qcom: sm6350: Remove empty BCM arrays Luca Weiss ` (2 subsequent siblings) 4 siblings, 1 reply; 12+ messages in thread From: Luca Weiss @ 2025-11-07 16:08 UTC (permalink / raw) To: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-pm, devicetree, linux-kernel, Luca Weiss Since commit 57eb14779dfd ("interconnect: qcom: icc-rpmh: Support child NoC device probe") the icc-rpmh driver supports initializing child NoCs, but those child NoCs also need to be able to get the parent's regmap in order to enable QoS. Change the driver to support that and support programming QoS register. Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> --- drivers/interconnect/qcom/icc-rpmh.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/interconnect/qcom/icc-rpmh.c b/drivers/interconnect/qcom/icc-rpmh.c index f90c29111f48..2103185a44a5 100644 --- a/drivers/interconnect/qcom/icc-rpmh.c +++ b/drivers/interconnect/qcom/icc-rpmh.c @@ -308,7 +308,16 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev) struct resource *res; void __iomem *base; - base = devm_platform_get_and_ioremap_resource(pdev, 0, &res); + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) { + /* Try parent's regmap */ + qp->regmap = dev_get_regmap(dev->parent, NULL); + if (qp->regmap) + goto regmap_done; + goto skip_qos_config; + } + + base = devm_ioremap_resource(dev, res); if (IS_ERR(base)) goto skip_qos_config; @@ -318,6 +327,7 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev) goto skip_qos_config; } +regmap_done: qp->num_clks = devm_clk_bulk_get_all(qp->dev, &qp->clks); if (qp->num_clks == -EPROBE_DEFER) return dev_err_probe(dev, qp->num_clks, "Failed to get QoS clocks\n"); -- 2.51.2 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 2/5] interconnect: qcom: icc-rpmh: Get parent's regmap for nested NoCs 2025-11-07 16:08 ` [PATCH 2/5] interconnect: qcom: icc-rpmh: Get parent's regmap for nested NoCs Luca Weiss @ 2025-11-08 17:46 ` Dmitry Baryshkov 0 siblings, 0 replies; 12+ messages in thread From: Dmitry Baryshkov @ 2025-11-08 17:46 UTC (permalink / raw) To: Luca Weiss Cc: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio, ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-pm, devicetree, linux-kernel On Fri, Nov 07, 2025 at 05:08:48PM +0100, Luca Weiss wrote: > Since commit 57eb14779dfd ("interconnect: qcom: icc-rpmh: Support child > NoC device probe") the icc-rpmh driver supports initializing child NoCs, > but those child NoCs also need to be able to get the parent's regmap in > order to enable QoS. > > Change the driver to support that and support programming QoS register. > > Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> > --- > drivers/interconnect/qcom/icc-rpmh.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/interconnect/qcom/icc-rpmh.c b/drivers/interconnect/qcom/icc-rpmh.c > index f90c29111f48..2103185a44a5 100644 > --- a/drivers/interconnect/qcom/icc-rpmh.c > +++ b/drivers/interconnect/qcom/icc-rpmh.c > @@ -308,7 +308,16 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev) > struct resource *res; > void __iomem *base; > > - base = devm_platform_get_and_ioremap_resource(pdev, 0, &res); > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + if (!res) { > + /* Try parent's regmap */ > + qp->regmap = dev_get_regmap(dev->parent, NULL); > + if (qp->regmap) > + goto regmap_done; And this turns into spaghetty. What about: qp->regmap = dev_get_regmap(); if (!qp->regmap) { base = devm_platform_get_and_ioremap_resource(); // handle the error qp->regmap = devm_regmap_init_mmio(); // handle the error, goto skip_qos_config } > + goto skip_qos_config; > + } > + > + base = devm_ioremap_resource(dev, res); > if (IS_ERR(base)) > goto skip_qos_config; > > @@ -318,6 +327,7 @@ int qcom_icc_rpmh_probe(struct platform_device *pdev) > goto skip_qos_config; > } > > +regmap_done: > qp->num_clks = devm_clk_bulk_get_all(qp->dev, &qp->clks); > if (qp->num_clks == -EPROBE_DEFER) > return dev_err_probe(dev, qp->num_clks, "Failed to get QoS clocks\n"); > > -- > 2.51.2 > -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 3/5] interconnect: qcom: sm6350: Remove empty BCM arrays 2025-11-07 16:08 [PATCH 0/5] Enable QoS configuration for SM6350 Luca Weiss 2025-11-07 16:08 ` [PATCH 1/5] dt-bindings: interconnect: qcom,sm6350-rpmh: Add clocks for QoS Luca Weiss 2025-11-07 16:08 ` [PATCH 2/5] interconnect: qcom: icc-rpmh: Get parent's regmap for nested NoCs Luca Weiss @ 2025-11-07 16:08 ` Luca Weiss 2025-11-08 17:47 ` Dmitry Baryshkov 2025-11-07 16:08 ` [PATCH 4/5] interconnect: qcom: sm6350: enable QoS configuration Luca Weiss 2025-11-07 16:08 ` [PATCH 5/5] arm64: dts: qcom: sm6350: Add clocks for aggre1 & aggre2 NoC Luca Weiss 4 siblings, 1 reply; 12+ messages in thread From: Luca Weiss @ 2025-11-07 16:08 UTC (permalink / raw) To: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-pm, devicetree, linux-kernel, Luca Weiss Clean up the code by removing empty BCM arrays to save some lines. Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> --- drivers/interconnect/qcom/sm6350.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/interconnect/qcom/sm6350.c b/drivers/interconnect/qcom/sm6350.c index 99c435a5968f..246549cb761e 100644 --- a/drivers/interconnect/qcom/sm6350.c +++ b/drivers/interconnect/qcom/sm6350.c @@ -1526,9 +1526,6 @@ static const struct qcom_icc_desc sm6350_config_noc = { .num_bcms = ARRAY_SIZE(config_noc_bcms), }; -static struct qcom_icc_bcm * const dc_noc_bcms[] = { -}; - static struct qcom_icc_node * const dc_noc_nodes[] = { [MASTER_CNOC_DC_NOC] = &qhm_cnoc_dc_noc, [SLAVE_GEM_NOC_CFG] = &qhs_gemnoc, @@ -1538,8 +1535,6 @@ static struct qcom_icc_node * const dc_noc_nodes[] = { static const struct qcom_icc_desc sm6350_dc_noc = { .nodes = dc_noc_nodes, .num_nodes = ARRAY_SIZE(dc_noc_nodes), - .bcms = dc_noc_bcms, - .num_bcms = ARRAY_SIZE(dc_noc_bcms), }; static struct qcom_icc_bcm * const gem_noc_bcms[] = { @@ -1600,9 +1595,6 @@ static const struct qcom_icc_desc sm6350_mmss_noc = { .num_bcms = ARRAY_SIZE(mmss_noc_bcms), }; -static struct qcom_icc_bcm * const npu_noc_bcms[] = { -}; - static struct qcom_icc_node * const npu_noc_nodes[] = { [MASTER_NPU_SYS] = &amm_npu_sys, [MASTER_NPU_NOC_CFG] = &qhm_npu_cfg, @@ -1620,8 +1612,6 @@ static struct qcom_icc_node * const npu_noc_nodes[] = { static const struct qcom_icc_desc sm6350_npu_noc = { .nodes = npu_noc_nodes, .num_nodes = ARRAY_SIZE(npu_noc_nodes), - .bcms = npu_noc_bcms, - .num_bcms = ARRAY_SIZE(npu_noc_bcms), }; static struct qcom_icc_bcm * const system_noc_bcms[] = { -- 2.51.2 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 3/5] interconnect: qcom: sm6350: Remove empty BCM arrays 2025-11-07 16:08 ` [PATCH 3/5] interconnect: qcom: sm6350: Remove empty BCM arrays Luca Weiss @ 2025-11-08 17:47 ` Dmitry Baryshkov 0 siblings, 0 replies; 12+ messages in thread From: Dmitry Baryshkov @ 2025-11-08 17:47 UTC (permalink / raw) To: Luca Weiss Cc: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio, ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-pm, devicetree, linux-kernel On Fri, Nov 07, 2025 at 05:08:49PM +0100, Luca Weiss wrote: > Clean up the code by removing empty BCM arrays to save some lines. > > Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> > --- > drivers/interconnect/qcom/sm6350.c | 10 ---------- > 1 file changed, 10 deletions(-) > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 4/5] interconnect: qcom: sm6350: enable QoS configuration 2025-11-07 16:08 [PATCH 0/5] Enable QoS configuration for SM6350 Luca Weiss ` (2 preceding siblings ...) 2025-11-07 16:08 ` [PATCH 3/5] interconnect: qcom: sm6350: Remove empty BCM arrays Luca Weiss @ 2025-11-07 16:08 ` Luca Weiss 2025-11-08 17:48 ` Dmitry Baryshkov 2025-11-07 16:08 ` [PATCH 5/5] arm64: dts: qcom: sm6350: Add clocks for aggre1 & aggre2 NoC Luca Weiss 4 siblings, 1 reply; 12+ messages in thread From: Luca Weiss @ 2025-11-07 16:08 UTC (permalink / raw) To: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-pm, devicetree, linux-kernel, Luca Weiss Enable QoS configuration for master ports with predefined values for priority and urgency forwarding. While this does require some "clocks" to be specified in devicetree to work correctly, thanks to ".qos_requires_clocks = true," this is backwards compatible with old DT as QoS programming will be skipped for aggre1_noc and aggre2_noc when clocks are not provided. Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> --- drivers/interconnect/qcom/sm6350.c | 288 +++++++++++++++++++++++++++++++++++++ 1 file changed, 288 insertions(+) diff --git a/drivers/interconnect/qcom/sm6350.c b/drivers/interconnect/qcom/sm6350.c index 246549cb761e..d96bec1cbb26 100644 --- a/drivers/interconnect/qcom/sm6350.c +++ b/drivers/interconnect/qcom/sm6350.c @@ -150,26 +150,50 @@ static struct qcom_icc_node qhm_a1noc_cfg = { .link_nodes = { &srvc_aggre1_noc }, }; +static struct qcom_icc_qosbox qhm_qup_0_qos = { + .num_ports = 1, + .port_offsets = { 0xa000 }, + .prio = 2, + .urg_fwd = 0, +}; + static struct qcom_icc_node qhm_qup_0 = { .name = "qhm_qup_0", .channels = 1, .buswidth = 4, + .qosbox = &qhm_qup_0_qos, .num_links = 1, .link_nodes = { &qns_a1noc_snoc }, }; +static struct qcom_icc_qosbox xm_emmc_qos = { + .num_ports = 1, + .port_offsets = { 0x7000 }, + .prio = 2, + .urg_fwd = 0, +}; + static struct qcom_icc_node xm_emmc = { .name = "xm_emmc", .channels = 1, .buswidth = 8, + .qosbox = &xm_emmc_qos, .num_links = 1, .link_nodes = { &qns_a1noc_snoc }, }; +static struct qcom_icc_qosbox xm_ufs_mem_qos = { + .num_ports = 1, + .port_offsets = { 0x8000 }, + .prio = 4, + .urg_fwd = 0, +}; + static struct qcom_icc_node xm_ufs_mem = { .name = "xm_ufs_mem", .channels = 1, .buswidth = 8, + .qosbox = &xm_ufs_mem_qos, .num_links = 1, .link_nodes = { &qns_a1noc_snoc }, }; @@ -182,58 +206,113 @@ static struct qcom_icc_node qhm_a2noc_cfg = { .link_nodes = { &srvc_aggre2_noc }, }; +static struct qcom_icc_qosbox qhm_qdss_bam_qos = { + .num_ports = 1, + .port_offsets = { 0xb000 }, + .prio = 2, + .urg_fwd = 0, +}; + static struct qcom_icc_node qhm_qdss_bam = { .name = "qhm_qdss_bam", .channels = 1, .buswidth = 4, + .qosbox = &qhm_qdss_bam_qos, .num_links = 1, .link_nodes = { &qns_a2noc_snoc }, }; +static struct qcom_icc_qosbox qhm_qup_1_qos = { + .num_ports = 1, + .port_offsets = { 0x9000 }, + .prio = 2, + .urg_fwd = 0, +}; static struct qcom_icc_node qhm_qup_1 = { .name = "qhm_qup_1", .channels = 1, .buswidth = 4, + .qosbox = &qhm_qup_1_qos, .num_links = 1, .link_nodes = { &qns_a2noc_snoc }, }; +static struct qcom_icc_qosbox qxm_crypto_qos = { + .num_ports = 1, + .port_offsets = { 0x6000 }, + .prio = 2, + .urg_fwd = 0, +}; + static struct qcom_icc_node qxm_crypto = { .name = "qxm_crypto", .channels = 1, .buswidth = 8, + .qosbox = &qxm_crypto_qos, .num_links = 1, .link_nodes = { &qns_a2noc_snoc }, }; +static struct qcom_icc_qosbox qxm_ipa_qos = { + .num_ports = 1, + .port_offsets = { 0x7000 }, + .prio = 2, + .urg_fwd = 0, +}; + static struct qcom_icc_node qxm_ipa = { .name = "qxm_ipa", .channels = 1, .buswidth = 8, + .qosbox = &qxm_ipa_qos, .num_links = 1, .link_nodes = { &qns_a2noc_snoc }, }; +static struct qcom_icc_qosbox xm_qdss_etr_qos = { + .num_ports = 1, + .port_offsets = { 0xc000 }, + .prio = 2, + .urg_fwd = 0, +}; + static struct qcom_icc_node xm_qdss_etr = { .name = "xm_qdss_etr", .channels = 1, .buswidth = 8, + .qosbox = &xm_qdss_etr_qos, .num_links = 1, .link_nodes = { &qns_a2noc_snoc }, }; +static struct qcom_icc_qosbox xm_sdc2_qos = { + .num_ports = 1, + .port_offsets = { 0x18000 }, + .prio = 2, + .urg_fwd = 0, +}; + static struct qcom_icc_node xm_sdc2 = { .name = "xm_sdc2", .channels = 1, .buswidth = 8, + .qosbox = &xm_sdc2_qos, .num_links = 1, .link_nodes = { &qns_a2noc_snoc }, }; +static struct qcom_icc_qosbox xm_usb3_0_qos = { + .num_ports = 1, + .port_offsets = { 0xd000 }, + .prio = 2, + .urg_fwd = 0, +}; + static struct qcom_icc_node xm_usb3_0 = { .name = "xm_usb3_0", .channels = 1, .buswidth = 8, + .qosbox = &xm_usb3_0_qos, .num_links = 1, .link_nodes = { &qns_a2noc_snoc }, }; @@ -278,18 +357,34 @@ static struct qcom_icc_node qup1_core_master = { .link_nodes = { &qup1_core_slave }, }; +static struct qcom_icc_qosbox qnm_npu_qos = { + .num_ports = 2, + .port_offsets = { 0xf000, 0x11000 }, + .prio = 0, + .urg_fwd = 1, +}; + static struct qcom_icc_node qnm_npu = { .name = "qnm_npu", .channels = 2, .buswidth = 32, + .qosbox = &qnm_npu_qos, .num_links = 1, .link_nodes = { &qns_cdsp_gemnoc }, }; +static struct qcom_icc_qosbox qxm_npu_dsp_qos = { + .num_ports = 1, + .port_offsets = { 0x13000 }, + .prio = 0, + .urg_fwd = 1, +}; + static struct qcom_icc_node qxm_npu_dsp = { .name = "qxm_npu_dsp", .channels = 1, .buswidth = 8, + .qosbox = &qxm_npu_dsp_qos, .num_links = 1, .link_nodes = { &qns_cdsp_gemnoc }, }; @@ -401,19 +496,35 @@ static struct qcom_icc_node qhm_cnoc_dc_noc = { &qhs_gemnoc }, }; +static struct qcom_icc_qosbox acm_apps_qos = { + .num_ports = 2, + .port_offsets = { 0x2f100, 0x2f000 }, + .prio = 0, + .urg_fwd = 0, +}; + static struct qcom_icc_node acm_apps = { .name = "acm_apps", .channels = 1, .buswidth = 16, + .qosbox = &acm_apps_qos, .num_links = 2, .link_nodes = { &qns_llcc, &qns_gem_noc_snoc }, }; +static struct qcom_icc_qosbox acm_sys_tcu_qos = { + .num_ports = 1, + .port_offsets = { 0x35000 }, + .prio = 6, + .urg_fwd = 0, +}; + static struct qcom_icc_node acm_sys_tcu = { .name = "acm_sys_tcu", .channels = 1, .buswidth = 8, + .qosbox = &acm_sys_tcu_qos, .num_links = 2, .link_nodes = { &qns_llcc, &qns_gem_noc_snoc }, @@ -429,53 +540,101 @@ static struct qcom_icc_node qhm_gemnoc_cfg = { &qhs_mdsp_ms_mpu_cfg }, }; +static struct qcom_icc_qosbox qnm_cmpnoc_qos = { + .num_ports = 1, + .port_offsets = { 0x2e000 }, + .prio = 0, + .urg_fwd = 1, +}; + static struct qcom_icc_node qnm_cmpnoc = { .name = "qnm_cmpnoc", .channels = 1, .buswidth = 32, + .qosbox = &qnm_cmpnoc_qos, .num_links = 2, .link_nodes = { &qns_llcc, &qns_gem_noc_snoc }, }; +static struct qcom_icc_qosbox qnm_mnoc_hf_qos = { + .num_ports = 1, + .port_offsets = { 0x30000 }, + .prio = 0, + .urg_fwd = 1, +}; + static struct qcom_icc_node qnm_mnoc_hf = { .name = "qnm_mnoc_hf", .channels = 1, .buswidth = 32, + .qosbox = &qnm_mnoc_hf_qos, .num_links = 2, .link_nodes = { &qns_llcc, &qns_gem_noc_snoc }, }; +static struct qcom_icc_qosbox qnm_mnoc_sf_qos = { + .num_ports = 1, + .port_offsets = { 0x34000 }, + .prio = 0, + .urg_fwd = 1, +}; + static struct qcom_icc_node qnm_mnoc_sf = { .name = "qnm_mnoc_sf", .channels = 1, .buswidth = 32, + .qosbox = &qnm_mnoc_sf_qos, .num_links = 2, .link_nodes = { &qns_llcc, &qns_gem_noc_snoc }, }; +static struct qcom_icc_qosbox qnm_snoc_gc_qos = { + .num_ports = 1, + .port_offsets = { 0x32000 }, + .prio = 0, + .urg_fwd = 1, +}; + static struct qcom_icc_node qnm_snoc_gc = { .name = "qnm_snoc_gc", .channels = 1, .buswidth = 8, + .qosbox = &qnm_snoc_gc_qos, .num_links = 1, .link_nodes = { &qns_llcc }, }; +static struct qcom_icc_qosbox qnm_snoc_sf_qos = { + .num_ports = 1, + .port_offsets = { 0x31000 }, + .prio = 0, + .urg_fwd = 1, +}; + static struct qcom_icc_node qnm_snoc_sf = { .name = "qnm_snoc_sf", .channels = 1, .buswidth = 16, + .qosbox = &qnm_snoc_sf_qos, .num_links = 1, .link_nodes = { &qns_llcc }, }; +static struct qcom_icc_qosbox qxm_gpu_qos = { + .num_ports = 2, + .port_offsets = { 0x33000, 0x33080 }, + .prio = 0, + .urg_fwd = 0, +}; + static struct qcom_icc_node qxm_gpu = { .name = "qxm_gpu", .channels = 2, .buswidth = 32, + .qosbox = &qxm_gpu_qos, .num_links = 2, .link_nodes = { &qns_llcc, &qns_gem_noc_snoc }, @@ -497,50 +656,98 @@ static struct qcom_icc_node qhm_mnoc_cfg = { .link_nodes = { &srvc_mnoc }, }; +static struct qcom_icc_qosbox qnm_video0_qos = { + .num_ports = 1, + .port_offsets = { 0xf000 }, + .prio = 2, + .urg_fwd = 1, +}; + static struct qcom_icc_node qnm_video0 = { .name = "qnm_video0", .channels = 1, .buswidth = 32, + .qosbox = &qnm_video0_qos, .num_links = 1, .link_nodes = { &qns_mem_noc_sf }, }; +static struct qcom_icc_qosbox qnm_video_cvp_qos = { + .num_ports = 1, + .port_offsets = { 0xe000 }, + .prio = 5, + .urg_fwd = 1, +}; + static struct qcom_icc_node qnm_video_cvp = { .name = "qnm_video_cvp", .channels = 1, .buswidth = 8, + .qosbox = &qnm_video_cvp_qos, .num_links = 1, .link_nodes = { &qns_mem_noc_sf }, }; +static struct qcom_icc_qosbox qxm_camnoc_hf_qos = { + .num_ports = 2, + .port_offsets = { 0xa000, 0xb000 }, + .prio = 3, + .urg_fwd = 1, +}; + static struct qcom_icc_node qxm_camnoc_hf = { .name = "qxm_camnoc_hf", .channels = 2, .buswidth = 32, + .qosbox = &qxm_camnoc_hf_qos, .num_links = 1, .link_nodes = { &qns_mem_noc_hf }, }; +static struct qcom_icc_qosbox qxm_camnoc_icp_qos = { + .num_ports = 1, + .port_offsets = { 0xd000 }, + .prio = 5, + .urg_fwd = 0, +}; + static struct qcom_icc_node qxm_camnoc_icp = { .name = "qxm_camnoc_icp", .channels = 1, .buswidth = 8, + .qosbox = &qxm_camnoc_icp_qos, .num_links = 1, .link_nodes = { &qns_mem_noc_sf }, }; +static struct qcom_icc_qosbox qxm_camnoc_sf_qos = { + .num_ports = 1, + .port_offsets = { 0x9000 }, + .prio = 3, + .urg_fwd = 1, +}; + static struct qcom_icc_node qxm_camnoc_sf = { .name = "qxm_camnoc_sf", .channels = 1, .buswidth = 32, + .qosbox = &qxm_camnoc_sf_qos, .num_links = 1, .link_nodes = { &qns_mem_noc_sf }, }; +static struct qcom_icc_qosbox qxm_mdp0_qos = { + .num_ports = 1, + .port_offsets = { 0xc000 }, + .prio = 3, + .urg_fwd = 1, +}; + static struct qcom_icc_node qxm_mdp0 = { .name = "qxm_mdp0", .channels = 1, .buswidth = 32, + .qosbox = &qxm_mdp0_qos, .num_links = 1, .link_nodes = { &qns_mem_noc_hf }, }; @@ -616,19 +823,35 @@ static struct qcom_icc_node qnm_gemnoc = { &xs_qdss_stm }, }; +static struct qcom_icc_qosbox qxm_pimem_qos = { + .num_ports = 1, + .port_offsets = { 0xd000 }, + .prio = 2, + .urg_fwd = 0, +}; + static struct qcom_icc_node qxm_pimem = { .name = "qxm_pimem", .channels = 1, .buswidth = 8, + .qosbox = &qxm_pimem_qos, .num_links = 2, .link_nodes = { &qns_gemnoc_gc, &qxs_imem }, }; +static struct qcom_icc_qosbox xm_gic_qos = { + .num_ports = 1, + .port_offsets = { 0xb000 }, + .prio = 3, + .urg_fwd = 0, +}; + static struct qcom_icc_node xm_gic = { .name = "xm_gic", .channels = 1, .buswidth = 8, + .qosbox = &xm_gic_qos, .num_links = 1, .link_nodes = { &qns_gemnoc_gc }, }; @@ -1388,11 +1611,21 @@ static struct qcom_icc_node * const aggre1_noc_nodes[] = { [SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc, }; +static const struct regmap_config sm6350_aggre1_noc_regmap_config = { + .reg_bits = 32, + .reg_stride = 4, + .val_bits = 32, + .max_register = 0x15080, + .fast_io = true, +}; + static const struct qcom_icc_desc sm6350_aggre1_noc = { + .config = &sm6350_aggre1_noc_regmap_config, .nodes = aggre1_noc_nodes, .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), .bcms = aggre1_noc_bcms, .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), + .qos_requires_clocks = true, }; static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { @@ -1413,11 +1646,21 @@ static struct qcom_icc_node * const aggre2_noc_nodes[] = { [SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc, }; +static const struct regmap_config sm6350_aggre2_noc_regmap_config = { + .reg_bits = 32, + .reg_stride = 4, + .val_bits = 32, + .max_register = 0x1f880, + .fast_io = true, +}; + static const struct qcom_icc_desc sm6350_aggre2_noc = { + .config = &sm6350_aggre2_noc_regmap_config, .nodes = aggre2_noc_nodes, .num_nodes = ARRAY_SIZE(aggre2_noc_nodes), .bcms = aggre2_noc_bcms, .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), + .qos_requires_clocks = true, }; static struct qcom_icc_bcm * const clk_virt_bcms[] = { @@ -1459,7 +1702,16 @@ static struct qcom_icc_node * const compute_noc_nodes[] = { [SLAVE_CDSP_GEM_NOC] = &qns_cdsp_gemnoc, }; +static const struct regmap_config sm6350_compute_noc_regmap_config = { + .reg_bits = 32, + .reg_stride = 4, + .val_bits = 32, + .max_register = 0x1f880, + .fast_io = true, +}; + static const struct qcom_icc_desc sm6350_compute_noc = { + .config = &sm6350_compute_noc_regmap_config, .nodes = compute_noc_nodes, .num_nodes = ARRAY_SIZE(compute_noc_nodes), .bcms = compute_noc_bcms, @@ -1532,7 +1784,16 @@ static struct qcom_icc_node * const dc_noc_nodes[] = { [SLAVE_LLCC_CFG] = &qhs_llcc, }; +static const struct regmap_config sm6350_dc_noc_regmap_config = { + .reg_bits = 32, + .reg_stride = 4, + .val_bits = 32, + .max_register = 0x3200, + .fast_io = true, +}; + static const struct qcom_icc_desc sm6350_dc_noc = { + .config = &sm6350_dc_noc_regmap_config, .nodes = dc_noc_nodes, .num_nodes = ARRAY_SIZE(dc_noc_nodes), }; @@ -1561,7 +1822,16 @@ static struct qcom_icc_node * const gem_noc_nodes[] = { [SLAVE_SERVICE_GEM_NOC] = &srvc_gemnoc, }; +static const struct regmap_config sm6350_gem_noc_regmap_config = { + .reg_bits = 32, + .reg_stride = 4, + .val_bits = 32, + .max_register = 0x3e200, + .fast_io = true, +}; + static const struct qcom_icc_desc sm6350_gem_noc = { + .config = &sm6350_gem_noc_regmap_config, .nodes = gem_noc_nodes, .num_nodes = ARRAY_SIZE(gem_noc_nodes), .bcms = gem_noc_bcms, @@ -1588,7 +1858,16 @@ static struct qcom_icc_node * const mmss_noc_nodes[] = { [SLAVE_SERVICE_MNOC] = &srvc_mnoc, }; +static const struct regmap_config sm6350_mmss_noc_regmap_config = { + .reg_bits = 32, + .reg_stride = 4, + .val_bits = 32, + .max_register = 0x1c100, + .fast_io = true, +}; + static const struct qcom_icc_desc sm6350_mmss_noc = { + .config = &sm6350_mmss_noc_regmap_config, .nodes = mmss_noc_nodes, .num_nodes = ARRAY_SIZE(mmss_noc_nodes), .bcms = mmss_noc_bcms, @@ -1643,7 +1922,16 @@ static struct qcom_icc_node * const system_noc_nodes[] = { [SLAVE_TCU] = &xs_sys_tcu_cfg, }; +static const struct regmap_config sm6350_system_noc_regmap_config = { + .reg_bits = 32, + .reg_stride = 4, + .val_bits = 32, + .max_register = 0x17080, + .fast_io = true, +}; + static const struct qcom_icc_desc sm6350_system_noc = { + .config = &sm6350_system_noc_regmap_config, .nodes = system_noc_nodes, .num_nodes = ARRAY_SIZE(system_noc_nodes), .bcms = system_noc_bcms, -- 2.51.2 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 4/5] interconnect: qcom: sm6350: enable QoS configuration 2025-11-07 16:08 ` [PATCH 4/5] interconnect: qcom: sm6350: enable QoS configuration Luca Weiss @ 2025-11-08 17:48 ` Dmitry Baryshkov 0 siblings, 0 replies; 12+ messages in thread From: Dmitry Baryshkov @ 2025-11-08 17:48 UTC (permalink / raw) To: Luca Weiss Cc: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio, ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-pm, devicetree, linux-kernel On Fri, Nov 07, 2025 at 05:08:50PM +0100, Luca Weiss wrote: > Enable QoS configuration for master ports with predefined values for > priority and urgency forwarding. > > While this does require some "clocks" to be specified in devicetree to > work correctly, thanks to ".qos_requires_clocks = true," this is > backwards compatible with old DT as QoS programming will be skipped for > aggre1_noc and aggre2_noc when clocks are not provided. > > Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> > --- > drivers/interconnect/qcom/sm6350.c | 288 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 288 insertions(+) > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 5/5] arm64: dts: qcom: sm6350: Add clocks for aggre1 & aggre2 NoC 2025-11-07 16:08 [PATCH 0/5] Enable QoS configuration for SM6350 Luca Weiss ` (3 preceding siblings ...) 2025-11-07 16:08 ` [PATCH 4/5] interconnect: qcom: sm6350: enable QoS configuration Luca Weiss @ 2025-11-07 16:08 ` Luca Weiss 2025-11-08 17:48 ` Dmitry Baryshkov 2025-11-10 10:21 ` Konrad Dybcio 4 siblings, 2 replies; 12+ messages in thread From: Luca Weiss @ 2025-11-07 16:08 UTC (permalink / raw) To: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-pm, devicetree, linux-kernel, Luca Weiss As per updated bindings, add the clocks for those two interconnects, which are required to set up QoS correctly. Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> --- arch/arm64/boot/dts/qcom/sm6350.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sm6350.dtsi b/arch/arm64/boot/dts/qcom/sm6350.dtsi index 0c9dc596aa2b..c9a812bc256b 100644 --- a/arch/arm64/boot/dts/qcom/sm6350.dtsi +++ b/arch/arm64/boot/dts/qcom/sm6350.dtsi @@ -1117,6 +1117,7 @@ aggre1_noc: interconnect@16e0000 { reg = <0x0 0x016e0000 0x0 0x15080>; #interconnect-cells = <2>; qcom,bcm-voters = <&apps_bcm_voter>; + clocks = <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>; }; aggre2_noc: interconnect@1700000 { @@ -1124,6 +1125,8 @@ aggre2_noc: interconnect@1700000 { reg = <0x0 0x01700000 0x0 0x1f880>; #interconnect-cells = <2>; qcom,bcm-voters = <&apps_bcm_voter>; + clocks = <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>, + <&rpmhcc RPMH_IPA_CLK>; compute_noc: interconnect-compute-noc { compatible = "qcom,sm6350-compute-noc"; -- 2.51.2 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 5/5] arm64: dts: qcom: sm6350: Add clocks for aggre1 & aggre2 NoC 2025-11-07 16:08 ` [PATCH 5/5] arm64: dts: qcom: sm6350: Add clocks for aggre1 & aggre2 NoC Luca Weiss @ 2025-11-08 17:48 ` Dmitry Baryshkov 2025-11-10 10:21 ` Konrad Dybcio 1 sibling, 0 replies; 12+ messages in thread From: Dmitry Baryshkov @ 2025-11-08 17:48 UTC (permalink / raw) To: Luca Weiss Cc: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio, ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-pm, devicetree, linux-kernel On Fri, Nov 07, 2025 at 05:08:51PM +0100, Luca Weiss wrote: > As per updated bindings, add the clocks for those two interconnects, > which are required to set up QoS correctly. > > Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> > --- > arch/arm64/boot/dts/qcom/sm6350.dtsi | 3 +++ > 1 file changed, 3 insertions(+) > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 5/5] arm64: dts: qcom: sm6350: Add clocks for aggre1 & aggre2 NoC 2025-11-07 16:08 ` [PATCH 5/5] arm64: dts: qcom: sm6350: Add clocks for aggre1 & aggre2 NoC Luca Weiss 2025-11-08 17:48 ` Dmitry Baryshkov @ 2025-11-10 10:21 ` Konrad Dybcio 1 sibling, 0 replies; 12+ messages in thread From: Konrad Dybcio @ 2025-11-10 10:21 UTC (permalink / raw) To: Luca Weiss, Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio Cc: ~postmarketos/upstreaming, phone-devel, linux-arm-msm, linux-pm, devicetree, linux-kernel On 11/7/25 5:08 PM, Luca Weiss wrote: > As per updated bindings, add the clocks for those two interconnects, > which are required to set up QoS correctly. > > Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Konrad ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2025-11-10 10:22 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-11-07 16:08 [PATCH 0/5] Enable QoS configuration for SM6350 Luca Weiss 2025-11-07 16:08 ` [PATCH 1/5] dt-bindings: interconnect: qcom,sm6350-rpmh: Add clocks for QoS Luca Weiss 2025-11-08 12:09 ` Krzysztof Kozlowski 2025-11-07 16:08 ` [PATCH 2/5] interconnect: qcom: icc-rpmh: Get parent's regmap for nested NoCs Luca Weiss 2025-11-08 17:46 ` Dmitry Baryshkov 2025-11-07 16:08 ` [PATCH 3/5] interconnect: qcom: sm6350: Remove empty BCM arrays Luca Weiss 2025-11-08 17:47 ` Dmitry Baryshkov 2025-11-07 16:08 ` [PATCH 4/5] interconnect: qcom: sm6350: enable QoS configuration Luca Weiss 2025-11-08 17:48 ` Dmitry Baryshkov 2025-11-07 16:08 ` [PATCH 5/5] arm64: dts: qcom: sm6350: Add clocks for aggre1 & aggre2 NoC Luca Weiss 2025-11-08 17:48 ` Dmitry Baryshkov 2025-11-10 10:21 ` Konrad Dybcio
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox