mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 00:28:52 +02:00 
			
		
		
		
	drm/atomic-helper: Introduce drm_atomic_helper_reset_crtc()
drm_atomic_helper_reset_crtc() allows to reset the CRTC active outputs. This resets all active components available between the CRTC and connectors. Signed-off-by: Herve Codina <herve.codina@bootlin.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Maxime Ripard <mripard@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/20250210132620.42263-3-herve.codina@bootlin.com Signed-off-by: Maxime Ripard <mripard@kernel.org>
This commit is contained in:
		
							parent
							
								
									feb7ef6e2b
								
							
						
					
					
						commit
						ab83b7f6a0
					
				
					 2 changed files with 43 additions and 0 deletions
				
			
		|  | @ -3400,6 +3400,47 @@ int drm_atomic_helper_disable_all(struct drm_device *dev, | |||
| } | ||||
| EXPORT_SYMBOL(drm_atomic_helper_disable_all); | ||||
| 
 | ||||
| /**
 | ||||
|  * drm_atomic_helper_reset_crtc - reset the active outputs of a CRTC | ||||
|  * @crtc: DRM CRTC | ||||
|  * @ctx: lock acquisition context | ||||
|  * | ||||
|  * Reset the active outputs by indicating that connectors have changed. | ||||
|  * This implies a reset of all active components available between the CRTC and | ||||
|  * connectors. | ||||
|  * | ||||
|  * Returns: | ||||
|  * 0 on success or a negative error code on failure. | ||||
|  */ | ||||
| int drm_atomic_helper_reset_crtc(struct drm_crtc *crtc, | ||||
| 				 struct drm_modeset_acquire_ctx *ctx) | ||||
| { | ||||
| 	struct drm_atomic_state *state; | ||||
| 	struct drm_crtc_state *crtc_state; | ||||
| 	int ret; | ||||
| 
 | ||||
| 	state = drm_atomic_state_alloc(crtc->dev); | ||||
| 	if (!state) | ||||
| 		return -ENOMEM; | ||||
| 
 | ||||
| 	state->acquire_ctx = ctx; | ||||
| 
 | ||||
| 	crtc_state = drm_atomic_get_crtc_state(state, crtc); | ||||
| 	if (IS_ERR(crtc_state)) { | ||||
| 		ret = PTR_ERR(crtc_state); | ||||
| 		goto out; | ||||
| 	} | ||||
| 
 | ||||
| 	crtc_state->connectors_changed = true; | ||||
| 
 | ||||
| 	ret = drm_atomic_commit(state); | ||||
| out: | ||||
| 	drm_atomic_state_put(state); | ||||
| 
 | ||||
| 	return ret; | ||||
| } | ||||
| EXPORT_SYMBOL(drm_atomic_helper_reset_crtc); | ||||
| 
 | ||||
| /**
 | ||||
|  * drm_atomic_helper_shutdown - shutdown all CRTC | ||||
|  * @dev: DRM device | ||||
|  |  | |||
|  | @ -139,6 +139,8 @@ int drm_atomic_helper_set_config(struct drm_mode_set *set, | |||
| 
 | ||||
| int drm_atomic_helper_disable_all(struct drm_device *dev, | ||||
| 				  struct drm_modeset_acquire_ctx *ctx); | ||||
| int drm_atomic_helper_reset_crtc(struct drm_crtc *crtc, | ||||
| 				 struct drm_modeset_acquire_ctx *ctx); | ||||
| void drm_atomic_helper_shutdown(struct drm_device *dev); | ||||
| struct drm_atomic_state * | ||||
| drm_atomic_helper_duplicate_state(struct drm_device *dev, | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Herve Codina
						Herve Codina