diff options
| author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-11-26 10:57:41 -0500 |
|---|---|---|
| committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-12-17 14:23:22 -0500 |
| commit | d9b13620fa09d2652008f96e083592c772532fd1 (patch) | |
| tree | 418292e212afc0e8242e27097955d7cc6fbb68eb /include/drm | |
| parent | 4b08eae52f2f73723dbc4dd4d251eb60a7d8c0e1 (diff) | |
drm/atomic-helper: Export both plane and modeset check helpers
The default call sequence for these two parts won't fit for all
drivers. So export the two pieces and explain with a bit of kerneldoc
when each should be called.
v2: Squash in fixup from Rob to actually add the newly exported
functions to headers
Cc: Rob Clark <robdclark@gmail.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Diffstat (limited to 'include/drm')
| -rw-r--r-- | include/drm/drm_atomic_helper.h | 4 | ||||
| -rw-r--r-- | include/drm/drm_crtc.h | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h index f956b413311e..2095917ff8c7 100644 --- a/include/drm/drm_atomic_helper.h +++ b/include/drm/drm_atomic_helper.h | |||
| @@ -30,6 +30,10 @@ | |||
| 30 | 30 | ||
| 31 | #include <drm/drm_crtc.h> | 31 | #include <drm/drm_crtc.h> |
| 32 | 32 | ||
| 33 | int drm_atomic_helper_check_modeset(struct drm_device *dev, | ||
| 34 | struct drm_atomic_state *state); | ||
| 35 | int drm_atomic_helper_check_planes(struct drm_device *dev, | ||
| 36 | struct drm_atomic_state *state); | ||
| 33 | int drm_atomic_helper_check(struct drm_device *dev, | 37 | int drm_atomic_helper_check(struct drm_device *dev, |
| 34 | struct drm_atomic_state *state); | 38 | struct drm_atomic_state *state); |
| 35 | int drm_atomic_helper_commit(struct drm_device *dev, | 39 | int drm_atomic_helper_commit(struct drm_device *dev, |
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index b86329813ad3..4ee78212f8bf 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h | |||
| @@ -238,6 +238,7 @@ struct drm_atomic_state; | |||
| 238 | /** | 238 | /** |
| 239 | * struct drm_crtc_state - mutable CRTC state | 239 | * struct drm_crtc_state - mutable CRTC state |
| 240 | * @enable: whether the CRTC should be enabled, gates all other state | 240 | * @enable: whether the CRTC should be enabled, gates all other state |
| 241 | * @active: whether the CRTC is actively displaying (used for DPMS) | ||
| 241 | * @mode_changed: for use by helpers and drivers when computing state updates | 242 | * @mode_changed: for use by helpers and drivers when computing state updates |
| 242 | * @plane_mask: bitmask of (1 << drm_plane_index(plane)) of attached planes | 243 | * @plane_mask: bitmask of (1 << drm_plane_index(plane)) of attached planes |
| 243 | * @last_vblank_count: for helpers and drivers to capture the vblank of the | 244 | * @last_vblank_count: for helpers and drivers to capture the vblank of the |
| @@ -248,9 +249,16 @@ struct drm_atomic_state; | |||
| 248 | * @event: optional pointer to a DRM event to signal upon completion of the | 249 | * @event: optional pointer to a DRM event to signal upon completion of the |
| 249 | * state update | 250 | * state update |
| 250 | * @state: backpointer to global drm_atomic_state | 251 | * @state: backpointer to global drm_atomic_state |
| 252 | * | ||
| 253 | * Note that the distinction between @enable and @active is rather subtile: | ||
| 254 | * Flipping @active while @enable is set without changing anything else may | ||
| 255 | * never return in a failure from the ->atomic_check callback. Userspace assumes | ||
| 256 | * that a DPMS On will always succeed. In other words: @enable controls resource | ||
| 257 | * assignment, @active controls the actual hardware state. | ||
| 251 | */ | 258 | */ |
| 252 | struct drm_crtc_state { | 259 | struct drm_crtc_state { |
| 253 | bool enable; | 260 | bool enable; |
| 261 | bool active; | ||
| 254 | 262 | ||
| 255 | /* computed state bits used by helpers and drivers */ | 263 | /* computed state bits used by helpers and drivers */ |
| 256 | bool planes_changed : 1; | 264 | bool planes_changed : 1; |
