#define TDA10045_DEFAULT_FIRMWARE …
#define TDA10046_DEFAULT_FIRMWARE …
#include <linux/init.h>
#include <linux/module.h>
#include <linux/device.h>
#include <linux/jiffies.h>
#include <linux/string.h>
#include <linux/slab.h>
#include <media/dvb_frontend.h>
#include "tda1004x.h"
static int debug;
#define dprintk(args...) …
#define TDA1004X_CHIPID …
#define TDA1004X_AUTO …
#define TDA1004X_IN_CONF1 …
#define TDA1004X_IN_CONF2 …
#define TDA1004X_OUT_CONF1 …
#define TDA1004X_OUT_CONF2 …
#define TDA1004X_STATUS_CD …
#define TDA1004X_CONFC4 …
#define TDA1004X_DSSPARE2 …
#define TDA10045H_CODE_IN …
#define TDA10045H_FWPAGE …
#define TDA1004X_SCAN_CPT …
#define TDA1004X_DSP_CMD …
#define TDA1004X_DSP_ARG …
#define TDA1004X_DSP_DATA1 …
#define TDA1004X_DSP_DATA2 …
#define TDA1004X_CONFADC1 …
#define TDA1004X_CONFC1 …
#define TDA10045H_S_AGC …
#define TDA10046H_AGC_TUN_LEVEL …
#define TDA1004X_SNR …
#define TDA1004X_CONF_TS1 …
#define TDA1004X_CONF_TS2 …
#define TDA1004X_CBER_RESET …
#define TDA1004X_CBER_MSB …
#define TDA1004X_CBER_LSB …
#define TDA1004X_CVBER_LUT …
#define TDA1004X_VBER_MSB …
#define TDA1004X_VBER_MID …
#define TDA1004X_VBER_LSB …
#define TDA1004X_UNCOR …
#define TDA10045H_CONFPLL_P …
#define TDA10045H_CONFPLL_M_MSB …
#define TDA10045H_CONFPLL_M_LSB …
#define TDA10045H_CONFPLL_N …
#define TDA10046H_CONFPLL1 …
#define TDA10046H_CONFPLL2 …
#define TDA10046H_CONFPLL3 …
#define TDA10046H_TIME_WREF1 …
#define TDA10046H_TIME_WREF2 …
#define TDA10046H_TIME_WREF3 …
#define TDA10046H_TIME_WREF4 …
#define TDA10046H_TIME_WREF5 …
#define TDA10045H_UNSURW_MSB …
#define TDA10045H_UNSURW_LSB …
#define TDA10045H_WREF_MSB …
#define TDA10045H_WREF_MID …
#define TDA10045H_WREF_LSB …
#define TDA10045H_MUXOUT …
#define TDA1004X_CONFADC2 …
#define TDA10045H_IOFFSET …
#define TDA10046H_CONF_TRISTATE1 …
#define TDA10046H_CONF_TRISTATE2 …
#define TDA10046H_CONF_POLARITY …
#define TDA10046H_FREQ_OFFSET …
#define TDA10046H_GPIO_OUT_SEL …
#define TDA10046H_GPIO_SELECT …
#define TDA10046H_AGC_CONF …
#define TDA10046H_AGC_THR …
#define TDA10046H_AGC_RENORM …
#define TDA10046H_AGC_GAINS …
#define TDA10046H_AGC_TUN_MIN …
#define TDA10046H_AGC_TUN_MAX …
#define TDA10046H_AGC_IF_MIN …
#define TDA10046H_AGC_IF_MAX …
#define TDA10046H_FREQ_PHY2_MSB …
#define TDA10046H_FREQ_PHY2_LSB …
#define TDA10046H_CVBER_CTRL …
#define TDA10046H_AGC_IF_LEVEL …
#define TDA10046H_CODE_CPT …
#define TDA10046H_CODE_IN …
static int tda1004x_write_byteI(struct tda1004x_state *state, int reg, int data)
{ … }
static int tda1004x_read_byte(struct tda1004x_state *state, int reg)
{ … }
static int tda1004x_write_mask(struct tda1004x_state *state, int reg, int mask, int data)
{ … }
static int tda1004x_write_buf(struct tda1004x_state *state, int reg, unsigned char *buf, int len)
{ … }
static int tda1004x_enable_tuner_i2c(struct tda1004x_state *state)
{ … }
static int tda1004x_disable_tuner_i2c(struct tda1004x_state *state)
{ … }
static int tda10045h_set_bandwidth(struct tda1004x_state *state,
u32 bandwidth)
{ … }
static int tda10046h_set_bandwidth(struct tda1004x_state *state,
u32 bandwidth)
{ … }
static int tda1004x_do_upload(struct tda1004x_state *state,
const unsigned char *mem, unsigned int len,
u8 dspCodeCounterReg, u8 dspCodeInReg)
{ … }
static int tda1004x_check_upload_ok(struct tda1004x_state *state)
{ … }
static int tda10045_fwupload(struct dvb_frontend* fe)
{ … }
static void tda10046_init_plls(struct dvb_frontend* fe)
{ … }
static int tda10046_fwupload(struct dvb_frontend* fe)
{ … }
static int tda1004x_encode_fec(int fec)
{ … }
static int tda1004x_decode_fec(int tdafec)
{ … }
static int tda1004x_write(struct dvb_frontend* fe, const u8 buf[], int len)
{ … }
static int tda10045_init(struct dvb_frontend* fe)
{ … }
static int tda10046_init(struct dvb_frontend* fe)
{ … }
static int tda1004x_set_fe(struct dvb_frontend *fe)
{ … }
static int tda1004x_get_fe(struct dvb_frontend *fe,
struct dtv_frontend_properties *fe_params)
{ … }
static int tda1004x_read_status(struct dvb_frontend *fe,
enum fe_status *fe_status)
{ … }
static int tda1004x_read_signal_strength(struct dvb_frontend* fe, u16 * signal)
{ … }
static int tda1004x_read_snr(struct dvb_frontend* fe, u16 * snr)
{ … }
static int tda1004x_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks)
{ … }
static int tda1004x_read_ber(struct dvb_frontend* fe, u32* ber)
{ … }
static int tda1004x_sleep(struct dvb_frontend* fe)
{ … }
static int tda1004x_i2c_gate_ctrl(struct dvb_frontend* fe, int enable)
{ … }
static int tda1004x_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings)
{ … }
static void tda1004x_release(struct dvb_frontend* fe)
{ … }
static const struct dvb_frontend_ops tda10045_ops = …;
struct dvb_frontend* tda10045_attach(const struct tda1004x_config* config,
struct i2c_adapter* i2c)
{ … }
static const struct dvb_frontend_ops tda10046_ops = …;
struct dvb_frontend* tda10046_attach(const struct tda1004x_config* config,
struct i2c_adapter* i2c)
{ … }
module_param(debug, int, 0644);
MODULE_PARM_DESC(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
EXPORT_SYMBOL_GPL(…);
EXPORT_SYMBOL_GPL(…);