#include "budget.h"
#include "stv0299.h"
#include "stb0899_drv.h"
#include "stb0899_reg.h"
#include "stb0899_cfg.h"
#include "tda8261.h"
#include "tda8261_cfg.h"
#include "tda1002x.h"
#include "tda1004x.h"
#include "tua6100.h"
#include "dvb-pll.h"
#include <media/drv-intf/saa7146_vv.h>
#include <linux/module.h>
#include <linux/etherdevice.h>
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/input.h>
#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <media/dvb_ca_en50221.h>
#define DEBICICAM …
#define SLOTSTATUS_NONE …
#define SLOTSTATUS_PRESENT …
#define SLOTSTATUS_RESET …
#define SLOTSTATUS_READY …
#define SLOTSTATUS_OCCUPIED …
DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
struct budget_av { … };
static int ciintf_slot_shutdown(struct dvb_ca_en50221 *ca, int slot);
static u8 i2c_readreg(struct i2c_adapter *i2c, u8 id, u8 reg)
{ … }
static int i2c_readregs(struct i2c_adapter *i2c, u8 id, u8 reg, u8 *buf, u8 len)
{ … }
static int i2c_writereg(struct i2c_adapter *i2c, u8 id, u8 reg, u8 val)
{ … }
static int ciintf_read_attribute_mem(struct dvb_ca_en50221 *ca, int slot, int address)
{ … }
static int ciintf_write_attribute_mem(struct dvb_ca_en50221 *ca, int slot, int address, u8 value)
{ … }
static int ciintf_read_cam_control(struct dvb_ca_en50221 *ca, int slot, u8 address)
{ … }
static int ciintf_write_cam_control(struct dvb_ca_en50221 *ca, int slot, u8 address, u8 value)
{ … }
static int ciintf_slot_reset(struct dvb_ca_en50221 *ca, int slot)
{ … }
static int ciintf_slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
{ … }
static int ciintf_slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
{ … }
static int ciintf_poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open)
{ … }
static int ciintf_init(struct budget_av *budget_av)
{ … }
static void ciintf_deinit(struct budget_av *budget_av)
{ … }
static const u8 saa7113_tab[] = …;
static int saa7113_init(struct budget_av *budget_av)
{ … }
static int saa7113_setinput(struct budget_av *budget_av, int input)
{ … }
static int philips_su1278_ty_ci_set_symbol_rate(struct dvb_frontend *fe, u32 srate, u32 ratio)
{ … }
static int philips_su1278_ty_ci_tuner_set_params(struct dvb_frontend *fe)
{ … }
static u8 typhoon_cinergy1200s_inittab[] = …;
static const struct stv0299_config typhoon_config = …;
static const struct stv0299_config cinergy_1200s_config = …;
static const struct stv0299_config cinergy_1200s_1894_0010_config = …;
static int philips_cu1216_tuner_set_params(struct dvb_frontend *fe)
{ … }
static struct tda1002x_config philips_cu1216_config = …;
static struct tda1002x_config philips_cu1216_config_altaddress = …;
static struct tda10023_config philips_cu1216_tda10023_config = …;
static int philips_tu1216_tuner_init(struct dvb_frontend *fe)
{ … }
static int philips_tu1216_tuner_set_params(struct dvb_frontend *fe)
{ … }
static int philips_tu1216_request_firmware(struct dvb_frontend *fe,
const struct firmware **fw, char *name)
{ … }
static struct tda1004x_config philips_tu1216_config = …;
static u8 philips_sd1878_inittab[] = …;
static int philips_sd1878_ci_set_symbol_rate(struct dvb_frontend *fe,
u32 srate, u32 ratio)
{ … }
static const struct stv0299_config philips_sd1878_config = …;
static const struct stb0899_s1_reg knc1_stb0899_s1_init_1[] = …;
static const struct stb0899_s1_reg knc1_stb0899_s1_init_3[] = …;
static struct stb0899_config knc1_dvbs2_config = …;
static const struct tda8261_config sd1878c_config = …;
static u8 read_pwm(struct budget_av *budget_av)
{ … }
#define SUBID_DVBS_KNC1 …
#define SUBID_DVBS_KNC1_PLUS …
#define SUBID_DVBS_TYPHOON …
#define SUBID_DVBS_CINERGY1200 …
#define SUBID_DVBS_CYNERGY1200N …
#define SUBID_DVBS_TV_STAR …
#define SUBID_DVBS_TV_STAR_PLUS_X4 …
#define SUBID_DVBS_TV_STAR_CI …
#define SUBID_DVBS2_KNC1 …
#define SUBID_DVBS2_KNC1_OEM …
#define SUBID_DVBS_EASYWATCH_1 …
#define SUBID_DVBS_EASYWATCH_2 …
#define SUBID_DVBS2_EASYWATCH …
#define SUBID_DVBS_EASYWATCH …
#define SUBID_DVBC_EASYWATCH …
#define SUBID_DVBC_EASYWATCH_MK3 …
#define SUBID_DVBC_KNC1 …
#define SUBID_DVBC_KNC1_PLUS …
#define SUBID_DVBC_KNC1_MK3 …
#define SUBID_DVBC_KNC1_TDA10024 …
#define SUBID_DVBC_KNC1_PLUS_MK3 …
#define SUBID_DVBC_CINERGY1200 …
#define SUBID_DVBC_CINERGY1200_MK3 …
#define SUBID_DVBT_EASYWATCH …
#define SUBID_DVBT_KNC1_PLUS …
#define SUBID_DVBT_KNC1 …
#define SUBID_DVBT_CINERGY1200 …
static void frontend_init(struct budget_av *budget_av)
{ … }
static void budget_av_irq(struct saa7146_dev *dev, u32 *isr)
{ … }
static int budget_av_detach(struct saa7146_dev *dev)
{ … }
#define KNC1_INPUTS …
static struct v4l2_input knc1_inputs[KNC1_INPUTS] = …;
static int vidioc_enum_input(struct file *file, void *fh, struct v4l2_input *i)
{ … }
static int vidioc_g_input(struct file *file, void *fh, unsigned int *i)
{ … }
static int vidioc_s_input(struct file *file, void *fh, unsigned int input)
{ … }
static struct saa7146_ext_vv vv_data;
static int budget_av_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info)
{ … }
static struct saa7146_standard standard[] = …;
static struct saa7146_ext_vv vv_data = …;
static struct saa7146_extension budget_extension;
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
MAKE_BUDGET_INFO(…);
static const struct pci_device_id pci_tbl[] = …;
MODULE_DEVICE_TABLE(pci, pci_tbl);
static struct saa7146_extension budget_extension = …;
static int __init budget_av_init(void)
{ … }
static void __exit budget_av_exit(void)
{ … }
module_init(…) …;
module_exit(budget_av_exit);
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;