Skip to content

Commit 06af0f9

Browse files
committed
r82xx: direct sampling fixes from tejeez
1 parent f3b45e1 commit 06af0f9

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

src/tuner_r82xx.c

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -946,7 +946,7 @@ static int r82xx_set_if_filter(struct r82xx_priv *priv, int hpf, int lpf) {
946946
else if(cal > 15) cal = 15;
947947
priv->fil_cal_code = cal;
948948

949-
fprintf(stderr, "Setting IF filter for %d...%d kHz: hp_cor=0x%02x, fil_cal_code=%d\n", hpf, lpf, hp_cor, cal);
949+
//fprintf(stderr, "Setting IF filter for %d...%d kHz: hp_cor=0x%02x, fil_cal_code=%d\n", hpf, lpf, hp_cor, cal);
950950

951951
rc = r82xx_write_reg_mask(priv, 0x0a,
952952
filt_q | priv->fil_cal_code, 0x1f);
@@ -1113,17 +1113,22 @@ int r82xx_set_nomod(struct r82xx_priv *priv)
11131113

11141114
fprintf(stderr, "Using R820T no-mod direct sampling mode\n");
11151115

1116-
/*rc = r82xx_set_bw(priv, 1000000);
1117-
if (rc < 0)
1118-
goto err;*/
1116+
/* should probably play a bit more with the mux settings
1117+
to see if something works even better than this */
11191118

1120-
/* experimentally determined magic numbers
1121-
* needs more experimenting with all the registers */
11221119
rc = r82xx_set_mux(priv, 300000000);
1123-
if (rc < 0)
1124-
goto err;
1120+
if (rc < 0) goto err;
1121+
1122+
/* the VCO frequency setting still seems to have some effect on the noise floor */
1123+
rc = r82xx_set_pll(priv, 50000000);
1124+
if (rc < 0) goto err;
1125+
1126+
/* the most important part: set a divider number that does not really work */
1127+
rc = r82xx_write_reg_mask(priv, 0x10, 0xd0, 0xe0);
1128+
if (rc < 0) goto err;
11251129

1126-
r82xx_set_pll(priv, 25000000);
1130+
/* VCO power off? */
1131+
rc = r82xx_write_reg_mask(priv, 0x12, 0xe0, 0xe0);
11271132

11281133
err:
11291134
if (rc < 0)

0 commit comments

Comments
 (0)