Google
  Web www.spinics.net

Re: [PATCH, RFC] STB0899 signal strength (pctv452e, others too?)

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


On Sat, May 19, 2012 at 11:57:35PM +0200, Klaus Schmidinger wrote:
> On 19.05.2012 22:32, Juergen Lock wrote:
> > Hi!
> >
> > (I guess the forums are not the best place to post this, hence
> > reposted here...)
> >
> >   By accident I stumbled across the special case for TT-budget S2-3200
> > (DVB-S/DVB-S2) in vdr's dvbdevice.c, and since both my tuners using
> > the pctv452e driver have the same issue (which are STB0899 too,
> > issue is the red/yellow/green bars in femon/osd didn't appear)
> > I added an OPTION to the FreeBSD port (STB0899_SIGNAL in the port's
> > make config menu) to enable the patch below.  Optional since I don't
> > know if there are STB0899-based tuners that don't have the problem,
> > does anyone here know?  (see log, if vdr logs like
> >
> > 	vdr: [29376960] frontend 0/0 provides DVB-S,DVB-S2,DSS with QPSK ("STB0899 Multistandard")
> >
> > and the bars appear without the patch please let us know, noting
> > pci ids for the cards especially if different from 0x13c2:0x1019
> > or if it's usb, thanx!)
> >
> >   Cheers,
> > 	Juergen
> >
> > And here comes the patch, also at:
> >
> > 	http://www.freebsd.org/cgi/cvsweb.cgi/ports/multimedia/vdr/files/stb0899-signalstrength.patch?rev=1.2;content-type=text%2Fplain
> >
> > --- dvbdevice.c.orig
> > +++ dvbdevice.c
> > @@ -560,6 +560,12 @@ int cDvbTuner::GetSignalStrength(void) c
> >     switch (subsystemId) {
> >       case 0x13C21019: MaxSignal = 670; break; // TT-budget S2-3200 (DVB-S/DVB-S2)
> >       }
> > +#if 1
> > +  // XXX This is likely not correct for all cards using stb0899
> > +  // but pctv452e usb ones seem to be affected too...
> > +  if (!strcmp(device->DeviceName(), "STB0899 Multistandard"))
> > +    MaxSignal = 670;
> > +#endif
> >     int s = int(Signal) * 100 / MaxSignal;
> >     if (s>  100)
> >        s = 100;
> > @@ -632,6 +638,12 @@ int cDvbTuner::GetSignalQuality(void) co
> >        switch (subsystemId) {
> >          case 0x13C21019: MaxSnr = 200; break; // TT-budget S2-3200 (DVB-S/DVB-S2)
> >          }
> > +#if 1
> > +     // XXX This is likely not correct for all cards using stb0899
> > +     // but pctv452e usb ones seem to be affected too...
> > +     if (!strcmp(device->DeviceName(), "STB0899 Multistandard"))
> > +       MaxSnr = 200;
> > +#endif
> >        int a = int(Snr) * 100 / MaxSnr;
> >        int b = 100 - (Unc * 10 + (Ber / 256) * 5);
> >        if (b<  0)
> 
> Maybe I'm missing something here, but why don't you just add the subsystem id of your card
> to the switch statements?

Heh.

 Because a) it's usb, b) I'm on FreeBSD which doesn't emulate Linux'
/sys/class/dvb nodes and finding out which /dev/dvb node belongs
to which usbid isn't as straightforward there, and c) I was wondering
if the bug maybe affects all STB0899 frontends not just some.

 Cheers,
	Juergen

_______________________________________________
vdr mailing list
vdr@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


[Linux Media]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Devices]     [Big List of Linux Books]     [Fedora Users]     [Webcams]     [Fedora Women]     [ALSA Devel]     [Linux USB]

Powered by Linux