linux/drivers/dma/milbeaut-hdmac.c

// SPDX-License-Identifier: GPL-2.0
//
// Copyright (C) 2019 Linaro Ltd.
// Copyright (C) 2019 Socionext Inc.

#include <linux/bits.h>
#include <linux/clk.h>
#include <linux/dma-mapping.h>
#include <linux/interrupt.h>
#include <linux/iopoll.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/of_dma.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/bitfield.h>

#include "virt-dma.h"

#define MLB_HDMAC_DMACR
#define MLB_HDMAC_DE
#define MLB_HDMAC_DS
#define MLB_HDMAC_PR
#define MLB_HDMAC_DH

#define MLB_HDMAC_CH_STRIDE

#define MLB_HDMAC_DMACA
#define MLB_HDMAC_EB
#define MLB_HDMAC_PB
#define MLB_HDMAC_ST
#define MLB_HDMAC_IS
#define MLB_HDMAC_BT
#define MLB_HDMAC_BC
#define MLB_HDMAC_TC
#define MLB_HDMAC_DMACB
#define MLB_HDMAC_TT
#define MLB_HDMAC_MS
#define MLB_HDMAC_TW
#define MLB_HDMAC_FS
#define MLB_HDMAC_FD
#define MLB_HDMAC_RC
#define MLB_HDMAC_RS
#define MLB_HDMAC_RD
#define MLB_HDMAC_EI
#define MLB_HDMAC_CI
#define HDMAC_PAUSE
#define MLB_HDMAC_SS
#define MLB_HDMAC_SP
#define MLB_HDMAC_DP
#define MLB_HDMAC_DMACSA
#define MLB_HDMAC_DMACDA

#define MLB_HDMAC_BUSWIDTHS

struct milbeaut_hdmac_desc {};

struct milbeaut_hdmac_chan {};

struct milbeaut_hdmac_device {};

static struct milbeaut_hdmac_chan *
to_milbeaut_hdmac_chan(struct virt_dma_chan *vc)
{}

static struct milbeaut_hdmac_desc *
to_milbeaut_hdmac_desc(struct virt_dma_desc *vd)
{}

/* mc->vc.lock must be held by caller */
static struct milbeaut_hdmac_desc *
milbeaut_hdmac_next_desc(struct milbeaut_hdmac_chan *mc)
{}

/* mc->vc.lock must be held by caller */
static void milbeaut_chan_start(struct milbeaut_hdmac_chan *mc,
				struct milbeaut_hdmac_desc *md)
{}

/* mc->vc.lock must be held by caller */
static void milbeaut_hdmac_start(struct milbeaut_hdmac_chan *mc)
{}

static irqreturn_t milbeaut_hdmac_interrupt(int irq, void *dev_id)
{}

static void milbeaut_hdmac_free_chan_resources(struct dma_chan *chan)
{}

static int
milbeaut_hdmac_chan_config(struct dma_chan *chan, struct dma_slave_config *cfg)
{}

static int milbeaut_hdmac_chan_pause(struct dma_chan *chan)
{}

static int milbeaut_hdmac_chan_resume(struct dma_chan *chan)
{}

static struct dma_async_tx_descriptor *
milbeaut_hdmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
			     unsigned int sg_len,
			     enum dma_transfer_direction direction,
			     unsigned long flags, void *context)
{}

static int milbeaut_hdmac_terminate_all(struct dma_chan *chan)
{}

static void milbeaut_hdmac_synchronize(struct dma_chan *chan)
{}

static enum dma_status milbeaut_hdmac_tx_status(struct dma_chan *chan,
						dma_cookie_t cookie,
						struct dma_tx_state *txstate)
{}

static void milbeaut_hdmac_issue_pending(struct dma_chan *chan)
{}

static void milbeaut_hdmac_desc_free(struct virt_dma_desc *vd)
{}

static struct dma_chan *
milbeaut_hdmac_xlate(struct of_phandle_args *dma_spec, struct of_dma *of_dma)
{}

static int milbeaut_hdmac_chan_init(struct platform_device *pdev,
				    struct milbeaut_hdmac_device *mdev,
				    int chan_id)
{}

static int milbeaut_hdmac_probe(struct platform_device *pdev)
{}

static void milbeaut_hdmac_remove(struct platform_device *pdev)
{}

static const struct of_device_id milbeaut_hdmac_match[] =;
MODULE_DEVICE_TABLE(of, milbeaut_hdmac_match);

static struct platform_driver milbeaut_hdmac_driver =;
module_platform_driver();

MODULE_DESCRIPTION();
MODULE_LICENSE();