#include <linux/completion.h>
#include <linux/dma-mapping.h>
#include <linux/dmaengine.h>
#include <linux/irqreturn.h>
#include <linux/jiffies.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/platform_data/dma-dw.h>
#include <linux/spi/spi.h>
#include <linux/types.h>
#include "spi-dw.h"
#define DW_SPI_RX_BUSY …
#define DW_SPI_RX_BURST_LEVEL …
#define DW_SPI_TX_BUSY …
#define DW_SPI_TX_BURST_LEVEL …
static bool dw_spi_dma_chan_filter(struct dma_chan *chan, void *param)
{ … }
static void dw_spi_dma_maxburst_init(struct dw_spi *dws)
{ … }
static int dw_spi_dma_caps_init(struct dw_spi *dws)
{ … }
static int dw_spi_dma_init_mfld(struct device *dev, struct dw_spi *dws)
{ … }
static int dw_spi_dma_init_generic(struct device *dev, struct dw_spi *dws)
{ … }
static void dw_spi_dma_exit(struct dw_spi *dws)
{ … }
static irqreturn_t dw_spi_dma_transfer_handler(struct dw_spi *dws)
{ … }
static enum dma_slave_buswidth dw_spi_dma_convert_width(u8 n_bytes)
{ … }
static bool dw_spi_can_dma(struct spi_controller *host,
struct spi_device *spi, struct spi_transfer *xfer)
{ … }
static int dw_spi_dma_wait(struct dw_spi *dws, unsigned int len, u32 speed)
{ … }
static inline bool dw_spi_dma_tx_busy(struct dw_spi *dws)
{ … }
static int dw_spi_dma_wait_tx_done(struct dw_spi *dws,
struct spi_transfer *xfer)
{ … }
static void dw_spi_dma_tx_done(void *arg)
{ … }
static int dw_spi_dma_config_tx(struct dw_spi *dws)
{ … }
static int dw_spi_dma_submit_tx(struct dw_spi *dws, struct scatterlist *sgl,
unsigned int nents)
{ … }
static inline bool dw_spi_dma_rx_busy(struct dw_spi *dws)
{ … }
static int dw_spi_dma_wait_rx_done(struct dw_spi *dws)
{ … }
static void dw_spi_dma_rx_done(void *arg)
{ … }
static int dw_spi_dma_config_rx(struct dw_spi *dws)
{ … }
static int dw_spi_dma_submit_rx(struct dw_spi *dws, struct scatterlist *sgl,
unsigned int nents)
{ … }
static int dw_spi_dma_setup(struct dw_spi *dws, struct spi_transfer *xfer)
{ … }
static int dw_spi_dma_transfer_all(struct dw_spi *dws,
struct spi_transfer *xfer)
{ … }
static int dw_spi_dma_transfer_one(struct dw_spi *dws,
struct spi_transfer *xfer)
{ … }
static int dw_spi_dma_transfer(struct dw_spi *dws, struct spi_transfer *xfer)
{ … }
static void dw_spi_dma_stop(struct dw_spi *dws)
{ … }
static const struct dw_spi_dma_ops dw_spi_dma_mfld_ops = …;
void dw_spi_dma_setup_mfld(struct dw_spi *dws)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static const struct dw_spi_dma_ops dw_spi_dma_generic_ops = …;
void dw_spi_dma_setup_generic(struct dw_spi *dws)
{ … }
EXPORT_SYMBOL_NS_GPL(…);