linux/drivers/interconnect/qcom
Raviteja Laggyshetty c95e4c4caf interconnect: qcom: sdx75: Drop QPIC interconnect and BCM nodes
commit 295f58fdcc upstream.

As like other SDX SoCs, SDX75 SoC's QPIC BCM resource was modeled as a
RPMh clock in clk-rpmh driver. However, for SDX75, this resource was also
described as an interconnect and BCM node mistakenly. It is incorrect to
describe the same resource in two different providers, as it will lead to
votes from clients overriding each other.

Hence, drop the QPIC interconnect and BCM nodes and let the clients use
clk-rpmh driver to vote for this resource.

Without this change, the NAND driver fails to probe on SDX75, as the
interconnect sync state disables the QPIC nodes as there were no clients
voting for this ICC resource. However, the NAND driver had already voted
for this BCM resource through the clk-rpmh driver. Since both votes come
from Linux, RPMh was unable to distinguish between these two and ends up
disabling the QPIC resource during sync state.

Cc: stable@vger.kernel.org
Fixes: 3642b4e5cb ("interconnect: qcom: Add SDX75 interconnect provider driver")
Signed-off-by: Raviteja Laggyshetty <quic_rlaggysh@quicinc.com>
[mani: dropped the reference to bcm_qp0, reworded description]
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Tested-by: Lakshmi Sowjanya D <quic_laksd@quicinc.com>  # on SDX75
Link: https://lore.kernel.org/r/20250926-sdx75-icc-v2-1-20d6820e455c@oss.qualcomm.com
Signed-off-by: Georgi Djakov <djakov@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2026-01-02 12:57:30 +01:00
..
bcm-voter.c interconnect: qcom: bcm-voter: Use enable_maks for keepalive voting 2023-08-22 01:43:56 +03:00
bcm-voter.h interconnect: qcom: icc-rpmh: Retire DEFINE_QBCM 2023-08-22 15:07:33 +03:00
glymur.c interconnect: qcom: add glymur interconnect provider driver 2025-08-18 13:43:18 +03:00
icc-common.c interconnect: qcom: add missing MODULE_DESCRIPTION() macros 2024-06-13 16:12:26 +03:00
icc-common.h interconnect: constify of_phandle_args in xlate 2024-02-26 00:38:17 +02:00
icc-rpm-clocks.c interconnect: qcom: qcm2290: Hook up MAS_APPS_PROC's bus clock 2023-10-09 15:08:03 +03:00
icc-rpm.c interconnect: qcom: icc-rpm: Set the count member before accessing the flex array 2024-12-17 14:03:02 +02:00
icc-rpm.h interconnect: qcom: Make qnoc_remove return void 2023-11-22 15:57:07 +02:00
icc-rpmh.c interconnect: avoid memory allocation when 'icc_bw_lock' is held 2025-06-27 21:43:40 +03:00
icc-rpmh.h interconnect: qcom: icc-rpmh: increase MAX_PORTS to support four QoS ports 2025-08-18 13:43:13 +03:00
Kconfig interconnect: qcom: add glymur interconnect provider driver 2025-08-18 13:43:18 +03:00
Makefile interconnect: qcom: add glymur interconnect provider driver 2025-08-18 13:43:18 +03:00
milos.c interconnect: qcom: Add Milos interconnect provider driver 2025-07-22 14:36:27 +03:00
msm8909.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8916.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8937.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8939.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8953.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8974.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8976.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
msm8996.c interconnect: qcom: msm8996: add missing link to SLAVE_USB_HS 2025-12-18 14:02:45 +01:00
msm8996.h interconnect: qcom: Add MSM8996 interconnect provider driver 2021-11-22 18:35:22 +02:00
osm-l3.c interconnect: avoid memory allocation when 'icc_bw_lock' is held 2025-06-27 21:43:40 +03:00
qcm2290.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
qcs404.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
qcs615.c interconnect: qcom: qcs615: Drop IP0 interconnects 2025-07-18 17:54:58 +03:00
qcs615.h interconnect: qcom: add QCS615 interconnect provider driver 2024-10-22 11:30:14 +03:00
qcs8300.c interconnect: qcom: add QCS8300 interconnect provider driver 2024-10-22 12:36:29 +03:00
qcs8300.h interconnect: qcom: add QCS8300 interconnect provider driver 2024-10-22 12:36:29 +03:00
qdu1000.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
qdu1000.h interconnect: qcom: Add QDU1000/QRU1000 interconnect driver 2023-01-05 16:16:49 +02:00
sa8775p.c interconnect: qcom: sa8775p: Add dynamic icc node id support 2025-04-15 14:13:54 +03:00
sar2130p.c interconnect: qcom: add support for SAR2130P 2024-10-22 12:27:38 +03:00
sc7180.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sc7180.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sc7280.c interconnect: qcom: sc7280: Add missing num_links to xm_pcie3_1 node 2025-06-23 17:56:01 +03:00
sc7280.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sc8180x.c interconnect: qcom: sc8180x: specify num_nodes 2025-07-18 17:54:57 +03:00
sc8180x.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sc8280xp.c interconnect: qcom: sc8280xp: specify num_links for qnm_a1noc_cfg 2025-07-18 17:54:57 +03:00
sc8280xp.h interconnect: qcom: sc8280xp: Drop IP0 interconnects 2023-01-18 16:15:03 +02:00
sdm660.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sdm670.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sdm670.h interconnect: qcom: add sdm670 interconnects 2023-01-19 20:12:47 +02:00
sdm845.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sdm845.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sdx55.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sdx55.h interconnect: qcom: sdx55: drop IP0 remnants 2023-01-18 16:11:52 +02:00
sdx65.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sdx65.h interconnect: qcom: Add SDX65 interconnect provider driver 2022-04-26 14:11:26 +03:00
sdx75.c interconnect: qcom: sdx75: Drop QPIC interconnect and BCM nodes 2026-01-02 12:57:30 +01:00
sdx75.h interconnect: qcom: sdx75: Drop QPIC interconnect and BCM nodes 2026-01-02 12:57:30 +01:00
sm6115.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm6350.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm6350.h interconnect: qcom: Add SM6350 driver support 2022-06-20 14:27:07 +03:00
sm7150.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm7150.h interconnect: qcom: Add SM7150 driver support 2024-02-29 22:42:38 +02:00
sm8150.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm8150.h interconnect: qcom: drop obsolete OSM_L3/EPSS defines 2023-03-20 16:42:27 +02:00
sm8250.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm8250.h interconnect: qcom: sm8250: Fix QUP0 nodes 2023-07-18 11:16:48 +03:00
sm8350.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm8350.h interconnect: qcom: sm8350: drop DISP nodes 2024-08-23 23:04:51 +03:00
sm8450.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm8450.h interconnect: qcom: Add SM8450 interconnect provider driver 2021-12-14 23:43:26 +02:00
sm8550.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
sm8550.h interconnect: qcom: sm8550: Remove bogus per-RSC BCMs and nodes 2024-01-31 15:47:47 +02:00
sm8650.c interconnect: qcom: sm8650: remove regmap config for mc_virt & clk_virt 2025-05-19 17:09:32 +03:00
sm8650.h interconnect: qcom: sm8650: add the MASTER_APSS_NOC 2025-04-28 17:50:21 +03:00
sm8750.c interconnect: sm8750: Add missing const to static qcom_icc_desc 2025-01-13 19:59:09 +02:00
smd-rpm.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
x1e80100.c interconnect: Switch back to struct platform_driver::remove() 2024-10-22 12:34:18 +03:00
x1e80100.h interconnect: qcom: Add X1E80100 interconnect provider driver 2023-11-24 00:24:14 +02:00