drm/crtc-helper: Add caveat to disable_unused_functions doc
diff mbox

Message ID 1452695476-31147-1-git-send-email-daniel.vetter@ffwll.ch
State New
Headers show

Commit Message

Daniel Vetter Jan. 13, 2016, 2:31 p.m. UTC
This shouldn't be used by atomic drivers any more, it confuses the
state tracking.

Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/drm_crtc_helper.c | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Daniel Vetter Jan. 25, 2016, 3:45 p.m. UTC | #1
On Wed, Jan 13, 2016 at 03:31:16PM +0100, Daniel Vetter wrote:
> This shouldn't be used by atomic drivers any more, it confuses the
> state tracking.
> 
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

Applied this one to drm-misc.
-Daniel

> ---
>  drivers/gpu/drm/drm_crtc_helper.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
> index a02a7f9a6a9d..a278fbbe23e0 100644
> --- a/drivers/gpu/drm/drm_crtc_helper.c
> +++ b/drivers/gpu/drm/drm_crtc_helper.c
> @@ -220,6 +220,15 @@ static void __drm_helper_disable_unused_functions(struct drm_device *dev)
>   * disconnected connectors. Then it will disable all unused encoders and CRTCs
>   * either by calling their disable callback if available or by calling their
>   * dpms callback with DRM_MODE_DPMS_OFF.
> + *
> + * NOTE:
> + *
> + * This function is part of the legacy modeset helper library and will cause
> + * major confusion with atomic drivers. This is because atomic helpers guarantee
> + * to never call ->disable() hooks on a disabled function, or ->enable() hooks
> + * on an enabled functions. drm_helper_disable_unused_functions() on the other
> + * hand throws such guarantees into the wind and calls disable hooks
> + * unconditionally on unused functions.
>   */
>  void drm_helper_disable_unused_functions(struct drm_device *dev)
>  {
> -- 
> 2.7.0.rc3
>

Patch
diff mbox

diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index a02a7f9a6a9d..a278fbbe23e0 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -220,6 +220,15 @@  static void __drm_helper_disable_unused_functions(struct drm_device *dev)
  * disconnected connectors. Then it will disable all unused encoders and CRTCs
  * either by calling their disable callback if available or by calling their
  * dpms callback with DRM_MODE_DPMS_OFF.
+ *
+ * NOTE:
+ *
+ * This function is part of the legacy modeset helper library and will cause
+ * major confusion with atomic drivers. This is because atomic helpers guarantee
+ * to never call ->disable() hooks on a disabled function, or ->enable() hooks
+ * on an enabled functions. drm_helper_disable_unused_functions() on the other
+ * hand throws such guarantees into the wind and calls disable hooks
+ * unconditionally on unused functions.
  */
 void drm_helper_disable_unused_functions(struct drm_device *dev)
 {