mirror of
https://github.com/DigitalDevices/dddvb.git
synced 2025-03-01 10:35:23 +00:00
ddbridge/octonet: compile modules from object referenced in Kbuild
This changes building ddbridge.ko and octonet.ko from including multiple C files right from the source code to building all of them separately into their own objects, and build the actual kernel module from these objects. Accomplished by: - rename of ddbridge.c to ddbridge-main.c and octonet. to octonet-main.c - rename of ddbridge-mod.c to ddbridge-modulator.c - add all C files to Kbuild and prepare Kbuild for this way of building the modules - add all neccessary annotations and includes
This commit is contained in:
@@ -24,6 +24,37 @@
|
||||
* Or, point your browser to http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/poll.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/pci_ids.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/swab.h>
|
||||
#include <linux/vmalloc.h>
|
||||
|
||||
#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;
|
||||
|
||||
Reference in New Issue
Block a user