disp: msm: sde: fix indexing for frame data

This change adds a fix to correct indexing logic while
parsing frame data buffers and resets the count correctly.

Change-Id: Ic5a20ecd7093423ea293432c9492eb920acdd6f4
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
This commit is contained in:
Nilaan Gunabalachandran
2021-05-18 17:10:50 -04:00
parent 30ce58bf9b
commit cd77cb672d

View File

@@ -2407,6 +2407,7 @@ exit:
while (sde_crtc->frame_data.cnt--) while (sde_crtc->frame_data.cnt--)
_sde_crtc_put_frame_data_buffer( _sde_crtc_put_frame_data_buffer(
sde_crtc->frame_data.buf[sde_crtc->frame_data.cnt]); 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, static void _sde_crtc_frame_data_notify(struct drm_crtc *crtc,
@@ -2448,7 +2449,7 @@ void sde_crtc_get_frame_data(struct drm_crtc *crtc)
if (frame_data->cnt) { if (frame_data->cnt) {
struct msm_gem_object *msm_gem; 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 *) data = (struct sde_drm_frame_data_packet *)
(((u8 *)msm_gem->vaddr) + msm_gem->offset); (((u8 *)msm_gem->vaddr) + msm_gem->offset);
} else { } else {