can: ifi: Treat CAN_CTRLMODE_FD_NON_ISO correctly
[cascardo/linux.git] / drivers / net / can / ifi_canfd / ifi_canfd.c
index 30dc3b6..5bd95dd 100644 (file)
@@ -644,10 +644,11 @@ static void ifi_canfd_start(struct net_device *ndev)
        if (priv->can.ctrlmode & CAN_CTRLMODE_LOOPBACK)
                stcmd |= IFI_CANFD_STCMD_LOOPBACK;
 
-       if (priv->can.ctrlmode & CAN_CTRLMODE_FD)
+       if ((priv->can.ctrlmode & CAN_CTRLMODE_FD) &&
+           !(priv->can.ctrlmode & CAN_CTRLMODE_FD_NON_ISO))
                stcmd |= IFI_CANFD_STCMD_ENABLE_ISO;
 
-       if (!(priv->can.ctrlmode & (CAN_CTRLMODE_FD | CAN_CTRLMODE_FD_NON_ISO)))
+       if (!(priv->can.ctrlmode & CAN_CTRLMODE_FD))
                stcmd |= IFI_CANFD_STCMD_DISABLE_CANFD;
 
        priv->can.state = CAN_STATE_ERROR_ACTIVE;