r82xx: error on pll failure

pull/6/head
Kyle Keen 2014-08-04 12:39:10 -04:00
rodzic 29d2c849f9
commit 0bba67ab45
2 zmienionych plików z 8 dodań i 12 usunięć

Wyświetl plik

@ -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;

Wyświetl plik

@ -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