media: rockchip: isp: sync params state

The configured parameter buf, module_cfg_update will
set to 0 for user.
ISP2X_MODULE_FORCE BIT(64) for parameter buf to use.

Change-Id: I54f867b4ca50ae1ebfbee884b44bbf1a5cfc53b9
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
Cai YiWei
2022-05-21 15:19:08 +08:00
committed by Tao Huang
parent d75c75fba7
commit 4bd2aaeb8a
6 changed files with 34 additions and 6 deletions

View File

@@ -4081,10 +4081,14 @@ rkisp_params_cfg_v2x(struct rkisp_isp_params_vdev *params_vdev,
list_del(&cur_buf->queue);
if (list_empty(&params_vdev->params))
break;
else if (new_params->module_en_update) {
else if (new_params->module_en_update ||
(new_params->module_cfg_update & ISP2X_MODULE_FORCE)) {
/* update en immediately */
__isp_isr_meas_config(params_vdev, new_params, type);
__isp_isr_other_config(params_vdev, new_params, type);
__isp_isr_other_en(params_vdev, new_params, type);
__isp_isr_meas_en(params_vdev, new_params, type);
new_params->module_cfg_update = 0;
}
if (new_params->module_cfg_update & ISP2X_MODULE_LDCH)
ldch_data_abandon(params_vdev, new_params);
@@ -4118,6 +4122,7 @@ rkisp_params_cfg_v2x(struct rkisp_isp_params_vdev *params_vdev,
priv_val->last_hdrdrc = priv_val->cur_hdrdrc;
priv_val->cur_hdrmge = new_params->others.hdrmge_cfg;
priv_val->cur_hdrdrc = new_params->others.drc_cfg;
new_params->module_cfg_update = 0;
vb2_buffer_done(&cur_buf->vb.vb2_buf, VB2_BUF_STATE_DONE);
cur_buf = NULL;
}

View File

@@ -4607,10 +4607,14 @@ rkisp_params_cfg_v32(struct rkisp_isp_params_vdev *params_vdev,
list_del(&cur_buf->queue);
if (list_empty(&params_vdev->params))
break;
else if (new_params->module_en_update) {
else if (new_params->module_en_update ||
(new_params->module_cfg_update & ISP32_MODULE_FORCE)) {
/* update en immediately */
__isp_isr_meas_config(params_vdev, new_params, type);
__isp_isr_other_config(params_vdev, new_params, type);
__isp_isr_other_en(params_vdev, new_params, type);
__isp_isr_meas_en(params_vdev, new_params, type);
new_params->module_cfg_update = 0;
}
if (new_params->module_cfg_update &
(ISP32_MODULE_LDCH | ISP32_MODULE_CAC)) {
@@ -4646,6 +4650,7 @@ rkisp_params_cfg_v32(struct rkisp_isp_params_vdev *params_vdev,
priv_val->last_hdrdrc = priv_val->cur_hdrdrc;
priv_val->cur_hdrmge = new_params->others.hdrmge_cfg;
priv_val->cur_hdrdrc = new_params->others.drc_cfg;
new_params->module_cfg_update = 0;
vb2_buffer_done(&cur_buf->vb.vb2_buf, VB2_BUF_STATE_DONE);
cur_buf = NULL;
}

View File

@@ -4552,13 +4552,22 @@ rkisp_params_cfg_v3x(struct rkisp_isp_params_vdev *params_vdev,
list_del(&cur_buf->queue);
if (list_empty(&params_vdev->params))
break;
else if (new_params->module_en_update) {
else if (new_params->module_en_update ||
(new_params->module_cfg_update & ISP3X_MODULE_FORCE)) {
/* update en immediately */
__isp_isr_meas_config(params_vdev, new_params, type, 0);
__isp_isr_other_config(params_vdev, new_params, type, 0);
__isp_isr_other_en(params_vdev, new_params, type, 0);
__isp_isr_meas_en(params_vdev, new_params, type, 0);
new_params->module_cfg_update = 0;
if (hw_dev->is_unite) {
__isp_isr_other_en(params_vdev, new_params + 1, type, 1);
__isp_isr_meas_en(params_vdev, new_params + 1, type, 1);
struct isp3x_isp_params_cfg *params = new_params + 1;
__isp_isr_meas_config(params_vdev, params, type, 1);
__isp_isr_other_config(params_vdev, params, type, 1);
__isp_isr_other_en(params_vdev, params, type, 1);
__isp_isr_meas_en(params_vdev, params, type, 1);
params->module_cfg_update = 0;
}
}
if (new_params->module_cfg_update &
@@ -4603,6 +4612,9 @@ rkisp_params_cfg_v3x(struct rkisp_isp_params_vdev *params_vdev,
priv_val->last_hdrdrc = priv_val->cur_hdrdrc;
priv_val->cur_hdrmge = new_params->others.hdrmge_cfg;
priv_val->cur_hdrdrc = new_params->others.drc_cfg;
new_params->module_cfg_update = 0;
if (hw_dev->is_unite)
(new_params++)->module_cfg_update = 0;
vb2_buffer_done(&cur_buf->vb.vb2_buf, VB2_BUF_STATE_DONE);
cur_buf = NULL;
}

View File

@@ -121,7 +121,7 @@
#define ISP2X_ID_LDCH (33)
#define ISP2X_ID_GAIN (34)
#define ISP2X_ID_DEBAYER (35)
#define ISP2X_ID_MAX (36)
#define ISP2X_ID_MAX (63)
#define ISP2X_MODULE_DPCC BIT_ULL(ISP2X_ID_DPCC)
#define ISP2X_MODULE_BLS BIT_ULL(ISP2X_ID_BLS)
@@ -159,6 +159,8 @@
#define ISP2X_MODULE_GAIN BIT_ULL(ISP2X_ID_GAIN)
#define ISP2X_MODULE_DEBAYER BIT_ULL(ISP2X_ID_DEBAYER)
#define ISP2X_MODULE_FORCE BIT_ULL(ISP2X_ID_MAX)
/*
* Measurement types
*/

View File

@@ -49,6 +49,8 @@
#define ISP3X_MODULE_CSM ISP2X_MODULE_CSM
#define ISP3X_MODULE_CGC ISP2X_MODULE_CGC
#define ISP3X_MODULE_FORCE ISP2X_MODULE_FORCE
/* Measurement types */
#define ISP3X_STAT_RAWAWB ISP2X_STAT_RAWAWB
#define ISP3X_STAT_RAWAF ISP2X_STAT_RAWAF

View File

@@ -50,6 +50,8 @@
#define ISP32_MODULE_CGC ISP3X_MODULE_CGC
#define ISP32_MODULE_VSM BIT_ULL(45)
#define ISP32_MODULE_FORCE ISP3X_MODULE_FORCE
/* Measurement types */
#define ISP32_STAT_RAWAWB ISP3X_STAT_RAWAWB
#define ISP32_STAT_RAWAF ISP3X_STAT_RAWAF