• Daniel Vetter's avatar
    drm/fb-helper: fixup set_config semantics · 7e53f3a4
    Daniel Vetter authored
    While doing the modeset rework for drm/i915 I've noticed that the fb
    helper is very liberal with the semantics of the ->set_config
    interface:
    - It doesn't bother clearing stale modes (e.g. when unplugging a
      screen).
    - It unconditionally sets the fb, even if no mode will be set on a
      given crtc.
    - The initial setup is a bit fun since we need to pick crtcs to decide
      the desired fb size, but also should set the modeset->fb pointer.
      Explain what's going on in the fixup code after the fb is allocated.
    
    The crtc helper didn't really care, but the new i915 modeset
    infrastructure did, so I've had to add a bunch of special-cases to
    catch this.
    
    Fix this all up and enforce the interface by converting the checks in
    drm/i915/intel_display.c to BUG_ONs.
    
    v2: Fix commit message spell fail spotted by Rob Clark.
    Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    7e53f3a4
drm_fb_helper.c 38.4 KB