diff --git a/ddbridge/ddbridge-core.c b/ddbridge/ddbridge-core.c index 7fbf91a..7bc0d9f 100644 --- a/ddbridge/ddbridge-core.c +++ b/ddbridge/ddbridge-core.c @@ -2336,15 +2336,9 @@ static void input_write_dvb(struct ddb_input *input, } } -#ifdef DDB_USE_WORK -static void input_work(struct work_struct *work) -{ - struct ddb_dma *dma = container_of(work, struct ddb_dma, work); -#else static void input_tasklet(unsigned long data) { struct ddb_dma *dma = (struct ddb_dma *)data; -#endif struct ddb_input *input = (struct ddb_input *)dma->io; struct ddb *dev = input->port->dev; unsigned long flags; @@ -2377,17 +2371,10 @@ static void input_handler(unsigned long data) * just copy pointers and ACK. So, there is no need to go * through the tasklet scheduler. */ - #ifdef DDB_USE_WORK - if (input->redi) - queue_work(ddb_wq, &dma->work); - else - input_work(&dma->work); - #else if (input->redi) tasklet_schedule(&dma->tasklet); else input_tasklet(data); - #endif } #else @@ -2396,23 +2383,13 @@ static void input_handler(void *data) struct ddb_input *input = (struct ddb_input *)data; struct ddb_dma *dma = input->dma; -#ifdef DDB_USE_WORK - queue_work(ddb_wq, &dma->work); -#else input_tasklet((unsigned long)dma); -#endif } #endif -#ifdef DDB_USE_WORK -static void output_work(struct work_struct *work) -{ - struct ddb_dma *dma = container_of(work, struct ddb_dma, work); -#else static void output_tasklet(unsigned long data) { struct ddb_dma *dma = (struct ddb_dma *)data; -#endif struct ddb_output *output = (struct ddb_output *)dma->io; struct ddb *dev = output->port->dev; unsigned long flags; @@ -2454,11 +2431,7 @@ static void output_handler(void *data) struct ddb_output *output = (struct ddb_output *)data; struct ddb_dma *dma = output->dma; -#ifdef DDB_USE_WORK - queue_work(ddb_wq, &dma->work); -#else tasklet_schedule(&dma->tasklet); -#endif } #endif @@ -2489,11 +2462,7 @@ static void ddb_dma_init(struct ddb_io *io, int nr, int out, int irq_nr) spin_lock_init(&dma->lock); init_waitqueue_head(&dma->wq); if (out) { -#ifdef DDB_USE_WORK - INIT_WORK(&dma->work, output_work); -#else tasklet_init(&dma->tasklet, output_tasklet, (unsigned long)dma); -#endif dma->regs = rm->odma->base + rm->odma->size * nr; dma->bufregs = rm->odma_buf->base + rm->odma_buf->size * nr; if (io->port->dev->link[0].info->type == DDB_MOD && @@ -2507,11 +2476,7 @@ static void ddb_dma_init(struct ddb_io *io, int nr, int out, int irq_nr) dma->div = 1; } } else { -#ifdef DDB_USE_WORK - INIT_WORK(&dma->work, input_work); -#else tasklet_init(&dma->tasklet, input_tasklet, (unsigned long)dma); -#endif dma->regs = rm->idma->base + rm->idma->size * nr; dma->bufregs = rm->idma_buf->base + rm->idma_buf->size * nr; dma->num = dma_buf_num; @@ -2705,21 +2670,12 @@ void ddb_ports_release(struct ddb *dev) for (i = 0; i < dev->port_num; i++) { port = &dev->port[i]; -#ifdef DDB_USE_WORK - if (port->input[0] && port->input[0]->dma) - cancel_work_sync(&port->input[0]->dma->work); - if (port->input[1] && port->input[1]->dma) - cancel_work_sync(&port->input[1]->dma->work); - if (port->output && port->output->dma) - cancel_work_sync(&port->output->dma->work); -#else if (port->input[0] && port->input[0]->dma) tasklet_kill(&port->input[0]->dma->tasklet); if (port->input[1] && port->input[1]->dma) tasklet_kill(&port->input[1]->dma->tasklet); if (port->output && port->output->dma) tasklet_kill(&port->output->dma->tasklet); -#endif } } @@ -2823,9 +2779,6 @@ irqreturn_t ddb_irq_handler(int irq, void *dev_id) irq_handle_msg(dev, s); if (s & 0x0fffff00) { irq_handle_io(dev, s); -#ifdef DDB_TEST_THREADED - ret = IRQ_WAKE_THREAD; -#endif } } while ((s = ddbreadl(dev, INTERRUPT_STATUS))); @@ -2873,15 +2826,6 @@ irqreturn_t ddb_irq_handler_v2(int irq, void *dev_id) return ret; } -#ifdef DDB_TEST_THREADED -static irqreturn_t irq_thread(int irq, void *dev_id) -{ - /* struct ddb *dev = (struct ddb *) dev_id; */ - - return IRQ_HANDLED; -} -#endif - /****************************************************************************/ /****************************************************************************/ /****************************************************************************/ diff --git a/ddbridge/ddbridge-main.c b/ddbridge/ddbridge-main.c index f33e3e4..8fb53d0 100644 --- a/ddbridge/ddbridge-main.c +++ b/ddbridge/ddbridge-main.c @@ -255,17 +255,9 @@ static int __devinit ddb_irq_init(struct ddb *dev) return stat; } } else { -#ifdef DDB_TEST_THREADED - stat = request_threaded_irq(pci_irq_vector(dev->pdev, 0), - dev->pdev->irq, ddb_irq_handler, - irq_thread, - irq_flag, - "ddbridge", (void *)dev); -#else stat = request_irq(pci_irq_vector(dev->pdev, 0), ddb_irq_handler, irq_flag, "ddbridge", (void *)dev); -#endif if (stat < 0) return stat; } diff --git a/ddbridge/ddbridge.h b/ddbridge/ddbridge.h index 5ee78a3..b1d3a14 100644 --- a/ddbridge/ddbridge.h +++ b/ddbridge/ddbridge.h @@ -23,9 +23,6 @@ #ifndef _DDBRIDGE_H_ #define _DDBRIDGE_H_ -/* #define DDB_USE_WORK */ -/*#define DDB_TEST_THREADED*/ - #include #if (KERNEL_VERSION(3, 8, 0) <= LINUX_VERSION_CODE) @@ -205,11 +202,7 @@ struct ddb_dma { u32 div; u32 bufval; -#ifdef DDB_USE_WORK - struct work_struct work; -#else struct tasklet_struct tasklet; -#endif spinlock_t lock; /* DMA lock */ wait_queue_head_t wq; int running; diff --git a/lib/ddzap.c b/lib/ddzap.c index 06b6391..5620abc 100644 --- a/lib/ddzap.c +++ b/lib/ddzap.c @@ -12,6 +12,7 @@ #include #include #include +#include char line_start[16] = ""; char line_end[16] = "\r"; @@ -427,7 +428,10 @@ int main(int argc, char **argv) get_ts = 0; break; case 'h': - fprintf(fout,"ddzap [-d delivery_system] [-p polarity] [-c config_dir] [-f frequency(Hz)]\n" + fprintf(fout,"ddzap [-d delivery_system] [-p polarity] [-c config_dir]\n" + " [-f frequency(Hz for terr./kHz for SAT)]\n" + " [-m 16APSK/32APSK/64APSK/128APSK/256APSK]\n" + " (only needed for higher modulations than 8PSK) on some cards\n" " [-b bandwidth(Hz)] [-s symbol_rate(Hz)]\n" " [-g gold_code] [-r root_code] [-i id] [-n device_num]\n" " [-o (write dvr to stdout)]\n" @@ -503,9 +507,10 @@ int main(int argc, char **argv) str = dddvb_get_strength(fe); cnr = dddvb_get_cnr(fe); - printf("stat=%02x, str=%lld.%03llddB, snr=%lld.%03llddB \n", - stat, (long long int)str/1000, (long long int) abs(str%1000), - (long long int) cnr/1000, (long long int)abs(cnr%1000)); + printf("stat=%02x, str=%" PRId64 ".%03udBm, " + "snr=%" PRId64 ".%03uddB \n", + stat, str/1000, abs(str%1000), + cnr/1000, abs(cnr%1000)); sleep(1); } } else { diff --git a/lib/src/config.c b/lib/src/config.c index 53e9943..05e23d9 100644 --- a/lib/src/config.c +++ b/lib/src/config.c @@ -41,7 +41,7 @@ int parse_config(struct dddvb *dd, char *name, char *sec, memcpy(fname + config_len, "dddvb.conf", 11); if ((f = fopen (fname, "r")) == NULL) { - printf("config file %s not found\n", fname); + dprintf(2, "config file %s not found\n", fname); return -1; } diff --git a/lib/src/dddvb.c b/lib/src/dddvb.c index aa85a8b..b011a04 100644 --- a/lib/src/dddvb.c +++ b/lib/src/dddvb.c @@ -8,7 +8,7 @@ LIBDDDVB_EXPORTED struct dddvb *global_dd = NULL; LIBDDDVB_EXPORTED pthread_mutex_t dddvb_mutex = PTHREAD_MUTEX_INITIALIZER; void __attribute__ ((constructor)) setup(void) { - printf("SETUP\n"); + //printf("SETUP\n"); } LIBDDDVB_EXPORTED struct dddvb_fe *dddvb_fe_alloc_num(struct dddvb *dd, uint32_t type, uint32_t num) diff --git a/lib/src/dvb.c b/lib/src/dvb.c index adcf52f..76a70c3 100644 --- a/lib/src/dvb.c +++ b/lib/src/dvb.c @@ -231,7 +231,7 @@ static int set_en50607(struct dddvb_fe *fe, uint32_t freq, uint32_t sr, uint32_t input = 3 & (sat >> 6); int fd = fe->fd; - //printf("input = %u, sat = %u\n", input, sat&0x3f); + dbgprintf(DEBUG_DVB, "input = %u, sat = %u\n", input, sat&0x3f); hor &= 1; cmd.msg[1] = slot << 3; cmd.msg[1] |= ((t >> 8) & 0x07); @@ -323,7 +323,7 @@ static int tune_sat(struct dddvb_fe *fe) if (input != DDDVB_UNDEF) { input = 3 & (input >> 6); - printf("input = %u\n", input); + dbgprintf(DEBUG_DVB, "input = %u\n", input); } diseqc(fe->fd, lnb, fe->param.param[PARAM_POL], hi); set_fe_input(fe, freq, fe->param.param[PARAM_SR], ds, input); @@ -349,7 +349,7 @@ static int tune_c(struct dddvb_fe *fe) struct dtv_properties c; int ret; - printf("tune_c()\n"); + dbgprintf(DEBUG_DVB, "tune_c()\n"); set_property(fe->fd, DTV_DELIVERY_SYSTEM, SYS_DVBC_ANNEX_A); c.num = ARRAY_SIZE(p); @@ -376,7 +376,7 @@ static int tune_j83b(struct dddvb_fe *fe) struct dtv_properties c; int ret; - printf("tune_j83b()\n"); + dbgprintf(DEBUG_DVB, "tune_j83b()\n"); set_property(fe->fd, DTV_DELIVERY_SYSTEM, SYS_DVBC_ANNEX_B); c.num = ARRAY_SIZE(p); @@ -542,7 +542,7 @@ static int tune(struct dddvb_fe *fe) { int ret; - printf("tune()\n"); + dbgprintf(DEBUG_DVB, "tune()\n"); switch (fe->param.param[PARAM_MSYS]) { case SYS_DVBS: case SYS_DVBS2: diff --git a/lib/src/tools.c b/lib/src/tools.c index 9592095..9c787b8 100644 --- a/lib/src/tools.c +++ b/lib/src/tools.c @@ -13,7 +13,7 @@ int sendlen(int sock, char *buf, int len) for (todo = len; todo; todo -= done, buf += done) if ((done = send(sock, buf, todo, 0)) < 0) { - printf("sendlen error\n"); + dprintf(2, "sendlen error\n"); return done; } return len;