#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/firmware.h>
#include <linux/i2c.h>
#include <asm/div64.h>
#include <media/dvb_frontend.h>
#include "tda18271c2dd.h"
#define MAX_XFER_SIZE …
struct SStandardParam { … };
struct SMap { … };
struct SMapI { … };
struct SMap2 { … };
struct SRFBandMap { … };
enum ERegister { … };
struct tda_state { … };
static int PowerScan(struct tda_state *state,
u8 RFBand, u32 RF_in,
u32 *pRF_Out, bool *pbcal);
static int i2c_readn(struct i2c_adapter *adapter, u8 adr, u8 *data, int len)
{ … }
static int i2c_write(struct i2c_adapter *adap, u8 adr, u8 *data, int len)
{ … }
static int WriteRegs(struct tda_state *state,
u8 SubAddr, u8 *Regs, u16 nRegs)
{ … }
static int WriteReg(struct tda_state *state, u8 SubAddr, u8 Reg)
{ … }
static int Read(struct tda_state *state, u8 * Regs)
{ … }
static int ReadExtented(struct tda_state *state, u8 * Regs)
{ … }
static int UpdateRegs(struct tda_state *state, u8 RegFrom, u8 RegTo)
{ … }
static int UpdateReg(struct tda_state *state, u8 Reg)
{ … }
#include "tda18271c2dd_maps.h"
static void reset(struct tda_state *state)
{ … }
static bool SearchMap1(const struct SMap map[], u32 frequency, u8 *param)
{ … }
static bool SearchMap2(const struct SMapI map[], u32 frequency, s32 *param)
{ … }
static bool SearchMap3(const struct SMap2 map[], u32 frequency, u8 *param1,
u8 *param2)
{ … }
static bool SearchMap4(const struct SRFBandMap map[], u32 frequency, u8 *rfband)
{ … }
static int ThermometerRead(struct tda_state *state, u8 *pTM_Value)
{ … }
static int StandBy(struct tda_state *state)
{ … }
static int CalcMainPLL(struct tda_state *state, u32 freq)
{ … }
static int CalcCalPLL(struct tda_state *state, u32 freq)
{ … }
static int CalibrateRF(struct tda_state *state,
u8 RFBand, u32 freq, s32 *pCprog)
{ … }
static int RFTrackingFiltersInit(struct tda_state *state,
u8 RFBand)
{ … }
static int PowerScan(struct tda_state *state,
u8 RFBand, u32 RF_in, u32 *pRF_Out, bool *pbcal)
{ … }
static int PowerScanInit(struct tda_state *state)
{ … }
static int CalcRFFilterCurve(struct tda_state *state)
{ … }
static int FixedContentsI2CUpdate(struct tda_state *state)
{ … }
static int InitCal(struct tda_state *state)
{
int status = 0;
do {
status = FixedContentsI2CUpdate(state);
if (status < 0)
break;
status = CalcRFFilterCurve(state);
if (status < 0)
break;
status = StandBy(state);
if (status < 0)
break;
} while (0);
return status;
};
static int RFTrackingFiltersCorrection(struct tda_state *state,
u32 Frequency)
{ … }
static int ChannelConfiguration(struct tda_state *state,
u32 Frequency, int Standard)
{ … }
static int sleep(struct dvb_frontend *fe)
{ … }
static int init(struct dvb_frontend *fe)
{ … }
static void release(struct dvb_frontend *fe)
{ … }
static int set_params(struct dvb_frontend *fe)
{ … }
#if 0
static int GetSignalStrength(s32 *pSignalStrength, u32 RFAgc, u32 IFAgc)
{
if (IFAgc < 500) {
*pSignalStrength = IFAgc * 100;
} else {
*pSignalStrength = 50000 + (IFAgc - 500) * 30;
}
return 0;
}
#endif
static int get_if_frequency(struct dvb_frontend *fe, u32 *frequency)
{ … }
static int get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth)
{ … }
static const struct dvb_tuner_ops tuner_ops = …;
struct dvb_frontend *tda18271c2dd_attach(struct dvb_frontend *fe,
struct i2c_adapter *i2c, u8 adr)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;