Merge branch 'fix/isp_error_when_rgb888_input' into 'master'

fix(isp): initialize Color defaults for RGB DMA output

See merge request espressif/esp-idf!51623
This commit is contained in:
Gao Xu
2026-08-10 16:05:37 +08:00

View File

@@ -188,7 +188,12 @@ esp_err_t esp_isp_new_processor(const esp_isp_processor_cfg_t *proc_config, isp_
if ((out_color_format == ISP_COLOR_RGB888 || out_color_format == ISP_COLOR_RGB565) &&
(proc_config->input_data_source == ISP_INPUT_DATA_SOURCE_DVP ||
proc_config->input_data_source == ISP_INPUT_DATA_SOURCE_DWGDMA)) {
isp_ll_color_enable(proc->hal.hw, true); // workaround for DIG-474
// DIG-474 workaround: Color must be enabled for RGB output, so configure its neutral defaults before enabling
// Disable shadow registers temporarily to apply the defaults directly, without leaving a pending Color update.
isp_ll_shadow_set_mode(proc->hal.hw, ISP_SHADOW_MODE_DISABLE);
isp_hal_color_config(&proc->hal, NULL);
isp_ll_color_set_clk_ctrl_mode(proc->hal.hw, ISP_LL_PIPELINE_CLK_CTRL_AUTO);
isp_ll_color_enable(proc->hal.hw, true);
}
if (proc_config->flags.byte_swap_en) {
isp_ll_set_byte_swap(proc->hal.hw, true);