• Matt Roper's avatar
    drm/i915: Kill intel_crtc->cursor_{width, height} (v2) · 3dd512fb
    Matt Roper authored
    The cursor size fields in intel_crtc just duplicate the data from
    cursor->state.crtc_{w,h} so we don't need them any more.  Worse, their
    use in the watermark code actually introduces a subtle bug since they
    don't get updated to mirror the state values until the plane commit
    stage, which is *after* we've already used them to calculate new
    watermark values.  This happens because we had to move watermark updates
    slightly earlier (outside vblank evasion) in commit
    
            commit 32b7eeec
            Author: Matt Roper <matthew.d.roper@intel.com>
            Date:   Wed Dec 24 07:59:06 2014 -0800
    
                drm/i915: Refactor work that can sleep out of commit (v7)
    
    Dropping the intel_crtc fields and just using the state values (which
    are properly updated by the time watermark updates happen) should solve
    the problem.
    
    Aside from the actual removal of the struct fields (which are formatted
    in a way that I couldn't figure out how to match in Coccinelle), the
    rest of this patch was generated via the following semantic patch:
    
            // Drop assignment
            @@
            struct intel_crtc *C;
            struct drm_plane_state S;
            @@
            (
            - C->cursor_width = S.crtc_w;
            |
            - C->cursor_height = S.crtc_h;
            )
    
            // Replace usage
            @@
            struct intel_crtc *C;
            expression E;
            @@
            (
            - C->cursor_width
            + C->base.cursor->state->crtc_w
            |
            - C->cursor_height
            + C->base.cursor->state->crtc_h
            |
            - to_intel_crtc(E)->cursor_width
            + E->cursor->state->crtc_w
            |
            - to_intel_crtc(E)->cursor_height
            + E->cursor->state->crtc_h
            )
    
    v2: Rebase
    
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Joe Konno <joe.konno@linux.intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89346Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    3dd512fb
intel_display.c 391 KB