#include <linux/module.h>
#include <linux/ioctl.h>
#include <linux/slab.h>
#include <linux/i2c.h>
#include <media/v4l2-device.h>
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static int debug;
module_param(debug, int, 0644);
MODULE_PARM_DESC(…) …;
#define SWITCH …
#define LEVEL_ADJUST …
#define STEREO_ADJUST …
#define TEST …
#define TDA9840_SET_MUTE …
#define TDA9840_SET_MONO …
#define TDA9840_SET_STEREO …
#define TDA9840_SET_LANG1 …
#define TDA9840_SET_LANG2 …
#define TDA9840_SET_BOTH …
#define TDA9840_SET_BOTH_R …
#define TDA9840_SET_EXTERNAL …
static void tda9840_write(struct v4l2_subdev *sd, u8 reg, u8 val)
{ … }
static int tda9840_status(struct v4l2_subdev *sd)
{ … }
static int tda9840_s_tuner(struct v4l2_subdev *sd, const struct v4l2_tuner *t)
{ … }
static int tda9840_g_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *t)
{ … }
static const struct v4l2_subdev_tuner_ops tda9840_tuner_ops = …;
static const struct v4l2_subdev_ops tda9840_ops = …;
static int tda9840_probe(struct i2c_client *client)
{ … }
static void tda9840_remove(struct i2c_client *client)
{ … }
static const struct i2c_device_id tda9840_id[] = …;
MODULE_DEVICE_TABLE(i2c, tda9840_id);
static struct i2c_driver tda9840_driver = …;
module_i2c_driver(…) …;