diff --git a/components/esp_driver_isp/src/isp_bf.c b/components/esp_driver_isp/src/isp_bf.c index e2258216f4..b8b7cf3986 100644 --- a/components/esp_driver_isp/src/isp_bf.c +++ b/components/esp_driver_isp/src/isp_bf.c @@ -56,6 +56,7 @@ esp_err_t esp_isp_bf_enable(isp_proc_handle_t proc) ESP_RETURN_ON_FALSE(proc, ESP_ERR_INVALID_ARG, TAG, "invalid argument: null pointer"); ESP_RETURN_ON_FALSE(proc->bf_fsm == ISP_FSM_INIT, ESP_ERR_INVALID_STATE, TAG, "bf is enabled already"); + isp_ll_bf_clk_enable(proc->hal.hw, true); isp_ll_bf_enable(proc->hal.hw, true); proc->bf_fsm = ISP_FSM_ENABLE; @@ -68,6 +69,7 @@ esp_err_t esp_isp_bf_disable(isp_proc_handle_t proc) ESP_RETURN_ON_FALSE(proc->bf_fsm == ISP_FSM_ENABLE, ESP_ERR_INVALID_STATE, TAG, "bf isn't enabled yet"); isp_ll_bf_enable(proc->hal.hw, false); + isp_ll_bf_clk_enable(proc->hal.hw, false); proc->bf_fsm = ISP_FSM_INIT; return ESP_OK; diff --git a/components/esp_driver_isp/src/isp_core.c b/components/esp_driver_isp/src/isp_core.c index a2586bd105..8fbf9e5f66 100644 --- a/components/esp_driver_isp/src/isp_core.c +++ b/components/esp_driver_isp/src/isp_core.c @@ -104,13 +104,6 @@ esp_err_t esp_isp_new_processor(const esp_isp_processor_cfg_t *proc_config, isp_ } isp_hal_init(&proc->hal, proc->proc_id); - //necessary ISP submodules that needs basic initialisation - isp_ll_bf_clk_enable(proc->hal.hw, true); - isp_ll_bf_enable(proc->hal.hw, true); - isp_ll_ccm_clk_enable(proc->hal.hw, true); - isp_ll_ccm_enable(proc->hal.hw, true); - isp_ll_color_clk_enable(proc->hal.hw, true); - isp_ll_color_enable(proc->hal.hw, true); PERIPH_RCC_ATOMIC() { isp_ll_select_clk_source(proc->hal.hw, clk_src); isp_ll_set_clock_div(proc->hal.hw, &clk_div);