marko.ristola at kolumbus.fi
Wed Nov 29 22:38:51 CET 2006
Hi Elmar and Manu
Maybe the smallest improvement might be to just
adjust the wait from 50ms into 10 seconds:
if FE_TUNE_MODE_ONESHOT is in use, dvb_frontend.c
must just wait a very long time.
Here are other thoughts, that might be helpful for you to get MB86A16
I know that the values that I gave for dvb_frontend_tune_settings
might be the best values for DVB-C.
With DVB-C with me, max_drift and step_size must(?) be zero.
So no heuristics to figure out the optimal frequency.
With dvb_frontend.c frequencies are tested with steps.
One frequency step is defined with step_size.
max_drift gives an upper limit to the maximal frequency
drift based on the given original frequency. The max_drift is reached
by stepping long enough.
In dvb_frontend.c in function dvb_frontend_swzigzag_autotune() there is
heuristics for this optimal frequency selection.
That function needs nonzero max drift and step size.
Maybe the unit is HZ on both of them.
dvb_frontend_swzigzag_autotune() function assumes that
fe->ops.set_frontend() is a simple function:
Inversion selection and small frequency tuning are done in dvb_frontend.c.
That's what I found with cu1216.c with frequency setting function:
by simplifying cu1216.c I managed to make cu1216.c to work.
dvb_frontend.c assumes, that cu1216.c has a simple frequency
setting with no inversion heuristics and with no frequency drift
heuristics of it's own.
cu1216_set_parameters() has also a very short maximum delay on my
That made dvb_frontend.c to do correct and successful
LOCK heuristics for me.
cu1216.c still figures out best gain setting for the given frequency and
That is not done in dvb_frontend.c.
So you could do further testing by simplfying mb86a16.c and testing
with different values on step_size and max_drift.
The problems seem to be mostly on software side, so it is this heuristics
and mb86a16_set_frontend() and mb86a16_mb86a16_read_status() function
that are critical for lock acquirance.
Elmar Schmidt kirjoitti:
> I aded the Lines from Marko Ristola to my cu1216.c File.
> static int cu1216_get_tune_settings(struct dvb_frontend* fe, struct
> dvb_frontend_tune_settings* settings)
> settings->min_delay_ms = 50;
> settings->step_size = 0; /* FE_QAM: zero */
> settings->max_drift = 0; /* FE_QAM: zero */
> return 0;
> In dvb_frontend_ops:
> .get_tune_settings = cu1216_get_tune_settings,
> But it doesnt work. Same Output like before this Changes :(
> Is anything wrong with this Changes? Wrong Lines maybe?
> After i added these Changes I did the following:
> make all
> cp v4l/cu1216.kp /lib/modules/kernel/drivers/media/dvb/mantis/
> make install
> depmod -a
> amd64 Gentoo 2006.1
> PS: Hope this opens not a new Thread. If this Mail opens a new Thread,
> so I have to say sorry. I dont get the Answeres in my E-Mail Programm
> to work.
> --Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
> linux-dvb mailing list
> linux-dvb at linuxtv.org
More information about the linux-dvb