Re: [PATCH 4/9] [media] dvb-frontends/stv0910: Fix signal strength reporting

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

 



Am Mon, 26 Jun 2017 10:55:34 +0200
schrieb Ralph Metzler <rjkm@xxxxxxxxxxxxxx>:

> Daniel Scheller writes:
>  > From: Daniel Scheller <d.scheller@xxxxxxx>
>  > 
>  > Original code at least has some signed/unsigned issues, resulting
>  > in values like 32dBm.  
> 
> I will look into that.
> 
>  > Change signal strength readout to work without asking
>  > the attached tuner, and use a lookup table instead of log calc.
>  > Values  
> 
> How can you determine the exact strength without knowing what the
> tuner did? At least the stv6111 does its own AGC which has to be
> added.

Good to know. Though, from what I gathered, a lot of demod drivers are
made this way, e.g. read out the AGC, do some math and have a signal
strength as result. If there are ways to do this better and/or
accurately, then by all means lets do this :)

Re the 32dBm, this is from a user who reported even four different
values on the same coax cable (as he claimed). A MaxS8 and some
measuring gear reported something around -25dBm. With the stv0910, the
initial port from dddvb to the kernel reported those 32dBm,
"the other driver" (suspect he meant dddvb but he wasn't exact in what
that "other driver" was) did report -9dBm, and this changed variant
reported around -30dBm, which seems plausible wrt the MaxS8 and his
gauge.

>  > +struct SLookup padc_lookup[] = {
>  > +	{    0,  118000 }, /* PADC=+0dBm  */
>  > +	{ -100,  93600  }, /* PADC=-1dBm  */
>  > +	{ -200,  74500  }, /* PADC=-2dBm  */
>  > +	{ -300,  59100  }, /* PADC=-3dBm  */
>  > +	{ -400,  47000  }, /* PADC=-4dBm  */
>  > +	{ -500,  37300  }, /* PADC=-5dBm  */
>  > +	{ -600,  29650  }, /* PADC=-6dBm  */
>  > +	{ -700,  23520  }, /* PADC=-7dBm  */
>  > +	{ -900,  14850  }, /* PADC=-9dBm  */
>  > +	{ -1100, 9380   }, /* PADC=-11dBm */
>  > +	{ -1300, 5910   }, /* PADC=-13dBm */
>  > +	{ -1500, 3730   }, /* PADC=-15dBm */
>  > +	{ -1700, 2354   }, /* PADC=-17dBm */
>  > +	{ -1900, 1485   }, /* PADC=-19dBm */
>  > +	{ -2000, 1179   }, /* PADC=-20dBm */
>  > +	{ -2100, 1000   }, /* PADC=-21dBm */
>  > +};  
>  ...
>  > -	if (bbgain < (s32) *strength)
>  > -		*strength -= bbgain;
>  > -	else
>  > -		*strength = 0;
>  > +	padc = TableLookup(padc_lookup, ARRAY_SIZE(padc_lookup),
>  > Power) + 352; 
> 
> 
> Where does the padc_lookup table come from?
> I saw it before in CrazyCat github tree.
> Is he or you the original source/author or somebody else?

Yes, this is picked from CrazyCat's GIT [1], more precisely, from the
commit at [2], which imports an already modified version of your driver
code, hidden behind the message "STV6120 tuner driver" (stv0910 is part
of that commit). Honestly, no idea if he is the actual author of the
table plus the math.

As initially mentioned, if we can fix this and do it the real proper
way, let's do this and drop this patch, but this needs your help.

Best regards,
Daniel Scheller

[1] https://github.com/crazycat69/linux_media
[2]
https://github.com/crazycat69/linux_media/commit/9099babc397bb8bd9d0e33f39156643487378768
-- 
https://github.com/herrnst



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux