Revert "mailbox: avoid timer start from callback"
This reverts commit c7dacf5b. The Pi 400 shutdown/poweroff mechanism relies on being able to set a GPIO on the expander in the pm_power_off handler, something that requires two mailbox calls - GET_GPIO_STATE and SET_GPIO_STATE. A recent kernel change introduces a reasonable possibility that the GET call doesn't completes, and bisecting led to a commit from October that changes the timer usage of the mailbox. My theory is that there is a race condition in the new code that breaks the poll timer, but that it normally goes unnoticed because subsequent mailbox activity wakes it up again. The power-off mailbox calls happen at a time when other subsystems have been shut down, so if one of them fails then there is nothing to allow it to recover. See: https://github.com/raspberrypi/linux/issues/3941 Signed-off-by:Phil Elwell <phil@raspberrypi.com>
Loading
Please register or sign in to comment