linux/drivers/media/pci/cx18/cx18-mailbox.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *  cx18 mailbox functions
 *
 *  Copyright (C) 2007  Hans Verkuil <[email protected]>
 *  Copyright (C) 2008  Andy Walls <[email protected]>
 */

#include <linux/bitops.h>

#include "cx18-driver.h"
#include "cx18-io.h"
#include "cx18-scb.h"
#include "cx18-irq.h"
#include "cx18-mailbox.h"
#include "cx18-queue.h"
#include "cx18-streams.h"
#include "cx18-alsa-pcm.h" /* FIXME make configurable */

static const char *rpu_str[] =;

#define API_FAST
#define API_SLOW

struct cx18_api_info {};

#define API_ENTRY(rpu, x, f)

static const struct cx18_api_info api_info[] =;

static const struct cx18_api_info *find_api_info(u32 cmd)
{}

/* Call with buf of n*11+1 bytes */
static char *u32arr2hex(u32 data[], int n, char *buf)
{}

static void dump_mb(struct cx18 *cx, struct cx18_mailbox *mb, char *name)
{}


/*
 * Functions that run in a work_queue work handling context
 */

static void cx18_mdl_send_to_dvb(struct cx18_stream *s, struct cx18_mdl *mdl)
{}

static void cx18_mdl_send_to_vb2(struct cx18_stream *s, struct cx18_mdl *mdl)
{}

static void cx18_mdl_send_to_alsa(struct cx18 *cx, struct cx18_stream *s,
				  struct cx18_mdl *mdl)
{}

static void epu_dma_done(struct cx18 *cx, struct cx18_in_work_order *order)
{}

static void epu_debug(struct cx18 *cx, struct cx18_in_work_order *order)
{}

static void epu_cmd(struct cx18 *cx, struct cx18_in_work_order *order)
{}

static
void free_in_work_order(struct cx18 *cx, struct cx18_in_work_order *order)
{}

void cx18_in_work_handler(struct work_struct *work)
{}


/*
 * Functions that run in an interrupt handling context
 */

static void mb_ack_irq(struct cx18 *cx, struct cx18_in_work_order *order)
{}

static int epu_dma_done_irq(struct cx18 *cx, struct cx18_in_work_order *order)
{}

static
int epu_debug_irq(struct cx18 *cx, struct cx18_in_work_order *order)
{}

static inline
int epu_cmd_irq(struct cx18 *cx, struct cx18_in_work_order *order)
{}

static inline
struct cx18_in_work_order *alloc_in_work_order_irq(struct cx18 *cx)
{}

void cx18_api_epu_cmd_irq(struct cx18 *cx, int rpu)
{}


/*
 * Functions called from a non-interrupt, non work_queue context
 */

static int cx18_api_call(struct cx18 *cx, u32 cmd, int args, u32 data[])
{}

int cx18_api(struct cx18 *cx, u32 cmd, int args, u32 data[])
{}

static int cx18_set_filter_param(struct cx18_stream *s)
{}

int cx18_api_func(void *priv, u32 cmd, int in, int out,
		u32 data[CX2341X_MBOX_MAX_DATA])
{}

int cx18_vapi_result(struct cx18 *cx, u32 data[MAX_MB_ARGUMENTS],
		u32 cmd, int args, ...)
{}

int cx18_vapi(struct cx18 *cx, u32 cmd, int args, ...)
{}