[linux-dvb] [PATCH] Fix for Air2PC HD5000
mkrufky at linuxtv.org
Sat Aug 25 23:03:05 CEST 2007
Boleslaw Ciesielski wrote:
> On 8/7/07, Geoffrey Hausheer <inli3epy93n at phracturedblue.com> wrote:
>> I have been unable to tune my HD5000 using recent kernels for quite
>> some time, and I finally broke down and tried to figure out what is
>> going on.
>> It turns out that ever since the lgh06xf driver was removed, my card
>> has been unable to tune. However this is only true after a hard-boot.
>> If I boot into an earlier driver, tune it once and get a lock, then
>> soft-boot unto a recent driver, it works fine.
>> I didn't really dig into that, but comparing dvb_pll_attach to
>> lgh06xf_attach I noticed the only significant difference was some
>> extra i2c stuff.
>> Specifically this:
>> ret = i2c_transfer (i2c, &msg, 1);
>> if (ret != 1)
>> return NULL;
>> Well, I checked, and, indeed, we fall through here and abort the
>> attach before all the callbacks are registered. Since the lgh06xf
>> didn't even do this, I just ignored the return code, and voila, my
>> HD5000 tunes fine again.
> FWIW, I just wanted to confirm that I have the same problem and that
> Geoffrey's patch/hack fixes it for me.
Thank you for confirming. Although Geoffrey's patch fixes the HD5000, it will break some other devices, instead.
Geoffrey's patch did, however, help us to find the actual problem in flexcop-i2c.c
The full description of the problem is located in the commit message of the fix:
This patch has already been merged into Linus' 2.6.23-rc tree, and is queued for the 126.96.36.199 -stable kernel release.
Thanks to Trent Piepho, for providing the flexcop-i2c workaround, Jarod Wilson, who had originally reported this regression and was instrumental in testing the fixes, and Geoffrey Hausheer, whose original workaround patch led us to find the actual cause of the problem.
More information about the linux-dvb