aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-pxa2xx.h
diff options
context:
space:
mode:
authorJarkko Nikula <jarkko.nikula@linux.intel.com>2016-06-21 06:21:34 -0400
committerMark Brown <broonie@kernel.org>2016-06-21 13:44:48 -0400
commitb6ced294fb61418e7d3fc30bac696f313551d412 (patch)
tree88220341a7d916b53e47710b62a16efc10423571 /drivers/spi/spi-pxa2xx.h
parent2d7537d8f64184debed89a57aa7bea5d27b76a90 (diff)
spi: pxa2xx: Switch to SPI core DMA mapping functionality
SPI core provides DMA mapping with scatterlists. Start using it instead of own implementation in spi-pxa2xx. Major difference in addition to bunch of removed boilerplate code is that SPI core does mapping/unmapping for all transfers in a message before and after the message sending where spi-pxa2xx did mapping/unmapping for each transfers separately. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi-pxa2xx.h')
-rw-r--r--drivers/spi/spi-pxa2xx.h9
1 files changed, 0 insertions, 9 deletions
diff --git a/drivers/spi/spi-pxa2xx.h b/drivers/spi/spi-pxa2xx.h
index e6b09000ff14..d217ad55cc12 100644
--- a/drivers/spi/spi-pxa2xx.h
+++ b/drivers/spi/spi-pxa2xx.h
@@ -50,12 +50,6 @@ struct driver_data {
50 struct tasklet_struct pump_transfers; 50 struct tasklet_struct pump_transfers;
51 51
52 /* DMA engine support */ 52 /* DMA engine support */
53 struct dma_chan *rx_chan;
54 struct dma_chan *tx_chan;
55 struct sg_table rx_sgt;
56 struct sg_table tx_sgt;
57 int rx_nents;
58 int tx_nents;
59 atomic_t dma_running; 53 atomic_t dma_running;
60 54
61 /* Current message transfer state info */ 55 /* Current message transfer state info */
@@ -67,7 +61,6 @@ struct driver_data {
67 void *tx_end; 61 void *tx_end;
68 void *rx; 62 void *rx;
69 void *rx_end; 63 void *rx_end;
70 int dma_mapped;
71 u8 n_bytes; 64 u8 n_bytes;
72 int (*write)(struct driver_data *drv_data); 65 int (*write)(struct driver_data *drv_data);
73 int (*read)(struct driver_data *drv_data); 66 int (*read)(struct driver_data *drv_data);
@@ -145,8 +138,6 @@ extern void *pxa2xx_spi_next_transfer(struct driver_data *drv_data);
145#define MAX_DMA_LEN SZ_64K 138#define MAX_DMA_LEN SZ_64K
146#define DEFAULT_DMA_CR1 (SSCR1_TSRE | SSCR1_RSRE | SSCR1_TRAIL) 139#define DEFAULT_DMA_CR1 (SSCR1_TSRE | SSCR1_RSRE | SSCR1_TRAIL)
147 140
148extern bool pxa2xx_spi_dma_is_possible(size_t len);
149extern int pxa2xx_spi_map_dma_buffers(struct driver_data *drv_data);
150extern irqreturn_t pxa2xx_spi_dma_transfer(struct driver_data *drv_data); 141extern irqreturn_t pxa2xx_spi_dma_transfer(struct driver_data *drv_data);
151extern int pxa2xx_spi_dma_prepare(struct driver_data *drv_data, u32 dma_burst); 142extern int pxa2xx_spi_dma_prepare(struct driver_data *drv_data, u32 dma_burst);
152extern void pxa2xx_spi_dma_start(struct driver_data *drv_data); 143extern void pxa2xx_spi_dma_start(struct driver_data *drv_data);