Skip to content

Commit 5f40775

Browse files
danvetjnikula
authored andcommitted
drm/i915: Fixup legacy plane->crtc link for initial fb config
This is a very similar bug in the load detect code fixed in commit 9128b04 Author: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Tue Mar 3 17:31:21 2015 +0100 drm/i915: Fix modeset state confusion in the load detect code But this time around it was the initial fb code that forgot to update the plane->crtc pointer. Otherwise it's the exact same bug, with the exact same restrains (any set_config call/ioctl that doesn't disable the pipe papers over the bug for free, so fairly hard to hit in normal testing). So if you want the full explanation just go read that one over there - it's rather long ... Cc: Matt Roper <matthew.d.roper@intel.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Josh Boyer <jwboyer@fedoraproject.org> Cc: Jani Nikula <jani.nikula@linux.intel.com> Reported-and-tested-by: Josh Boyer <jwboyer@fedoraproject.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> [Jani: backported to drm-intel-fixes for v4.0-rc] Reference: http://mid.gmane.org/CA+5PVA7ChbtJrknqws1qvZcbrg1CW2pQAFkSMURWWgyASRyGXg@mail.gmail.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
1 parent 3164a80 commit 5f40775

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

drivers/gpu/drm/i915/intel_display.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2442,6 +2442,7 @@ intel_find_plane_obj(struct intel_crtc *intel_crtc,
24422442
struct drm_plane *primary = intel_crtc->base.primary;
24432443

24442444
primary->state->crtc = &intel_crtc->base;
2445+
primary->crtc = &intel_crtc->base;
24452446
update_state_fb(primary);
24462447

24472448
return;
@@ -2476,6 +2477,7 @@ intel_find_plane_obj(struct intel_crtc *intel_crtc,
24762477
drm_framebuffer_reference(c->primary->fb);
24772478
primary->fb = c->primary->fb;
24782479
primary->state->crtc = &intel_crtc->base;
2480+
primary->crtc = &intel_crtc->base;
24792481
obj->frontbuffer_bits |= INTEL_FRONTBUFFER_PRIMARY(intel_crtc->pipe);
24802482
break;
24812483
}

0 commit comments

Comments
 (0)