hi Abel, thank you for the update (this is actually v2 of this RFC right?)! all in all this runs fine on the imx8mq (Librem 5 and devkit) I use. For all the pl301 nodes I'm not yet sure what I can actually test / switch frequencies. But I still have one problem: lcdif/mxfb already has the interconnect dram DT property and I use the following call to request bandwidth: https://source.puri.sm/martin.kepplinger/linux-next/-/commit/d690e4c021293f938eb2253607f92f5a64f15688 (mainlining this is on our todo list). With your patchset, I get: [ 0.792960] genirq: Flags mismatch irq 30. 00000004 (mxsfb-drm) vs. 00000004 (mxsfb-drm) [ 0.801143] mxsfb 30320000.lcd-controller: Failed to install IRQ handler [ 0.808058] mxsfb: probe of 30320000.lcd-controller failed with error -16 so the main devfreq user (mxsfb) is not there :) why? and when I remove the interconnect property from the lcdif DT node, mxsfb probes again, but of course it doesn't lower dram freq as needed. Do I do the icc calls wrong in mxsfb despite it working without your patchset, or may there be something wrong on your side that breaks the mxsfb IRQ? again thanks a lot for working on this! I'm always happy to test. martin --- .../boot/dts/freescale/imx8mq-librem5.dtsi | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi b/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi index 6fac6676f412..8496a90f23bf 100644 --- a/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi @@ -381,26 +381,6 @@ &A53_3 { cpu-supply = <&buck2_reg>; }; -&ddrc { - operating-points-v2 = <&ddrc_opp_table>; - - ddrc_opp_table: ddrc-opp-table { - compatible = "operating-points-v2"; - - opp-25M { - opp-hz = /bits/ 64 <25000000>; - }; - - opp-100M { - opp-hz = /bits/ 64 <100000000>; - }; - - opp-800M { - opp-hz = /bits/ 64 <800000000>; - }; - }; -}; - &dphy { status = "okay"; }; -- 2.30.2