Commit c85d0eec authored by Dafna Hirschfeld's avatar Dafna Hirschfeld Committed by Mauro Carvalho Chehab

media: staging: rkisp1: call params isr only upon frame out

Currently the params isr is called and then returned when
isp-frame interrupt is not set. This condition is already
tested in the isp's isr so move the call under the condition
in the isp's isr.
Signed-off-by: default avatarDafna Hirschfeld <dafna.hirschfeld@collabora.com>
Acked-by: default avatarHelen Koike <helen.koike@collabora.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 56947d2c
...@@ -460,7 +460,7 @@ void rkisp1_isp_isr(struct rkisp1_device *rkisp1); ...@@ -460,7 +460,7 @@ void rkisp1_isp_isr(struct rkisp1_device *rkisp1);
void rkisp1_mipi_isr(struct rkisp1_device *rkisp1); void rkisp1_mipi_isr(struct rkisp1_device *rkisp1);
void rkisp1_capture_isr(struct rkisp1_device *rkisp1); void rkisp1_capture_isr(struct rkisp1_device *rkisp1);
void rkisp1_stats_isr(struct rkisp1_stats *stats, u32 isp_ris); void rkisp1_stats_isr(struct rkisp1_stats *stats, u32 isp_ris);
void rkisp1_params_isr(struct rkisp1_device *rkisp1, u32 isp_mis); void rkisp1_params_isr(struct rkisp1_device *rkisp1);
/* register/unregisters functions of the entities */ /* register/unregisters functions of the entities */
int rkisp1_capture_devs_register(struct rkisp1_device *rkisp1); int rkisp1_capture_devs_register(struct rkisp1_device *rkisp1);
......
...@@ -1140,12 +1140,12 @@ void rkisp1_isp_isr(struct rkisp1_device *rkisp1) ...@@ -1140,12 +1140,12 @@ void rkisp1_isp_isr(struct rkisp1_device *rkisp1)
isp_ris = rkisp1_read(rkisp1, RKISP1_CIF_ISP_RIS); isp_ris = rkisp1_read(rkisp1, RKISP1_CIF_ISP_RIS);
if (isp_ris & RKISP1_STATS_MEAS_MASK) if (isp_ris & RKISP1_STATS_MEAS_MASK)
rkisp1_stats_isr(&rkisp1->stats, isp_ris); rkisp1_stats_isr(&rkisp1->stats, isp_ris);
}
/* /*
* Then update changed configs. Some of them involve * Then update changed configs. Some of them involve
* lot of register writes. Do those only one per frame. * lot of register writes. Do those only one per frame.
* Do the updates in the order of the processing flow. * Do the updates in the order of the processing flow.
*/ */
rkisp1_params_isr(rkisp1, status); rkisp1_params_isr(rkisp1);
}
} }
...@@ -1185,12 +1185,13 @@ static void rkisp1_isp_isr_meas_config(struct rkisp1_params *params, ...@@ -1185,12 +1185,13 @@ static void rkisp1_isp_isr_meas_config(struct rkisp1_params *params,
} }
} }
void rkisp1_params_isr(struct rkisp1_device *rkisp1, u32 isp_mis) void rkisp1_params_isr(struct rkisp1_device *rkisp1)
{ {
unsigned int frame_sequence = atomic_read(&rkisp1->isp.frame_sequence); unsigned int frame_sequence = atomic_read(&rkisp1->isp.frame_sequence);
struct rkisp1_params *params = &rkisp1->params; struct rkisp1_params *params = &rkisp1->params;
struct rkisp1_params_cfg *new_params; struct rkisp1_params_cfg *new_params;
struct rkisp1_buffer *cur_buf = NULL; struct rkisp1_buffer *cur_buf = NULL;
u32 isp_ctrl;
spin_lock(&params->config_lock); spin_lock(&params->config_lock);
if (!params->is_streaming) { if (!params->is_streaming) {
...@@ -1209,9 +1210,6 @@ void rkisp1_params_isr(struct rkisp1_device *rkisp1, u32 isp_mis) ...@@ -1209,9 +1210,6 @@ void rkisp1_params_isr(struct rkisp1_device *rkisp1, u32 isp_mis)
new_params = (struct rkisp1_params_cfg *)(cur_buf->vaddr); new_params = (struct rkisp1_params_cfg *)(cur_buf->vaddr);
if (isp_mis & RKISP1_CIF_ISP_FRAME) {
u32 isp_ctrl;
rkisp1_isp_isr_other_config(params, new_params); rkisp1_isp_isr_other_config(params, new_params);
rkisp1_isp_isr_meas_config(params, new_params); rkisp1_isp_isr_meas_config(params, new_params);
...@@ -1226,7 +1224,6 @@ void rkisp1_params_isr(struct rkisp1_device *rkisp1, u32 isp_mis) ...@@ -1226,7 +1224,6 @@ void rkisp1_params_isr(struct rkisp1_device *rkisp1, u32 isp_mis)
cur_buf->vb.sequence = frame_sequence; cur_buf->vb.sequence = frame_sequence;
vb2_buffer_done(&cur_buf->vb.vb2_buf, VB2_BUF_STATE_DONE); vb2_buffer_done(&cur_buf->vb.vb2_buf, VB2_BUF_STATE_DONE);
}
} }
static const struct rkisp1_cif_isp_awb_meas_config rkisp1_awb_params_default_config = { static const struct rkisp1_cif_isp_awb_meas_config rkisp1_awb_params_default_config = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment