mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
media: rockchip: vicap modify logic of sof
skip sof and frame_index when loss frame, only work in multi online Signed-off-by: Zefa Chen <zefa.chen@rock-chips.com> Change-Id: Ib9739dec0674deac0c0ad182f6836f9edf858212
This commit is contained in:
@@ -12472,7 +12472,8 @@ static bool rkcif_check_frame_active(struct rkcif_device *cif_dev)
|
||||
{
|
||||
if (cif_dev->sditf[0] &&
|
||||
cif_dev->sditf[0]->mode.rdbk_mode < RKISP_VICAP_RDBK_AIQ &&
|
||||
cif_dev->sditf[0]->is_toisp_off)
|
||||
cif_dev->sditf[0]->is_toisp_off &&
|
||||
cif_dev->sditf[0]->is_multi_online)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -13280,7 +13281,8 @@ static void rkcif_deal_sof(struct rkcif_device *cif_dev)
|
||||
tmp_dev->stream[0].frame_idx);
|
||||
}
|
||||
if (tmp_dev->sditf[0] &&
|
||||
tmp_dev->sditf[0]->mode.rdbk_mode < RKISP_VICAP_RDBK_AIQ) {
|
||||
tmp_dev->sditf[0]->mode.rdbk_mode < RKISP_VICAP_RDBK_AIQ &&
|
||||
tmp_dev->sditf[0]->is_multi_online) {
|
||||
if (!tmp_dev->sditf[0]->is_toisp_off)
|
||||
tmp_dev->stream[0].frame_idx++;
|
||||
} else {
|
||||
|
||||
@@ -607,6 +607,12 @@ static long sditf_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
|
||||
sditf_disable_immediately(priv);
|
||||
}
|
||||
return 0;
|
||||
case RKISP_VICAP_CMD_MULTI_ONLINE:
|
||||
if (*(int *)arg)
|
||||
priv->is_multi_online = true;
|
||||
else
|
||||
priv->is_multi_online = false;
|
||||
return 0;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -1740,6 +1746,7 @@ static int rkcif_subdev_media_init(struct sditf_priv *priv)
|
||||
mutex_init(&priv->mutex);
|
||||
priv->hdr_wrap_line = 0;
|
||||
priv->is_buf_init = false;
|
||||
priv->is_multi_online = false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -127,6 +127,7 @@ struct sditf_priv {
|
||||
u32 hdr_wrap_line;
|
||||
bool is_toisp_off;
|
||||
bool is_buf_init;
|
||||
bool is_multi_online;
|
||||
};
|
||||
|
||||
extern struct platform_driver rkcif_subdev_driver;
|
||||
|
||||
Reference in New Issue
Block a user