Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/firmware/drivers/tuner/si4700.c b/firmware/drivers/tuner/si4700.c
- index 848d25e..398c4ae 100644
- --- a/firmware/drivers/tuner/si4700.c
- +++ b/firmware/drivers/tuner/si4700.c
- @@ -372,6 +372,7 @@ static void si4700_set_frequency(int freq)
- 76000000, /* SYSCONFIG2_BAND_760_1080 */
- 76000000, /* SYSCONFIG2_BAND_760_900 */
- };
- + int i;
- /* check BAND and spacings */
- int space = SYSCONFIG2_SPACEr(cache[SYSCONFIG2]);
- @@ -379,8 +380,7 @@ static void si4700_set_frequency(int freq)
- int chan = (freq - bands[band]) / spacings[space];
- int readchan;
- - do
- - {
- + for (i = 0; i < 5; i++) {
- /* tuning should be done within 60 ms according to the datasheet */
- si4700_write_reg(CHANNEL, CHANNEL_CHANw(chan) | CHANNEL_TUNE);
- sleep(HZ * 60 / 1000);
- @@ -389,7 +389,12 @@ static void si4700_set_frequency(int freq)
- readchan = si4700_read_reg(READCHAN) & READCHAN_READCHAN;
- si4700_write_clear(CHANNEL, CHANNEL_TUNE);
- - } while (!((cache[STATUSRSSI] & STATUSRSSI_STC) && (readchan == chan)));
- +
- + /* check if tuning was successful */
- + if ((cache[STATUSRSSI] & STATUSRSSI_STC) && (readchan == chan)) {
- + break;
- + }
- + }
- }
- static int si4700_tuned(void)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement