Merge branch 'bugfix/isp_gamma_xcoord_error' into 'master'

fix(isp): disable gamma xcoord error check

Closes IDF-15561

See merge request espressif/esp-idf!47799
This commit is contained in:
Song Ruo Jing
2026-04-22 17:51:03 +08:00
2 changed files with 39 additions and 1 deletions
@@ -197,6 +197,10 @@ TEST_CASE("ISP AWB driver oneshot vs continuous test", "[isp]")
TEST_ESP_OK(esp_isp_del_processor(isp_proc));
}
/*---------------------------------------------------------------
CCM
---------------------------------------------------------------*/
TEST_CASE("ISP CCM basic function", "[isp]")
{
esp_isp_processor_cfg_t isp_config = {
@@ -237,6 +241,40 @@ TEST_CASE("ISP CCM basic function", "[isp]")
TEST_ESP_OK(esp_isp_del_processor(isp_proc));
}
/*---------------------------------------------------------------
Gamma
---------------------------------------------------------------*/
static uint32_t test_isp_gamma_basic_curve(uint32_t x)
{
return x / 2;
}
TEST_CASE("ISP gamma basic function", "[isp]")
{
esp_isp_processor_cfg_t isp_config = {
.clk_hz = 80 * 1000 * 1000,
.input_data_source = ISP_INPUT_DATA_SOURCE_CSI,
.input_data_color_type = ISP_COLOR_RAW8,
.output_data_color_type = ISP_COLOR_RGB565,
};
isp_proc_handle_t isp_proc = NULL;
TEST_ESP_OK(esp_isp_new_processor(&isp_config, &isp_proc));
TEST_ESP_OK(esp_isp_enable(isp_proc));
isp_gamma_curve_points_t gamma_pts = {};
TEST_ESP_OK(esp_isp_gamma_fill_curve_points(test_isp_gamma_basic_curve, &gamma_pts));
TEST_ESP_OK(esp_isp_gamma_configure(isp_proc, COLOR_COMPONENT_R, &gamma_pts));
TEST_ESP_OK(esp_isp_gamma_configure(isp_proc, COLOR_COMPONENT_G, NULL));
TEST_ESP_OK(esp_isp_gamma_enable(isp_proc));
// Allow to be called after enabled
TEST_ESP_OK(esp_isp_gamma_configure(isp_proc, COLOR_COMPONENT_B, &gamma_pts));
TEST_ESP_OK(esp_isp_gamma_disable(isp_proc));
TEST_ESP_OK(esp_isp_disable(isp_proc));
TEST_ESP_OK(esp_isp_del_processor(isp_proc));
}
/*---------------------------------------------------------------
AE
---------------------------------------------------------------*/
@@ -94,7 +94,7 @@ extern "C" {
#define ISP_LL_EVENT_SHARP_MASK (ISP_LL_EVENT_SHARP_FRAME)
#define ISP_LL_EVENT_HIST_MASK (ISP_LL_EVENT_HIST_FDONE)
#define ISP_LL_EVENT_COLOR_MASK (ISP_LL_EVENT_COLOR_FRAME)
#define ISP_LL_EVENT_ERROR_MASK (ISP_LL_EVENT_DATA_TYPE_ERR | ISP_LL_EVENT_ASYNC_FIFO_OVF | ISP_LL_EVENT_BUF_FULL | ISP_LL_EVENT_HVNUM_SETTING_ERR | ISP_LL_EVENT_DATA_TYPE_SETTING_ERR | ISP_LL_EVENT_MIPI_HNUM_UNMATCH | ISP_LL_EVENT_GAMMA_XCOORD_ERR | ISP_LL_EVENT_CROP_ERR)
#define ISP_LL_EVENT_ERROR_MASK (ISP_LL_EVENT_DATA_TYPE_ERR | ISP_LL_EVENT_ASYNC_FIFO_OVF | ISP_LL_EVENT_BUF_FULL | ISP_LL_EVENT_HVNUM_SETTING_ERR | ISP_LL_EVENT_DATA_TYPE_SETTING_ERR | ISP_LL_EVENT_MIPI_HNUM_UNMATCH | ISP_LL_EVENT_CROP_ERR) // Due to a hardware issue (DIG-820), ISP_LL_EVENT_GAMMA_XCOORD_ERR will always get triggered when a gamma update is set on P4, so we will not use it
/*---------------------------------------------------------------
AF