CAN driver will keep ISOFD state after setting "fd on" or "fd on
fd-non-iso off", you can't switch to NONISOFD mode, this patch intends
to add branch for "fd-non-iso on".
Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
reg_mcr = priv->read(®s->mcr);
priv->write(reg_mcr | FLEXCAN_MCR_FDEN, ®s->mcr);
- if (!(priv->can.ctrlmode & CAN_CTRLMODE_FD_NON_ISO)) {
- reg_ctrl2 = priv->read(®s->ctrl2);
+ reg_ctrl2 = priv->read(®s->ctrl2);
+ if (!(priv->can.ctrlmode & CAN_CTRLMODE_FD_NON_ISO))
priv->write(reg_ctrl2 | FLEXCAN_CTRL2_ISOCANFDEN, ®s->ctrl2);
- }
+ else
+ priv->write(reg_ctrl2 & ~FLEXCAN_CTRL2_ISOCANFDEN, ®s->ctrl2);
}
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {