kopia lustrzana https://github.com/keenerd/rtl-sdr
r82xx: error on pll failure
rodzic
29d2c849f9
commit
0bba67ab45
|
@ -83,7 +83,6 @@ struct r82xx_priv {
|
||||||
uint32_t int_freq;
|
uint32_t int_freq;
|
||||||
uint8_t fil_cal_code;
|
uint8_t fil_cal_code;
|
||||||
uint8_t input;
|
uint8_t input;
|
||||||
int has_lock;
|
|
||||||
int init_done;
|
int init_done;
|
||||||
int disable_dither;
|
int disable_dither;
|
||||||
int reg_cache;
|
int reg_cache;
|
||||||
|
|
|
@ -585,23 +585,20 @@ static int r82xx_set_pll(struct r82xx_priv *priv, uint32_t freq)
|
||||||
return rc;
|
return rc;
|
||||||
if (data[2] & 0x40)
|
if (data[2] & 0x40)
|
||||||
break;
|
break;
|
||||||
|
if (i > 0)
|
||||||
|
break;
|
||||||
|
|
||||||
if (!i) {
|
/* Didn't lock. Increase VCO current */
|
||||||
/* Didn't lock. Increase VCO current */
|
rc = r82xx_write_reg_mask(priv, 0x12, 0x60, 0xe0);
|
||||||
rc = r82xx_write_reg_mask(priv, 0x12, 0x60, 0xe0);
|
if (rc < 0)
|
||||||
if (rc < 0)
|
return rc;
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(data[2] & 0x40)) {
|
if (!(data[2] & 0x40)) {
|
||||||
fprintf(stderr, "[R82XX] PLL not locked!\n");
|
fprintf(stderr, "[R82XX] PLL not locked!\n");
|
||||||
priv->has_lock = 0;
|
return -1;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
priv->has_lock = 1;
|
|
||||||
|
|
||||||
/* set pll autotune = 8kHz */
|
/* set pll autotune = 8kHz */
|
||||||
rc = r82xx_write_reg_mask(priv, 0x1a, 0x08, 0x08);
|
rc = r82xx_write_reg_mask(priv, 0x1a, 0x08, 0x08);
|
||||||
|
|
||||||
|
@ -1074,7 +1071,7 @@ int r82xx_set_freq(struct r82xx_priv *priv, uint32_t freq)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
rc = r82xx_set_pll(priv, lo_freq);
|
rc = r82xx_set_pll(priv, lo_freq);
|
||||||
if (rc < 0 || !priv->has_lock)
|
if (rc < 0)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
/* switch between 'Cable1' and 'Air-In' inputs on sticks with
|
/* switch between 'Cable1' and 'Air-In' inputs on sticks with
|
||||||
|
|
Ładowanie…
Reference in New Issue