aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_fbdev.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_fbdev.c')
-rw-r--r--drivers/gpu/drm/i915/intel_fbdev.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
index 09840f4380f9..97a91e631915 100644
--- a/drivers/gpu/drm/i915/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/intel_fbdev.c
@@ -406,8 +406,8 @@ retry:
406 continue; 406 continue;
407 } 407 }
408 408
409 encoder = connector->encoder; 409 encoder = connector->state->best_encoder;
410 if (!encoder || WARN_ON(!encoder->crtc)) { 410 if (!encoder || WARN_ON(!connector->state->crtc)) {
411 if (connector->force > DRM_FORCE_OFF) 411 if (connector->force > DRM_FORCE_OFF)
412 goto bail; 412 goto bail;
413 413
@@ -420,7 +420,7 @@ retry:
420 420
421 num_connectors_enabled++; 421 num_connectors_enabled++;
422 422
423 new_crtc = intel_fb_helper_crtc(fb_helper, encoder->crtc); 423 new_crtc = intel_fb_helper_crtc(fb_helper, connector->state->crtc);
424 424
425 /* 425 /*
426 * Make sure we're not trying to drive multiple connectors 426 * Make sure we're not trying to drive multiple connectors
@@ -466,17 +466,22 @@ retry:
466 * usually contains. But since our current 466 * usually contains. But since our current
467 * code puts a mode derived from the post-pfit timings 467 * code puts a mode derived from the post-pfit timings
468 * into crtc->mode this works out correctly. 468 * into crtc->mode this works out correctly.
469 *
470 * This is crtc->mode and not crtc->state->mode for the
471 * fastboot check to work correctly. crtc_state->mode has
472 * I915_MODE_FLAG_INHERITED, which we clear to force check
473 * state.
469 */ 474 */
470 DRM_DEBUG_KMS("looking for current mode on connector %s\n", 475 DRM_DEBUG_KMS("looking for current mode on connector %s\n",
471 connector->name); 476 connector->name);
472 modes[i] = &encoder->crtc->mode; 477 modes[i] = &connector->state->crtc->mode;
473 } 478 }
474 crtcs[i] = new_crtc; 479 crtcs[i] = new_crtc;
475 480
476 DRM_DEBUG_KMS("connector %s on pipe %c [CRTC:%d]: %dx%d%s\n", 481 DRM_DEBUG_KMS("connector %s on pipe %c [CRTC:%d]: %dx%d%s\n",
477 connector->name, 482 connector->name,
478 pipe_name(to_intel_crtc(encoder->crtc)->pipe), 483 pipe_name(to_intel_crtc(connector->state->crtc)->pipe),
479 encoder->crtc->base.id, 484 connector->state->crtc->base.id,
480 modes[i]->hdisplay, modes[i]->vdisplay, 485 modes[i]->hdisplay, modes[i]->vdisplay,
481 modes[i]->flags & DRM_MODE_FLAG_INTERLACE ? "i" :""); 486 modes[i]->flags & DRM_MODE_FLAG_INTERLACE ? "i" :"");
482 487