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. 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@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel