/** * drm_bridge_helper_reset_crtc - Reset the pipeline feeding a bridge * @bridge: DRM bridge to reset * @ctx: lock acquisition context * * Reset a @bridge pipeline. It will power-cycle all active components * between the CRTC and connector that bridge is connected to. * * As it relies on drm_atomic_helper_reset_crtc(), the same limitations * apply. * * Returns: * * 0 on success or a negative error code on failure. If the error * returned is EDEADLK, the whole atomic sequence must be restarted.
*/ int drm_bridge_helper_reset_crtc(struct drm_bridge *bridge, struct drm_modeset_acquire_ctx *ctx)
{ struct drm_connector *connector; struct drm_encoder *encoder = bridge->encoder; struct drm_device *dev = encoder->dev; struct drm_crtc *crtc; int ret;
ret = drm_modeset_lock(&dev->mode_config.connection_mutex, ctx); if (ret) return ret;
connector = drm_atomic_get_connector_for_encoder(encoder, ctx); if (IS_ERR(connector)) {
ret = PTR_ERR(connector); goto out;
}
if (!connector->state) {
ret = -EINVAL; goto out;
}
crtc = connector->state->crtc;
ret = drm_atomic_helper_reset_crtc(crtc, ctx); if (ret) goto out;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.