Skip to content

Commit 4f71167

Browse files
Marek Vasutmarckleinebudde
authored andcommitted
can: ifi: Fix transmitter delay calculation
The CANFD transmitter delay calculation formula was updated in the latest software drop from IFI and improves the behavior of the IFI CANFD core during bitrate switching. Use the new formula to improve stability of the CANFD operation. Signed-off-by: Marek Vasut <[email protected]> Cc: Markus Marb <[email protected]> Cc: linux-stable <[email protected]> Signed-off-by: Marc Kleine-Budde <[email protected]>
1 parent 4cbdd0e commit 4f71167

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/net/can/ifi_canfd/ifi_canfd.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -670,9 +670,9 @@ static void ifi_canfd_set_bittiming(struct net_device *ndev)
670670
priv->base + IFI_CANFD_FTIME);
671671

672672
/* Configure transmitter delay */
673-
tdc = (dbt->brp * (dbt->phase_seg1 + 1)) & IFI_CANFD_TDELAY_MASK;
674-
writel(IFI_CANFD_TDELAY_EN | IFI_CANFD_TDELAY_ABS | tdc,
675-
priv->base + IFI_CANFD_TDELAY);
673+
tdc = dbt->brp * (dbt->prop_seg + dbt->phase_seg1);
674+
tdc &= IFI_CANFD_TDELAY_MASK;
675+
writel(IFI_CANFD_TDELAY_EN | tdc, priv->base + IFI_CANFD_TDELAY);
676676
}
677677

678678
static void ifi_canfd_set_filter(struct net_device *ndev, const u32 id,

0 commit comments

Comments
 (0)