|
@@ -661,6 +661,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
|
|
old_fb)) {
|
|
old_fb)) {
|
|
DRM_ERROR("failed to set mode on [CRTC:%d]\n",
|
|
DRM_ERROR("failed to set mode on [CRTC:%d]\n",
|
|
set->crtc->base.id);
|
|
set->crtc->base.id);
|
|
|
|
+ set->crtc->fb = old_fb;
|
|
ret = -EINVAL;
|
|
ret = -EINVAL;
|
|
goto fail;
|
|
goto fail;
|
|
}
|
|
}
|
|
@@ -675,8 +676,10 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
|
|
set->crtc->fb = set->fb;
|
|
set->crtc->fb = set->fb;
|
|
ret = crtc_funcs->mode_set_base(set->crtc,
|
|
ret = crtc_funcs->mode_set_base(set->crtc,
|
|
set->x, set->y, old_fb);
|
|
set->x, set->y, old_fb);
|
|
- if (ret != 0)
|
|
|
|
|
|
+ if (ret != 0) {
|
|
|
|
+ set->crtc->fb = old_fb;
|
|
goto fail;
|
|
goto fail;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
DRM_DEBUG_KMS("Setting connector DPMS state to on\n");
|
|
DRM_DEBUG_KMS("Setting connector DPMS state to on\n");
|
|
for (i = 0; i < set->num_connectors; i++) {
|
|
for (i = 0; i < set->num_connectors; i++) {
|