Mailing List archive

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

[linux-dvb] Re: Full featured DVB-T card update



On Friday 01 August 2003 15:41, Johannes Stezenbach wrote:
> Johannes Stezenbach wrote:
> > On Fri, Aug 01, 2003 at 03:22:26PM +0200, Juri Haberland wrote:
> > > PS: very first impression - tuning is not as reliable as with the patch
> > > I resend - but have to do some double checking before I can be sure...
> >
> > OK. Please also test adding the system controller stop/start (copy from
> > FE_SET_FRONTEND) to FE_RESET.
>
> I comitted something which should work to CVS (alps_tdlb7.c), but I can't
> test it myself because I don't have the hardware.
>
> Could you please test the latest greates CVS and report your results?

Added some printk's and found out that FE_RESET is called after every channel 
switch. Think that's not what you intended? To solve this I added a delay in 
FE_SET_FRONTEND (see Patch).

The main problem with this card is that sometimes tuning fails, but the lock 
flag stays set in the status register.
e.g.:
# ./tzap sat1
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
tuning to 658000000 Hz
status 1f | signal 4343 | snr 0000 | ber 00000049 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 4343 | snr 0000 | ber 00000049 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 4343 | snr 0000 | ber 00000049 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 4343 | snr 0000 | ber 00000049 | unc 00000000 | FE_HAS_LOCK

This is probably an error in the sp8870 firmware. The card normaly works again 
when frontend parameters are set a second time. But because FE_HAS_LOCK is 
set the driver doesn't know that the tuning failed. Nothing is indicating 
this hangup except that the values in the signal and status registers seems 
to be frozen and no data is delivered anymore from the frontend (black 
screen).  

Another (older) problem is that when the zigzag scan from dvb_frontend_recover 
starts it almost never makes the card lock, but often causes the above 
described hangup of the card. It works if I change stepsize to 0 for FE_OFDM 
in dvb_frontend_recover. But I don't know if we could make such a general 
change for all dvb-t cards.

Juergen


Patch:
----------------------------------------------------------------------------------------
diff -rpu DVB/driver/frontends/alps_tdlb7.c 
DVB_PATCH/driver/frontends/alps_tdlb7.c
--- DVB/driver/frontends/alps_tdlb7.c	Sat Aug  2 10:18:26 2003
+++ DVB_PATCH/driver/frontends/alps_tdlb7.c	Sat Aug  2 09:55:02 2003
@@ -91,6 +91,15 @@ struct dvb_frontend_info tdlb7_info = {
 };


+static inline
+void ddelay (int ms)
+{
+	current->state=TASK_INTERRUPTIBLE;
+	schedule_timeout((HZ*ms)/1000);
+}
+
+
+
 static
 int sp8870_writereg (struct dvb_i2c_bus *i2c, u16 reg, u16 data)
 {
@@ -396,6 +405,8 @@ int tdlb7_ioctl (struct dvb_frontend *fe

 		// system controller start
 		sp8870_writereg(i2c,0x0F00,0x0001);
+
+		ddelay(50);

 		break;
         }
      


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



Home | Main Index | Thread Index