#include "cx88.h"
#include <linux/init.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/kmod.h>
#include <linux/sound.h>
#include <linux/interrupt.h>
#include <linux/pci.h>
#include <linux/delay.h>
#include <linux/videodev2.h>
#include <linux/mutex.h>
#include <media/v4l2-common.h>
#include <media/v4l2-ioctl.h>
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
unsigned int cx88_core_debug;
module_param_named(core_debug, cx88_core_debug, int, 0644);
MODULE_PARM_DESC(…) …;
static unsigned int nicam;
module_param(nicam, int, 0644);
MODULE_PARM_DESC(…) …;
static unsigned int nocomb;
module_param(nocomb, int, 0644);
MODULE_PARM_DESC(…) …;
#define dprintk0(fmt, arg...) … \
#define dprintk(level, fmt, arg...) …
static unsigned int cx88_devcount;
static LIST_HEAD(cx88_devlist);
static DEFINE_MUTEX(devlist);
#define NO_SYNC_LINE …
static __le32 *cx88_risc_field(__le32 *rp, struct scatterlist *sglist,
unsigned int offset, u32 sync_line,
unsigned int bpl, unsigned int padding,
unsigned int lines, unsigned int lpi, bool jump)
{ … }
int cx88_risc_buffer(struct pci_dev *pci, struct cx88_riscmem *risc,
struct scatterlist *sglist,
unsigned int top_offset, unsigned int bottom_offset,
unsigned int bpl, unsigned int padding, unsigned int lines)
{ … }
EXPORT_SYMBOL(…);
int cx88_risc_databuffer(struct pci_dev *pci, struct cx88_riscmem *risc,
struct scatterlist *sglist, unsigned int bpl,
unsigned int lines, unsigned int lpi)
{ … }
EXPORT_SYMBOL(…);
const struct sram_channel cx88_sram_channels[] = …;
EXPORT_SYMBOL(…);
int cx88_sram_channel_setup(struct cx88_core *core,
const struct sram_channel *ch,
unsigned int bpl, u32 risc)
{ … }
EXPORT_SYMBOL(…);
static int cx88_risc_decode(u32 risc)
{ … }
void cx88_sram_channel_dump(struct cx88_core *core,
const struct sram_channel *ch)
{ … }
EXPORT_SYMBOL(…);
static const char *cx88_pci_irqs[32] = …;
void cx88_print_irqbits(const char *tag, const char *strings[],
int len, u32 bits, u32 mask)
{ … }
EXPORT_SYMBOL(…);
int cx88_core_irq(struct cx88_core *core, u32 status)
{ … }
EXPORT_SYMBOL(…);
void cx88_wakeup(struct cx88_core *core,
struct cx88_dmaqueue *q, u32 count)
{ … }
EXPORT_SYMBOL(…);
void cx88_shutdown(struct cx88_core *core)
{ … }
EXPORT_SYMBOL(…);
int cx88_reset(struct cx88_core *core)
{ … }
EXPORT_SYMBOL(…);
static inline unsigned int norm_swidth(v4l2_std_id norm)
{ … }
static inline unsigned int norm_hdelay(v4l2_std_id norm)
{ … }
static inline unsigned int norm_vdelay(v4l2_std_id norm)
{ … }
static inline unsigned int norm_fsc8(v4l2_std_id norm)
{ … }
static inline unsigned int norm_htotal(v4l2_std_id norm)
{ … }
static inline unsigned int norm_vbipack(v4l2_std_id norm)
{ … }
int cx88_set_scale(struct cx88_core *core, unsigned int width,
unsigned int height, enum v4l2_field field)
{ … }
EXPORT_SYMBOL(…);
static const u32 xtal = …;
static int set_pll(struct cx88_core *core, int prescale, u32 ofreq)
{ … }
int cx88_start_audio_dma(struct cx88_core *core)
{ … }
int cx88_stop_audio_dma(struct cx88_core *core)
{ … }
static int set_tvaudio(struct cx88_core *core)
{ … }
int cx88_set_tvnorm(struct cx88_core *core, v4l2_std_id norm)
{ … }
EXPORT_SYMBOL(…);
void cx88_vdev_init(struct cx88_core *core,
struct pci_dev *pci,
struct video_device *vfd,
const struct video_device *template_,
const char *type)
{ … }
EXPORT_SYMBOL(…);
struct cx88_core *cx88_core_get(struct pci_dev *pci)
{ … }
EXPORT_SYMBOL(…);
void cx88_core_put(struct cx88_core *core, struct pci_dev *pci)
{ … }
EXPORT_SYMBOL(…);