.../bindings/interconnect/qcom,msm8974.yaml | 28 +- arch/arm/boot/dts/qcom/qcom-msm8974.dtsi | 21 +- drivers/interconnect/qcom/icc-rpm-clocks.c | 6 + drivers/interconnect/qcom/icc-rpm.c | 18 +- drivers/interconnect/qcom/icc-rpm.h | 7 +- drivers/interconnect/qcom/msm8974.c | 1637 +++++++++++++++----- 6 files changed, 1274 insertions(+), 443 deletions(-)
Commit d6edc31f3a68 ("clk: qcom: smd-rpm: Separate out interconnect bus
clocks") moved control over several RPM resources from the clk-smd-rpm
driver to the icc-rpm.c interconnect helpers. Most of the platforms were
fixed before that commit or shortly after. However the MSM8974 was left
as a foster child in broken state. Fix the loose ends and reenable
interconnects on that platform.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Changes in v2:
- Swapped order of clocks and clock-names properties (Konrad)
- Corrected the ocmem comment regarding core clock (Konrad)
- Link to v1: https://lore.kernel.org/r/20260323-msm8974-icc-v1-0-7892b8d5f2ea@oss.qualcomm.com
---
Dmitry Baryshkov (9):
dt-bindings: interconnect: qcom,msm8974: drop bus clocks
dt-bindings: interconnect: qcom,msm8974: use qcom,rpm-common
interconnect: qcom: drop unused is_on flag
interconnect: qcom: icc-rpm: allow overwriting get_bw callback
interconnect: qcom: define OCMEM bus resource
interconnect: qcom: let platforms declare their bugginess
interconnect: qcom: msm8974: switch to the main icc-rpm driver
interconnect: qcom: msm8974: expand DEFINE_QNODE macros
ARM: dts: qcom: msm8974: Drop RPM bus clocks
.../bindings/interconnect/qcom,msm8974.yaml | 28 +-
arch/arm/boot/dts/qcom/qcom-msm8974.dtsi | 21 +-
drivers/interconnect/qcom/icc-rpm-clocks.c | 6 +
drivers/interconnect/qcom/icc-rpm.c | 18 +-
drivers/interconnect/qcom/icc-rpm.h | 7 +-
drivers/interconnect/qcom/msm8974.c | 1637 +++++++++++++++-----
6 files changed, 1274 insertions(+), 443 deletions(-)
---
base-commit: 8e5a478b6d6a5bb0a3d52147862b15e4d826af19
change-id: 20260322-msm8974-icc-0ac4c28e139a
Best regards,
--
With best wishes
Dmitry
On 2026-03-23 20:10, Dmitry Baryshkov wrote:
> Commit d6edc31f3a68 ("clk: qcom: smd-rpm: Separate out interconnect bus
> clocks") moved control over several RPM resources from the clk-smd-rpm
> driver to the icc-rpm.c interconnect helpers. Most of the platforms were
> fixed before that commit or shortly after. However the MSM8974 was left
> as a foster child in broken state. Fix the loose ends and reenable
> interconnects on that platform.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> Changes in v2:
> - Swapped order of clocks and clock-names properties (Konrad)
> - Corrected the ocmem comment regarding core clock (Konrad)
> - Link to v1: https://lore.kernel.org/r/20260323-msm8974-icc-v1-0-7892b8d5f2ea@oss.qualcomm.com
>
> ---
> Dmitry Baryshkov (9):
> dt-bindings: interconnect: qcom,msm8974: drop bus clocks
> dt-bindings: interconnect: qcom,msm8974: use qcom,rpm-common
> interconnect: qcom: drop unused is_on flag
> interconnect: qcom: icc-rpm: allow overwriting get_bw callback
> interconnect: qcom: define OCMEM bus resource
> interconnect: qcom: let platforms declare their bugginess
> interconnect: qcom: msm8974: switch to the main icc-rpm driver
> interconnect: qcom: msm8974: expand DEFINE_QNODE macros
> ARM: dts: qcom: msm8974: Drop RPM bus clocks
>
> .../bindings/interconnect/qcom,msm8974.yaml | 28 +-
> arch/arm/boot/dts/qcom/qcom-msm8974.dtsi | 21 +-
> drivers/interconnect/qcom/icc-rpm-clocks.c | 6 +
> drivers/interconnect/qcom/icc-rpm.c | 18 +-
> drivers/interconnect/qcom/icc-rpm.h | 7 +-
> drivers/interconnect/qcom/msm8974.c | 1637 +++++++++++++++-----
> 6 files changed, 1274 insertions(+), 443 deletions(-)
> ---
> base-commit: 8e5a478b6d6a5bb0a3d52147862b15e4d826af19
> change-id: 20260322-msm8974-icc-0ac4c28e139a
>
> Best regards,
> --
> With best wishes
> Dmitry
>
>
Tried this patch series on top of 7.0-rc5, using "htc,m8", and can confirm the device boots properly now!
I do see these messages in the kernel log now:
[ 0.692540] ocmem fdd00000.sram: error -ENOENT: Unable to get core clock
[ 0.692582] ocmem fdd00000.sram: probe with driver ocmem failed with error -2
[ 24.173125] mmcc-msm8974 fd8c0000.clock-controller: sync_state() pending due to fdd00000.sram
I do not know if that error was expected or not.
In any case:
Tested-by: Alexandre Messier <alex@me.ssier.org>
On Tue Mar 24, 2026 at 3:09 AM CET, Alexandre Messier wrote:
> On 2026-03-23 20:10, Dmitry Baryshkov wrote:
>> Commit d6edc31f3a68 ("clk: qcom: smd-rpm: Separate out interconnect bus
>> clocks") moved control over several RPM resources from the clk-smd-rpm
>> driver to the icc-rpm.c interconnect helpers. Most of the platforms were
>> fixed before that commit or shortly after. However the MSM8974 was left
>> as a foster child in broken state. Fix the loose ends and reenable
>> interconnects on that platform.
>>
>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>> ---
>> Changes in v2:
>> - Swapped order of clocks and clock-names properties (Konrad)
>> - Corrected the ocmem comment regarding core clock (Konrad)
>> - Link to v1: https://lore.kernel.org/r/20260323-msm8974-icc-v1-0-7892b8d5f2ea@oss.qualcomm.com
>>
>> ---
>> Dmitry Baryshkov (9):
>> dt-bindings: interconnect: qcom,msm8974: drop bus clocks
>> dt-bindings: interconnect: qcom,msm8974: use qcom,rpm-common
>> interconnect: qcom: drop unused is_on flag
>> interconnect: qcom: icc-rpm: allow overwriting get_bw callback
>> interconnect: qcom: define OCMEM bus resource
>> interconnect: qcom: let platforms declare their bugginess
>> interconnect: qcom: msm8974: switch to the main icc-rpm driver
>> interconnect: qcom: msm8974: expand DEFINE_QNODE macros
>> ARM: dts: qcom: msm8974: Drop RPM bus clocks
>>
>> .../bindings/interconnect/qcom,msm8974.yaml | 28 +-
>> arch/arm/boot/dts/qcom/qcom-msm8974.dtsi | 21 +-
>> drivers/interconnect/qcom/icc-rpm-clocks.c | 6 +
>> drivers/interconnect/qcom/icc-rpm.c | 18 +-
>> drivers/interconnect/qcom/icc-rpm.h | 7 +-
>> drivers/interconnect/qcom/msm8974.c | 1637 +++++++++++++++-----
>> 6 files changed, 1274 insertions(+), 443 deletions(-)
>> ---
>> base-commit: 8e5a478b6d6a5bb0a3d52147862b15e4d826af19
>> change-id: 20260322-msm8974-icc-0ac4c28e139a
>>
>> Best regards,
>> --
>> With best wishes
>> Dmitry
>>
>>
>
> Tried this patch series on top of 7.0-rc5, using "htc,m8", and can confirm the device boots properly now!
Thanks for testing!
> I do see these messages in the kernel log now:
>
> [ 0.692540] ocmem fdd00000.sram: error -ENOENT: Unable to get core clock
> [ 0.692582] ocmem fdd00000.sram: probe with driver ocmem failed with error -2
> [ 24.173125] mmcc-msm8974 fd8c0000.clock-controller: sync_state() pending due to fdd00000.sram
For that you need this patch series
https://lore.kernel.org/linux-arm-msm/20260323-ocmem-v1-0-ad9bcae44763@oss.qualcomm.com/t/
Then ocmem probes again correctly:
[ 0.859855] ocmem fdd00000.sram: 8 ports, 3 regions, 24 macros, interleaved
Regards
Luca
On Tue Mar 24, 2026 at 1:10 AM CET, Dmitry Baryshkov wrote:
> Commit d6edc31f3a68 ("clk: qcom: smd-rpm: Separate out interconnect bus
> clocks") moved control over several RPM resources from the clk-smd-rpm
> driver to the icc-rpm.c interconnect helpers. Most of the platforms were
> fixed before that commit or shortly after. However the MSM8974 was left
> as a foster child in broken state. Fix the loose ends and reenable
> interconnects on that platform.
Thanks for taking the time to fix this, really appreciate it! I've been
carrying a partial revert of Konrad's commit for a while to get things
moving again, without taking the time to properly fix this.
I can confirm that my msm8974 phone boots fine on v7.0-rc5 with this
series and your ocmem series applied. Not much possible to test on
display/GPU since that was broken since a few releases ago. I will
probably be applying this on 6.15/6.16 branch which still had
display+GPU support.
Tested-by: Luca Weiss <luca.weiss@fairphone.com> # fairphone-fp2
Regards
Luca
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> Changes in v2:
> - Swapped order of clocks and clock-names properties (Konrad)
> - Corrected the ocmem comment regarding core clock (Konrad)
> - Link to v1: https://lore.kernel.org/r/20260323-msm8974-icc-v1-0-7892b8d5f2ea@oss.qualcomm.com
>
> ---
> Dmitry Baryshkov (9):
> dt-bindings: interconnect: qcom,msm8974: drop bus clocks
> dt-bindings: interconnect: qcom,msm8974: use qcom,rpm-common
> interconnect: qcom: drop unused is_on flag
> interconnect: qcom: icc-rpm: allow overwriting get_bw callback
> interconnect: qcom: define OCMEM bus resource
> interconnect: qcom: let platforms declare their bugginess
> interconnect: qcom: msm8974: switch to the main icc-rpm driver
> interconnect: qcom: msm8974: expand DEFINE_QNODE macros
> ARM: dts: qcom: msm8974: Drop RPM bus clocks
>
> .../bindings/interconnect/qcom,msm8974.yaml | 28 +-
> arch/arm/boot/dts/qcom/qcom-msm8974.dtsi | 21 +-
> drivers/interconnect/qcom/icc-rpm-clocks.c | 6 +
> drivers/interconnect/qcom/icc-rpm.c | 18 +-
> drivers/interconnect/qcom/icc-rpm.h | 7 +-
> drivers/interconnect/qcom/msm8974.c | 1637 +++++++++++++++-----
> 6 files changed, 1274 insertions(+), 443 deletions(-)
> ---
> base-commit: 8e5a478b6d6a5bb0a3d52147862b15e4d826af19
> change-id: 20260322-msm8974-icc-0ac4c28e139a
>
> Best regards,
> --
> With best wishes
> Dmitry
On Tue, 24 Mar 2026 02:10:36 +0200, Dmitry Baryshkov wrote:
> Commit d6edc31f3a68 ("clk: qcom: smd-rpm: Separate out interconnect bus
> clocks") moved control over several RPM resources from the clk-smd-rpm
> driver to the icc-rpm.c interconnect helpers. Most of the platforms were
> fixed before that commit or shortly after. However the MSM8974 was left
> as a foster child in broken state. Fix the loose ends and reenable
> interconnects on that platform.
>
> [...]
Applied, thanks!
[9/9] ARM: dts: qcom: msm8974: Drop RPM bus clocks
commit: 6453ad0865b68ab0de5873c1a8bb4addbbde5c19
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
© 2016 - 2026 Red Hat, Inc.