#define pr_fmt(fmt) …
#define DEBUG_VARIABLE …
#include <media/drv-intf/saa7146_vv.h>
#include <media/tuner.h>
#include <media/v4l2-common.h>
#include <media/i2c/saa7115.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include "tea6415c.h"
#include "tea6420.h"
#define MXB_AUDIOS …
#define I2C_SAA7111A …
#define I2C_TDA9840 …
#define I2C_TEA6415C …
#define I2C_TEA6420_1 …
#define I2C_TEA6420_2 …
#define I2C_TUNER …
#define MXB_BOARD_CAN_DO_VBI(dev) …
static int mxb_num;
static int freq = …;
module_param(freq, int, 0644);
MODULE_PARM_DESC(…) …;
static int debug;
module_param(debug, int, 0644);
MODULE_PARM_DESC(…) …;
#define MXB_STD …
#define MXB_INPUTS …
enum { … };
static struct v4l2_input mxb_inputs[MXB_INPUTS] = …;
static struct { … } input_port_selection[MXB_INPUTS] = …;
static int video_audio_connect[MXB_INPUTS] = …;
struct mxb_routing { … };
static struct v4l2_audio mxb_audios[MXB_AUDIOS] = …;
static struct mxb_routing TEA6420_cd[MXB_AUDIOS + 1][2] = …;
static struct mxb_routing TEA6420_line[MXB_AUDIOS + 1][2] = …;
struct mxb
{ … };
#define saa7111a_call(mxb, o, f, args...) …
#define tda9840_call(mxb, o, f, args...) …
#define tea6415c_call(mxb, o, f, args...) …
#define tuner_call(mxb, o, f, args...) …
#define call_all(dev, o, f, args...) …
static void mxb_update_audmode(struct mxb *mxb)
{ … }
static inline void tea6420_route(struct mxb *mxb, int idx)
{ … }
static struct saa7146_extension extension;
static int mxb_s_ctrl(struct v4l2_ctrl *ctrl)
{ … }
static const struct v4l2_ctrl_ops mxb_ctrl_ops = …;
static int mxb_probe(struct saa7146_dev *dev)
{ … }
static struct { … } mxb_saa7740_init[] = …;
static int mxb_init_done(struct saa7146_dev* dev)
{ … }
static int vidioc_enum_input(struct file *file, void *fh, struct v4l2_input *i)
{ … }
static int vidioc_g_input(struct file *file, void *fh, unsigned int *i)
{ … }
static int vidioc_s_input(struct file *file, void *fh, unsigned int input)
{ … }
static int vidioc_g_tuner(struct file *file, void *fh, struct v4l2_tuner *t)
{ … }
static int vidioc_s_tuner(struct file *file, void *fh, const struct v4l2_tuner *t)
{ … }
static int vidioc_querystd(struct file *file, void *fh, v4l2_std_id *norm)
{ … }
static int vidioc_g_frequency(struct file *file, void *fh, struct v4l2_frequency *f)
{ … }
static int vidioc_s_frequency(struct file *file, void *fh, const struct v4l2_frequency *f)
{ … }
static int vidioc_enumaudio(struct file *file, void *fh, struct v4l2_audio *a)
{ … }
static int vidioc_g_audio(struct file *file, void *fh, struct v4l2_audio *a)
{ … }
static int vidioc_s_audio(struct file *file, void *fh, const struct v4l2_audio *a)
{ … }
#ifdef CONFIG_VIDEO_ADV_DEBUG
static int vidioc_g_register(struct file *file, void *fh, struct v4l2_dbg_register *reg)
{ … }
static int vidioc_s_register(struct file *file, void *fh, const struct v4l2_dbg_register *reg)
{ … }
#endif
static struct saa7146_ext_vv vv_data;
static int mxb_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info)
{ … }
static int mxb_detach(struct saa7146_dev *dev)
{ … }
static int std_callback(struct saa7146_dev *dev, struct saa7146_standard *standard)
{ … }
static struct saa7146_standard standard[] = …;
static struct saa7146_pci_extension_data mxb = …;
static const struct pci_device_id pci_tbl[] = …;
MODULE_DEVICE_TABLE(pci, pci_tbl);
static struct saa7146_ext_vv vv_data = …;
static struct saa7146_extension extension = …;
static int __init mxb_init_module(void)
{ … }
static void __exit mxb_cleanup_module(void)
{ … }
module_init(…) …;
module_exit(mxb_cleanup_module);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;