#include <linux/mutex.h>
#include <linux/i2c-mux.h>
#include <linux/string.h>
#include <linux/firmware.h>
#include "mxl692.h"
#include "mxl692_defs.h"
static const struct dvb_frontend_ops mxl692_ops;
struct mxl692_dev { … };
static int mxl692_i2c_write(struct mxl692_dev *dev, u8 *buffer, u16 buf_len)
{ … }
static int mxl692_i2c_read(struct mxl692_dev *dev, u8 *buffer, u16 buf_len)
{ … }
static int convert_endian(u32 size, u8 *d)
{ … }
static int convert_endian_n(int n, u32 size, u8 *d)
{ … }
static void mxl692_tx_swap(enum MXL_EAGLE_OPCODE_E opcode, u8 *buffer)
{ … }
static void mxl692_rx_swap(enum MXL_EAGLE_OPCODE_E opcode, u8 *buffer)
{ … }
static u32 mxl692_checksum(u8 *buffer, u32 size)
{ … }
static int mxl692_validate_fw_header(struct mxl692_dev *dev,
const u8 *buffer, u32 buf_len)
{ … }
static int mxl692_write_fw_block(struct mxl692_dev *dev, const u8 *buffer,
u32 buf_len, u32 *index)
{ … }
static int mxl692_memwrite(struct mxl692_dev *dev, u32 addr,
u8 *buffer, u32 size)
{ … }
static int mxl692_memread(struct mxl692_dev *dev, u32 addr,
u8 *buffer, u32 size)
{ … }
static const char *mxl692_opcode_string(u8 opcode)
{ … }
static int mxl692_opwrite(struct mxl692_dev *dev, u8 *buffer,
u32 size)
{ … }
static int mxl692_opread(struct mxl692_dev *dev, u8 *buffer,
u32 size)
{ … }
static int mxl692_i2c_writeread(struct mxl692_dev *dev,
u8 opcode,
u8 *tx_payload,
u8 tx_payload_size,
u8 *rx_payload,
u8 rx_payload_expected)
{ … }
static int mxl692_fwdownload(struct mxl692_dev *dev,
const u8 *firmware_buf, u32 buf_len)
{ … }
static int mxl692_get_versions(struct mxl692_dev *dev)
{ … }
static int mxl692_reset(struct mxl692_dev *dev)
{ … }
static int mxl692_config_regulators(struct mxl692_dev *dev,
enum MXL_EAGLE_POWER_SUPPLY_SOURCE_E power_supply)
{ … }
static int mxl692_config_xtal(struct mxl692_dev *dev,
struct MXL_EAGLE_DEV_XTAL_T *dev_xtal)
{ … }
static int mxl692_powermode(struct mxl692_dev *dev,
enum MXL_EAGLE_POWER_MODE_E power_mode)
{ … }
static int mxl692_init(struct dvb_frontend *fe)
{ … }
static int mxl692_sleep(struct dvb_frontend *fe)
{ … }
static int mxl692_set_frontend(struct dvb_frontend *fe)
{ … }
static int mxl692_get_frontend(struct dvb_frontend *fe,
struct dtv_frontend_properties *p)
{ … }
static int mxl692_read_snr(struct dvb_frontend *fe, u16 *snr)
{ … }
static int mxl692_read_ber_ucb(struct dvb_frontend *fe)
{ … }
static int mxl692_read_status(struct dvb_frontend *fe,
enum fe_status *status)
{ … }
static const struct dvb_frontend_ops mxl692_ops = …;
static int mxl692_probe(struct i2c_client *client)
{ … }
static void mxl692_remove(struct i2c_client *client)
{ … }
static const struct i2c_device_id mxl692_id_table[] = …;
MODULE_DEVICE_TABLE(i2c, mxl692_id_table);
static struct i2c_driver mxl692_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_FIRMWARE(…);
MODULE_LICENSE(…) …;