#define DVB_USB_LOG_PREFIX …
#include "dvb-usb.h"
#include "ttusb2.h"
#include "tda826x.h"
#include "tda10086.h"
#include "tda1002x.h"
#include "tda10048.h"
#include "tda827x.h"
#include "lnbp21.h"
#include <media/dvb_ca_en50221.h>
static int dvb_usb_ttusb2_debug;
#define deb_info(args...) …
module_param_named(debug,dvb_usb_ttusb2_debug, int, 0644);
MODULE_PARM_DESC(…) …;
static int dvb_usb_ttusb2_debug_ci;
module_param_named(debug_ci,dvb_usb_ttusb2_debug_ci, int, 0644);
MODULE_PARM_DESC(…) …;
DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
#define ci_dbg(format, arg...) …
enum { … };
struct ttusb2_state { … };
static int ttusb2_msg(struct dvb_usb_device *d, u8 cmd,
u8 *wbuf, int wlen, u8 *rbuf, int rlen)
{ … }
static int tt3650_ci_msg(struct dvb_usb_device *d, u8 cmd, u8 *data, unsigned int write_len, unsigned int read_len)
{ … }
static int tt3650_ci_msg_locked(struct dvb_ca_en50221 *ca, u8 cmd, u8 *data, unsigned int write_len, unsigned int read_len)
{ … }
static int tt3650_ci_read_attribute_mem(struct dvb_ca_en50221 *ca, int slot, int address)
{ … }
static int tt3650_ci_write_attribute_mem(struct dvb_ca_en50221 *ca, int slot, int address, u8 value)
{ … }
static int tt3650_ci_read_cam_control(struct dvb_ca_en50221 *ca, int slot, u8 address)
{ … }
static int tt3650_ci_write_cam_control(struct dvb_ca_en50221 *ca, int slot, u8 address, u8 value)
{ … }
static int tt3650_ci_set_video_port(struct dvb_ca_en50221 *ca, int slot, int enable)
{ … }
static int tt3650_ci_slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
{ … }
static int tt3650_ci_slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
{ … }
static int tt3650_ci_slot_reset(struct dvb_ca_en50221 *ca, int slot)
{ … }
static int tt3650_ci_poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open)
{ … }
static void tt3650_ci_uninit(struct dvb_usb_device *d)
{ … }
static int tt3650_ci_init(struct dvb_usb_adapter *a)
{ … }
static int ttusb2_i2c_xfer(struct i2c_adapter *adap,struct i2c_msg msg[],int num)
{ … }
static u32 ttusb2_i2c_func(struct i2c_adapter *adapter)
{ … }
static struct i2c_algorithm ttusb2_i2c_algo = …;
#define CMD_GET_IR_CODE …
static int tt3650_rc_query(struct dvb_usb_device *d)
{ … }
static int ttusb2_identify_state(struct usb_device *udev,
const struct dvb_usb_device_properties *props,
const struct dvb_usb_device_description **desc,
int *cold)
{ … }
static int ttusb2_power_ctrl(struct dvb_usb_device *d, int onoff)
{ … }
static struct tda10086_config tda10086_config = …;
static struct tda10023_config tda10023_config = …;
static struct tda10048_config tda10048_config = …;
static struct tda827x_config tda827x_config = …;
static int ttusb2_frontend_tda10086_attach(struct dvb_usb_adapter *adap)
{ … }
static int ttusb2_ct3650_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
{ … }
static int ttusb2_frontend_tda10023_attach(struct dvb_usb_adapter *adap)
{ … }
static int ttusb2_tuner_tda827x_attach(struct dvb_usb_adapter *adap)
{ … }
static int ttusb2_tuner_tda826x_attach(struct dvb_usb_adapter *adap)
{ … }
static struct dvb_usb_device_properties ttusb2_properties;
static struct dvb_usb_device_properties ttusb2_properties_s2400;
static struct dvb_usb_device_properties ttusb2_properties_ct3650;
static void ttusb2_usb_disconnect(struct usb_interface *intf)
{ … }
static int ttusb2_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
enum { … };
static struct usb_device_id ttusb2_table[] = …;
MODULE_DEVICE_TABLE (usb, ttusb2_table);
static struct dvb_usb_device_properties ttusb2_properties = …;
static struct dvb_usb_device_properties ttusb2_properties_s2400 = …;
static struct dvb_usb_device_properties ttusb2_properties_ct3650 = …;
static struct usb_driver ttusb2_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_VERSION(…) …;
MODULE_LICENSE(…) …;