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