mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-13 21:02:35 +00:00
drm: omapdrm: Let the DRM core skip plane commit on inactive CRTCs
The DRM core supports skipping plane update for inactive CRTCs for hardware that don't need it or can't cope with it. That's our case, and the driver already skips flushing planes on inactice CRTCs. We can't remove the check from the driver, as active CRTCs are disabled at the hardware level when an atomic flush is performed if a mode set is pending. There's however no need to forward the plane commit calls to the driver, so use the DRM core infrastructure to skip them with a detailed comment to explain why the check must still be kept in the driver. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
f933a3a93b
commit
dadf4659d0
@ -414,7 +414,13 @@ static void omap_crtc_atomic_flush(struct drm_crtc *crtc,
|
||||
dispc_mgr_set_gamma(omap_crtc->channel, lut, length);
|
||||
}
|
||||
|
||||
/* Only flush the CRTC if it is currently enabled. */
|
||||
/*
|
||||
* Only flush the CRTC if it is currently enabled. CRTCs that require a
|
||||
* mode set are disabled prior plane updates and enabled afterwards.
|
||||
* They are thus not active (regardless of what their CRTC core state
|
||||
* reports) and the DRM core could thus call this function even though
|
||||
* the CRTC is currently disabled. Do nothing in that case.
|
||||
*/
|
||||
if (!omap_crtc->enabled)
|
||||
return;
|
||||
|
||||
|
@ -96,7 +96,8 @@ static void omap_atomic_complete(struct omap_atomic_state_commit *commit)
|
||||
dispc_runtime_get();
|
||||
|
||||
drm_atomic_helper_commit_modeset_disables(dev, old_state);
|
||||
drm_atomic_helper_commit_planes(dev, old_state, 0);
|
||||
drm_atomic_helper_commit_planes(dev, old_state,
|
||||
DRM_PLANE_COMMIT_ACTIVE_ONLY);
|
||||
drm_atomic_helper_commit_modeset_enables(dev, old_state);
|
||||
|
||||
omap_atomic_wait_for_completion(dev, old_state);
|
||||
|
Loading…
x
Reference in New Issue
Block a user