aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/spi/davinci_spi.c40
1 files changed, 22 insertions, 18 deletions
diff --git a/drivers/spi/davinci_spi.c b/drivers/spi/davinci_spi.c
index b0b338fc4466..10b0a08d2625 100644
--- a/drivers/spi/davinci_spi.c
+++ b/drivers/spi/davinci_spi.c
@@ -158,37 +158,41 @@ static unsigned use_dma;
158 158
159static void davinci_spi_rx_buf_u8(u32 data, struct davinci_spi *davinci_spi) 159static void davinci_spi_rx_buf_u8(u32 data, struct davinci_spi *davinci_spi)
160{ 160{
161 u8 *rx = davinci_spi->rx; 161 if (davinci_spi->rx) {
162 162 u8 *rx = davinci_spi->rx;
163 *rx++ = (u8)data; 163 *rx++ = (u8)data;
164 davinci_spi->rx = rx; 164 davinci_spi->rx = rx;
165 }
165} 166}
166 167
167static void davinci_spi_rx_buf_u16(u32 data, struct davinci_spi *davinci_spi) 168static void davinci_spi_rx_buf_u16(u32 data, struct davinci_spi *davinci_spi)
168{ 169{
169 u16 *rx = davinci_spi->rx; 170 if (davinci_spi->rx) {
170 171 u16 *rx = davinci_spi->rx;
171 *rx++ = (u16)data; 172 *rx++ = (u16)data;
172 davinci_spi->rx = rx; 173 davinci_spi->rx = rx;
174 }
173} 175}
174 176
175static u32 davinci_spi_tx_buf_u8(struct davinci_spi *davinci_spi) 177static u32 davinci_spi_tx_buf_u8(struct davinci_spi *davinci_spi)
176{ 178{
177 u32 data; 179 u32 data = 0;
178 const u8 *tx = davinci_spi->tx; 180 if (davinci_spi->tx) {
179 181 const u8 *tx = davinci_spi->tx;
180 data = *tx++; 182 data = *tx++;
181 davinci_spi->tx = tx; 183 davinci_spi->tx = tx;
184 }
182 return data; 185 return data;
183} 186}
184 187
185static u32 davinci_spi_tx_buf_u16(struct davinci_spi *davinci_spi) 188static u32 davinci_spi_tx_buf_u16(struct davinci_spi *davinci_spi)
186{ 189{
187 u32 data; 190 u32 data = 0;
188 const u16 *tx = davinci_spi->tx; 191 if (davinci_spi->tx) {
189 192 const u16 *tx = davinci_spi->tx;
190 data = *tx++; 193 data = *tx++;
191 davinci_spi->tx = tx; 194 davinci_spi->tx = tx;
195 }
192 return data; 196 return data;
193} 197}
194 198