linux/drivers/media/pci/cx88/cx88-mpeg.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *
 *  Support for the mpeg transport stream transfers
 *  PCI function #2 of the cx2388x.
 *
 *    (c) 2004 Jelle Foks <[email protected]>
 *    (c) 2004 Chris Pascoe <[email protected]>
 *    (c) 2004 Gerd Knorr <[email protected]>
 */

#include "cx88.h"

#include <linux/module.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/dma-mapping.h>
#include <linux/interrupt.h>
#include <linux/delay.h>

/* ------------------------------------------------------------------ */

MODULE_DESCRIPTION();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_LICENSE();
MODULE_VERSION();

static unsigned int debug;
module_param(debug, int, 0644);
MODULE_PARM_DESC();

#define dprintk(level, fmt, arg...)

#if defined(CONFIG_MODULES) && defined(MODULE)
static void request_module_async(struct work_struct *work)
{
	struct cx8802_dev *dev = container_of(work, struct cx8802_dev,
					      request_module_wk);

	if (dev->core->board.mpeg & CX88_MPEG_DVB)
		request_module("cx88-dvb");
	if (dev->core->board.mpeg & CX88_MPEG_BLACKBIRD)
		request_module("cx88-blackbird");
}

static void request_modules(struct cx8802_dev *dev)
{
	INIT_WORK(&dev->request_module_wk, request_module_async);
	schedule_work(&dev->request_module_wk);
}

static void flush_request_modules(struct cx8802_dev *dev)
{
	flush_work(&dev->request_module_wk);
}
#else
#define request_modules(dev)
#define flush_request_modules(dev)
#endif /* CONFIG_MODULES */

static LIST_HEAD(cx8802_devlist);
static DEFINE_MUTEX(cx8802_mutex);
/* ------------------------------------------------------------------ */

int cx8802_start_dma(struct cx8802_dev    *dev,
		     struct cx88_dmaqueue *q,
		     struct cx88_buffer   *buf)
{}
EXPORT_SYMBOL();

static int cx8802_stop_dma(struct cx8802_dev *dev)
{}

static int cx8802_restart_queue(struct cx8802_dev    *dev,
				struct cx88_dmaqueue *q)
{}

/* ------------------------------------------------------------------ */

int cx8802_buf_prepare(struct vb2_queue *q, struct cx8802_dev *dev,
		       struct cx88_buffer *buf)
{}
EXPORT_SYMBOL();

void cx8802_buf_queue(struct cx8802_dev *dev, struct cx88_buffer *buf)
{}
EXPORT_SYMBOL();

/* ----------------------------------------------------------- */

static void do_cancel_buffers(struct cx8802_dev *dev)
{}

void cx8802_cancel_buffers(struct cx8802_dev *dev)
{}
EXPORT_SYMBOL();

static const char *cx88_mpeg_irqs[32] =;

static void cx8802_mpeg_irq(struct cx8802_dev *dev)
{}

#define MAX_IRQ_LOOP

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

static int cx8802_init_common(struct cx8802_dev *dev)
{}

static void cx8802_fini_common(struct cx8802_dev *dev)
{}

/* ----------------------------------------------------------- */

static int cx8802_suspend_common(struct pci_dev *pci_dev, pm_message_t state)
{}

static int cx8802_resume_common(struct pci_dev *pci_dev)
{}

struct cx8802_driver *cx8802_get_driver(struct cx8802_dev *dev,
					enum cx88_board_type btype)
{}
EXPORT_SYMBOL();

/* Driver asked for hardware access. */
static int cx8802_request_acquire(struct cx8802_driver *drv)
{}

/* Driver asked to release hardware. */
static int cx8802_request_release(struct cx8802_driver *drv)
{}

static int cx8802_check_driver(struct cx8802_driver *drv)
{}

int cx8802_register_driver(struct cx8802_driver *drv)
{}
EXPORT_SYMBOL();

int cx8802_unregister_driver(struct cx8802_driver *drv)
{}
EXPORT_SYMBOL();

/* ----------------------------------------------------------- */
static int cx8802_probe(struct pci_dev *pci_dev,
			const struct pci_device_id *pci_id)
{}

static void cx8802_remove(struct pci_dev *pci_dev)
{}

static const struct pci_device_id cx8802_pci_tbl[] =;
MODULE_DEVICE_TABLE(pci, cx8802_pci_tbl);

static struct pci_driver cx8802_pci_driver =;

module_pci_driver();