• David Woodhouse's avatar
    drm/i915: Init PPGTT before context enable · f48a0165
    David Woodhouse authored
    Commit 82460d97 ("drm/i915: Rework ppgtt init to no require an aliasing
    ppgtt") introduced a regression on Broadwell, triggering the following
    IOMMU fault at startup:
    
      vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
      dmar: DRHD: handling fault status reg 2
      dmar: DMAR:[DMA Write] Request device [00:02.0] fault addr 880000
      DMAR:[fault reason 23] Unknown
      fbcon: inteldrmfb (fb0) is primary device
    
    Further commentary from Daniel:
    
    I sugggested this change to David after staring at the offending patch
    for a while. I have no idea and theory whatsoever why this would upset
    the gpu less than the other way round. But it seems to work. David
    promised to chase hw people a bit more to get a more meaningful answer.
    
    Wrt the comment that this deletes: I've done some digging and afaict
    loading context before ppgtt enable was once required before our recent
    restructuring of the context/ppgtt init code: Before that context sw
    setup (i.e. allocating the default context) and hw setup was smashed
    together.  Also the setup of the default context was the bit that
    actually allocated the aliasing ppgtt structures. Which is the reason
    for the context before ppgtt depency.
    
    Or was, since with all the untangling there's no no real depency any
    more (functional, who knows what the hw is doing), so the comment is
    just stale.
    Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    f48a0165
i915_gem.c 136 KB