linux_dsm_epyc7002/drivers/gpu/drm/exynos
Inki Dae 94ab95a94c drm/exynos: fimd: fix page fault issue with iommu
This patch resolves page fault issue with iommu and atomic feature
when modetest test application is terminated.

ENWIN_F field of WINCONx register enables or disable a dma channel to
each hardware overlay - the value of the field will be updated to real
register after vsync.

So this patch makes sure the dma channel is disabled by waiting for vsync
one time after clearing shadow registers to all dma channels.

Below shows the page fault issue:
setting mode 720x1280-60Hz@XR24 on connectors 31, crtc 29
freq: 59.99Hz

[   34.831025] PAGE FAULT occurred at 0x20400000 by 11e20000.sysmmu(Page
		table base: 0x6e324000)
[   34.838072]  Lv1 entry: 0x6e92dc01
[   34.841489] ------------[ cut here ]------------
[   34.846058] kernel BUG at drivers/iommu/exynos-iommu.c:364!
[   34.851614] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
[   34.857428] Modules linked in:
<--snip-->
[   35.210894] [<c02880d0>] (exynos_sysmmu_irq) from [<c00608f8>]
(handle_irq_event_percpu+0x78/0x134)
[   35.219914] [<c00608f8>] (handle_irq_event_percpu) from [<c00609f0>]
(handle_irq_event+0x3c/0x5c)
[   35.228768] [<c00609f0>] (handle_irq_event) from [<c0063698>]
(handle_level_irq+0xc4/0x13c)
[   35.237101] [<c0063698>] (handle_level_irq) from [<c005ff7c>]
(generic_handle_irq+0x2c/0x3c)
[   35.245521] [<c005ff7c>] (generic_handle_irq) from [<c02214ec>]
(combiner_handle_cascade_irq+0x94/0x100)
[   35.254980] [<c02214ec>] (combiner_handle_cascade_irq) from
[<c005ff7c>] (generic_handle_irq+0x2c/0x3c)
[   35.264353] [<c005ff7c>] (generic_handle_irq) from [<c0060248>]
(__handle_domain_irq+0x7c/0xec)
[   35.273034] [<c0060248>] (__handle_domain_irq) from [<c0009434>]
(gic_handle_irq+0x30/0x68)
[   35.281366] [<c0009434>] (gic_handle_irq) from [<c0012ec0>]
(__irq_svc+0x40/0x74)

Signed-off-by: Inki Dae <inki.dae@samsung.com>
2015-06-20 00:33:00 +09:00
..
exynos7_drm_decon.c drm/exynos: remove chained calls to enable 2015-06-20 00:32:58 +09:00
exynos_dp_core.c drm/exynos: fix broken component binding in case of multiple pipelines 2015-06-20 00:32:55 +09:00
exynos_dp_core.h drm/exynos: dp: support drm_bridge 2015-01-28 08:47:29 +01:00
exynos_dp_reg.c drm/exynos: Fix checkpatch warning in exynos_dp_reg.c 2014-06-02 02:07:12 +09:00
exynos_dp_reg.h drm/exynos: Move dp driver from video/ to drm/ 2014-03-24 00:36:34 +09:00
exynos_drm_buf.c drm/exynos: fix DMA_ATTR_NO_KERNEL_MAPPING usage 2015-02-07 16:38:41 +09:00
exynos_drm_buf.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_core.c drm/exynos: add component framework support 2014-06-02 02:07:04 +09:00
exynos_drm_crtc.c drm/exynos: split exynos_crtc->dpms in enable() and disable() 2015-06-20 00:32:53 +09:00
exynos_drm_crtc.h drm/exynos: Constify exynos_drm_crtc_ops 2015-05-19 22:50:53 +09:00
exynos_drm_dmabuf.c dma-buf: cleanup dma_buf_export() to make it easily extensible 2015-04-21 14:47:16 +05:30
exynos_drm_dmabuf.h drm/exynos: remove DRM_EXYNOS_DMABUF config 2015-02-07 16:38:40 +09:00
exynos_drm_dpi.c drm/exynos: fix broken component binding in case of multiple pipelines 2015-06-20 00:32:55 +09:00
exynos_drm_drv.c drm/exynos: remove SoC checking code 2015-06-20 00:32:55 +09:00
exynos_drm_drv.h drm/exynos: remove chained calls to enable 2015-06-20 00:32:58 +09:00
exynos_drm_dsi.c drm/exynos: dsi: check whether dsi is enabled before sending data 2015-06-20 00:32:56 +09:00
exynos_drm_encoder.c drm/exynos: remove unnecessary calls to disable_plane() 2015-06-20 00:32:53 +09:00
exynos_drm_encoder.h drm/exynos: remove extra declaration of struct exynos_drm_manager 2014-11-24 18:02:50 +09:00
exynos_drm_fb.c drm/exynos: add exynos specific .atomic_commit() 2015-06-20 00:32:51 +09:00
exynos_drm_fb.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fbdev.c drm/exynos: don't disable unused functions at init 2015-06-20 00:32:49 +09:00
exynos_drm_fbdev.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fimc.c drm: remove DRM_FORMAT_NV12MT 2015-02-04 10:10:05 +01:00
exynos_drm_fimc.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fimd.c drm/exynos: fimd: fix page fault issue with iommu 2015-06-20 00:33:00 +09:00
exynos_drm_g2d.c drm / exynos / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM 2014-12-04 01:04:55 +01:00
exynos_drm_g2d.h drm/exynos: add G2D driver 2012-05-17 20:14:48 +09:00
exynos_drm_gem.c drm/exynos: use drm generic mmap interface 2014-09-20 01:00:13 +09:00
exynos_drm_gem.h drm/exynos: fix DMA_ATTR_NO_KERNEL_MAPPING usage 2015-02-07 16:38:41 +09:00
exynos_drm_gsc.c drm: remove DRM_FORMAT_NV12MT 2015-02-04 10:10:05 +01:00
exynos_drm_gsc.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_iommu.c drm/exynos: iommu: improve a check for non-iommu dma_ops 2015-06-20 00:33:00 +09:00
exynos_drm_iommu.h drm/exynos: remove uneeded declaration of struct dma_iommu_mapping 2014-11-24 18:02:50 +09:00
exynos_drm_ipp.c drm/exynos: ipp: validate a GEM handle with multiple planes 2015-06-20 00:32:58 +09:00
exynos_drm_ipp.h drm/exynos/ipp: remove unused field in command node 2014-09-20 00:56:10 +09:00
exynos_drm_plane.c drm/exynos: remove exported functions from exynos_drm_plane 2015-06-20 00:32:49 +09:00
exynos_drm_plane.h drm/exynos: remove exported functions from exynos_drm_plane 2015-06-20 00:32:49 +09:00
exynos_drm_rotator.c drm / exynos / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM 2014-12-04 01:04:55 +01:00
exynos_drm_rotator.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_vidi.c drm/exynos: remove chained calls to enable 2015-06-20 00:32:58 +09:00
exynos_drm_vidi.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_hdmi.c drm/exynos: fix broken component binding in case of multiple pipelines 2015-06-20 00:32:55 +09:00
exynos_mixer.c drm/exynos: remove chained calls to enable 2015-06-20 00:32:58 +09:00
exynos_mixer.h drm/exynos: Remove exynos_drm_hdmi shim 2014-03-24 00:36:32 +09:00
Kconfig drm/exynos: add a dependency on FB_S3C to DECON driver 2015-06-20 00:32:54 +09:00
Makefile drm/exynos: Add DECON driver 2015-02-11 20:27:08 +09:00
regs-fimc.h drm/exynos: add device tree support for fimc ipp driver 2013-04-29 14:35:32 +09:00
regs-gsc.h drm/exynos: add gsc ipp driver 2012-12-15 02:40:00 +09:00
regs-hdmi.h drm/exynos: add hdmiphy power on/off sequence 2014-06-02 02:07:15 +09:00
regs-mixer.h drm/exynos: fix typos in hdmi and mixer 2015-04-13 11:39:40 +09:00
regs-rotator.h drm/exynos: add rotator ipp driver 2012-12-15 02:39:41 +09:00
regs-vp.h drm/exynos: added hdmi display support 2011-12-29 11:21:42 +09:00