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
working:
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
implementation.
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
inversion.
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.
Regards,
Marko Ristola
Elmar Schmidt kirjoitti:
Hi,
I aded the Lines from Marko Ristola to my cu1216.c File.
Anywere:
---
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
modules-update
depmod -a
Infos:
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.
SORRY.
--Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb