#include <linux/bitfield.h>
#include <linux/irqreturn.h>
#include <linux/io-64-nonatomic-lo-hi.h>
#include "dw-edma-core.h"
#include "dw-hdma-v0-core.h"
#include "dw-hdma-v0-regs.h"
#include "dw-hdma-v0-debugfs.h"
enum dw_hdma_control { … };
static inline struct dw_hdma_v0_regs __iomem *__dw_regs(struct dw_edma *dw)
{ … }
static inline struct dw_hdma_v0_ch_regs __iomem *
__dw_ch_regs(struct dw_edma *dw, enum dw_edma_dir dir, u16 ch)
{ … }
#define SET_CH_32(dw, dir, ch, name, value) …
#define GET_CH_32(dw, dir, ch, name) …
#define SET_BOTH_CH_32(dw, ch, name, value) …
static void dw_hdma_v0_core_off(struct dw_edma *dw)
{ … }
static u16 dw_hdma_v0_core_ch_count(struct dw_edma *dw, enum dw_edma_dir dir)
{ … }
static enum dma_status dw_hdma_v0_core_ch_status(struct dw_edma_chan *chan)
{ … }
static void dw_hdma_v0_core_clear_done_int(struct dw_edma_chan *chan)
{ … }
static void dw_hdma_v0_core_clear_abort_int(struct dw_edma_chan *chan)
{ … }
static u32 dw_hdma_v0_core_status_int(struct dw_edma_chan *chan)
{ … }
static irqreturn_t
dw_hdma_v0_core_handle_int(struct dw_edma_irq *dw_irq, enum dw_edma_dir dir,
dw_edma_handler_t done, dw_edma_handler_t abort)
{ … }
static void dw_hdma_v0_write_ll_data(struct dw_edma_chunk *chunk, int i,
u32 control, u32 size, u64 sar, u64 dar)
{ … }
static void dw_hdma_v0_write_ll_link(struct dw_edma_chunk *chunk,
int i, u32 control, u64 pointer)
{ … }
static void dw_hdma_v0_core_write_chunk(struct dw_edma_chunk *chunk)
{ … }
static void dw_hdma_v0_sync_ll_data(struct dw_edma_chunk *chunk)
{ … }
static void dw_hdma_v0_core_start(struct dw_edma_chunk *chunk, bool first)
{ … }
static void dw_hdma_v0_core_ch_config(struct dw_edma_chan *chan)
{ … }
static void dw_hdma_v0_core_debugfs_on(struct dw_edma *dw)
{ … }
static const struct dw_edma_core_ops dw_hdma_v0_core = …;
void dw_hdma_v0_core_register(struct dw_edma *dw)
{ … }