|
@@ -768,34 +768,44 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state)
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * drm_atomic_helper_commit_pre_planes - modeset commit before plane updates
|
|
|
|
|
|
+ * drm_atomic_helper_commit_modeset_disables - modeset commit to disable outputs
|
|
* @dev: DRM device
|
|
* @dev: DRM device
|
|
* @old_state: atomic state object with old state structures
|
|
* @old_state: atomic state object with old state structures
|
|
*
|
|
*
|
|
- * This function commits the modeset changes that need to be committed before
|
|
|
|
- * updating planes. It shuts down all the outputs that need to be shut down and
|
|
|
|
|
|
+ * This function shuts down all the outputs that need to be shut down and
|
|
* prepares them (if required) with the new mode.
|
|
* prepares them (if required) with the new mode.
|
|
|
|
+ *
|
|
|
|
+ * For compatability with legacy crtc helpers this should be called before
|
|
|
|
+ * drm_atomic_helper_commit_planes(), which is what the default commit function
|
|
|
|
+ * does. But drivers with different needs can group the modeset commits together
|
|
|
|
+ * and do the plane commits at the end. This is useful for drivers doing runtime
|
|
|
|
+ * PM since planes updates then only happen when the CRTC is actually enabled.
|
|
*/
|
|
*/
|
|
-void drm_atomic_helper_commit_pre_planes(struct drm_device *dev,
|
|
|
|
- struct drm_atomic_state *old_state)
|
|
|
|
|
|
+void drm_atomic_helper_commit_modeset_disables(struct drm_device *dev,
|
|
|
|
+ struct drm_atomic_state *old_state)
|
|
{
|
|
{
|
|
disable_outputs(dev, old_state);
|
|
disable_outputs(dev, old_state);
|
|
set_routing_links(dev, old_state);
|
|
set_routing_links(dev, old_state);
|
|
crtc_set_mode(dev, old_state);
|
|
crtc_set_mode(dev, old_state);
|
|
}
|
|
}
|
|
-EXPORT_SYMBOL(drm_atomic_helper_commit_pre_planes);
|
|
|
|
|
|
+EXPORT_SYMBOL(drm_atomic_helper_commit_modeset_disables);
|
|
|
|
|
|
/**
|
|
/**
|
|
- * drm_atomic_helper_commit_post_planes - modeset commit after plane updates
|
|
|
|
|
|
+ * drm_atomic_helper_commit_modeset_enables - modeset commit to enable outputs
|
|
* @dev: DRM device
|
|
* @dev: DRM device
|
|
* @old_state: atomic state object with old state structures
|
|
* @old_state: atomic state object with old state structures
|
|
*
|
|
*
|
|
- * This function commits the modeset changes that need to be committed after
|
|
|
|
- * updating planes: It enables all the outputs with the new configuration which
|
|
|
|
- * had to be turned off for the update.
|
|
|
|
|
|
+ * This function enables all the outputs with the new configuration which had to
|
|
|
|
+ * be turned off for the update.
|
|
|
|
+ *
|
|
|
|
+ * For compatability with legacy crtc helpers this should be called after
|
|
|
|
+ * drm_atomic_helper_commit_planes(), which is what the default commit function
|
|
|
|
+ * does. But drivers with different needs can group the modeset commits together
|
|
|
|
+ * and do the plane commits at the end. This is useful for drivers doing runtime
|
|
|
|
+ * PM since planes updates then only happen when the CRTC is actually enabled.
|
|
*/
|
|
*/
|
|
-void drm_atomic_helper_commit_post_planes(struct drm_device *dev,
|
|
|
|
- struct drm_atomic_state *old_state)
|
|
|
|
|
|
+void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
|
|
|
|
+ struct drm_atomic_state *old_state)
|
|
{
|
|
{
|
|
int ncrtcs = old_state->dev->mode_config.num_crtc;
|
|
int ncrtcs = old_state->dev->mode_config.num_crtc;
|
|
int i;
|
|
int i;
|
|
@@ -861,7 +871,7 @@ void drm_atomic_helper_commit_post_planes(struct drm_device *dev,
|
|
encoder->bridge->funcs->enable(encoder->bridge);
|
|
encoder->bridge->funcs->enable(encoder->bridge);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-EXPORT_SYMBOL(drm_atomic_helper_commit_post_planes);
|
|
|
|
|
|
+EXPORT_SYMBOL(drm_atomic_helper_commit_modeset_enables);
|
|
|
|
|
|
static void wait_for_fences(struct drm_device *dev,
|
|
static void wait_for_fences(struct drm_device *dev,
|
|
struct drm_atomic_state *state)
|
|
struct drm_atomic_state *state)
|
|
@@ -1030,11 +1040,11 @@ int drm_atomic_helper_commit(struct drm_device *dev,
|
|
|
|
|
|
wait_for_fences(dev, state);
|
|
wait_for_fences(dev, state);
|
|
|
|
|
|
- drm_atomic_helper_commit_pre_planes(dev, state);
|
|
|
|
|
|
+ drm_atomic_helper_commit_modeset_disables(dev, state);
|
|
|
|
|
|
drm_atomic_helper_commit_planes(dev, state);
|
|
drm_atomic_helper_commit_planes(dev, state);
|
|
|
|
|
|
- drm_atomic_helper_commit_post_planes(dev, state);
|
|
|
|
|
|
+ drm_atomic_helper_commit_modeset_enables(dev, state);
|
|
|
|
|
|
drm_atomic_helper_wait_for_vblanks(dev, state);
|
|
drm_atomic_helper_wait_for_vblanks(dev, state);
|
|
|
|
|