linux/drivers/gpu/drm/rockchip
Mark yao da6c9bbf41 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 15:38:46 +08: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_hdmi-rockchip.c drm/bridge/synopsys: dw-hdmi: Use bridge->mode_valid() callback 2017-06-05 12:09:50 +05:30
dw-mipi-dsi.c drm/rockchip/dsi: correct the grf_switch_reg name 2017-03-24 14:48:58 -04:00
inno_hdmi.c drm/rockchip: Refactor the component match logic. 2017-03-24 14:48:58 -04:00
inno_hdmi.h drm/rockchip: hdmi: add Innosilicon HDMI support 2016-02-18 13:56:43 +08:00
Kconfig drm/rockchip: fix Kconfig dependencies 2017-07-24 09:53:09 +08:00
Makefile drm/rockchip: Refactor the component match logic. 2017-03-24 14:48:58 -04:00
rockchip_drm_drv.c drm/rockchip: Shutdown all crtcs when unbinding drm 2017-04-07 13:28:32 -04: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 Merge airlied/drm-next into drm-misc-next 2017-02-26 21:34:42 +01: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: gem: add the lacks lock and trivial changes 2017-06-01 14:48:22 +08:00
rockchip_drm_gem.h drm/rockchip: Do not use DMA mapping API if attached to IOMMU domain 2017-02-15 08:52:13 +08: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 15:38:46 +08:00
rockchip_drm_vop.h drm/rockchip: Correct vop out_mode configure 2017-05-31 11:13:34 +08:00
rockchip_vop_reg.c drm/rockchip: Correct vop out_mode configure 2017-05-31 11:13:34 +08:00
rockchip_vop_reg.h drm/rockchip: vop: add rk3399 vop support 2016-08-23 11:44:29 -04:00