#define pr_fmt(fmt) …
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/kernel.h>
#include <linux/interrupt.h>
#include <linux/kdev_t.h>
#include <media/v4l2-ioctl.h>
#include <asm/io.h>
#include "bttvp.h"
#define VBI_OFFSET …
static unsigned int vbibufs = …;
static unsigned int vbi_debug;
module_param(vbibufs, int, 0444);
module_param(vbi_debug, int, 0644);
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
#ifdef dprintk
# undef dprintk
#endif
#define dprintk(fmt, ...) …
#define IMAGE_SIZE(fmt) …
static int queue_setup_vbi(struct vb2_queue *q, unsigned int *num_buffers,
unsigned int *num_planes, unsigned int sizes[],
struct device *alloc_devs[])
{ … }
static void buf_queue_vbi(struct vb2_buffer *vb)
{ … }
static int buf_prepare_vbi(struct vb2_buffer *vb)
{ … }
static void buf_cleanup_vbi(struct vb2_buffer *vb)
{ … }
static int start_streaming_vbi(struct vb2_queue *q, unsigned int count)
{ … }
static void stop_streaming_vbi(struct vb2_queue *q)
{ … }
const struct vb2_ops bttv_vbi_qops = …;
static int try_fmt(struct v4l2_vbi_format *f, const struct bttv_tvnorm *tvnorm,
__s32 crop_start)
{ … }
int bttv_try_fmt_vbi_cap(struct file *file, void *f, struct v4l2_format *frt)
{ … }
int bttv_s_fmt_vbi_cap(struct file *file, void *f, struct v4l2_format *frt)
{ … }
int bttv_g_fmt_vbi_cap(struct file *file, void *f, struct v4l2_format *frt)
{ … }
void bttv_vbi_fmt_reset(struct bttv_vbi_fmt *f, unsigned int norm)
{ … }