Commit 62713f0d authored by Marc Kleine-Budde's avatar Marc Kleine-Budde

can: mcp251xfd: ring: change order of TX and RX FIFOs

This patch actually changes the order of the TX and RX FIFOs.

This gives the opportunity to minimize the number of SPI transfers in
the IRQ handler. The read of the IRQ status register and RX FIFO
status registers can be combined into single SPI transfer. If the RX
ring uses FIFO 1, the overall length of the transfer is smaller than
in the original layout, where the RX FIFO comes after the TX FIFO.

Link: https://lore.kernel.org/all/20220217103826.2299157-5-mkl@pengutronix.deSigned-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent 617283b9
...@@ -215,8 +215,8 @@ void mcp251xfd_ring_init(struct mcp251xfd_priv *priv) ...@@ -215,8 +215,8 @@ void mcp251xfd_ring_init(struct mcp251xfd_priv *priv)
netdev_reset_queue(priv->ndev); netdev_reset_queue(priv->ndev);
mcp251xfd_ring_init_tef(priv, &base); mcp251xfd_ring_init_tef(priv, &base);
mcp251xfd_ring_init_tx(priv, &base, &fifo_nr);
mcp251xfd_ring_init_rx(priv, &base, &fifo_nr); mcp251xfd_ring_init_rx(priv, &base, &fifo_nr);
mcp251xfd_ring_init_tx(priv, &base, &fifo_nr);
} }
void mcp251xfd_ring_free(struct mcp251xfd_priv *priv) void mcp251xfd_ring_free(struct mcp251xfd_priv *priv)
......
...@@ -596,8 +596,8 @@ struct mcp251xfd_priv { ...@@ -596,8 +596,8 @@ struct mcp251xfd_priv {
u32 spi_max_speed_hz_slow; u32 spi_max_speed_hz_slow;
struct mcp251xfd_tef_ring tef[1]; struct mcp251xfd_tef_ring tef[1];
struct mcp251xfd_tx_ring tx[1];
struct mcp251xfd_rx_ring *rx[1]; struct mcp251xfd_rx_ring *rx[1];
struct mcp251xfd_tx_ring tx[1];
u8 rx_ring_num; u8 rx_ring_num;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment