Skip to content

Add CPU Frequency scaling support on Armada 37xx

Gregory CLEMENT linux-arm-kernel linux-devicetree linux-pm 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest0 of 6 patches 0 repliesNew

Patches in v1 No applies recorded yet

None of the 6 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/6] Add CPU Frequency scaling support on Armada 37xx

Hi Andre,

Quoted 26 lines · Andre Heider
Quoted 11 lines · Gregory CLEMENT

I did a last rebase before sending the series to remove the avs part not working yet. And during this rebase I introduced an bug.

I will send a v2 soon if you are intersected by testing it right now, here it is the fix:

iff --git a/drivers/cpufreq/armada-37xx-cpufreq.c b/drivers/cpufreq/armada-37xx-cpufreq.c index 40c9a744cc6e..96c2600009b5 100644

drivers/cpufreq/armada-37xx-cpufreq.c static int __init armada37xx_cpufreq_driver_init(void) · line 225

Quoted 8 lines
drivers/cpufreq/armada-37xx-cpufreq.c +2 -1
@@ -219,7 +219,8 @@ static int __init armada37xx_cpufreq_driver_init(void)
          */
         for (load_level = ARMADA_37XX_DVFS_LOAD_0; load_level < LOAD_LEVEL_NR;
              load_level++) {
-               unsigned long freq = dvfs->divider[load_level];
+               unsigned long freq = cur_frequency /
+                       dvfs->divider[load_level];
                   ret = dev_pm_opp_add(cpu_dev, freq, 0);
                 if (ret)

Much better, that seems to work so far, thanks!

My espressobin now gets these frequencies: 200 MHz, 250 MHz, 500 MHz and 1000 MHz.

Quoted 7 lines

With the schedutil governor and watch -n 0.2 cpufreq-info -f -m it jumps over all of those depending on the load, nice:

The measured power usage doesn't drop though, I guess that requires the AVS part you mentioned? Looking forward to it ;)

Well I did some measurement and i saw some drop, according to my notes:

@ 250MHz: 222mA at 12V => 2.66W
@ 1000MHz: 238mA at 12CV => 2.87W

Not something huge, but only the CPUs which are concerned so it's not so bad.

Quoted 3 lines

On a related note: Do you know if power usage can be lowered by disabling eth phys? Is that possible on mainline?

For the test I have done just by removing an Ethernet cable we save a lot of power, so it helps. I'm sure it is doable on mainline, but maybe
currently, there is something still missing.

Gregory

Quoted 9 lines

Regards,
Andre

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Signature · 4 lines
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com