• Home
  • Raw
  • Download

Lines Matching refs:xfer

171 					struct spi_transfer *xfer)  in atmel_spi_xfer_is_last()  argument
173 return msg->transfers.prev == &xfer->transfer_list; in atmel_spi_xfer_is_last()
176 static inline int atmel_spi_xfer_can_be_chained(struct spi_transfer *xfer) in atmel_spi_xfer_can_be_chained() argument
178 return xfer->delay_usecs == 0 && !xfer->cs_change; in atmel_spi_xfer_can_be_chained()
182 struct spi_transfer *xfer, in atmel_spi_next_xfer_data() argument
191 if (xfer->rx_buf) in atmel_spi_next_xfer_data()
192 *rx_dma = xfer->rx_dma + xfer->len - len; in atmel_spi_next_xfer_data()
198 if (xfer->tx_buf) in atmel_spi_next_xfer_data()
199 *tx_dma = xfer->tx_dma + xfer->len - len; in atmel_spi_next_xfer_data()
220 struct spi_transfer *xfer; in atmel_spi_next_xfer() local
226 xfer = list_entry(msg->transfers.next, in atmel_spi_next_xfer()
229 xfer = list_entry(as->current_transfer->transfer_list.next, in atmel_spi_next_xfer()
232 xfer = NULL; in atmel_spi_next_xfer()
234 if (xfer) { in atmel_spi_next_xfer()
237 len = xfer->len; in atmel_spi_next_xfer()
238 atmel_spi_next_xfer_data(master, xfer, &tx_dma, &rx_dma, &len); in atmel_spi_next_xfer()
239 remaining = xfer->len - len; in atmel_spi_next_xfer()
251 xfer, xfer->len, xfer->tx_buf, xfer->tx_dma, in atmel_spi_next_xfer()
252 xfer->rx_buf, xfer->rx_dma); in atmel_spi_next_xfer()
254 xfer = as->next_transfer; in atmel_spi_next_xfer()
258 as->current_transfer = xfer; in atmel_spi_next_xfer()
263 else if (!atmel_spi_xfer_is_last(msg, xfer) in atmel_spi_next_xfer()
264 && atmel_spi_xfer_can_be_chained(xfer)) { in atmel_spi_next_xfer()
265 xfer = list_entry(xfer->transfer_list.next, in atmel_spi_next_xfer()
267 len = xfer->len; in atmel_spi_next_xfer()
269 xfer = NULL; in atmel_spi_next_xfer()
271 as->next_transfer = xfer; in atmel_spi_next_xfer()
273 if (xfer) { in atmel_spi_next_xfer()
277 atmel_spi_next_xfer_data(master, xfer, &tx_dma, &rx_dma, &len); in atmel_spi_next_xfer()
290 xfer, xfer->len, xfer->tx_buf, xfer->tx_dma, in atmel_spi_next_xfer()
291 xfer->rx_buf, xfer->rx_dma); in atmel_spi_next_xfer()
348 atmel_spi_dma_map_xfer(struct atmel_spi *as, struct spi_transfer *xfer) in atmel_spi_dma_map_xfer() argument
352 xfer->tx_dma = xfer->rx_dma = INVALID_DMA_ADDRESS; in atmel_spi_dma_map_xfer()
353 if (xfer->tx_buf) { in atmel_spi_dma_map_xfer()
354 xfer->tx_dma = dma_map_single(dev, in atmel_spi_dma_map_xfer()
355 (void *) xfer->tx_buf, xfer->len, in atmel_spi_dma_map_xfer()
357 if (dma_mapping_error(dev, xfer->tx_dma)) in atmel_spi_dma_map_xfer()
360 if (xfer->rx_buf) { in atmel_spi_dma_map_xfer()
361 xfer->rx_dma = dma_map_single(dev, in atmel_spi_dma_map_xfer()
362 xfer->rx_buf, xfer->len, in atmel_spi_dma_map_xfer()
364 if (dma_mapping_error(dev, xfer->rx_dma)) { in atmel_spi_dma_map_xfer()
365 if (xfer->tx_buf) in atmel_spi_dma_map_xfer()
367 xfer->tx_dma, xfer->len, in atmel_spi_dma_map_xfer()
376 struct spi_transfer *xfer) in atmel_spi_dma_unmap_xfer() argument
378 if (xfer->tx_dma != INVALID_DMA_ADDRESS) in atmel_spi_dma_unmap_xfer()
379 dma_unmap_single(master->dev.parent, xfer->tx_dma, in atmel_spi_dma_unmap_xfer()
380 xfer->len, DMA_TO_DEVICE); in atmel_spi_dma_unmap_xfer()
381 if (xfer->rx_dma != INVALID_DMA_ADDRESS) in atmel_spi_dma_unmap_xfer()
382 dma_unmap_single(master->dev.parent, xfer->rx_dma, in atmel_spi_dma_unmap_xfer()
383 xfer->len, DMA_FROM_DEVICE); in atmel_spi_dma_unmap_xfer()
422 struct spi_transfer *xfer; in atmel_spi_interrupt() local
428 xfer = as->current_transfer; in atmel_spi_interrupt()
456 atmel_spi_dma_unmap_xfer(master, xfer); in atmel_spi_interrupt()
459 if (xfer->delay_usecs) in atmel_spi_interrupt()
460 udelay(xfer->delay_usecs); in atmel_spi_interrupt()
492 msg->actual_length += xfer->len; in atmel_spi_interrupt()
495 atmel_spi_dma_unmap_xfer(master, xfer); in atmel_spi_interrupt()
498 if (xfer->delay_usecs) in atmel_spi_interrupt()
499 udelay(xfer->delay_usecs); in atmel_spi_interrupt()
501 if (atmel_spi_xfer_is_last(msg, xfer)) { in atmel_spi_interrupt()
504 xfer->cs_change); in atmel_spi_interrupt()
506 if (xfer->cs_change) { in atmel_spi_interrupt()
664 struct spi_transfer *xfer; in atmel_spi_transfer() local
679 list_for_each_entry(xfer, &msg->transfers, transfer_list) { in atmel_spi_transfer()
680 if (!(xfer->tx_buf || xfer->rx_buf) && xfer->len) { in atmel_spi_transfer()
686 if (xfer->bits_per_word || xfer->speed_hz) { in atmel_spi_transfer()
700 if (atmel_spi_dma_map_xfer(as, xfer) < 0) in atmel_spi_transfer()
706 list_for_each_entry(xfer, &msg->transfers, transfer_list) { in atmel_spi_transfer()
709 xfer, xfer->len, in atmel_spi_transfer()
710 xfer->tx_buf, xfer->tx_dma, in atmel_spi_transfer()
711 xfer->rx_buf, xfer->rx_dma); in atmel_spi_transfer()