• Damien Lespiau's avatar
    drm/i915/skl: Implement the new update_plane() for primary planes · 70d21f0e
    Damien Lespiau authored
    Skylake makes primary planes the same as sprite planes and call the
    result "universal planes".
    
    This commit emulates a primary plane with plane 0, taking the
    opportunity to redefine primary and sprite registers to be identical now
    that the underlying hardware is. It also makes sense as plenty of fields
    have changed.
    
    v2: Rebase on top of the vma code.
    
    v3: Follow upstream evolution:
    - Drop return values.
    - Remove pipe checks since redudant and BUG instead.
    - Remove tiling checks and BUG instead.
    - Drop commented out DISP_MODIFY usage.
    
    v4: s/plane/primary_plane/
    
    v5: Misc fixes:
    - Fix the fields we need to clear up
    - Disable trickle feed
    - Correctly use PLANE_OFFSET for the panning
    
    v6: (Jesse)
    Use pipe src size when programming plane size. This makes cloned configs
    work correctly w/o the use of a panel fitter.
    
    v7: Rebase on top of Ville's rmw elimination series
    
    v8: Remove clearing the trickle feed bit now that we don't do a RMW (Rodrigo,
        Damien)
        Add a comment about the stride unit (Rodrigo)
    Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> (v1,5,6,7)
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (v2,3)
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    70d21f0e
i915_reg.h 255 KB