From acde5fed49ef291bbf524c5bc0b5c31a7c8ff136 Mon Sep 17 00:00:00 2001 From: SPRESENSE <41312067+SPRESENSE@users.noreply.github.com> Date: Tue, 29 Mar 2022 11:00:30 +0900 Subject: [PATCH] drivers/video/isx012: Fix getting the value of auto exposure Fix bug to get the current setting value at AE auto mode. --- drivers/video/isx012.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/video/isx012.c b/drivers/video/isx012.c index e31b7902ce1..8c8389b327a 100644 --- a/drivers/video/isx012.c +++ b/drivers/video/isx012.c @@ -1841,6 +1841,8 @@ static int isx012_get_value(uint32_t id, uint16_t read_src; uint16_t *read_dst; int ret = OK; + uint16_t exposure_time_lsb; + uint16_t exposure_time_msb; ASSERT(value); @@ -2001,6 +2003,21 @@ static int isx012_get_value(uint32_t id, ISX012_REG_EXPOSURETIME, ISX012_SIZE_EXPOSURETIME); + if (value->value32 == REGVAL_EXPOSURETIME_AUTO) + { + exposure_time_lsb = isx012_getreg + (priv, + ISX012_REG_EXPOSUREAUTOVALUE_LSB, + ISX012_SIZE_EXPOSUREAUTOVALUE); + exposure_time_msb = isx012_getreg + (priv, + ISX012_REG_EXPOSUREAUTOVALUE_MSB, + ISX012_SIZE_EXPOSUREAUTOVALUE); + + value->value32 = (uint16_t)(((exposure_time_msb << 16) + | exposure_time_lsb) + / ISX012_UNIT_EXPOSURETIME_US); + } break; case IMGSENSOR_ID_AUTO_N_PRESET_WB: