diff options
Diffstat (limited to 'drivers/gpu/drm/drm_atomic_helper.c')
-rw-r--r-- | drivers/gpu/drm/drm_atomic_helper.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 8be9719284b0..6426339427a4 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c | |||
@@ -1070,8 +1070,8 @@ EXPORT_SYMBOL(drm_atomic_helper_commit_modeset_enables); | |||
1070 | * | 1070 | * |
1071 | * Note that @pre_swap is needed since the point where we block for fences moves | 1071 | * Note that @pre_swap is needed since the point where we block for fences moves |
1072 | * around depending upon whether an atomic commit is blocking or | 1072 | * around depending upon whether an atomic commit is blocking or |
1073 | * non-blocking. For async commit all waiting needs to happen after | 1073 | * non-blocking. For non-blocking commit all waiting needs to happen after |
1074 | * drm_atomic_helper_swap_state() is called, but for synchronous commits we want | 1074 | * drm_atomic_helper_swap_state() is called, but for blocking commits we want |
1075 | * to wait **before** we do anything that can't be easily rolled back. That is | 1075 | * to wait **before** we do anything that can't be easily rolled back. That is |
1076 | * before we call drm_atomic_helper_swap_state(). | 1076 | * before we call drm_atomic_helper_swap_state(). |
1077 | * | 1077 | * |
@@ -2032,6 +2032,8 @@ void drm_atomic_helper_swap_state(struct drm_atomic_state *state, | |||
2032 | struct drm_plane *plane; | 2032 | struct drm_plane *plane; |
2033 | struct drm_plane_state *old_plane_state, *new_plane_state; | 2033 | struct drm_plane_state *old_plane_state, *new_plane_state; |
2034 | struct drm_crtc_commit *commit; | 2034 | struct drm_crtc_commit *commit; |
2035 | void *obj, *obj_state; | ||
2036 | const struct drm_private_state_funcs *funcs; | ||
2035 | 2037 | ||
2036 | if (stall) { | 2038 | if (stall) { |
2037 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) { | 2039 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) { |
@@ -2092,6 +2094,9 @@ void drm_atomic_helper_swap_state(struct drm_atomic_state *state, | |||
2092 | state->planes[i].state = old_plane_state; | 2094 | state->planes[i].state = old_plane_state; |
2093 | plane->state = new_plane_state; | 2095 | plane->state = new_plane_state; |
2094 | } | 2096 | } |
2097 | |||
2098 | __for_each_private_obj(state, obj, obj_state, i, funcs) | ||
2099 | funcs->swap_state(obj, &state->private_objs[i].obj_state); | ||
2095 | } | 2100 | } |
2096 | EXPORT_SYMBOL(drm_atomic_helper_swap_state); | 2101 | EXPORT_SYMBOL(drm_atomic_helper_swap_state); |
2097 | 2102 | ||
@@ -3517,7 +3522,8 @@ EXPORT_SYMBOL(drm_atomic_helper_connector_destroy_state); | |||
3517 | * | 3522 | * |
3518 | * Implements support for legacy gamma correction table for drivers | 3523 | * Implements support for legacy gamma correction table for drivers |
3519 | * that support color management through the DEGAMMA_LUT/GAMMA_LUT | 3524 | * that support color management through the DEGAMMA_LUT/GAMMA_LUT |
3520 | * properties. | 3525 | * properties. See drm_crtc_enable_color_mgmt() and the containing chapter for |
3526 | * how the atomic color management and gamma tables work. | ||
3521 | */ | 3527 | */ |
3522 | int drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc, | 3528 | int drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc, |
3523 | u16 *red, u16 *green, u16 *blue, | 3529 | u16 *red, u16 *green, u16 *blue, |