summaryrefslogtreecommitdiff
path: root/drivers/media/dvb/ngene/ngene-core.c
diff options
context:
space:
mode:
authorOliver Endriss <o.endriss@gmx.de>2010-05-16 06:07:07 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-06-01 01:20:14 -0300
commit5a2a1848a7d744a437f96b79a655c13b8090e74d (patch)
treefd29215d133ba34a32e8c111a2e6fdeb35f36d4c /drivers/media/dvb/ngene/ngene-core.c
parent4387418129895fd9aa2e2f6368ea69e9c4ddd0f2 (diff)
V4L/DVB: ngene: Make command timeout workaround configurable
Make command timeout workaround configurable, activate it for firmware version <= 17. Signed-off-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/ngene/ngene-core.c')
-rw-r--r--drivers/media/dvb/ngene/ngene-core.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/media/dvb/ngene/ngene-core.c b/drivers/media/dvb/ngene/ngene-core.c
index 35bed6095b1e..2bdcf59829d1 100644
--- a/drivers/media/dvb/ngene/ngene-core.c
+++ b/drivers/media/dvb/ngene/ngene-core.c
@@ -53,8 +53,6 @@ MODULE_PARM_DESC(debug, "Print debugging information.");
DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
-#define COMMAND_TIMEOUT_WORKAROUND
-
#define dprintk if (debug) printk
#define ngwriteb(dat, adr) writeb((dat), (char *)(dev->iomem + (adr)))
@@ -1252,14 +1250,17 @@ static int ngene_load_firm(struct ngene *dev)
version = 15;
size = 23466;
fw_name = "ngene_15.fw";
+ dev->cmd_timeout_workaround = true;
break;
case 16:
size = 23498;
fw_name = "ngene_16.fw";
+ dev->cmd_timeout_workaround = true;
break;
case 17:
size = 24446;
fw_name = "ngene_17.fw";
+ dev->cmd_timeout_workaround = true;
break;
}
@@ -1410,10 +1411,8 @@ static void release_channel(struct ngene_channel *chan)
struct ngene_info *ni = dev->card_info;
int io = ni->io_type[chan->number];
-#ifdef COMMAND_TIMEOUT_WORKAROUND
- if (chan->running)
+ if (chan->dev->cmd_timeout_workaround && chan->running)
set_transfer(chan, 0);
-#endif
tasklet_kill(&chan->demux_tasklet);