diff --git a/applications/main/subghz_remote/subghz_remote_app.c b/applications/main/subghz_remote/subghz_remote_app.c index 0440699c2..b64c87002 100644 --- a/applications/main/subghz_remote/subghz_remote_app.c +++ b/applications/main/subghz_remote/subghz_remote_app.c @@ -736,10 +736,11 @@ void subghz_remote_subghz_alloc(SubGHzRemote* app) { SubGHzRemote* subghz_remote_alloc(void) { SubGHzRemote* app = malloc(sizeof(SubGHzRemote)); - furi_hal_power_suppress_charge_enter(); // Enable power for External CC1101 if it is connected furi_hal_subghz_enable_ext_power(); + furi_hal_power_suppress_charge_enter(); + app->model_mutex = furi_mutex_alloc(FuriMutexTypeNormal); app->input_queue = furi_message_queue_alloc(32, sizeof(InputEvent)); diff --git a/applications/plugins/playlist/playlist.c b/applications/plugins/playlist/playlist.c index a6aa09cba..c22255c08 100644 --- a/applications/plugins/playlist/playlist.c +++ b/applications/plugins/playlist/playlist.c @@ -672,11 +672,11 @@ int32_t playlist_app(void* p) { Playlist* app = playlist_alloc(meta); meta->view_port = app->view_port; - furi_hal_power_suppress_charge_enter(); - // Enable power for External CC1101 if it is connected furi_hal_subghz_enable_ext_power(); + furi_hal_power_suppress_charge_enter(); + // select playlist file { DialogsApp* dialogs = furi_record_open(RECORD_DIALOGS); diff --git a/applications/plugins/pocsag_pager/pocsag_pager_app.c b/applications/plugins/pocsag_pager/pocsag_pager_app.c index 680edb2a5..123b3ee9d 100644 --- a/applications/plugins/pocsag_pager/pocsag_pager_app.c +++ b/applications/plugins/pocsag_pager/pocsag_pager_app.c @@ -122,11 +122,11 @@ POCSAGPagerApp* pocsag_pager_app_alloc() { app->txrx->worker, (SubGhzWorkerPairCallback)subghz_receiver_decode); subghz_worker_set_context(app->txrx->worker, app->txrx->receiver); - furi_hal_power_suppress_charge_enter(); - // Enable power for External CC1101 if it is connected furi_hal_subghz_enable_ext_power(); + furi_hal_power_suppress_charge_enter(); + scene_manager_next_scene(app->scene_manager, POCSAGPagerSceneStart); return app; diff --git a/applications/plugins/protoview/app.c b/applications/plugins/protoview/app.c index 7dc8a7b83..a4dab9f40 100644 --- a/applications/plugins/protoview/app.c +++ b/applications/plugins/protoview/app.c @@ -167,12 +167,12 @@ ProtoViewApp* protoview_app_alloc() { app->frequency = subghz_setting_get_default_frequency(app->setting); app->modulation = 0; /* Defaults to ProtoViewModulations[0]. */ - furi_hal_power_suppress_charge_enter(); - app->running = 1; - // Enable power for External CC1101 if it is connected furi_hal_subghz_enable_ext_power(); + furi_hal_power_suppress_charge_enter(); + app->running = 1; + return app; } diff --git a/applications/plugins/spectrum_analyzer/spectrum_analyzer.c b/applications/plugins/spectrum_analyzer/spectrum_analyzer.c index 10471e473..99c12adf7 100644 --- a/applications/plugins/spectrum_analyzer/spectrum_analyzer.c +++ b/applications/plugins/spectrum_analyzer/spectrum_analyzer.c @@ -403,11 +403,11 @@ int32_t spectrum_analyzer_app(void* p) { SpectrumAnalyzer* spectrum_analyzer = spectrum_analyzer_alloc(); InputEvent input; - furi_hal_power_suppress_charge_enter(); - // Enable power for External CC1101 if it is connected furi_hal_subghz_enable_ext_power(); + furi_hal_power_suppress_charge_enter(); + FURI_LOG_D("Spectrum", "Main Loop - Starting worker"); furi_delay_ms(50); diff --git a/applications/plugins/subbrute b/applications/plugins/subbrute index 552bd12d0..ed94bc878 160000 --- a/applications/plugins/subbrute +++ b/applications/plugins/subbrute @@ -1 +1 @@ -Subproject commit 552bd12d0f710501c31f7d44b4755d7fa89de303 +Subproject commit ed94bc87868b80bf41dad754f3747a9f40551995 diff --git a/applications/plugins/weather_station/weather_station_app.c b/applications/plugins/weather_station/weather_station_app.c index 0d83095b5..ffa569f20 100644 --- a/applications/plugins/weather_station/weather_station_app.c +++ b/applications/plugins/weather_station/weather_station_app.c @@ -105,11 +105,11 @@ WeatherStationApp* weather_station_app_alloc() { app->txrx->worker, (SubGhzWorkerPairCallback)subghz_receiver_decode); subghz_worker_set_context(app->txrx->worker, app->txrx->receiver); - furi_hal_power_suppress_charge_enter(); - // Enable power for External CC1101 if it is connected furi_hal_subghz_enable_ext_power(); + furi_hal_power_suppress_charge_enter(); + scene_manager_next_scene(app->scene_manager, WeatherStationSceneStart); return app; diff --git a/firmware/targets/f7/furi_hal/furi_hal_subghz.c b/firmware/targets/f7/furi_hal/furi_hal_subghz.c index e4a118652..b8834bef3 100644 --- a/firmware/targets/f7/furi_hal/furi_hal_subghz.c +++ b/firmware/targets/f7/furi_hal/furi_hal_subghz.c @@ -81,7 +81,7 @@ void furi_hal_subghz_init(void) { } void furi_hal_subghz_enable_ext_power(void) { - if(ext_power_is_enabled_already) return; + if(ext_power_is_enabled_already && furi_hal_power_is_otg_enabled()) return; ext_power_is_enabled_already = true; last_OTG_state = furi_hal_power_is_otg_enabled(); if(furi_hal_subghz.radio_type != SubGhzRadioInternal && !furi_hal_power_is_otg_enabled()) {