diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_fbdev.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_fbdev.c | 17 |
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 | ||