can: ifi: Treat CAN_CTRLMODE_FD_NON_ISO correctly
The CAN_CTRLMODE_FD flag is set for both ISO and BOSCH CANFD mode, while the CAN_CTRLMODE_FD_NON_ISO is additional flag which is only set for CANFD-BOSCH mode. Fix the handling of the flags to reflect this. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marc Kleine-Budde <mkl@pengutronix.de> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Oliver Hartkopp <socketcan@hartkopp.net> Cc: Wolfgang Grandegger <wg@grandegger.com> Reviewed-by: Oliver Hartkopp <socketcan@hartkopp.net> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
Родитель
478ad12c9f
Коммит
ca79408986
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче