Merge tag 'topic/atomic-core-2015-01-27' of git://anongit.freedesktop.org/drm-intel...
authorDave Airlie <airlied@redhat.com>
Tue, 27 Jan 2015 23:34:27 +0000 (09:34 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 27 Jan 2015 23:34:27 +0000 (09:34 +1000)
* tag 'topic/atomic-core-2015-01-27' of git://anongit.freedesktop.org/drm-intel:
  drm/atomic: Fix potential use of state after free
  drm/atomic-helper: debug output for modesets
  drm/atomic-helpers: Saner encoder/crtc callbacks
  drm/atomic-helpers: Recover full cursor plane behaviour
  drm/atomic-helper: add connector->dpms() implementation
  drm/atomic: Add drm_crtc_state->active
  drm: Add standardized boolean props
  drm/plane-helper: Fix transitional helper kerneldocs
  drm/plane-helper: Skip prepare_fb/cleanup_fb when newfb==oldfb

Conflicts:
include/drm/drm_crtc_helper.h

1  2 
drivers/gpu/drm/drm_atomic.c
drivers/gpu/drm/drm_atomic_helper.c
drivers/gpu/drm/drm_crtc.c
drivers/gpu/drm/drm_plane_helper.c
include/drm/drm_atomic_helper.h
include/drm/drm_crtc.h
include/drm/drm_crtc_helper.h

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 5810c027acdcf4b35e5dd312e856c9d6846ed134,4b19f7a20d62af8ba376e5442401b46ffe3ca02b..c250a22b39aba09a58aa4d7843e6ae4e7033c524
@@@ -115,9 -123,16 +123,17 @@@ struct drm_crtc_helper_funcs 
   * @get_crtc: return CRTC that the encoder is currently attached to
   * @detect: connection status detection
   * @disable: disable encoder when not in use (overrides DPMS off)
+  * @enable: enable encoder
 + * @atomic_check: check for validity of an atomic update
   *
   * The helper operations are called by the mid-layer CRTC helper.
+  *
+  * Note that with atomic helpers @dpms, @prepare and @commit hooks are
+  * deprecated. Used @enable and @disable instead exclusively.
+  *
+  * With legacy crtc helpers there's a big semantic difference between @disable
+  * and the other hooks: @disable also needs to release any resources acquired in
+  * @mode_set (like shared PLLs).
   */
  struct drm_encoder_helper_funcs {
        void (*dpms)(struct drm_encoder *encoder, int mode);
        /* detect for DAC style encoders */
        enum drm_connector_status (*detect)(struct drm_encoder *encoder,
                                            struct drm_connector *connector);
-       /* disable encoder when not in use - more explicit than dpms off */
        void (*disable)(struct drm_encoder *encoder);
++
+       void (*enable)(struct drm_encoder *encoder);
 +
 +      /* atomic helpers */
 +      int (*atomic_check)(struct drm_encoder *encoder,
 +                          struct drm_crtc_state *crtc_state,
 +                          struct drm_connector_state *conn_state);
  };
  
  /**