drm/i915: flip on a no fb -> fb transition if crtc is active v3
If the crtc is active, we can simply flip a new fb onto it, provided the other mode setting reqs are met. Otherwise, we'll need to do a full mode set to re-enable the crtc. v2: check for crtc active and set mode_changed accordingly v3: add module parameter, i915.fastboot, to control no fb -> fb flip behavior Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Родитель
4d6a3e63bc
Коммит
319d9827eb
|
@ -8676,8 +8676,16 @@ intel_set_config_compute_mode_changes(struct drm_mode_set *set,
|
||||||
} else if (set->crtc->fb != set->fb) {
|
} else if (set->crtc->fb != set->fb) {
|
||||||
/* If we have no fb then treat it as a full mode set */
|
/* If we have no fb then treat it as a full mode set */
|
||||||
if (set->crtc->fb == NULL) {
|
if (set->crtc->fb == NULL) {
|
||||||
DRM_DEBUG_KMS("crtc has no fb, full mode set\n");
|
struct intel_crtc *intel_crtc =
|
||||||
config->mode_changed = true;
|
to_intel_crtc(set->crtc);
|
||||||
|
|
||||||
|
if (intel_crtc->active && i915_fastboot) {
|
||||||
|
DRM_DEBUG_KMS("crtc has no fb, will flip\n");
|
||||||
|
config->fb_changed = true;
|
||||||
|
} else {
|
||||||
|
DRM_DEBUG_KMS("inactive crtc, full mode set\n");
|
||||||
|
config->mode_changed = true;
|
||||||
|
}
|
||||||
} else if (set->fb == NULL) {
|
} else if (set->fb == NULL) {
|
||||||
config->mode_changed = true;
|
config->mode_changed = true;
|
||||||
} else if (set->fb->pixel_format !=
|
} else if (set->fb->pixel_format !=
|
||||||
|
|
Загрузка…
Ссылка в новой задаче