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

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2010-2014 Michael Krufky ([email protected])
 *
 * see Documentation/driver-api/media/drivers/dvb-usb.rst for more information
 */

#include <linux/vmalloc.h>
#include <linux/i2c.h>
#include <media/tuner.h>

#include "mxl111sf.h"
#include "mxl111sf-reg.h"
#include "mxl111sf-phy.h"
#include "mxl111sf-i2c.h"
#include "mxl111sf-gpio.h"

#include "mxl111sf-demod.h"
#include "mxl111sf-tuner.h"

#include "lgdt3305.h"
#include "lg2160.h"

int dvb_usb_mxl111sf_debug;
module_param_named(debug, dvb_usb_mxl111sf_debug, int, 0644);
MODULE_PARM_DESC();

static int dvb_usb_mxl111sf_isoc;
module_param_named(isoc, dvb_usb_mxl111sf_isoc, int, 0644);
MODULE_PARM_DESC();

static int dvb_usb_mxl111sf_spi;
module_param_named(spi, dvb_usb_mxl111sf_spi, int, 0644);
MODULE_PARM_DESC();

#define ANT_PATH_AUTO
#define ANT_PATH_EXTERNAL
#define ANT_PATH_INTERNAL

static int dvb_usb_mxl111sf_rfswitch =ANT_PATH_AUTO;
#else
		ANT_PATH_EXTERNAL;
#endif

module_param_named(rfswitch, dvb_usb_mxl111sf_rfswitch, int, 0644);
MODULE_PARM_DESC();

DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);

int mxl111sf_ctrl_msg(struct mxl111sf_state *state,
		      u8 cmd, u8 *wbuf, int wlen, u8 *rbuf, int rlen)
{}

/* ------------------------------------------------------------------------ */

#define MXL_CMD_REG_READ
#define MXL_CMD_REG_WRITE

int mxl111sf_read_reg(struct mxl111sf_state *state, u8 addr, u8 *data)
{}

int mxl111sf_write_reg(struct mxl111sf_state *state, u8 addr, u8 data)
{}

/* ------------------------------------------------------------------------ */

int mxl111sf_write_reg_mask(struct mxl111sf_state *state,
				   u8 addr, u8 mask, u8 data)
{}

/* ------------------------------------------------------------------------ */

int mxl111sf_ctrl_program_regs(struct mxl111sf_state *state,
			       struct mxl111sf_reg_ctrl_info *ctrl_reg_info)
{}

/* ------------------------------------------------------------------------ */

static int mxl1x1sf_get_chip_info(struct mxl111sf_state *state)
{}

#define get_chip_info(state)

/* ------------------------------------------------------------------------ */
#if 0
static int mxl111sf_power_ctrl(struct dvb_usb_device *d, int onoff)
{
	/* power control depends on which adapter is being woken:
	 * save this for init, instead, via mxl111sf_adap_fe_init */
	return 0;
}
#endif

static int mxl111sf_adap_fe_init(struct dvb_frontend *fe)
{}

static int mxl111sf_adap_fe_sleep(struct dvb_frontend *fe)
{}


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

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

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

/* ------------------------------------------------------------------------ */

static struct lgdt3305_config hauppauge_lgdt3305_config =;

static int mxl111sf_lgdt3305_frontend_attach(struct dvb_usb_adapter *adap, u8 fe_id)
{}

static struct lg2160_config hauppauge_lg2160_config =;

static int mxl111sf_lg2160_frontend_attach(struct dvb_usb_adapter *adap, u8 fe_id)
{}

static struct lg2160_config hauppauge_lg2161_1019_config =;

static struct lg2160_config hauppauge_lg2161_1040_config =;

static int mxl111sf_lg2161_frontend_attach(struct dvb_usb_adapter *adap, u8 fe_id)
{}

static struct lg2160_config hauppauge_lg2161_1019_ep6_config =;

static struct lg2160_config hauppauge_lg2161_1040_ep6_config =;

static int mxl111sf_lg2161_ep6_frontend_attach(struct dvb_usb_adapter *adap, u8 fe_id)
{}

static const struct mxl111sf_demod_config mxl_demod_config =;

static int mxl111sf_attach_demod(struct dvb_usb_adapter *adap, u8 fe_id)
{}

static inline int mxl111sf_set_ant_path(struct mxl111sf_state *state,
					int antpath)
{}

#define DbgAntHunt(x, pwr0, pwr1, pwr2, pwr3)

#define ANT_HUNT_SLEEP
#define ANT_EXT_TWEAK

static int mxl111sf_ant_hunt(struct dvb_frontend *fe)
{}

static const struct mxl111sf_tuner_config mxl_tuner_config =;

static int mxl111sf_attach_tuner(struct dvb_usb_adapter *adap)
{}

