• Damien Lespiau's avatar
    drm/i915: Fix atomic state when reusing the firmware fb · fb9981aa
    Damien Lespiau authored
    Right now, we get a warning when taking over the firmware fb:
    
      [drm:drm_atomic_plane_check] FB set but no CRTC
    
    with the following backtrace:
    
      [<ffffffffa010339d>] drm_atomic_check_only+0x35d/0x510 [drm]
      [<ffffffffa0103567>] drm_atomic_commit+0x17/0x60 [drm]
      [<ffffffffa00a6ccd>] drm_atomic_helper_plane_set_property+0x8d/0xd0 [drm_kms_helper]
      [<ffffffffa00f1fed>] drm_mode_plane_set_obj_prop+0x2d/0x90 [drm]
      [<ffffffffa00a8a1b>] restore_fbdev_mode+0x6b/0xf0 [drm_kms_helper]
      [<ffffffffa00aa969>] drm_fb_helper_restore_fbdev_mode_unlocked+0x29/0x80 [drm_kms_helper]
      [<ffffffffa00aa9e2>] drm_fb_helper_set_par+0x22/0x50 [drm_kms_helper]
      [<ffffffffa050a71a>] intel_fbdev_set_par+0x1a/0x60 [i915]
      [<ffffffff813ad444>] fbcon_init+0x4f4/0x580
    
    That's because we update the plane state with the fb from the firmware, but we
    never associate the plane to that CRTC.
    
    We don't quite have the full DRM take over from HW state just yet, so
    fake enough of the plane atomic state to pass the checks.
    
    v2: Fix the state on which we set the CRTC in the case we're sharing the
        initial fb with another pipe. (Matt)
    Signed-off-by: default avatarDamien Lespiau <damien.lespiau@intel.com>
    Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    fb9981aa
intel_display.c 387 KB