Message ID | 20241024201837.79927-1-wahrenst@gmx.net |
---|---|
Headers | show |
Series | ARM: bcm2835: Implement initial S2Idle for Raspberry Pi | expand |
Am 24.10.24 um 22:18 schrieb Stefan Wahren: > This series implement the initial S2Idle support for > the Raspberry Pi, which was a long time on my TODO list [1]. The > changes allow to suspend and resume the Raspberry Pi via debug UART. > The focus is on the BCM2835 SoC, because it's less complex than its > successors and have enough documentation. > > Now the VC4 part has been split from the series [4], because of some issues > in that part. > > Cherry-picking of patches should be fine. > > Test steps: > - configure debug console (pl011 or mini UART) as wakeup source > - send system to idle state > > echo freeze > /sys/power/state > > - wakeup system by console traffic > > The clock gating must be restored, because otherwise we have a > regression on Raspberry Pi 3 B+ . Luckily the disabling of clock gating > isn't necessary anymore. Thanks to the rest of the DWC2 patches which > based on an idea of Doug Anderson. The USB domain is now powered down > and the USB devices are still usable after resume. There might be room > for improvements, but at least the system won't freeze forever as before. > > Here are some figures for the Raspberry Pi 1 (without any > devices connected except of a debug UART): > > running but CPU idle = 1.67 W > S2Idle = 1.33 W > > In comparison with HDMI & USB keyboard connected (but neither active > nor wakeup source): > > running but CPU idle = 1.82 W > S2Idle = 1.33 W > > The series has been successfully tested on the following platforms: > Raspberry Pi 1 B > Raspberry Pi 3 B+ > > Changes in V4: > - added Reviewed-by from Doug > - dropped applied VC4 improvement patches > - fix DWC2 register backup > - add revert because of Raspberry Pi 3B+ regression > - add suspend/resume support for DMA & eMMC to be on the safe side Sorry, i missed the version in the other patches :-(