diff --git a/drivers/spi/spi_mpc83xx.c b/drivers/spi/spi_mpc83xx.c index ff0b04895db06b763b1a225ac983965f4c122372..e9798bf7b8c6a0dff43795edc1ec1ee36ade6c42 100644 --- a/drivers/spi/spi_mpc83xx.c +++ b/drivers/spi/spi_mpc83xx.c @@ -112,6 +112,8 @@ u32 mpc83xx_spi_tx_buf_##type(struct mpc83xx_spi *mpc83xx_spi) \ { \ u32 data; \ const type * tx = mpc83xx_spi->tx; \ + if (!tx) \ + return 0; \ data = *tx++; \ mpc83xx_spi->tx = tx; \ return data; \ diff --git a/drivers/spi/spi_s3c24xx.c b/drivers/spi/spi_s3c24xx.c index 2ebe1fc4c398e790181ef91da19cf0fbb1fc0cb2..8ca08713528e0724ac2d49527247a8510b0a4b9b 100644 --- a/drivers/spi/spi_s3c24xx.c +++ b/drivers/spi/spi_s3c24xx.c @@ -174,7 +174,7 @@ static int s3c24xx_spi_setup(struct spi_device *spi) static inline unsigned int hw_txbyte(struct s3c24xx_spi *hw, int count) { - return hw->tx ? hw->tx[count] : 0xff; + return hw->tx ? hw->tx[count] : 0; } static int s3c24xx_spi_txrx(struct spi_device *spi, struct spi_transfer *t) diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index c8bb68099eb9e35bf5ae2edba0c43244ca95ff5b..176f6e36dbfacbf4279593500a56c83230947095 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h @@ -289,7 +289,7 @@ extern struct spi_master *spi_busnum_to_master(u16 busnum); * the data being transferred; that may reduce overhead, when the * underlying driver uses dma. * - * If the transmit buffer is null, undefined data will be shifted out + * If the transmit buffer is null, zeroes will be shifted out * while filling rx_buf. If the receive buffer is null, the data * shifted in will be discarded. Only "len" bytes shift out (or in). * It's an error to try to shift out a partial word. (For example, by