#include <linux/slab.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/regmap.h>
#include <linux/wait.h>
#include <linux/delay.h>
#include <linux/mutex.h>
#include <linux/io.h>
#include "cxd2099.h"
static int buffermode;
module_param(buffermode, int, 0444);
MODULE_PARM_DESC(…) …;
static int read_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount);
struct cxd { … };
static int read_block(struct cxd *ci, u8 adr, u8 *data, u16 n)
{ … }
static int read_reg(struct cxd *ci, u8 reg, u8 *val)
{ … }
static int read_pccard(struct cxd *ci, u16 address, u8 *data, u8 n)
{ … }
static int write_pccard(struct cxd *ci, u16 address, u8 *data, u8 n)
{ … }
static int read_io(struct cxd *ci, u16 address, unsigned int *val)
{ … }
static int write_io(struct cxd *ci, u16 address, u8 val)
{ … }
static int write_regm(struct cxd *ci, u8 reg, u8 val, u8 mask)
{ … }
static int write_reg(struct cxd *ci, u8 reg, u8 val)
{ … }
static int write_block(struct cxd *ci, u8 adr, u8 *data, u16 n)
{ … }
static void set_mode(struct cxd *ci, int mode)
{ … }
static void cam_mode(struct cxd *ci, int mode)
{ … }
static int init(struct cxd *ci)
{ … }
static int read_attribute_mem(struct dvb_ca_en50221 *ca,
int slot, int address)
{ … }
static int write_attribute_mem(struct dvb_ca_en50221 *ca, int slot,
int address, u8 value)
{ … }
static int read_cam_control(struct dvb_ca_en50221 *ca,
int slot, u8 address)
{ … }
static int write_cam_control(struct dvb_ca_en50221 *ca, int slot,
u8 address, u8 value)
{ … }
static int slot_reset(struct dvb_ca_en50221 *ca, int slot)
{ … }
static int slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
{ … }
static int slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
{ … }
static int campoll(struct cxd *ci)
{ … }
static int poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open)
{ … }
static int read_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount)
{ … }
static int write_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount)
{ … }
static const struct dvb_ca_en50221 en_templ = …;
static int cxd2099_probe(struct i2c_client *client)
{ … }
static void cxd2099_remove(struct i2c_client *client)
{ … }
static const struct i2c_device_id cxd2099_id[] = …;
MODULE_DEVICE_TABLE(i2c, cxd2099_id);
static struct i2c_driver cxd2099_driver = …;
module_i2c_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;