diff --git a/apps/radio/radio.c b/apps/radio/radio.c index b3540610f1..403d1ae36f 100644 --- a/apps/radio/radio.c +++ b/apps/radio/radio.c @@ -279,7 +279,9 @@ void radio_pause(void) } tuner_set(RADIO_MUTE, 1); - tuner_set(RADIO_SLEEP, 1); + /* For si4700: 2==this is really 'pause'. other tuners treat it + * like 'bool'. */ + tuner_set(RADIO_SLEEP, 2); radio_status = FMRADIO_PAUSED; } /* radio_pause */ diff --git a/firmware/drivers/tuner/si4700.c b/firmware/drivers/tuner/si4700.c index 3a49d6ef41..985659b77b 100644 --- a/firmware/drivers/tuner/si4700.c +++ b/firmware/drivers/tuner/si4700.c @@ -411,7 +411,9 @@ int si4700_set(int setting, int value) switch(setting) { case RADIO_SLEEP: - si4700_sleep(value); + if (value != 2) + si4700_sleep(value); + /* else actually it's 'pause' */ break; case RADIO_FREQUENCY: