On 8/1/24 20:52, Sebastian Reichel wrote:
Hi,
On Thu, Aug 01, 2024 at 07:41:44PM GMT, Heiko Stübner wrote:
Am Donnerstag, 1. August 2024, 17:31:33 CEST schrieb Dmitry Osipenko:
On 7/30/24 21:05, Sebastian Reichel wrote:
- /*
* Currently the Rockchip SPI driver always sleeps when doing SPI
* transfers. This is not allowed in the SYS_OFF_MODE_POWER_OFF
* handler, so we are using the prepare handler as a workaround.
* This should be removed once the Rockchip SPI driver has been
* adapted.
*/
- if (is_spi)
pwr_off_mode = SYS_OFF_MODE_POWER_OFF_PREPARE;
This prevents the syscore_shutdown() step from execution. Is it better than not powering off?
I'd rather skip registration of the power-off handlers in a case of SPI :)
Or blasphemous thought, we could live with the warning-splash for a bit.
From Sebastian's log I assume the WARNING comes from the wait_for_completion() in spi_transfer_wait(), and I guess the transfer with the poweroff command itself will already have happened then?
So the device is most likely still powered off in that case? Not sure how much of "bad taste" that thought is though ;-)
Yes, as far as I could see it works fine (the splash from the commit message is from exactly this solution running on RK3588 EVB1 and the board was powered off properly as far as I can tell). But it felt a bit strange to knowingly introduce an error splash in a fix intended for being backported to the stable trees, so I switched to the current version before sending.
Can you add a busy-wait to the SPI driver TX func for the case where it's invoked with a disabled interrupts? That could be a better workaround, silencing the warning and keeping power-off working properly.