On 17.04.2024 15:43:54, Gregor Herburger wrote: > MCP2518FD exits Low-Power Mode (LPM) when CS is asserted. When chip > is send to sleep and the timestamp workqueue is not stopped chip is > waked by SPI transfer of mcp251xfd_timestamp_read. > > So before sending chip to sleep stop timestamp otherwise the > mcp251xfd_timestamp_read callback would wake chip up. > > Also there are error paths in mcp251xfd_chip_start where workqueue has > not been initialized but mcp251xfd_chip_stop is called. So check for > initialized func before canceling delayed_work. Can you move the mcp251xfd_timestamp_init() (which starts the timestamping worker) into mcp251xfd_chip_start() to keep things symmetrical? I think then you don't need to check for "work->func" in mcp251xfd_timestamp_stop(). Marc -- Pengutronix e.K. | Marc Kleine-Budde | Embedded Linux | https://www.pengutronix.de | Vertretung Nürnberg | Phone: +49-5121-206917-129 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |
Attachment:
signature.asc
Description: PGP signature