Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: Budget DVB-C tuning problems



Am Freitag, 13. Februar 2004 23:51 schrieb Robert Schlabbach:
> downwards a few times - I think you'll get a "no lock" very soon. You
> really need to implement the VAFC check and reset the VES1820 if VAFC runs
> out of a minimum range.
I tried the bit 0 stuff but it didn't seem to work. The content of register 
0x00 is needed to AND/OR it. But the bits of reg0 are still a mystery to me 
because a ves1820 datasheet is impossible to download. Here is the output 
with bit 0 reset:

-----------------------------------------------------------
kernel: tuner_set_tv_freq freq=450000000
kernel: ves1820_set_symbolrate 6900000
kernel: ves1820_setup_reg0 reg0=0x8
kernel: Reset via reg0
kernel: Reset again..
kernel:   Now reg0=0x48
kernel: FE_READ_STATUS status=0x7 DVB: VES1820(0): AFC (-5) 0Hz
kernel: Reset demodulator reg0=0x48
kernel: DVB: VES1820(0): AFC (-5) 568696Hz
kernel: Reset demodulator reg0=0x48
kernel: DVB: VES1820(0): AFC (-5) 568696Hz
kernel: Reset demodulator reg0=0x48
kernel: DVB: VES1820(0): AFC (-5) 568696Hz
kernel: Reset demodulator reg0=0x48
kernel: DVB: VES1820(0): AFC (-48) -412544
kernel: Reset demodulator reg0=0x48
kernel: DVB: VES1820(0): AFC (-5) 568696Hz
-----------------------------------------------------------

Moreover, I think this task belongs to the dvb_frontend_thread. Fiddling with 
it I noticed the following:

-----------------------------------------------------------
kernel: tuner_set_tv_freq freq=410000000
kernel: ves1820_set_symbolrate 6900000
kernel: ves1820_setup_reg0 reg0=0x8
kernel: Reset via reg0
kernel: Reset again..
kernel:   Now reg0=0x48
kernel: FE_READ_STATUS status=0x7
last message repeated 3 times
kernel: no lock
kernel: dvb_frontend_add_event
kernel: dvb_call_frontend_notifiers
kernel: FE_READ_STATUS status=0x7
kernel: FE_READ_STATUS status=0x7
kernel: no lock
	:
kernel: FE_READ_STATUS status=0x7
kernel: FE_READ_STATUS status=0x7
kernel: no lock 
kernel: FE_READ_STATUS status=0x7
kernel: dvb_frontend_release
kernel: FE_READ_STATUS status=0x7
kernel: no lock 
kernel: FE_READ_STATUS status=0x7
kernel: no lock 
kernel: FE_READ_STATUS status=0x7
kernel: no lock 
	:
-----------------------------------------------------------

What is this dvb_frontend_add_event, dvb_call_frontend_notifiers and 
dvb_frontend_release stuff doing?
Finally I managed to get working by removing the FE_CAN_RECOVER flag from the 
ves1820 capabilities. Now, when the tuner gets no lock dvb_frontend_recover 
is called (ioctl 0x7652 must be FE_RESET).

-----------------------------------------------------------
kernel: dvb_frontend_open
kernel: dvb_frontend_start
kernel: dvb_frontend_thread
kernel: dvb_call_frontend_notifiers
kernel: DVB: initialising frontend 0:0 (VES1820 based DVB-C frontend)...
kernel: dvb_bend_frequency
kernel: dvb_frontend_set_parameters: f == 410000000, drift == 0
kernel: FE_SET_FRONTEND
kernel: ----------- ves1820_set_parameters real_qam=2 ------------
kernel: tuner_set_tv_freq freq=410000000
kernel: ves1820_set_symbolrate 6900000
kernel: ves1820_setup_reg0 reg0=0x8
kernel: Reset via reg0
kernel: Reset again..
kernel:   Now reg0=0x48
kernel: FE_READ_STATUS status=0x0
kernel: FE_READ_STATUS status=0x7
last message repeated 2 times
kernel: no lock cant recover dvb_frontend_recover
kernel: dvb_bend_frequency
kernel: dvb_frontend_set_parameters: f == 410000000, drift == 0
kernel: FE_SET_FRONTEND
kernel: ----------- ves1820_set_parameters real_qam=2 ------------
kernel: tuner_set_tv_freq freq=410000000
kernel: ves1820_set_symbolrate 6900000
kernel: ves1820_setup_reg0 reg0=0x8
kernel: Reset via reg0
kernel: Reset again..
kernel:   Now reg0=0x68
kernel: ioctl 0x7652 not supported!
kernel: dvb_frontend_add_event
kernel: dvb_call_frontend_notifiers
kernel: FE_READ_STATUS status=0x1F
kernel: FE_READ_STATUS status=0x1F
kernel: dvb_frontend_add_event
kernel: FE_GET_FRONTEND reg0=0x68
kernel:   sync=0xF DVB: VES1820(0): AFC (-21) -141504Hz
-----------------------------------------------------------

The "second call" to FE_SET_FRONTEND makes the tuner lock.
May the ioctl FE_RESET should be implemented with a working demodulator reset. 
But without datasheet...

> Regards,
Cheers
Ingolf Haberer



-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index