#include "cx23885.h"
#include "cimax2.h"
#include <media/dvb_ca_en50221.h>
#define MAX_XFER_SIZE …
#define NETUP_DATA …
#define NETUP_WR …
#define NETUP_RD …
#define NETUP_ACK …
#define NETUP_ADHI …
#define NETUP_ADLO …
#define NETUP_CS1 …
#define NETUP_CS0 …
#define NETUP_EN_ALL …
#define NETUP_CTRL_OFF …
#define NETUP_CI_CTL …
#define NETUP_CI_RD …
#define NETUP_IRQ_DETAM …
#define NETUP_IRQ_IRQAM …
static unsigned int ci_dbg;
module_param(ci_dbg, int, 0644);
MODULE_PARM_DESC(…) …;
static unsigned int ci_irq_enable;
module_param(ci_irq_enable, int, 0644);
MODULE_PARM_DESC(…) …;
#define ci_dbg_print(fmt, args...) …
#define ci_irq_flags() …
struct netup_ci_state { … };
static int netup_read_i2c(struct i2c_adapter *i2c_adap, u8 addr, u8 reg,
u8 *buf, int len)
{ … }
static int netup_write_i2c(struct i2c_adapter *i2c_adap, u8 addr, u8 reg,
u8 *buf, int len)
{ … }
static int netup_ci_get_mem(struct cx23885_dev *dev)
{ … }
static int netup_ci_op_cam(struct dvb_ca_en50221 *en50221, int slot,
u8 flag, u8 read, int addr, u8 data)
{ … }
int netup_ci_read_attribute_mem(struct dvb_ca_en50221 *en50221,
int slot, int addr)
{ … }
int netup_ci_write_attribute_mem(struct dvb_ca_en50221 *en50221,
int slot, int addr, u8 data)
{ … }
int netup_ci_read_cam_ctl(struct dvb_ca_en50221 *en50221, int slot,
u8 addr)
{ … }
int netup_ci_write_cam_ctl(struct dvb_ca_en50221 *en50221, int slot,
u8 addr, u8 data)
{ … }
int netup_ci_slot_reset(struct dvb_ca_en50221 *en50221, int slot)
{ … }
int netup_ci_slot_shutdown(struct dvb_ca_en50221 *en50221, int slot)
{ … }
static int netup_ci_set_irq(struct dvb_ca_en50221 *en50221, u8 irq_mode)
{ … }
int netup_ci_slot_ts_ctl(struct dvb_ca_en50221 *en50221, int slot)
{ … }
static void netup_read_ci_status(struct work_struct *work)
{ … }
int netup_ci_slot_status(struct cx23885_dev *dev, u32 pci_status)
{ … }
int netup_poll_ci_slot_status(struct dvb_ca_en50221 *en50221,
int slot, int open)
{ … }
int netup_ci_init(struct cx23885_tsport *port)
{ … }
void netup_ci_exit(struct cx23885_tsport *port)
{ … }