aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_atomic_helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/drm_atomic_helper.c')
-rw-r--r--drivers/gpu/drm/drm_atomic_helper.c12
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}
2096EXPORT_SYMBOL(drm_atomic_helper_swap_state); 2101EXPORT_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 */
3522int drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc, 3528int drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc,
3523 u16 *red, u16 *green, u16 *blue, 3529 u16 *red, u16 *green, u16 *blue,