diff options
author | Prathyush K <prathyush.k@samsung.com> | 2012-12-06 18:46:06 +0400 |
---|---|---|
committer | Inki Dae <daeinki@gmail.com> | 2012-12-13 18:05:45 +0400 |
commit | db7e55ae527ccbca300eb5b15f5428b83325328d (patch) | |
tree | ced5ab584cade4068e94703fbaec6f952c45bd93 /drivers/gpu/drm/exynos/exynos_drm_fbdev.c | |
parent | db43fd1624ed502beed604cd8e77aa921f9e555f (diff) | |
download | linux-db7e55ae527ccbca300eb5b15f5428b83325328d.tar.xz |
drm/exynos: clear windows in fimd dpms off
Changelog v2:
Added details of original patch in chromium kernel
Changelog v1:
When fimd 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 resumes, the dma will continue from where it left off
and will throw a PAGE FAULT since the memory was freed.
This patch fixes the above problem by disabling the fimd windows
before disabling the fimd clocks. It also keeps track of which
windows were currently active by setting the 'resume' flag. When
fimd resumes, the window with a resume flag set is enabled again.
Now if a current fb is removed when fimd is off, fimd_win_disable
will set the 'resume' flag of that window to zero and return.
So when fimd resumes, that window will not be resumed.
This patch is based on the following two patches:
http://git.chromium.org/gitweb/?p=chromiumos/third_party/kernel.git;a=commitdiff;h=341e973c967304976a762211b6465b0074de62ef
http://git.chromium.org/gitweb/?p=chromiumos/third_party/kernel.git;a=commitdiff;h=cfa22e49b7408547c73532c4bb03de47cc034a05
These two patches are rebased onto the current kernel with
additional changes like removing 'fimd_win_commit' call from
the resume function since this is taken care by encoder
dpms, and the modification of resume flag in win_disable.
Signed-off-by: Prathyush K <prathyush.k@samsung.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Stephane Marchesin <marcheu@chromium.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_fbdev.c')
0 files changed, 0 insertions, 0 deletions