|
@@ -1655,6 +1655,9 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
|
|
if (config->funcs->atomic_check)
|
|
if (config->funcs->atomic_check)
|
|
ret = config->funcs->atomic_check(state->dev, state);
|
|
ret = config->funcs->atomic_check(state->dev, state);
|
|
|
|
|
|
|
|
+ if (ret)
|
|
|
|
+ return ret;
|
|
|
|
+
|
|
if (!state->allow_modeset) {
|
|
if (!state->allow_modeset) {
|
|
for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
|
|
for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
|
|
if (drm_atomic_crtc_needs_modeset(crtc_state)) {
|
|
if (drm_atomic_crtc_needs_modeset(crtc_state)) {
|
|
@@ -1665,7 +1668,7 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- return ret;
|
|
|
|
|
|
+ return 0;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(drm_atomic_check_only);
|
|
EXPORT_SYMBOL(drm_atomic_check_only);
|
|
|
|
|
|
@@ -2167,10 +2170,10 @@ int drm_mode_atomic_ioctl(struct drm_device *dev,
|
|
struct drm_atomic_state *state;
|
|
struct drm_atomic_state *state;
|
|
struct drm_modeset_acquire_ctx ctx;
|
|
struct drm_modeset_acquire_ctx ctx;
|
|
struct drm_plane *plane;
|
|
struct drm_plane *plane;
|
|
- struct drm_out_fence_state *fence_state = NULL;
|
|
|
|
|
|
+ struct drm_out_fence_state *fence_state;
|
|
unsigned plane_mask;
|
|
unsigned plane_mask;
|
|
int ret = 0;
|
|
int ret = 0;
|
|
- unsigned int i, j, num_fences = 0;
|
|
|
|
|
|
+ unsigned int i, j, num_fences;
|
|
|
|
|
|
/* disallow for drivers not supporting atomic: */
|
|
/* disallow for drivers not supporting atomic: */
|
|
if (!drm_core_check_feature(dev, DRIVER_ATOMIC))
|
|
if (!drm_core_check_feature(dev, DRIVER_ATOMIC))
|
|
@@ -2211,6 +2214,8 @@ retry:
|
|
plane_mask = 0;
|
|
plane_mask = 0;
|
|
copied_objs = 0;
|
|
copied_objs = 0;
|
|
copied_props = 0;
|
|
copied_props = 0;
|
|
|
|
+ fence_state = NULL;
|
|
|
|
+ num_fences = 0;
|
|
|
|
|
|
for (i = 0; i < arg->count_objs; i++) {
|
|
for (i = 0; i < arg->count_objs; i++) {
|
|
uint32_t obj_id, count_props;
|
|
uint32_t obj_id, count_props;
|