#include <linux/kernel.h>
#include <linux/dma-mapping.h>
#include <linux/interrupt.h>
#include <linux/mfd/syscon.h>
#include <linux/of.h>
#include <linux/of_irq.h>
#include <linux/bitfield.h>
#include "mtk_wed.h"
#include "mtk_wed_regs.h"
#include "mtk_wed_wo.h"
static u32
mtk_wed_mmio_r32(struct mtk_wed_wo *wo, u32 reg)
{ … }
static void
mtk_wed_mmio_w32(struct mtk_wed_wo *wo, u32 reg, u32 val)
{ … }
static u32
mtk_wed_wo_get_isr(struct mtk_wed_wo *wo)
{ … }
static void
mtk_wed_wo_set_isr(struct mtk_wed_wo *wo, u32 mask)
{ … }
static void
mtk_wed_wo_set_ack(struct mtk_wed_wo *wo, u32 mask)
{ … }
static void
mtk_wed_wo_set_isr_mask(struct mtk_wed_wo *wo, u32 mask, u32 val, bool set)
{ … }
static void
mtk_wed_wo_irq_enable(struct mtk_wed_wo *wo, u32 mask)
{ … }
static void
mtk_wed_wo_irq_disable(struct mtk_wed_wo *wo, u32 mask)
{ … }
static void
mtk_wed_wo_kickout(struct mtk_wed_wo *wo)
{ … }
static void
mtk_wed_wo_queue_kick(struct mtk_wed_wo *wo, struct mtk_wed_wo_queue *q,
u32 val)
{ … }
static void *
mtk_wed_wo_dequeue(struct mtk_wed_wo *wo, struct mtk_wed_wo_queue *q, u32 *len,
bool flush)
{ … }
static int
mtk_wed_wo_queue_refill(struct mtk_wed_wo *wo, struct mtk_wed_wo_queue *q,
bool rx)
{ … }
static void
mtk_wed_wo_rx_complete(struct mtk_wed_wo *wo)
{ … }
static void
mtk_wed_wo_rx_run_queue(struct mtk_wed_wo *wo, struct mtk_wed_wo_queue *q)
{ … }
static irqreturn_t
mtk_wed_wo_irq_handler(int irq, void *data)
{ … }
static void mtk_wed_wo_irq_tasklet(struct tasklet_struct *t)
{ … }
static int
mtk_wed_wo_queue_alloc(struct mtk_wed_wo *wo, struct mtk_wed_wo_queue *q,
int n_desc, int buf_size, int index,
struct mtk_wed_wo_queue_regs *regs)
{ … }
static void
mtk_wed_wo_queue_free(struct mtk_wed_wo *wo, struct mtk_wed_wo_queue *q)
{ … }
static void
mtk_wed_wo_queue_tx_clean(struct mtk_wed_wo *wo, struct mtk_wed_wo_queue *q)
{ … }
static void
mtk_wed_wo_queue_rx_clean(struct mtk_wed_wo *wo, struct mtk_wed_wo_queue *q)
{ … }
static void
mtk_wed_wo_queue_reset(struct mtk_wed_wo *wo, struct mtk_wed_wo_queue *q)
{ … }
int mtk_wed_wo_queue_tx_skb(struct mtk_wed_wo *wo, struct mtk_wed_wo_queue *q,
struct sk_buff *skb)
{ … }
static int
mtk_wed_wo_exception_init(struct mtk_wed_wo *wo)
{ … }
static int
mtk_wed_wo_hardware_init(struct mtk_wed_wo *wo)
{ … }
static void
mtk_wed_wo_hw_deinit(struct mtk_wed_wo *wo)
{ … }
int mtk_wed_wo_init(struct mtk_wed_hw *hw)
{ … }
void mtk_wed_wo_deinit(struct mtk_wed_hw *hw)
{ … }