All of lore.kernel.org
 help / color / mirror / Atom feed
* Nokia N900 increased power draw with panel-sony-acx565akm loaded v5.9 and v5.10
@ 2021-12-10 19:18 Merlijn Wajer
  2021-12-10 19:59 ` Andreas Kemnade
  2021-12-13 13:10 ` Sebastian Reichel
  0 siblings, 2 replies; 7+ messages in thread
From: Merlijn Wajer @ 2021-12-10 19:18 UTC (permalink / raw)
  To: linux-omap, Sebastian Reichel
  Cc: Ivaylo Dimitrov, Dev Null, Pavel Machek, Tony Lindgren

Hi Sebastian,

I don't know if this is something that requires any action currently,
but I wanted to report that I'm seeing some increased power draw on a
Nokia N900 with minimal userspace on Linux 5.10 (and the same happens on
5.15 it seems, so it doesn't seem to be resolved since). I tried to
bisect the problem but my initial attempt failed, because the problem
seems a bit racy or unpredictable.

Basically I boot a system to init=/bin/bash and run the following:

> modprobe panel-sony-acx565akm
> 
> mount -t proc none /proc
> mount -t sysfs none /sys
> mount -t debugfs none /sys/kernel/debug
> mount -o rw,remount /
> 
> echo 1 > /sys/kernel/debug/pm_debug/enable_off_mode
> echo 0 > /sys/class/backlight/acx565akm/brightness
> 
> 
> consoles=$(find /sys/bus/platform/devices/4*.serial/ -name console)
> for console in ${consoles}; do
>     echo N > ${console}
> done
> 
> # Enable autosuspend
> uarts=$(find /sys/bus/platform/devices/4*.serial/power/ -type d)
> for uart in ${uarts}; do
>     echo 2000 > ${uart}/autosuspend_delay_ms
>     echo enabled > ${uart}/wakeup
>     echo auto > ${uart}/control
> done
> 
> # Configure wake-up from suspend
> uarts=$(find /sys/class/tty/tty[SO]*/power/ -type d)
> for uart in ${uarts}; do
>     echo enabled > ${uart}/wakeup
> done

This loads the panel and then sets the brightness to zero, enables off
mode and idles the kernel console/serial.

Then run the following to check idle states:

	grep ^core_pwrdm /sys/kernel/debug/pm_debug/count | cut -d',' -f2,3

And also check the power usage on lab power supply that I have here.

With the above, Linux v5.9 (no patches applied) idles at around 42mW
(15mW goes to the serial device, so it's more like 27mW, anyway...).

Linux v5.10 with the following two commits reverted (otherwise the
system is not stable):

* fb2c599f056640d289b2147fbe6d9eaee689f1b2 (ARM: omap3: enable off mode
automatically)
* 21b2cec61c04bd175f0860d9411a472d5a0e7ba1 (mmc: Set
PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4)

And the following config change on top of omap2plus_defconfig (to make
OFF mode work on v5.10 as detailed in "Nokia N900 not hitting OFF mode
since 5.9 is caused by proactive memory compaction"):

> sed -i 's/CONFIG_COMPACTION=y/CONFIG_COMPACTION=n/' .config

Idles at much more -- 60mW (compared to 42mW). Executing "rmmod
panel-sony-acx565akm" makes the power draw return to v5.9 levels.

I don't really understand why this would happen, and as stated before
wasn't able to really bisect the problem. However, some simple guesswork
led me to find that reverting 7c4bada12d320d8648ba3ede6f9b6f9e10f1126a
("drm/panel: sony-acx565akm: Fix race condition in probe") makes v5.10
idle at 42mW again. I don't know if this because v5.9 never properly
initialised the panel, or because the race condition fix introduced
another problem that leaves the hardware in an abnormal state.

Any hints on what could cause this extra power draw? Maybe the panel is
waiting for something? I suppose it's potentially feasible that with
more modules and userspace loaded the panel idles properly, but I
currently don't have a way to measure that.

Regards,
Merlijn


PS: For both v5.9 and v5.10 kernels the only other change to
omap2plus_defconfig is to make the watchdog(s) built-in.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-01-06 16:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-10 19:18 Nokia N900 increased power draw with panel-sony-acx565akm loaded v5.9 and v5.10 Merlijn Wajer
2021-12-10 19:59 ` Andreas Kemnade
2021-12-10 20:30   ` Merlijn Wajer
2021-12-13 13:10 ` Sebastian Reichel
2021-12-16 13:06   ` Merlijn Wajer
2022-01-06 12:53     ` Merlijn Wajer
2022-01-06 16:36       ` Ivaylo Dimitrov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.