From 9352362a025665a91dafc1030c3ac19f4b100b44 Mon Sep 17 00:00:00 2001 From: Joakim Zhang Date: Thu, 18 Apr 2019 18:26:33 +0800 Subject: [PATCH] MLK-21494 can: flexcan: add branch for "fd-non-iso on" 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 --- drivers/net/can/flexcan.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c index 962c5f75a568..fb5797fdecaf 100644 --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c @@ -1362,10 +1362,11 @@ static int flexcan_chip_start(struct net_device *dev) 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) { -- 2.17.1