#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/i2c.h>
#include <linux/types.h>
#include <linux/videodev2.h>
#include <linux/init.h>
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/poll.h>
#include <linux/wait.h>
#include <linux/uaccess.h>
#include <media/i2c/saa6588.h>
#include <media/v4l2-device.h>
static unsigned int debug;
static unsigned int xtal;
static unsigned int mmbs;
static unsigned int plvl;
static unsigned int bufblocks = …;
module_param(debug, int, 0644);
MODULE_PARM_DESC(…) …;
module_param(xtal, int, 0);
MODULE_PARM_DESC(…) …;
module_param(mmbs, int, 0);
MODULE_PARM_DESC(…) …;
module_param(plvl, int, 0);
MODULE_PARM_DESC(…) …;
module_param(bufblocks, int, 0);
MODULE_PARM_DESC(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
#define UNSET …
#define PREFIX …
#define dprintk …
struct saa6588 { … };
static inline struct saa6588 *to_saa6588(struct v4l2_subdev *sd)
{ … }
#define cModeStandard …
#define cModeFastPI …
#define cModeReducedRequest …
#define cModeInvalid …
#define cProcessingModeRDS …
#define cProcessingModeRBDS …
#define cErrCorrectionNone …
#define cErrCorrection2Bits …
#define cErrCorrection5Bits …
#define cErrCorrectionNoneRBDS …
#define cSyncNormal …
#define cSyncRestart …
#define cSigQualityDetectOFF …
#define cSigQualityDetectON …
#define cSigQualityTriggered …
#define cSigQualityContinous …
#define cFlywheelMaxBlocksMask …
#define cFlywheelDefault …
#define cPauseLevel_11mV …
#define cPauseLevel_17mV …
#define cPauseLevel_27mV …
#define cPauseLevel_43mV …
#define cQualityDetectSensMask …
#define cQualityDetectDefault …
#define cSelectOscFreqOFF …
#define cSelectOscFreqON …
#define cOscFreq_4332kHz …
#define cOscFreq_8664kHz …
#define cOscFreq_12996kHz …
#define cOscFreq_17328kHz …
static bool block_from_buf(struct saa6588 *s, unsigned char *buf)
{ … }
static void read_from_buf(struct saa6588 *s, struct saa6588_command *a)
{ … }
static void block_to_buf(struct saa6588 *s, unsigned char *blockbuf)
{ … }
static void saa6588_i2c_poll(struct saa6588 *s)
{ … }
static void saa6588_work(struct work_struct *work)
{ … }
static void saa6588_configure(struct saa6588 *s)
{ … }
static long saa6588_command(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
{ … }
static int saa6588_g_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *vt)
{ … }
static int saa6588_s_tuner(struct v4l2_subdev *sd, const struct v4l2_tuner *vt)
{ … }
static const struct v4l2_subdev_core_ops saa6588_core_ops = …;
static const struct v4l2_subdev_tuner_ops saa6588_tuner_ops = …;
static const struct v4l2_subdev_ops saa6588_ops = …;
static int saa6588_probe(struct i2c_client *client)
{ … }
static void saa6588_remove(struct i2c_client *client)
{ … }
static const struct i2c_device_id saa6588_id[] = …;
MODULE_DEVICE_TABLE(i2c, saa6588_id);
static struct i2c_driver saa6588_driver = …;
module_i2c_driver(…) …;