diff options
author | Jarkko Nikula <jarkko.nikula@linux.intel.com> | 2016-06-21 06:21:34 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-06-21 13:44:48 -0400 |
commit | b6ced294fb61418e7d3fc30bac696f313551d412 (patch) | |
tree | 88220341a7d916b53e47710b62a16efc10423571 /drivers/spi/spi-pxa2xx.h | |
parent | 2d7537d8f64184debed89a57aa7bea5d27b76a90 (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.h | 9 |
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 | ||
148 | extern bool pxa2xx_spi_dma_is_possible(size_t len); | ||
149 | extern int pxa2xx_spi_map_dma_buffers(struct driver_data *drv_data); | ||
150 | extern irqreturn_t pxa2xx_spi_dma_transfer(struct driver_data *drv_data); | 141 | extern irqreturn_t pxa2xx_spi_dma_transfer(struct driver_data *drv_data); |
151 | extern int pxa2xx_spi_dma_prepare(struct driver_data *drv_data, u32 dma_burst); | 142 | extern int pxa2xx_spi_dma_prepare(struct driver_data *drv_data, u32 dma_burst); |
152 | extern void pxa2xx_spi_dma_start(struct driver_data *drv_data); | 143 | extern void pxa2xx_spi_dma_start(struct driver_data *drv_data); |