+@@ -398,8 +398,9 @@ static void mcp251x_hw_rx_frame(struct spi_device *spi, u8 *buf,
+ buf[i] = mcp251x_read_reg(spi, RXBCTRL(buf_idx) + i);
+ } else {
+ priv->spi_tx_buf[RXBCTRL_OFF] = INSTRUCTION_READ_RXB(buf_idx);
+- mcp251x_spi_trans(spi, SPI_TRANSFER_BUF_LEN);
+- memcpy(buf, priv->spi_rx_buf, SPI_TRANSFER_BUF_LEN);
++ spi_write_then_read(spi, priv->spi_tx_buf, 1, priv->spi_rx_buf,
++ SPI_TRANSFER_BUF_LEN);
++ memcpy(buf + 1, priv->spi_rx_buf, SPI_TRANSFER_BUF_LEN - 1);
+ }
+ }
+
+--
+2.7.4
+