diff --git a/msm/sde/sde_crtc.c b/msm/sde/sde_crtc.c index f3dd5632f0..faced95531 100644 --- a/msm/sde/sde_crtc.c +++ b/msm/sde/sde_crtc.c @@ -2410,6 +2410,7 @@ exit: while (sde_crtc->frame_data.cnt--) _sde_crtc_put_frame_data_buffer( sde_crtc->frame_data.buf[sde_crtc->frame_data.cnt]); + sde_crtc->frame_data.cnt = 0; } static void _sde_crtc_frame_data_notify(struct drm_crtc *crtc, @@ -2451,7 +2452,7 @@ void sde_crtc_get_frame_data(struct drm_crtc *crtc) if (frame_data->cnt) { struct msm_gem_object *msm_gem; - msm_gem = to_msm_bo(frame_data->buf[frame_data->cnt]->gem); + msm_gem = to_msm_bo(frame_data->buf[frame_data->idx]->gem); data = (struct sde_drm_frame_data_packet *) (((u8 *)msm_gem->vaddr) + msm_gem->offset); } else {