linux/drivers/media/pci/ttpci/budget-av.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * budget-av.ko: driver for the SAA7146 based Budget DVB cards
 *               with analog video input (and optionally with CI)
 *
 * Compiled from various sources by Michael Hunold <[email protected]>
 *
 * CI interface support (c) 2004 Olivier Gournet <[email protected]> &
 *                               Andrew de Quincey <[email protected]>
 *
 * Copyright (C) 2002 Ralph Metzler <[email protected]>
 *
 * Copyright (C) 1999-2002 Ralph  Metzler
 *                       & Marcus Metzler for convergence integrated media GmbH
 *
 * the project's page is at https://linuxtv.org
 */


#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);

/*
 * GPIO Connections:
 * 0 - Vcc/Reset (Reset is controlled by capacitor). Resets the frontend *AS WELL*!
 * 1 - CI memory select 0=>IO memory, 1=>Attribute Memory
 * 2 - CI Card Enable (Active Low)
 * 3 - CI Card Detect
 */

/****************************************************************************
 * INITIALIZATION
 ****************************************************************************/

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 =;

/* KNC1 DVB-S (STB0899) Inittab	*/
static const struct stb0899_s1_reg knc1_stb0899_s1_init_1[] =;

static const struct stb0899_s1_reg knc1_stb0899_s1_init_3[] =;

/* STB0899 demodulator config for the KNC1 and clones */
static struct stb0899_config knc1_dvbs2_config =;

/*
 * SD1878/SHA tuner config
 * 1F, Single I/P, Horizontal mount, High Sensitivity
 */
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();