On Thu, Mar 12, 2015 at 01:35:10PM +0100, Geert Uytterhoeven wrote: > On Thu, Mar 12, 2015 at 3:31 AM, Nobuhiro Iwamatsu > > This driver is the case of tx_buf was set or SPI_MASTER_MUST_TX is set to > > master_flags, will be transmit mode. However, the current code, when > > transmit mode and buffer is NULL, will be set to value of receive mode > > size. > If SPI_MASTER_MUST_TX is set, tx_buf will never be NULL. > If an SPI slave driver submits a receive-only request, the SPI core will > provide a dummy buffer (spi_master.dummy_tx). Right, my reading of the changelog was that this was a red herring. > > + int rx_words = min_t(int, words, p->rx_fifo_size); > > + int tx_words = min_t(int, words, p->tx_fifo_size); > Sorry, I fail to see what exactly this is fixing. > If SPI_MASTER_MUST_TX is set, all hardware SPI transfers are either > a) transmit-only. > b) bidirectional (transmit buffer may be a dummy, provided by the SPI core). > For case a, only the TX FIFO size matters. > - The original code ignored the RX FIFO size (rx_buf == NULL), > - After your change, it always uses the minimum of the TX and RX FIFO sizes > (granted, the RX FIFO size is larger, so this doesn't make a difference on > current hardware). ... > What am I missing? > Are you using a backport with broken SPI_MASTER_MUST_TX handling in the SPI > core? My understanding was that it was just about making sure that the driver picked the minimum of the two FIFO sizes.
Attachment:
signature.asc
Description: Digital signature