static u32 mxl111sf_i2c_func(struct i2c_adapter *adapter)
{}

static struct i2c_algorithm mxl111sf_i2c_algo =;

static int mxl111sf_init(struct dvb_usb_device *d)
{}

static int mxl111sf_frontend_attach_dvbt(struct dvb_usb_adapter *adap)
{}

static int mxl111sf_frontend_attach_atsc(struct dvb_usb_adapter *adap)
{}

static int mxl111sf_frontend_attach_mh(struct dvb_usb_adapter *adap)
{}

static int mxl111sf_frontend_attach_atsc_mh(struct dvb_usb_adapter *adap)
{}

static int mxl111sf_frontend_attach_mercury(struct dvb_usb_adapter *adap)
{}

static int mxl111sf_frontend_attach_mercury_mh(struct dvb_usb_adapter *adap)
{}

static void mxl111sf_stream_config_bulk(struct usb_data_stream_properties *stream, u8 endpoint)
{}

static void mxl111sf_stream_config_isoc(struct usb_data_stream_properties *stream,
		u8 endpoint, int framesperurb, int framesize)
{}

/* DVB USB Driver stuff */

/* dvbt       mxl111sf
 * bulk       EP4/BULK/5/8192
 * isoc       EP4/ISOC/5/96/564
 */
static int mxl111sf_get_stream_config_dvbt(struct dvb_frontend *fe,
		u8 *ts_type, struct usb_data_stream_properties *stream)
{}

static int mxl111sf_probe(struct dvb_usb_device *dev)
{}

static struct dvb_usb_device_properties mxl111sf_props_dvbt =;

/* atsc       lgdt3305
 * bulk       EP6/BULK/5/8192
 * isoc       EP6/ISOC/5/24/3072
 */
static int mxl111sf_get_stream_config_atsc(struct dvb_frontend *fe,
		u8 *ts_type, struct usb_data_stream_properties *stream)
{}

static struct dvb_usb_device_properties mxl111sf_props_atsc =;

/* mh         lg2160
 * bulk       EP5/BULK/5/8192/RAW
 * isoc       EP5/ISOC/5/96/200/RAW
 */
static int mxl111sf_get_stream_config_mh(struct dvb_frontend *fe,
		u8 *ts_type, struct usb_data_stream_properties *stream)
{}

static struct dvb_usb_device_properties mxl111sf_props_mh =;

/* atsc mh    lgdt3305           mxl111sf          lg2160
 * bulk       EP6/BULK/5/8192    EP4/BULK/5/8192   EP5/BULK/5/8192/RAW
 * isoc       EP6/ISOC/5/24/3072 EP4/ISOC/5/96/564 EP5/ISOC/5/96/200/RAW
 */
static int mxl111sf_get_stream_config_atsc_mh(struct dvb_frontend *fe,
		u8 *ts_type, struct usb_data_stream_properties *stream)
{}

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

static struct dvb_usb_device_properties mxl111sf_props_atsc_mh =;

/* mercury    lgdt3305           mxl111sf          lg2161
 * tp bulk    EP6/BULK/5/8192    EP4/BULK/5/8192   EP6/BULK/5/8192/RAW
 * tp isoc    EP6/ISOC/5/24/3072 EP4/ISOC/5/96/564 EP6/ISOC/5/24/3072/RAW
 * spi bulk   EP6/BULK/5/8192    EP4/BULK/5/8192   EP5/BULK/5/8192/RAW
 * spi isoc   EP6/ISOC/5/24/3072 EP4/ISOC/5/96/564 EP5/ISOC/5/96/200/RAW
 */
static int mxl111sf_get_stream_config_mercury(struct dvb_frontend *fe,
		u8 *ts_type, struct usb_data_stream_properties *stream)
{}

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

static struct dvb_usb_device_properties mxl111sf_props_mercury =;

/* mercury mh mxl111sf          lg2161
 * tp bulk    EP4/BULK/5/8192   EP6/BULK/5/8192/RAW
 * tp isoc    EP4/ISOC/5/96/564 EP6/ISOC/5/24/3072/RAW
 * spi bulk   EP4/BULK/5/8192   EP5/BULK/5/8192/RAW
 * spi isoc   EP4/ISOC/5/96/564 EP5/ISOC/5/96/200/RAW
 */
static int mxl111sf_get_stream_config_mercury_mh(struct dvb_frontend *fe,
		u8 *ts_type, struct usb_data_stream_properties *stream)
{}

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

static struct dvb_usb_device_properties mxl111sf_props_mercury_mh =;

static const struct usb_device_id mxl111sf_id_table[] =;
MODULE_DEVICE_TABLE(usb, mxl111sf_id_table);

static struct usb_driver mxl111sf_usb_driver =;

module_usb_driver();

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