summaryrefslogtreecommitdiffstats
path: root/drivers/net/can/spi
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2021-08-03 16:33:48 +0200
committerMarc Kleine-Budde <mkl@pengutronix.de>2022-02-24 08:46:59 +0100
commit62713f0d9a38f2e0b772e6448adfa9c405316237 (patch)
treed88171c9327640c80610ce76c012cdb4207e5e9a /drivers/net/can/spi
parent617283b9c4dbc1384b063f59c840e1d1ab612108 (diff)
downloadlinux-stable-62713f0d9a38f2e0b772e6448adfa9c405316237.tar.gz
linux-stable-62713f0d9a38f2e0b772e6448adfa9c405316237.tar.bz2
linux-stable-62713f0d9a38f2e0b772e6448adfa9c405316237.zip
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.de Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/can/spi')
-rw-r--r--drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c2
-rw-r--r--drivers/net/can/spi/mcp251xfd/mcp251xfd.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
index 39005725c665..9657dbf251b0 100644
--- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
@@ -215,8 +215,8 @@ void mcp251xfd_ring_init(struct mcp251xfd_priv *priv)
netdev_reset_queue(priv->ndev);
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_tx(priv, &base, &fifo_nr);
}
void mcp251xfd_ring_free(struct mcp251xfd_priv *priv)
diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd.h b/drivers/net/can/spi/mcp251xfd/mcp251xfd.h
index 5c3f7f25caf0..8ee959890aea 100644
--- a/drivers/net/can/spi/mcp251xfd/mcp251xfd.h
+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd.h
@@ -596,8 +596,8 @@ struct mcp251xfd_priv {
u32 spi_max_speed_hz_slow;
struct mcp251xfd_tef_ring tef[1];
- struct mcp251xfd_tx_ring tx[1];
struct mcp251xfd_rx_ring *rx[1];
+ struct mcp251xfd_tx_ring tx[1];
u8 rx_ring_num;