> -----Original Message----- > From: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> > Sent: 2025年3月14日 17:43 > To: Bough Chen <haibo.chen@xxxxxxx> > Cc: mailhol.vincent@xxxxxxxxxx; Ciprian Marian Costea (OSS) > <ciprianmarian.costea@xxxxxxxxxxx>; Han Xu <han.xu@xxxxxxx>; > u.kleine-koenig@xxxxxxxxxxxx; linux-can@xxxxxxxxxxxxxxx; > linux-kernel@xxxxxxxxxxxxxxx; imx@xxxxxxxxxxxxxxx > Subject: Re: [PATCH 1/2] can: flexcan: only set CAN_STATE_ERROR_ACTIVE > when resume has no issue > > On 14.03.2025 10:13:08, Marc Kleine-Budde wrote: > > On 06.03.2025 14:59:20, haibo.chen@xxxxxxx wrote: > > > From: Haibo Chen <haibo.chen@xxxxxxx> > > > > > > Only set CAN state to CAN_STATE_ERROR_ACTIVE when resume process has > > > no issue, otherwise keep in CAN_STATE_SLEEPING as suspend did. > > > > When looking at the code, it makes no sense to set the can.state to > > CAN_STATE_ERROR_ACTIVE, if the device isn't up. > > > > The suspend function doesn't look correct, either. I'll send a v3. > > After a suspend/resume cycle on a down interface, it will come up as > ERROR-ACTIVE. Seems only need to handle the priv->can.state when netif_running(dev) return true in PM. Regards Haibo Chen > > | $ ip -details -s -s a s dev flexcan0 > | 3: flexcan0: <NOARP,ECHO> mtu 16 qdisc pfifo_fast state DOWN group default > qlen 10 > | link/can promiscuity 0 allmulti 0 minmtu 0 maxmtu 0 > | can state STOPPED (berr-counter tx 0 rx 0) restart-ms 1000 > | > | $ sudo systemctl suspend > | > | $ ip -details -s -s a s dev flexcan0 > | 3: flexcan0: <NOARP,ECHO> mtu 16 qdisc pfifo_fast state DOWN group default > qlen 10 > | link/can promiscuity 0 allmulti 0 minmtu 0 maxmtu 0 > | can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 1000 > > regards, > 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 |