#include <linux/kernel.h>
#include <linux/math64.h>
#include <linux/dvb/frontend.h>
#include <linux/int_log.h>
#include "tc90522.h"
#define TC90522_I2C_THRU_REG …
#define TC90522_MODULE_IDX(addr) …
struct tc90522_state { … };
struct reg_val { … };
static int
reg_write(struct tc90522_state *state, const struct reg_val *regs, int num)
{ … }
static int reg_read(struct tc90522_state *state, u8 reg, u8 *val, u8 len)
{ … }
static struct tc90522_state *cfg_to_state(struct tc90522_config *c)
{ … }
static int tc90522s_set_tsid(struct dvb_frontend *fe)
{ … }
static int tc90522t_set_layers(struct dvb_frontend *fe)
{ … }
static int tc90522s_read_status(struct dvb_frontend *fe, enum fe_status *status)
{ … }
static int tc90522t_read_status(struct dvb_frontend *fe, enum fe_status *status)
{ … }
static const enum fe_code_rate fec_conv_sat[] = …;
static int tc90522s_get_frontend(struct dvb_frontend *fe,
struct dtv_frontend_properties *c)
{ … }
static const enum fe_transmit_mode tm_conv[] = …;
static const enum fe_code_rate fec_conv_ter[] = …;
static const enum fe_modulation mod_conv[] = …;
static int tc90522t_get_frontend(struct dvb_frontend *fe,
struct dtv_frontend_properties *c)
{ … }
static const struct reg_val reset_sat = …;
static const struct reg_val reset_ter = …;
static int tc90522_set_frontend(struct dvb_frontend *fe)
{ … }
static int tc90522_get_tune_settings(struct dvb_frontend *fe,
struct dvb_frontend_tune_settings *settings)
{ … }
static int tc90522_set_if_agc(struct dvb_frontend *fe, bool on)
{ … }
static const struct reg_val sleep_sat = …;
static const struct reg_val sleep_ter = …;
static int tc90522_sleep(struct dvb_frontend *fe)
{ … }
static const struct reg_val wakeup_sat = …;
static const struct reg_val wakeup_ter = …;
static int tc90522_init(struct dvb_frontend *fe)
{ … }
static int
tc90522_master_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
{ … }
static u32 tc90522_functionality(struct i2c_adapter *adap)
{ … }
static const struct i2c_algorithm tc90522_tuner_i2c_algo = …;
static const struct dvb_frontend_ops tc90522_ops_sat = …;
static const struct dvb_frontend_ops tc90522_ops_ter = …;
static int tc90522_probe(struct i2c_client *client)
{ … }
static void tc90522_remove(struct i2c_client *client)
{ … }
static const struct i2c_device_id tc90522_id[] = …;
MODULE_DEVICE_TABLE(i2c, tc90522_id);
static struct i2c_driver tc90522_driver = …;
module_i2c_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;