diff --git a/hal/gonk/GonkFMRadio.cpp b/hal/gonk/GonkFMRadio.cpp index f261baf41a9..48b8dede5ed 100644 --- a/hal/gonk/GonkFMRadio.cpp +++ b/hal/gonk/GonkFMRadio.cpp @@ -223,8 +223,12 @@ runTavaruaRadio(void *) for (unsigned int i = 0; i < buffer.bytesused; i++) { switch (buf[i]) { case TAVARUA_EVT_RADIO_READY: - NS_DispatchToMainThread(new RadioUpdate(hal::FM_RADIO_OPERATION_ENABLE, - hal::FM_RADIO_OPERATION_STATUS_SUCCESS)); + // The driver sends RADIO_READY both when we turn the radio on and when we turn + // the radio off. + if (sRadioEnabled) { + NS_DispatchToMainThread(new RadioUpdate(hal::FM_RADIO_OPERATION_ENABLE, + hal::FM_RADIO_OPERATION_STATUS_SUCCESS)); + } break; case TAVARUA_EVT_SEEK_COMPLETE: NS_DispatchToMainThread(new RadioUpdate(hal::FM_RADIO_OPERATION_SEEK,