• Ville Syrjälä's avatar
    drm/i915: Re-enable GGTT earlier during resume on pre-gen6 platforms · ac840ae5
    Ville Syrjälä authored
    Move the intel_enable_gtt() call to happen before we touch the GTT
    during resume. Right now it's done way too late. Before
    commit ebb7c78d ("agp/intel-gtt: Only register fake agp driver for gen1")
    it was actually done earlier on account of also getting called from
    the resume hook of the fake agp driver. With the fake agp driver
    no longer getting registered we must move the call up.
    
    The symptoms I've seen on my 830 machine include lowmem corruption,
    other kinds of memory corruption, and straight up hung machine during
    or just after resume. Not really sure what causes the memory corruption,
    but so far I've not seen any with this fix.
    
    I think we shouldn't really need to call this during init, but we have
    been doing that so I've decided to keep the call. However moving that
    call earlier could be prudent as well. Doing it right after the
    intel-gtt probe seems appropriate.
    
    Also tested this on 946gz,elk,ilk and all seemed quite happy with
    this change.
    
    v2: Reorder init_hw vs. enable_hw functions (Chris)
    
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: drm-intel-fixes@lists.freedesktop.org
    Fixes: ebb7c78d ("agp/intel-gtt: Only register fake agp driver for gen1")
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1462559755-353-1-git-send-email-ville.syrjala@linux.intel.comReviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    ac840ae5
i915_drv.c 50.3 KB