• Paulo Zanoni's avatar
    drm/i915: set dev_priv->fbc.crtc before scheduling the enable work · e9c5fd26
    Paulo Zanoni authored
    This thing where we need to get the crtc either from the work
    structure or the fbc structure itself is confusing and unnecessary.
    Set fbc.crtc right when scheduling the enable work so we can always
    use it.
    
    The problem is not what gets passed and how to retrieve it. The
    problem is that when we're in the other parts of the code we always
    have to keep in mind that if FBC is already enabled we have to get the
    CRTC from place A, if FBC is scheduled we have to get the CRTC from
    place B, and if it's disabled there's no CRTC. Having a single place
    to retrieve the CRTC from allows us to treat the "is enabled" and "is
    scheduled" cases as the same case, reducing the mistake surface. I
    guess I should add this to the commit message.
    
    Besides the immediate advantages, this is also going to make one of
    the next commits much simpler. And even later, when we introduce
    enable/disable + activate/deactivate, this will be even simpler as
    we'll set the CRTC at enable time. So all the
    activate/deactivate/update code can just look at the single CRTC
    variable regardless of the current state.
    
    v2: Improve commit message (Chris).
    v3: Rebase after changing the patch order.
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/
    e9c5fd26
intel_fbc.c 29.5 KB