[2/2] stb0899: fixed reading of IF_AGC_GAIN register

Message ID 4F4D1FAC.5050703@gmx.de (mailing list archive)
State Accepted, archived
Headers

Commit Message

Andreas Regel Feb. 28, 2012, 6:40 p.m. UTC
  When reading IF_AGC_GAIN register a wrong value for the base address
register was used (STB0899_DEMOD instead of STB0899_S2DEMOD). That
lead to a wrong signal strength value on DVB-S2 transponders.

Signed-off-by: Andreas Regel <andreas.regel@gmx.de>
---
  drivers/media/dvb/frontends/stb0899_drv.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

ARRAY_SIZE(stb0899_dvbs2rf_tab) - 1, val);
  

Comments

Klaus Schmidinger Feb. 29, 2012, 8:24 a.m. UTC | #1
> When reading IF_AGC_GAIN register a wrong value for the base address
> register was used (STB0899_DEMOD instead of STB0899_S2DEMOD). That
> lead to a wrong signal strength value on DVB-S2 transponders.
>
> Signed-off-by: Andreas Regel <andreas.regel@gmx.de>
> ---
>  drivers/media/dvb/frontends/stb0899_drv.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/media/dvb/frontends/stb0899_drv.c b/drivers/media/dvb/frontends/stb0899_drv.c
> index 4a58afc..a2e9eba 100644
> --- a/drivers/media/dvb/frontends/stb0899_drv.c
> +++ b/drivers/media/dvb/frontends/stb0899_drv.c
> @@ -983,7 +983,7 @@ static int stb0899_read_signal_strength(struct dvb_frontend *fe, u16 *strength)
>          break;
>      case SYS_DVBS2:
>          if (internal->lock) {
> -            reg = STB0899_READ_S2REG(STB0899_DEMOD, IF_AGC_GAIN);
> +            reg = STB0899_READ_S2REG(STB0899_S2DEMOD, IF_AGC_GAIN);
>              val = STB0899_GETFIELD(IF_AGC_GAIN, reg);
>               *strength = stb0899_table_lookup(stb0899_dvbs2rf_tab, ARRAY_SIZE(stb0899_dvbs2rf_tab) - 1, val);

Acked-by: Klaus Schmidinger <Klaus.Schmidinger@tvdr.de>
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Patch

diff --git a/drivers/media/dvb/frontends/stb0899_drv.c 
b/drivers/media/dvb/frontends/stb0899_drv.c
index 4a58afc..a2e9eba 100644
--- a/drivers/media/dvb/frontends/stb0899_drv.c
+++ b/drivers/media/dvb/frontends/stb0899_drv.c
@@ -983,7 +983,7 @@  static int stb0899_read_signal_strength(struct 
dvb_frontend *fe, u16 *strength)
  		break;
  	case SYS_DVBS2:
  		if (internal->lock) {
-			reg = STB0899_READ_S2REG(STB0899_DEMOD, IF_AGC_GAIN);
+			reg = STB0899_READ_S2REG(STB0899_S2DEMOD, IF_AGC_GAIN);
  			val = STB0899_GETFIELD(IF_AGC_GAIN, reg);
   			*strength = stb0899_table_lookup(stb0899_dvbs2rf_tab,