diff --git a/ddbridge/Kbuild b/ddbridge/Kbuild index dc965af..c51258e 100644 --- a/ddbridge/Kbuild +++ b/ddbridge/Kbuild @@ -1,8 +1,11 @@ EXTRA_CFLAGS += -DCONFIG_DVB_CXD2843 -DCONFIG_DVB_LNBP21 -DCONFIG_DVB_STV090x -DCONFIG_DVB_STV6110x -DCONFIG_DVB_DRXK -DCONFIG_DVB_STV0910 -DCONFIG_DVB_STV6111 -DCONFIG_DVB_LNBH25 -DCONFIG_DVB_MXL5XX +ddbridge-objs := ddbridge-main.o ddbridge-core.o ddbridge-i2c.o ddbridge-modulator.o ddbridge-ns.o +octonet-objs := octonet-main.o ddbridge-core.o ddbridge-i2c.o ddbridge-modulator.o ddbridge-ns.o + obj-$(CONFIG_DVB_DDBRIDGE) += ddbridge.o obj-$(CONFIG_DVB_OCTONET) += octonet.o EXTRA_CFLAGS += -Idrivers/media/dvb/frontends -Idrivers/media/dvb-frontends EXTRA_CFLAGS += -Idrivers/media/common/tuners -NOSTDINC_FLAGS += -I$(SUBDIRS)/frontends -I$(SUBDIRS)/include -I$(SUBDIRS)/dvb-core \ No newline at end of file +NOSTDINC_FLAGS += -I$(SUBDIRS)/frontends -I$(SUBDIRS)/include -I$(SUBDIRS)/dvb-core diff --git a/ddbridge/ddbridge-core.c b/ddbridge/ddbridge-core.c index 9b5eaad..2649000 100644 --- a/ddbridge/ddbridge-core.c +++ b/ddbridge/ddbridge-core.c @@ -24,6 +24,37 @@ * Or, point your browser to http://www.gnu.org/copyleft/gpl.html */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "ddbridge.h" +#include "ddbridge-regs.h" + +#include "tda18271c2dd.h" +#include "stv6110x.h" +#include "stv090x.h" +#include "lnbh24.h" +#include "drxk.h" +#include "stv0367dd.h" +#include "tda18212dd.h" +#include "cxd2843.h" +#include "cxd2099.h" +#include "stv0910.h" +#include "stv6111.h" +#include "lnbh25.h" +#include "mxl5xx.h" + DEFINE_MUTEX(redirect_lock); static int ci_bitrate = 70000; @@ -79,11 +110,6 @@ static struct ddb *ddbs[DDB_MAX_ADAPTER]; DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); -#include "ddbridge-mod.c" -#include "ddbridge-i2c.c" -#include "ddbridge-ns.c" - - /****************************************************************************/ /****************************************************************************/ /****************************************************************************/ @@ -134,13 +160,13 @@ static struct ddb_regset octopus_sdr_output = { /****************************************************************************/ -static struct ddb_regset octopus_input = { +struct ddb_regset octopus_input = { .base = 0x200, .num = 0x08, .size = 0x10, }; -static struct ddb_regset octopus_output = { +struct ddb_regset octopus_output = { .base = 0x280, .num = 0x08, .size = 0x10, @@ -170,13 +196,13 @@ static struct ddb_regset octopus_odma_buf = { .size = 0x100, }; -static struct ddb_regset octopus_i2c = { +struct ddb_regset octopus_i2c = { .base = 0x80, .num = 0x04, .size = 0x20, }; -static struct ddb_regset octopus_i2c_buf = { +struct ddb_regset octopus_i2c_buf = { .base = 0x1000, .num = 0x04, .size = 0x200, @@ -242,7 +268,7 @@ static struct ddb_regset octopro_gtl = { /****************************************************************************/ -static struct ddb_regmap octopus_map = { +struct ddb_regmap octopus_map = { .irq_version = 1, .irq_base_i2c = 0, .irq_base_idma = 8, @@ -257,7 +283,7 @@ static struct ddb_regmap octopus_map = { .output = &octopus_output, }; -static struct ddb_regmap octopro_map = { +struct ddb_regmap octopro_map = { .irq_version = 2, .irq_base_i2c = 32, .irq_base_idma = 64, @@ -274,7 +300,7 @@ static struct ddb_regmap octopro_map = { .gtl = &octopro_gtl, }; -static struct ddb_regmap octopro_hdin_map = { +struct ddb_regmap octopro_hdin_map = { .irq_version = 2, .irq_base_i2c = 32, .irq_base_idma = 64, @@ -289,7 +315,7 @@ static struct ddb_regmap octopro_hdin_map = { .output = &octopro_output, }; -static struct ddb_regmap octopus_mod_map = { +struct ddb_regmap octopus_mod_map = { .irq_version = 1, .irq_base_odma = 8, .irq_base_rate = 18, @@ -299,7 +325,7 @@ static struct ddb_regmap octopus_mod_map = { .channel = &octopus_mod_channel, }; -static struct ddb_regmap octopus_mod_2_map = { +struct ddb_regmap octopus_mod_2_map = { .irq_version = 2, .irq_base_odma = 64, .irq_base_rate = 32, @@ -309,7 +335,7 @@ static struct ddb_regmap octopus_mod_2_map = { .channel = &octopus_mod_2_channel, }; -static struct ddb_regmap octopus_sdr_map = { +struct ddb_regmap octopus_sdr_map = { .irq_version = 2, .irq_base_odma = 64, .irq_base_rate = 32, @@ -322,7 +348,7 @@ static struct ddb_regmap octopus_sdr_map = { /****************************************************************************/ -static struct ddb_info ddb_s2_48 = { +struct ddb_info ddb_s2_48 = { .type = DDB_OCTOPUS_MAX, .name = "Digital Devices MAX S8 4/8", .regmap = &octopus_map, @@ -332,7 +358,7 @@ static struct ddb_info ddb_s2_48 = { .tempmon_irq = 24, }; -static struct ddb_info ddb_ct2_8 = { +struct ddb_info ddb_ct2_8 = { .type = DDB_OCTOPUS_MAX_CT, .name = "Digital Devices MAX A8 CT2", .regmap = &octopus_map, @@ -344,7 +370,7 @@ static struct ddb_info ddb_ct2_8 = { .tempmon_irq = 24, }; -static struct ddb_info ddb_c2t2_8 = { +struct ddb_info ddb_c2t2_8 = { .type = DDB_OCTOPUS_MAX_CT, .name = "Digital Devices MAX A8 C2T2", .regmap = &octopus_map, @@ -356,7 +382,7 @@ static struct ddb_info ddb_c2t2_8 = { .tempmon_irq = 24, }; -static struct ddb_info ddb_isdbt_8 = { +struct ddb_info ddb_isdbt_8 = { .type = DDB_OCTOPUS_MAX_CT, .name = "Digital Devices MAX A8 ISDBT", .regmap = &octopus_map, @@ -368,7 +394,7 @@ static struct ddb_info ddb_isdbt_8 = { .tempmon_irq = 24, }; -static struct ddb_info ddb_c2t2i_v0_8 = { +struct ddb_info ddb_c2t2i_v0_8 = { .type = DDB_OCTOPUS_MAX_CT, .name = "Digital Devices MAX A8 C2T2I V0", .regmap = &octopus_map, @@ -380,7 +406,7 @@ static struct ddb_info ddb_c2t2i_v0_8 = { .tempmon_irq = 24, }; -static struct ddb_info ddb_c2t2i_8 = { +struct ddb_info ddb_c2t2i_8 = { .type = DDB_OCTOPUS_MAX_CT, .name = "Digital Devices MAX A8 C2T2I", .regmap = &octopus_map, @@ -597,7 +623,7 @@ static int dma_alloc(struct pci_dev *pdev, struct ddb_dma *dma, int dir) return 0; } -static int ddb_buffers_alloc(struct ddb *dev) +int ddb_buffers_alloc(struct ddb *dev) { int i; struct ddb_port *port; @@ -635,7 +661,7 @@ static int ddb_buffers_alloc(struct ddb *dev) return 0; } -static void ddb_buffers_free(struct ddb *dev) +void ddb_buffers_free(struct ddb *dev) { int i; struct ddb_port *port; @@ -848,7 +874,7 @@ static void ddb_input_start(struct ddb_input *input) } -static int ddb_dvb_ns_input_start(struct ddb_input *input) +int ddb_dvb_ns_input_start(struct ddb_input *input) { struct ddb_dvb *dvb = &input->port->dvb[input->nr & 1]; @@ -858,7 +884,7 @@ static int ddb_dvb_ns_input_start(struct ddb_input *input) return ++dvb->users; } -static int ddb_dvb_ns_input_stop(struct ddb_input *input) +int ddb_dvb_ns_input_stop(struct ddb_input *input) { struct ddb_dvb *dvb = &input->port->dvb[input->nr & 1]; @@ -3133,7 +3159,7 @@ static int ddb_port_attach(struct ddb_port *port) return ret; } -static int ddb_ports_attach(struct ddb *dev) +int ddb_ports_attach(struct ddb *dev) { int i, ret = 0; struct ddb_port *port; @@ -3161,7 +3187,7 @@ static int ddb_ports_attach(struct ddb *dev) return ret; } -static void ddb_ports_detach(struct ddb *dev) +void ddb_ports_detach(struct ddb *dev) { int i; struct ddb_port *port; @@ -3471,7 +3497,7 @@ static int ddb_port_match_link_i2c(struct ddb_port *port) return 0; } -static void ddb_ports_init(struct ddb *dev) +void ddb_ports_init(struct ddb *dev) { u32 i, l, p; struct ddb_port *port; @@ -3564,7 +3590,7 @@ static void ddb_ports_init(struct ddb *dev) dev->port_num = p; } -static void ddb_ports_release(struct ddb *dev) +void ddb_ports_release(struct ddb *dev) { int i; struct ddb_port *port; @@ -3661,7 +3687,7 @@ static void irq_handle_io(struct ddb *dev, u32 s) } } -static irqreturn_t irq_handler0(int irq, void *dev_id) +irqreturn_t irq_handler0(int irq, void *dev_id) { struct ddb *dev = (struct ddb *) dev_id; u32 s = ddbreadl(dev, INTERRUPT_STATUS); @@ -3678,7 +3704,7 @@ static irqreturn_t irq_handler0(int irq, void *dev_id) return IRQ_HANDLED; } -static irqreturn_t irq_handler1(int irq, void *dev_id) +irqreturn_t irq_handler1(int irq, void *dev_id) { struct ddb *dev = (struct ddb *) dev_id; u32 s = ddbreadl(dev, INTERRUPT_STATUS); @@ -3695,7 +3721,7 @@ static irqreturn_t irq_handler1(int irq, void *dev_id) return IRQ_HANDLED; } -static irqreturn_t irq_handler(int irq, void *dev_id) +irqreturn_t irq_handler(int irq, void *dev_id) { struct ddb *dev = (struct ddb *) dev_id; u32 s = ddbreadl(dev, INTERRUPT_STATUS); @@ -3721,7 +3747,7 @@ static irqreturn_t irq_handler(int irq, void *dev_id) return ret; } -static irqreturn_t irq_handle_v2_n(struct ddb *dev, u32 n) +irqreturn_t irq_handle_v2_n(struct ddb *dev, u32 n) { u32 reg = INTERRUPT_V2_STATUS + 4 * n; u32 s = ddbreadl(dev, reg); @@ -3774,7 +3800,7 @@ static irqreturn_t irq_handle_v2_n(struct ddb *dev, u32 n) return IRQ_HANDLED; } -static irqreturn_t irq_handler_v2(int irq, void *dev_id) +irqreturn_t irq_handler_v2(int irq, void *dev_id) { struct ddb *dev = (struct ddb *) dev_id; u32 s = 0xffff & ddbreadl(dev, INTERRUPT_V2_STATUS); @@ -3802,7 +3828,7 @@ static irqreturn_t irq_handler_v2(int irq, void *dev_id) } #ifdef DDB_TEST_THREADED -static irqreturn_t irq_thread(int irq, void *dev_id) +irqreturn_t irq_thread(int irq, void *dev_id) { /* struct ddb *dev = (struct ddb *) dev_id; */ @@ -3988,7 +4014,7 @@ static int ddb_nsd_attach(struct ddb *dev) return ret; } -static void ddb_nsd_detach(struct ddb *dev) +void ddb_nsd_detach(struct ddb *dev) { if (!dev->link[0].info->ns_num) return; @@ -5004,7 +5030,7 @@ static struct class ddb_class = { .devnode = ddb_devnode, }; -static int ddb_class_create(void) +int ddb_class_create(void) { ddb_major = register_chrdev(0, DDB_NAME, &ddb_fops); if (ddb_major < 0) @@ -5014,7 +5040,7 @@ static int ddb_class_create(void) return 0; } -static void ddb_class_destroy(void) +void ddb_class_destroy(void) { class_unregister(&ddb_class); unregister_chrdev(ddb_major, DDB_NAME); @@ -5082,7 +5108,7 @@ fail: return -1; } -static int ddb_device_create(struct ddb *dev) +int ddb_device_create(struct ddb *dev) { int res = 0; @@ -5112,7 +5138,7 @@ fail: return res; } -static void ddb_device_destroy(struct ddb *dev) +void ddb_device_destroy(struct ddb *dev) { if (IS_ERR(dev->ddb_dev)) return; @@ -5404,7 +5430,7 @@ static int ddb_init_boards(struct ddb *dev) return 0; } -static int ddb_init(struct ddb *dev) +int ddb_init(struct ddb *dev) { mutex_init(&dev->link[0].flash_mutex); if (no_init) { @@ -5464,7 +5490,7 @@ static void ddb_reset_io(struct ddb *dev, u32 reg) ddbwritel(dev, 0x00, reg); } -static void ddb_reset_ios(struct ddb *dev) +void ddb_reset_ios(struct ddb *dev) { u32 i; struct ddb_regmap *rm = dev->link[0].info->regmap; diff --git a/ddbridge/ddbridge-i2c.c b/ddbridge/ddbridge-i2c.c index f5374d1..799f799 100644 --- a/ddbridge/ddbridge-i2c.c +++ b/ddbridge/ddbridge-i2c.c @@ -23,8 +23,27 @@ * Or, point your browser to http://www.gnu.org/copyleft/gpl.html */ -static int i2c_io(struct i2c_adapter *adapter, u8 adr, - u8 *wbuf, u32 wlen, u8 *rbuf, u32 rlen) +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "ddbridge.h" +#include "ddbridge-regs.h" + +/******************************************************************************/ + +int i2c_io(struct i2c_adapter *adapter, u8 adr, + u8 *wbuf, u32 wlen, u8 *rbuf, u32 rlen) { struct i2c_msg msgs[2] = {{.addr = adr, .flags = 0, .buf = wbuf, .len = wlen }, @@ -33,7 +52,7 @@ static int i2c_io(struct i2c_adapter *adapter, u8 adr, return (i2c_transfer(adapter, msgs, 2) == 2) ? 0 : -1; } -static int i2c_write(struct i2c_adapter *adap, u8 adr, u8 *data, int len) +int i2c_write(struct i2c_adapter *adap, u8 adr, u8 *data, int len) { struct i2c_msg msg = {.addr = adr, .flags = 0, .buf = data, .len = len}; @@ -41,15 +60,15 @@ static int i2c_write(struct i2c_adapter *adap, u8 adr, u8 *data, int len) return (i2c_transfer(adap, &msg, 1) == 1) ? 0 : -1; } -static int i2c_read(struct i2c_adapter *adapter, u8 adr, u8 *val) +int i2c_read(struct i2c_adapter *adapter, u8 adr, u8 *val) { struct i2c_msg msgs[1] = {{.addr = adr, .flags = I2C_M_RD, .buf = val, .len = 1 } }; return (i2c_transfer(adapter, msgs, 1) == 1) ? 0 : -1; } -static int i2c_read_regs(struct i2c_adapter *adapter, - u8 adr, u8 reg, u8 *val, u8 len) +int i2c_read_regs(struct i2c_adapter *adapter, + u8 adr, u8 reg, u8 *val, u8 len) { struct i2c_msg msgs[2] = {{.addr = adr, .flags = 0, .buf = ®, .len = 1 }, @@ -58,8 +77,8 @@ static int i2c_read_regs(struct i2c_adapter *adapter, return (i2c_transfer(adapter, msgs, 2) == 2) ? 0 : -1; } -static int i2c_read_regs16(struct i2c_adapter *adapter, - u8 adr, u16 reg, u8 *val, u8 len) +int i2c_read_regs16(struct i2c_adapter *adapter, + u8 adr, u16 reg, u8 *val, u8 len) { u8 reg16[2] = { reg >> 8, reg }; struct i2c_msg msgs[2] = {{.addr = adr, .flags = 0, @@ -69,7 +88,7 @@ static int i2c_read_regs16(struct i2c_adapter *adapter, return (i2c_transfer(adapter, msgs, 2) == 2) ? 0 : -1; } -static int i2c_read_reg(struct i2c_adapter *adapter, u8 adr, u8 reg, u8 *val) +int i2c_read_reg(struct i2c_adapter *adapter, u8 adr, u8 reg, u8 *val) { struct i2c_msg msgs[2] = {{.addr = adr, .flags = 0, .buf = ®, .len = 1}, @@ -78,8 +97,8 @@ static int i2c_read_reg(struct i2c_adapter *adapter, u8 adr, u8 reg, u8 *val) return (i2c_transfer(adapter, msgs, 2) == 2) ? 0 : -1; } -static int i2c_read_reg16(struct i2c_adapter *adapter, u8 adr, - u16 reg, u8 *val) +int i2c_read_reg16(struct i2c_adapter *adapter, u8 adr, + u16 reg, u8 *val) { u8 msg[2] = {reg >> 8, reg & 0xff}; struct i2c_msg msgs[2] = {{.addr = adr, .flags = 0, @@ -89,16 +108,16 @@ static int i2c_read_reg16(struct i2c_adapter *adapter, u8 adr, return (i2c_transfer(adapter, msgs, 2) == 2) ? 0 : -1; } -static int i2c_write_reg16(struct i2c_adapter *adap, u8 adr, - u16 reg, u8 val) +int i2c_write_reg16(struct i2c_adapter *adap, u8 adr, + u16 reg, u8 val) { u8 msg[3] = {reg >> 8, reg & 0xff, val}; return i2c_write(adap, adr, msg, 3); } -static int i2c_write_reg(struct i2c_adapter *adap, u8 adr, - u8 reg, u8 val) +int i2c_write_reg(struct i2c_adapter *adap, u8 adr, + u8 reg, u8 val) { u8 msg[2] = {reg, val}; @@ -202,12 +221,12 @@ static u32 ddb_i2c_functionality(struct i2c_adapter *adap) return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL; } -struct i2c_algorithm ddb_i2c_algo = { +static const struct i2c_algorithm ddb_i2c_algo = { .master_xfer = ddb_i2c_master_xfer, .functionality = ddb_i2c_functionality, }; -static void ddb_i2c_release(struct ddb *dev) +void ddb_i2c_release(struct ddb *dev) { int i; struct ddb_i2c *i2c; @@ -260,7 +279,7 @@ static int ddb_i2c_add(struct ddb *dev, struct ddb_i2c *i2c, return i2c_add_adapter(adap); } -static int ddb_i2c_init(struct ddb *dev) +int ddb_i2c_init(struct ddb *dev) { int stat = 0; u32 i, j, num = 0, l, base; diff --git a/ddbridge/ddbridge.c b/ddbridge/ddbridge-main.c similarity index 99% rename from ddbridge/ddbridge.c rename to ddbridge/ddbridge-main.c index 0ec1761..688cb4a 100644 --- a/ddbridge/ddbridge.c +++ b/ddbridge/ddbridge-main.c @@ -32,7 +32,7 @@ static struct workqueue_struct *ddb_wq; -static int adapter_alloc; +int adapter_alloc; module_param(adapter_alloc, int, 0444); MODULE_PARM_DESC(adapter_alloc, "0-one adapter per io, 1-one per tab with io, 2-one per tab, 3-one for all"); @@ -44,8 +44,6 @@ MODULE_PARM_DESC(msi, " Control MSI interrupts: 0-disable, 1-enable (default)"); #endif -#include "ddbridge-core.c" - /****************************************************************************/ /****************************************************************************/ /****************************************************************************/ diff --git a/ddbridge/ddbridge-mod.c b/ddbridge/ddbridge-modulator.c similarity index 100% rename from ddbridge/ddbridge-mod.c rename to ddbridge/ddbridge-modulator.c diff --git a/ddbridge/ddbridge-ns.c b/ddbridge/ddbridge-ns.c index b2bca85..061f958 100644 --- a/ddbridge/ddbridge-ns.c +++ b/ddbridge/ddbridge-ns.c @@ -23,8 +23,22 @@ * Or, point your browser to http://www.gnu.org/copyleft/gpl.html */ -static int ddb_dvb_ns_input_start(struct ddb_input *input); -static int ddb_dvb_ns_input_stop(struct ddb_input *input); +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "ddbridge.h" +#include "ddbridge-regs.h" static u16 calc_pcs(struct dvb_ns_params *p) { @@ -464,7 +478,7 @@ static int ns_stop(struct dvbnss *nss) return 0; } -static int netstream_init(struct ddb_input *input) +int netstream_init(struct ddb_input *input) { struct ddb_dvb *dvb = &input->port->dvb[input->nr & 1]; struct dvb_adapter *adap = dvb->adap; diff --git a/ddbridge/ddbridge.h b/ddbridge/ddbridge.h index 28dd20d..d274fed 100644 --- a/ddbridge/ddbridge.h +++ b/ddbridge/ddbridge.h @@ -76,20 +76,6 @@ #include "dvb_ca_en50221.h" #include "dvb_net.h" -#include "tda18271c2dd.h" -#include "stv6110x.h" -#include "stv090x.h" -#include "lnbh24.h" -#include "drxk.h" -#include "stv0367dd.h" -#include "tda18212dd.h" -#include "cxd2843.h" -#include "cxd2099.h" -#include "stv0910.h" -#include "stv6111.h" -#include "lnbh25.h" -#include "mxl5xx.h" - #define DDB_MAX_I2C 32 #define DDB_MAX_PORT 32 #define DDB_MAX_INPUT 64 @@ -745,9 +731,84 @@ void ddbridge_mod_output_stop(struct ddb_output *output); int ddbridge_mod_output_start(struct ddb_output *output); void ddbridge_mod_rate_handler(unsigned long data); - int ddbridge_flashread(struct ddb *dev, u32 link, u8 *buf, u32 addr, u32 len); +/****************************************************************************/ + +/* ddbridge-main.c (modparams) */ +extern int adapter_alloc; + +/* ddbridge-core.c */ +/* hwmaps */ +extern struct ddb_regset octopus_input; +extern struct ddb_regset octopus_output; +extern struct ddb_regset octopus_i2c; +extern struct ddb_regset octopus_i2c_buf; +extern struct ddb_regmap octopus_map; +extern struct ddb_regmap octopro_map; +extern struct ddb_regmap octopro_hdin_map; +extern struct ddb_regmap octopus_mod_map; +extern struct ddb_regmap octopus_mod_2_map; +extern struct ddb_regmap octopus_sdr_map; +extern struct ddb_info ddb_s2_48; +extern struct ddb_info ddb_ct2_8; +extern struct ddb_info ddb_c2t2_8; +extern struct ddb_info ddb_isdbt_8; +extern struct ddb_info ddb_c2t2i_v0_8; +extern struct ddb_info ddb_c2t2i_8; + +/* function prototypes */ +void ddb_ports_detach(struct ddb *dev); +void ddb_ports_release(struct ddb *dev); +void ddb_buffers_free(struct ddb *dev); +void ddb_device_destroy(struct ddb *dev); +void ddb_ports_init(struct ddb *dev); +int ddb_buffers_alloc(struct ddb *dev); +int ddb_ports_attach(struct ddb *dev); +int ddb_device_create(struct ddb *dev); +int ddb_class_create(void); +void ddb_class_destroy(void); +int ddb_init(struct ddb *dev); +void ddb_reset_ios(struct ddb *dev); + +void ddb_nsd_detach(struct ddb *dev); +int ddb_dvb_ns_input_start(struct ddb_input *input); +int ddb_dvb_ns_input_stop(struct ddb_input *input); + +irqreturn_t irq_handler0(int irq, void *dev_id); +irqreturn_t irq_handler1(int irq, void *dev_id); +irqreturn_t irq_handler(int irq, void *dev_id); +irqreturn_t irq_handle_v2_n(struct ddb *dev, u32 n); +irqreturn_t irq_handler_v2(int irq, void *dev_id); +#ifdef DDB_TEST_THREADED +irqreturn_t irq_thread(int irq, void *dev_id); +#endif + +/* ddbridge-i2c.c */ +int i2c_io(struct i2c_adapter *adapter, u8 adr, + u8 *wbuf, u32 wlen, u8 *rbuf, u32 rlen); +int i2c_write(struct i2c_adapter *adap, u8 adr, u8 *data, int len); +int i2c_read(struct i2c_adapter *adapter, u8 adr, u8 *val); +int i2c_read_regs(struct i2c_adapter *adapter, + u8 adr, u8 reg, u8 *val, u8 len); +int i2c_read_regs16(struct i2c_adapter *adapter, + u8 adr, u16 reg, u8 *val, u8 len); +int i2c_read_reg(struct i2c_adapter *adapter, u8 adr, u8 reg, u8 *val); +int i2c_read_reg16(struct i2c_adapter *adapter, u8 adr, + u16 reg, u8 *val); +int i2c_write_reg16(struct i2c_adapter *adap, u8 adr, + u16 reg, u8 val); +int i2c_write_reg(struct i2c_adapter *adap, u8 adr, + u8 reg, u8 val); + +void ddb_i2c_release(struct ddb *dev); +int ddb_i2c_init(struct ddb *dev); + +/* ddbridge-ns.c */ +int netstream_init(struct ddb_input *input); + +/****************************************************************************/ + #define DDBRIDGE_VERSION "0.9.29" #endif diff --git a/ddbridge/octonet.c b/ddbridge/octonet-main.c similarity index 95% rename from ddbridge/octonet.c rename to ddbridge/octonet-main.c index fd686c6..b7e7e20 100644 --- a/ddbridge/octonet.c +++ b/ddbridge/octonet-main.c @@ -23,6 +23,20 @@ * Or, point your browser to http://www.gnu.org/copyleft/gpl.html */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + #include "ddbridge.h" #include "ddbridge-regs.h" #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)) @@ -31,13 +45,11 @@ #include #endif -static int adapter_alloc = 3; +int adapter_alloc = 3; module_param(adapter_alloc, int, 0444); MODULE_PARM_DESC(adapter_alloc, "0-one adapter per io, 1-one per tab with io, 2-one per tab, 3-one for all"); -#include "ddbridge-core.c" - static struct ddb_regmap octopus_net_map = { .irq_version = 1, .irq_base_i2c = 0,