|
|
|
@ -448,10 +448,15 @@ static int r82xx_set_pll(struct r82xx_priv *priv, uint32_t freq) |
|
|
|
|
return rc; |
|
|
|
|
|
|
|
|
|
/* set VCO current = 100 RTL-SDRBLOG MOD: MAX CURRENT*/ |
|
|
|
|
rc = r82xx_write_reg_mask(priv, 0x12, 0x00, 0xe0); |
|
|
|
|
rc = r82xx_write_reg_mask(priv, 0x12, 0x06, 0xff); |
|
|
|
|
if (rc < 0) |
|
|
|
|
return rc; |
|
|
|
|
|
|
|
|
|
// Test turning tracking filter off
|
|
|
|
|
//rc = r82xx_write_reg_mask(priv, 0x1a, 0x40, 0xC0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Calculate divider */ |
|
|
|
|
while (mix_div <= 64) { |
|
|
|
|
if (((freq_khz * mix_div) >= vco_min) && |
|
|
|
@ -540,7 +545,7 @@ static int r82xx_set_pll(struct r82xx_priv *priv, uint32_t freq) |
|
|
|
|
|
|
|
|
|
if (!i) { |
|
|
|
|
/* Didn't lock. Increase VCO current */ |
|
|
|
|
rc = r82xx_write_reg_mask(priv, 0x12, 0x00, 0xe0); |
|
|
|
|
rc = r82xx_write_reg_mask(priv, 0x12, 0x06, 0xff); |
|
|
|
|
if (rc < 0) |
|
|
|
|
return rc; |
|
|
|
|
} |
|
|
|
@ -663,6 +668,9 @@ static int r82xx_sysfreq_sel(struct r82xx_priv *priv, uint32_t freq, |
|
|
|
|
rc = r82xx_write_reg_mask(priv, 0x11, cp_cur, 0x38); |
|
|
|
|
if (rc < 0) |
|
|
|
|
return rc; |
|
|
|
|
|
|
|
|
|
// RTLSDRBLOG. Improve L-band performance by setting PLL drop out to 2.0v
|
|
|
|
|
div_buf_cur = 0xa0; |
|
|
|
|
rc = r82xx_write_reg_mask(priv, 0x17, div_buf_cur, 0x30); |
|
|
|
|
if (rc < 0) |
|
|
|
|
return rc; |
|
|
|
@ -968,7 +976,7 @@ int r82xx_set_gain(struct r82xx_priv *priv, int set_manual_gain, int gain) |
|
|
|
|
return rc; |
|
|
|
|
|
|
|
|
|
/* set fixed VGA gain for now (16.3 dB) */ |
|
|
|
|
rc = r82xx_write_reg_mask(priv, 0x0c, 0x08, 0x9f); |
|
|
|
|
rc = r82xx_write_reg_mask(priv, 0x0c, 0x08, 0x9f); //init val 0x08 0x0c works well at 1.7
|
|
|
|
|
if (rc < 0) |
|
|
|
|
return rc; |
|
|
|
|
|
|
|
|
|