From 0d5e470a451319e5c671b14cd5dfd350bc2d9285 Mon Sep 17 00:00:00 2001 From: Bertrik Sikken Date: Sun, 14 Nov 2010 09:25:08 +0000 Subject: si4700/rda5802 tuners: prevent hang when changing radio region. Probably fixes bug FS#11754 . git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28582 a1c6a512-1295-4272-9138-f99709370657 --- firmware/drivers/tuner/rda5802.c | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'firmware/drivers/tuner/rda5802.c') diff --git a/firmware/drivers/tuner/rda5802.c b/firmware/drivers/tuner/rda5802.c index 82dc0bbcb9..fe2b25f213 100644 --- a/firmware/drivers/tuner/rda5802.c +++ b/firmware/drivers/tuner/rda5802.c @@ -100,7 +100,6 @@ static const uint16_t initvals[16] = { }; static bool tuner_present = false; -static int curr_frequency = 87500000; /* Current station frequency (HZ) */ static uint16_t cache[16]; /* reads registers from radio at offset 0x0A into cache */ @@ -208,8 +207,6 @@ static void rda5802_set_frequency(int freq) int start = CHANNEL_BANDr(cache[CHANNEL]) & 1 ? 76000000 : 87000000; int chan = (freq - start) / 50000; - curr_frequency = freq; - for (i = 0; i < 5; i++) { /* tune and wait a bit */ rda5802_write_masked(CHANNEL, CHANNEL_CHANw(chan) | CHANNEL_TUNE, @@ -250,16 +247,9 @@ static void rda5802_set_region(int region) uint16_t bandspacing = CHANNEL_BANDw(band) | CHANNEL_SPACEw(CHANNEL_SPACE_50KHZ); - uint16_t oldbs = cache[CHANNEL] & (CHANNEL_BAND | CHANNEL_SPACE); - rda5802_write_masked(SYSCONFIG1, deemphasis, SYSCONFIG1_DE); rda5802_write_masked(CHANNEL, bandspacing, CHANNEL_BAND | CHANNEL_SPACE); rda5802_write_cache(); - - /* Retune if this region change would change the channel number. */ - if (oldbs != bandspacing) { - rda5802_set_frequency(curr_frequency); - } } static bool rda5802_st(void) -- cgit v1.2.3