set_bit(VIDEO_RES_CHANGE, &video->flags);
        clear_bit(VIDEO_FRAME_INPRG, &video->flags);
 
+       video->v4l2_input_status = V4L2_IN_ST_NO_SIGNAL;
+
        aspeed_video_off(video);
        aspeed_video_bufs_done(video, VB2_BUF_STATE_ERROR);
 
        struct delayed_work *dwork = to_delayed_work(work);
        struct aspeed_video *video = container_of(dwork, struct aspeed_video,
                                                  res_work);
-       u32 input_status = video->v4l2_input_status;
 
        aspeed_video_on(video);
 
        aspeed_video_get_resolution(video);
 
        if (video->detected_timings.width != video->active_timings.width ||
-           video->detected_timings.height != video->active_timings.height ||
-           input_status != video->v4l2_input_status) {
+           video->detected_timings.height != video->active_timings.height) {
                static const struct v4l2_event ev = {
                        .type = V4L2_EVENT_SOURCE_CHANGE,
                        .u.src_change.changes = V4L2_EVENT_SRC_CH_RESOLUTION,