diff --git a/drivers/media/platform/rockchip/cif/subdev-itf.c b/drivers/media/platform/rockchip/cif/subdev-itf.c index 5b5a065db6b7..d37a5a713689 100644 --- a/drivers/media/platform/rockchip/cif/subdev-itf.c +++ b/drivers/media/platform/rockchip/cif/subdev-itf.c @@ -531,12 +531,22 @@ void sditf_change_to_online(struct sditf_priv *priv) sditf_channel_enable(priv, 0); sditf_channel_enable(priv, 1); } - if (priv->hdr_cfg.hdr_mode == NO_HDR) + if (priv->hdr_cfg.hdr_mode == NO_HDR) { rkcif_free_rx_buf(&cif_dev->stream[0], priv->buf_num); - else if (priv->hdr_cfg.hdr_mode == HDR_X2) + cif_dev->stream[0].is_line_wake_up = false; + } else if (priv->hdr_cfg.hdr_mode == HDR_X2) { rkcif_free_rx_buf(&cif_dev->stream[1], priv->buf_num); - else if (priv->hdr_cfg.hdr_mode == HDR_X3) + cif_dev->stream[0].is_line_wake_up = false; + cif_dev->stream[1].is_line_wake_up = false; + } else if (priv->hdr_cfg.hdr_mode == HDR_X3) { rkcif_free_rx_buf(&cif_dev->stream[2], priv->buf_num); + cif_dev->stream[0].is_line_wake_up = false; + cif_dev->stream[1].is_line_wake_up = false; + cif_dev->stream[2].is_line_wake_up = false; + } + cif_dev->wait_line_cache = 0; + cif_dev->wait_line = 0; + cif_dev->wait_line_bak = 0; } static void sditf_check_capture_mode(struct rkcif_device *cif_dev)