[linux-dvb] Hauppage Nova-T firmware upload bug
Thomas Richter
thor at math.TU-Berlin.DE
Fri Dec 30 23:02:18 CET 2005
Hi folks,
recently, I faced problems using my Hauppage Nova-T (old model,
TechnoTrend design), especially getting the firmware uploaded correctly.
The driver continuously fails to load the firmware, even though the file
is in the right place. Interestingly, this behaivour is not
reproducable: The system works fine for a week, then the next day it
fails, and even rebooting doesn't bring it back to a working condition.
The DVB-T card then requires once loading the windows drivers; then,
when rebooting to Linux, things are fine again.
I played a lot with the sources now, using the 1.1.1 release of the
linuxtv-dvb sources. The code always fails the loop at lines 244ff of
saa7146_i2c.c, aborting with a "timed out waiting for end of xfer".
Adding a "short_delay = 1" at around line 307 of saa7146_i2c_transfer
(thus bypassing
if ( count > 3 || 0 != (SAA7146_I2C_SHORT_DELAY & dev->ext->flags) )
short_delay = 1;
)
seems to have fixed this *for today*. To avoid this hack, I modified
budget-ci.c, namely the flags for the i2c module as follows:
static struct saa7146_extension budget_extension = {
.name = "budget_ci dvb\0",
.flags = SAA7146_I2C_SHORT_DELAY, /* FIX. was: 0, */
.module = THIS_MODULE,
.pci_tbl = &pci_tbl[0],
.attach = budget_ci_attach,
.detach = budget_ci_detach,
.irq_mask = MASK_06 | MASK_10,
.irq_func = budget_ci_irq,
};
which seems to do the job right now. (Can anyone confirm that this is
the right thing to do to get short_delay set?)
My question would be: What does "short_delay" do and why could it be
that it fixes my card here? Are there any negative consequences I should
expect?
Otherwise, it might be useful to include this patch in the next release.
So long,
Thomas Richter
More information about the linux-dvb
mailing list