drivers: can: mcan: switch from tx fifo to tx queue
Switch the Bosch M_CAN driver from TX FIFO mode to TX Queue mode in order to avoid priority inversion of CAN frames. Fixes: #26541 Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
This commit is contained in:
parent
64c7f75916
commit
2bd18c6cfd
1 changed files with 2 additions and 1 deletions
|
@ -320,7 +320,8 @@ int can_mcan_init(const struct device *dev, const struct can_mcan_config *cfg,
|
|||
can->txefc = (((uint32_t)msg_ram->tx_event_fifo - mrba) & CAN_MCAN_TXEFC_EFSA_MSK) |
|
||||
(ARRAY_SIZE(msg_ram->tx_event_fifo) << CAN_MCAN_TXEFC_EFS_POS);
|
||||
can->txbc = (((uint32_t)msg_ram->tx_buffer - mrba) & CAN_MCAN_TXBC_TBSA) |
|
||||
(ARRAY_SIZE(msg_ram->tx_buffer) << CAN_MCAN_TXBC_TFQS_POS);
|
||||
(ARRAY_SIZE(msg_ram->tx_buffer) << CAN_MCAN_TXBC_TFQS_POS) |
|
||||
CAN_MCAN_TXBC_TFQM;
|
||||
|
||||
if (sizeof(msg_ram->tx_buffer[0].data) <= 24) {
|
||||
can->txesc = (sizeof(msg_ram->tx_buffer[0].data) - 8) / 4;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue