linux/drivers/gpu/drm/rockchip
Mark yao 64d7756469 drm/rockchip: vop: fix iommu page fault when resume
Iommu would get page fault with following path:
   vop_disable:
      1, disable all windows and set vop config done
      2, vop enter to standy, all windows not works, but their registers
         are not clean, when you read window's enable bit, may found the
         window is enable.

   vop_enable:
      1, memcpy(vop->regsbak, vop->regs, len)
         save current vop registers to vop->regsbak, then you can found
         window is enable on regsbak.
      2, VOP_WIN_SET(vop, win, gate, 1);
         force enable window gate, but gate and enable are on same
         hardware register, then window enable bit rewrite to vop hardware.
      3, vop power on, and vop might try to scan destroyed buffer,
         then iommu get page fault.

Move windows disable after vop regsbak restore, then vop regsbak mechanism
would keep tracing the modify, everything would be safe.

Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Reviewed-by: Sandy huang <sandy.huang@rock-chips.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1501494582-6934-1-git-send-email-mark.yao@rock-chips.com
2017-08-04 16:09:37 +08:00
..
Kconfig drm/rockchip: Refactor the component match logic. 2017-03-24 14:48:58 -04:00
Makefile drm/rockchip: Refactor the component match logic. 2017-03-24 14:48:58 -04:00
analogix_dp-rockchip.c Linux 4.12-rc5 2017-06-16 13:58:27 +10:00
cdn-dp-core.c drm/rockchip: fix NULL check on devm_kzalloc() return value 2017-07-10 14:13:00 -04:00
cdn-dp-core.h drm/rockchip: cdn-dp: retry to check sink count 2017-02-05 16:30:04 +08:00
cdn-dp-reg.c drm/rockchip: cdn-dp: add more log for video config 2017-03-13 15:59:35 -04:00
cdn-dp-reg.h drm/rockchip: cdn-dp: Correct PHY register address 2017-03-13 15:59:26 -04:00
dw-mipi-dsi.c drm/rockchip/dsi: correct the grf_switch_reg name 2017-03-24 14:48:58 -04:00
dw_hdmi-rockchip.c drm/rockchip: dw_hdmi: introduce the pclk for grf 2017-06-23 08:52:03 +08:00
inno_hdmi.c drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
inno_hdmi.h drm/rockchip: hdmi: add Innosilicon HDMI support 2016-02-18 13:56:43 +08:00
rockchip_drm_drv.c drm/rockchip: Use .dumb_map_offset and .dumb_destroy defaults 2017-07-29 14:00:35 +02:00
rockchip_drm_drv.h Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next-fixes 2017-06-20 11:50:41 -04:00
rockchip_drm_fb.c drm/atomic: implement drm_atomic_helper_commit_tail for runtime_pm users 2017-07-26 13:45:08 +02:00
rockchip_drm_fb.h drm: Pass the user drm_mode_fb_cmd2 as const to .fb_create() 2015-11-24 11:47:38 +01:00
rockchip_drm_fbdev.c drm/fb-helper: Automatically clean up fb_info 2017-02-07 21:36:28 +01:00
rockchip_drm_fbdev.h drm/rockchip: respect CONFIG_DRM_FBDEV_EMULATION 2016-01-22 08:45:31 +08:00
rockchip_drm_gem.c drm/rockchip: Use .dumb_map_offset and .dumb_destroy defaults 2017-07-29 14:00:35 +02:00
rockchip_drm_gem.h drm/rockchip: Use .dumb_map_offset and .dumb_destroy defaults 2017-07-29 14:00:35 +02:00
rockchip_drm_psr.c drm/rockchip: Fix up bug in psr state machine 2016-09-21 06:55:49 -07:00
rockchip_drm_psr.h drm/rockchip: Don't key off vblank for psr 2016-09-21 06:55:47 -07:00
rockchip_drm_vop.c drm/rockchip: vop: fix iommu page fault when resume 2017-08-04 16:09:37 +08:00
rockchip_drm_vop.h drm/rockchip: vop: rk3328: fix overlay abnormal 2017-07-31 08:44:18 +08:00
rockchip_vop_reg.c drm/rockchip: vop: rk3328: fix overlay abnormal 2017-07-31 08:44:18 +08:00
rockchip_vop_reg.h drm/rockchip: vop: add a series of vop support 2017-07-31 08:44:06 +08:00