#define pr_fmt(fmt) …
#include "cx25821-video.h"
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
static unsigned int video_nr[] = …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
static unsigned int video_debug = …;
module_param(video_debug, int, 0644);
MODULE_PARM_DESC(…) …;
static unsigned int irq_debug;
module_param(irq_debug, int, 0644);
MODULE_PARM_DESC(…) …;
#define FORMAT_FLAGS_PACKED …
static const struct cx25821_fmt formats[] = …;
static const struct cx25821_fmt *cx25821_format_by_fourcc(unsigned int fourcc)
{ … }
int cx25821_start_video_dma(struct cx25821_dev *dev,
struct cx25821_dmaqueue *q,
struct cx25821_buffer *buf,
const struct sram_channel *channel)
{ … }
int cx25821_video_irq(struct cx25821_dev *dev, int chan_num, u32 status)
{ … }
static int cx25821_queue_setup(struct vb2_queue *q,
unsigned int *num_buffers, unsigned int *num_planes,
unsigned int sizes[], struct device *alloc_devs[])
{ … }
static int cx25821_buffer_prepare(struct vb2_buffer *vb)
{ … }
static void cx25821_buffer_finish(struct vb2_buffer *vb)
{ … }
static void cx25821_buffer_queue(struct vb2_buffer *vb)
{ … }
static int cx25821_start_streaming(struct vb2_queue *q, unsigned int count)
{ … }
static void cx25821_stop_streaming(struct vb2_queue *q)
{ … }
static const struct vb2_ops cx25821_video_qops = …;
static int cx25821_vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
struct v4l2_fmtdesc *f)
{ … }
static int cx25821_vidioc_g_fmt_vid_cap(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
static int cx25821_vidioc_try_fmt_vid_cap(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
static int vidioc_log_status(struct file *file, void *priv)
{ … }
static int cx25821_vidioc_querycap(struct file *file, void *priv,
struct v4l2_capability *cap)
{ … }
static int cx25821_vidioc_g_std(struct file *file, void *priv, v4l2_std_id *tvnorms)
{ … }
static int cx25821_vidioc_s_std(struct file *file, void *priv,
v4l2_std_id tvnorms)
{ … }
static int cx25821_vidioc_enum_input(struct file *file, void *priv,
struct v4l2_input *i)
{ … }
static int cx25821_vidioc_g_input(struct file *file, void *priv, unsigned int *i)
{ … }
static int cx25821_vidioc_s_input(struct file *file, void *priv, unsigned int i)
{ … }
static int cx25821_s_ctrl(struct v4l2_ctrl *ctrl)
{ … }
static int cx25821_vidioc_enum_output(struct file *file, void *priv,
struct v4l2_output *o)
{ … }
static int cx25821_vidioc_g_output(struct file *file, void *priv, unsigned int *o)
{ … }
static int cx25821_vidioc_s_output(struct file *file, void *priv, unsigned int o)
{ … }
static int cx25821_vidioc_try_fmt_vid_out(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
static int vidioc_s_fmt_vid_out(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
static const struct v4l2_ctrl_ops cx25821_ctrl_ops = …;
static const struct v4l2_file_operations video_fops = …;
static const struct v4l2_ioctl_ops video_ioctl_ops = …;
static const struct video_device cx25821_video_device = …;
static const struct v4l2_file_operations video_out_fops = …;
static const struct v4l2_ioctl_ops video_out_ioctl_ops = …;
static const struct video_device cx25821_video_out_device = …;
void cx25821_video_unregister(struct cx25821_dev *dev, int chan_num)
{ … }
int cx25821_video_register(struct cx25821_dev *dev)
{ … }