feat(isp): allow to bypass shadow register
This commit is contained in:
@@ -43,7 +43,7 @@ esp_err_t esp_isp_bf_configure(isp_proc_handle_t proc, const esp_isp_bf_config_t
|
||||
isp_hal_bf_config(&(proc->hal), NULL);
|
||||
}
|
||||
|
||||
bool valid = isp_ll_shadow_update_bf(proc->hal.hw);
|
||||
bool valid = isp_ll_shadow_update_bf(proc->hal.hw, config->flags.update_once_configured);
|
||||
ESP_RETURN_ON_FALSE_ISR(valid, ESP_ERR_INVALID_STATE, TAG, "failed to update bf shadow register");
|
||||
|
||||
return ESP_OK;
|
||||
|
||||
@@ -58,7 +58,7 @@ esp_err_t esp_isp_blc_configure(isp_proc_handle_t isp_proc, const esp_isp_blc_co
|
||||
// Configure stretch enable for each channel
|
||||
isp_ll_blc_enable_stretch(isp_proc->hal.hw, config->stretch.top_left_chan_stretch_en, config->stretch.top_right_chan_stretch_en, config->stretch.bottom_left_chan_stretch_en, config->stretch.bottom_right_chan_stretch_en);
|
||||
|
||||
bool valid = isp_ll_shadow_update_blc(isp_proc->hal.hw);
|
||||
bool valid = isp_ll_shadow_update_blc(isp_proc->hal.hw, config->flags.update_once_configured);
|
||||
ESP_RETURN_ON_FALSE_ISR(valid, ESP_ERR_INVALID_STATE, TAG, "failed to update blc shadow register");
|
||||
|
||||
return ESP_OK;
|
||||
|
||||
@@ -43,7 +43,7 @@ esp_err_t esp_isp_color_configure(isp_proc_handle_t proc, const esp_isp_color_co
|
||||
isp_hal_color_config(&(proc->hal), NULL);
|
||||
}
|
||||
|
||||
bool valid = isp_ll_shadow_update_color(proc->hal.hw);
|
||||
bool valid = isp_ll_shadow_update_color(proc->hal.hw, config->flags.update_once_configured);
|
||||
ESP_RETURN_ON_FALSE_ISR(valid, ESP_ERR_INVALID_STATE, TAG, "failed to update color shadow register");
|
||||
|
||||
return ESP_OK;
|
||||
|
||||
@@ -45,7 +45,7 @@ esp_err_t esp_isp_sharpen_configure(isp_proc_handle_t proc, const esp_isp_sharpe
|
||||
isp_hal_sharpen_config(&(proc->hal), NULL);
|
||||
}
|
||||
|
||||
bool valid = isp_ll_shadow_update_sharpen(proc->hal.hw);
|
||||
bool valid = isp_ll_shadow_update_sharpen(proc->hal.hw, config->flags.update_once_configured);
|
||||
ESP_RETURN_ON_FALSE_ISR(valid, ESP_ERR_INVALID_STATE, TAG, "failed to update sharp shadow register");
|
||||
|
||||
return ESP_OK;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2025-2026 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -32,11 +32,14 @@ esp_err_t esp_isp_wbg_configure(isp_proc_handle_t isp_proc, const esp_isp_wbg_co
|
||||
}
|
||||
#endif
|
||||
|
||||
ESP_RETURN_ON_FALSE(isp_proc, ESP_ERR_INVALID_ARG, TAG, "invalid argument: null pointer");
|
||||
ESP_RETURN_ON_FALSE(isp_proc && config, ESP_ERR_INVALID_ARG, TAG, "invalid argument: null pointer");
|
||||
|
||||
// Configure clock control mode
|
||||
isp_ll_awb_set_wb_gain_clk_ctrl_mode(isp_proc->hal.hw, ISP_LL_PIPELINE_CLK_CTRL_AUTO);
|
||||
|
||||
bool valid = isp_ll_shadow_update_wbg(isp_proc->hal.hw, config->flags.update_once_configured);
|
||||
ESP_RETURN_ON_FALSE_ISR(valid, ESP_ERR_INVALID_STATE, TAG, "failed to update wbg shadow register");
|
||||
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
@@ -61,9 +64,6 @@ esp_err_t esp_isp_wbg_set_wb_gain(isp_proc_handle_t isp_proc, isp_wbg_gain_t gai
|
||||
// Set WBG gain
|
||||
isp_ll_awb_set_wb_gain(isp_proc->hal.hw, gain);
|
||||
|
||||
bool valid = isp_ll_shadow_update_wbg(isp_proc->hal.hw);
|
||||
ESP_RETURN_ON_FALSE_ISR(valid, ESP_ERR_INVALID_STATE, TAG, "failed to update wbg shadow register");
|
||||
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user