I've been working on my tuning problem every night this week. Frustrated and confused, I decided to approach this from a different perspective. I figured I would get a baseline using my HVR-950 so I could assess how consistent tuning is in my area for various stations. I obviously considered the possibility that the HVR-950 would have problems too, but if it behaved consistently then it would be a good basis for comparison.
I started with looking at tuning speed in general. Here's what I came up with for the HVR-950 using the current v4l-dvb trunk (note, I pruned out duplicate subchannels from this list).
Channel / time to lock (ms)
2-1 / 352
5-1 / 322
7-1 / 320
9-1 / 334
11-1 / 313
25-1 / 321
31-1 / 310
41-1 / 313
68-1 / 318
I got consistent lock against all channels inside of 350ms.
Now compare this against the unmodified v4l-dvb trunk for the Pinnacle 801e:
Channel / time to lock (ms)
2-1 / 3190
5-1 / 3194
7-1 / 3194
9-1 / 3189
11-1 / 3189
25-1 / 3189
31-1 / 3194
41-1 / 3190
68-1 / 3190
So it is consistently locking, but almost an order of magnitude slower.
I tried to do the same test for the Pinnacle 801e with my changes, and found that the tuning time was to unpredictable to accurately measure. I was times seeing in the areas of 350ms, 500ms, 1500ms, 2500ms, 3500ms, and tuning failure for even a single channel (the cap is
5000ms for Kaffeine so it's possible that we would have achieved tuning lock after that).
Then I started looking at w_scan performance:
HVR-950 - 27 stations found, time: 3:58
Pinnacle 801e (first run) - 16 stations found, time 9:05
Pinnacle 801e (second run) - 18 stations found, time 9:02
Pinnacle 801e with my changes (first run) - 13 stations found, time 3:09
Pinnacle 801e with my changes (second run) - 25 stations found, time 3:12
Pinnacle 801e with my changes (third run) - 26 stations found, time 3:09
The HVR-950 consistently finds all 27 stations in four minutes. The Pinnacle driver is all over the map regardless of my changes. My changes make the w_scan timing more consistent with the HVR-950, but it does not appear to have an affect on the quality of the tuning results.
In summary, I see four possibilities:
1. My Pinnacle hardware is defective
2. There is something wrong with the xc5000 driver
3. There is something wrong with the s5h1411 driver
4. There is something wrong with my intergration of the xc5000/x5h1411 for the Pinnacle 801e.
Anyway I look at it, this is pretty frustrating.