linux/drivers/media/usb/dvb-usb-v2/az6007.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Driver for AzureWave 6007 DVB-C/T USB2.0 and clones
 *
 * Copyright (c) Henry Wang <[email protected]>
 *
 * This driver was made publicly available by Terratec, at:
 *	http://linux.terratec.de/files/TERRATEC_H7/20110323_TERRATEC_H7_Linux.tar.gz
 * The original driver's license is GPL, as declared with MODULE_LICENSE()
 *
 * Copyright (c) 2010-2012 Mauro Carvalho Chehab
 *	Driver modified by in order to work with upstream drxk driver, and
 *	tons of bugs got fixed, and converted to use dvb-usb-v2.
 */

#include "drxk.h"
#include "mt2063.h"
#include <media/dvb_ca_en50221.h>
#include "dvb_usb.h"
#include "cypress_firmware.h"

#define AZ6007_FIRMWARE

static int az6007_xfer_debug;
module_param_named(xfer_debug, az6007_xfer_debug, int, 0644);
MODULE_PARM_DESC();

DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);

/* Known requests (Cypress FX2 firmware + az6007 "private" ones*/

#define FX2_OED
#define AZ6007_READ_DATA
#define AZ6007_I2C_RD
#define AZ6007_POWER
#define AZ6007_I2C_WR
#define FX2_SCON1
#define AZ6007_TS_THROUGH
#define AZ6007_READ_IR

struct az6007_device_state {};

static struct drxk_config terratec_h7_drxk =;

static struct drxk_config cablestar_hdci_drxk =;

static int drxk_gate_ctrl(struct dvb_frontend *fe, int enable)
{}

static struct mt2063_config az6007_mt2063_config =;

static int __az6007_read(struct usb_device *udev, u8 req, u16 value,
			    u16 index, u8 *b, int blen)
{}

static int az6007_read(struct dvb_usb_device *d, u8 req, u16 value,
			    u16 index, u8 *b, int blen)
{}

static int __az6007_write(struct usb_device *udev, u8 req, u16 value,
			     u16 index, u8 *b, int blen)
{}

static int az6007_write(struct dvb_usb_device *d, u8 req, u16 value,
			    u16 index, u8 *b, int blen)
{}

static int az6007_streaming_ctrl(struct dvb_frontend *fe, int onoff)
{}

#if IS_ENABLED(CONFIG_RC_CORE)
/* remote control stuff (does not work with my box) */
static int az6007_rc_query(struct dvb_usb_device *d)
{}

static int az6007_get_rc_config(struct dvb_usb_device *d, struct dvb_usb_rc *rc)
{}
#else
	#define az6007_get_rc_config
#endif

static int az6007_ci_read_attribute_mem(struct dvb_ca_en50221 *ca,
					int slot,
					int address)
{}

static int az6007_ci_write_attribute_mem(struct dvb_ca_en50221 *ca,
					 int slot,
					 int address,
					 u8 value)
{}

static int az6007_ci_read_cam_control(struct dvb_ca_en50221 *ca,
				      int slot,
				      u8 address)
{}

static int az6007_ci_write_cam_control(struct dvb_ca_en50221 *ca,
				       int slot,
				       u8 address,
				       u8 value)
{}

static int CI_CamReady(struct dvb_ca_en50221 *ca, int slot)
{}

static int az6007_ci_slot_reset(struct dvb_ca_en50221 *ca, int slot)
{}

static int az6007_ci_slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
{}

static int az6007_ci_slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
{}

static int az6007_ci_poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open)
{}


static void az6007_ci_uninit(struct dvb_usb_device *d)
{}


static int az6007_ci_init(struct dvb_usb_adapter *adap)
{}

static int az6007_read_mac_addr(struct dvb_usb_adapter *adap, u8 mac[6])
{}

static int az6007_frontend_attach(struct dvb_usb_adapter *adap)
{}

static int az6007_cablestar_hdci_frontend_attach(struct dvb_usb_adapter *adap)
{}

static int az6007_tuner_attach(struct dvb_usb_adapter *adap)
{}

static int az6007_power_ctrl(struct dvb_usb_device *d, int onoff)
{}

/* I2C */
static int az6007_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
			   int num)
{}

static u32 az6007_i2c_func(struct i2c_adapter *adapter)
{}

static struct i2c_algorithm az6007_i2c_algo =;

static int az6007_identify_state(struct dvb_usb_device *d, const char **name)
{}

static void az6007_usb_disconnect(struct usb_interface *intf)
{}

static int az6007_download_firmware(struct dvb_usb_device *d,
	const struct firmware *fw)
{}

/* DVB USB Driver stuff */
static struct dvb_usb_device_properties az6007_props =;

static struct dvb_usb_device_properties az6007_cablestar_hdci_props =;

static const struct usb_device_id az6007_usb_table[] =;

MODULE_DEVICE_TABLE(usb, az6007_usb_table);

static int az6007_suspend(struct usb_interface *intf, pm_message_t msg)
{}

static int az6007_resume(struct usb_interface *intf)
{}

/* usb specific object needed to register this driver with the usb subsystem */
static struct usb_driver az6007_usb_driver =;

module_usb_driver();

MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_VERSION();
MODULE_LICENSE();
MODULE_FIRMWARE();