On Wednesday 12 July 2006 23:50, Trent Piepho wrote: > On Wed, 12 Jul 2006, Mac Michaels wrote: > > The original code written for analog mode was designed > > to tune quickly by increasing the pump current then > > switch back to the more stable current value after the > > signal was acquired. This makes switching channels that > > are far apart > > I think there is some confusion here. It sounds like you > are talking about this code in tuner-simple.c, > default_set_tv_freq(): case TUNER_MICROTUNE_4042FI5: > /* Set the charge pump for fast tuning */ > config |= TUNER_CHARGE_PUMP; > > And then there is more code a bit later in the same > function to poll the PLL and turn the charge pump to low > current after it locks. You are correct. I was thinking about the code above when I replied to the list. My comments do not apply to the original discussion. --Mac > ** This is totally different code that was being > discussed. ** > > What was being discussed was code in tuner-core.c, > set_type(). This code changes the "Aux Byte" that > effects the AGC take-over-point. Totally different than > the charge pump current. > > The set_type() function has never had an existing PLL > message to modify. It's called on module load to set the > tuner type, not to actually tune to something, so having > a message wouldn't even make sense. What would the > message be? > > There is very very similar code in the dvb-pll version > that does the same thing, except it is called via the > function that does tuning. It works correctly because it > takes the tuning command and modifies it to set the aux > byte. It does this on every tune, not just on module > load. > > It's clear what happened. The working dvb code was > cut&pasted into the v4l tuner driver, but put in the > wrong function, and not adjusted to work properly in this > new spot (thus the use of uninitialized data). > > So, there is some code in the v4l tuner driver that > writes a few random bytes to the PLL when the module > loads, which doesn't actually do much of anything to the > PLL. Just remove it. Put something to set the aux byte > on every tune call, like the dvb code does, if you want > to be totally correct. But it's not necessary, as the > tuner has been working fine all this time without it. _______________________________________________ linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb