[PATCH v3 10/20] drm: omapdrm: Only commit planes on active CRTCs
laurent.pinchart at ideasonboard.com
Mon Dec 12 22:53:41 UTC 2016
On Tuesday 20 Sep 2016 16:51:11 Tomi Valkeinen wrote:
> On 19/09/16 15:27, Laurent Pinchart wrote:
> > 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, so
> > use the DRM core infrastructure instead of reinventing it.
> I don't follow this desc. What is omapdrm reinventing? At least this
> patch does not remove any of the "reinvention".
There used to be one, but it got removed when I rebased the patch series. I'll
reword the commit message.
> What does DRM_PLANE_COMMIT_ACTIVE_ONLY do? Skips plane HW configuration
> for planes on crtcs that are disabled? The plane HW config will still be
> done when the crtc is about to be enabled, right?
It skips plane update (atomic_begin, atomic_disable, atomic_flush) for
disabled CRTCs. The CRTC .begin() operation is still called for those CRTCs,
only plane update is skipped.
Now that I wrote that, I'm not quite sure this change is right. It looks like
disabling a plane is shadowed, and without an atomic_flush call the GO bit
will never be set. However, the problem predates this patch, as the GO bit
will only be set if dispc_mgr_is_enabled() returns true, which shouldn't be
the case for disabled CRTCs.
How is this supposed to work, how is plane disable supposed to be synchronized
at the hardware level ?
More information about the dri-devel