2012/12/6 Prathyush K <prathyush.k at samsung.com> > This patchset fixes the various issues which result in getting a PAGE FAULT > while using fimd and hdmi in exynos drm. > > Changelog v2: > Seperated patches into drm framework and fimd/mixer patches. > Not using patch drm/exynos: do not disable crtc if already off > Added two new patches for clearing windows during dpms off > > Patch 1: make wait_for_vblank a manager op > Patch 2: move hdmi's wait_for_vblank to manager_ops > Patch 3: move fimd wait_for_vblank to manager_ops > Currently, we do not call wait for vblank if encoder is in DPMS_OFF > state inside exynos_drm_encoder_complete_scanout function. This is > because wait for vblank is treated as an overlay op. This can be > modified to a manager_op thus removing the above check for DPMS_OFF. > This ensures that the hardware overlay actually gets disabled while > removing the current framebuffer. > > Patch 4: modify wait_for_vblank of mixer > Patch 5: modify wait_for_vblank of fimd > This modifies the wait_for_vblank functions to use wait queues > thus ensuring that the current task goes to sleep without taking > up CPU while waiting. Also, if crtc is off, then it returns > without waiting. > > Patch 6: clear windows in mixer dpms off > Patch 7: clear windows in fimd dpms off > When a crtc is turned off, we disable the clocks which will stop > the dma. Now if we remove the current framebuffer, we cannot > disable the overlay but the current framebuffer will still be freed. > When fimd/mixer resumes, the dma will continue from where it left off > and will throw a PAGE FAULT since the memory was freed. > This can be fixed by disabling the windows before disabling the clocks. > We should also keep track of which windows were active. This is done by > setting > the resume flag in the window properties. > Now if a current fb is removed when the crtc is off, win_disable > will set the 'resume' flag of that window to zero and return. > So when fimd/mixer resumes, that window will not be resumed. >
And "drm/exynos: do not disable crtc if already off"? otherwise isn't there any problem without this patch? > > Prathyush K (7): > drm/exynos: make wait_for_vblank a manager op > drm/exynos: move hdmi's wait_for_vblank to manager_ops > drm/exynos: move fimd wait_for_vblank to manager_ops > drm/exynos: modify wait_for_vblank of mixer > drm/exynos: modify wait_for_vblank of fimd > drm/exynos: clear windows in mixer dpms off > drm/exynos: clear windows in fimd dpms off > > drivers/gpu/drm/exynos/exynos_drm_drv.h | 6 +- > drivers/gpu/drm/exynos/exynos_drm_encoder.c | 15 +-- > drivers/gpu/drm/exynos/exynos_drm_fimd.c | 81 ++++++++-- > drivers/gpu/drm/exynos/exynos_drm_hdmi.c | 22 ++-- > drivers/gpu/drm/exynos/exynos_drm_hdmi.h | 2 +- > drivers/gpu/drm/exynos/exynos_mixer.c | 240 > +++++++++++++++++---------- > 6 files changed, 239 insertions(+), 127 deletions(-) > > _______________________________________________ > dri-devel mailing list > dri-devel at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20121207/1c82306a/attachment.html>