Re: [PATCH 2/6] drm/rockchip: vop: fix iommu page fault when resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi mark,

在 2017/7/31 17:49, Mark Yao 写道:
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@xxxxxxxxxxxxxx>
---
  drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 33 +++++++++++++----------------
  1 file changed, 15 insertions(+), 18 deletions(-)


Reviewed-by: Sandy huang <sandy.huang@xxxxxxxxxxxxxx>

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux