• Rodrigo Vivi's avatar
    drm/i915: Add support for FBC on Ivybridge. · abe959c7
    Rodrigo Vivi authored
    This patch introduce Frame Buffer Compression (FBC) support for IVB,
    without enabling it by default.
    It adds a new function gen7_enable_fbc to avoid getting
    ironlake_enable_fbc messed with many IS_IVYBRIDGE checks.
    
    v2: Fixes from Ville.
         	*  Fix Plane. FBC is tied to primary plane A in HSW
        	*  Fix DPFC initial write to avoid let trash on the register.
    v3: Checking for bad plane on intel_update_fbc() as Chris suggested.
    v4: Ville pointed out that according to BSpec FBC_CTL bits 0:3 must be 0.
    v5: Up to v4 this work was entirely focused on Haswell. However Ville
        noticed I could reuse the FBC work done for HSW and get FBC for free
        at Ivybridge. So it makes more sense enable FBC for IVB first.
        FBC for HSW comming on next patches. We are just not enabling it by
        default on IVB.
    v6: Fix confused commit name (by Matt Turner).
    v7: Remove gtt_offset shift since it is page aligned byte offset (by Ville).
    
    Cc: Matt Turner <mattst88@gmail.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@gmail.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    abe959c7
intel_pm.c 139 KB