[PATCH 3/3] drm/atomic: Refuse to steal encoders from connectors not part of the state.

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Thu Feb 18 11:35:18 UTC 2016


Op 18-02-16 om 12:07 schreef Daniel Vetter:
> On Thu, Feb 18, 2016 at 09:54:43AM +0100, Maarten Lankhorst wrote:
>> Because encoder <-> connector mapping is fixed when not moving to
>> another crtc we can just reject connectors trying to steal an encoder
>> from a connector not part of the state. This won't break MST on i915
>> because in that case connectors will be part of the state if you switch
>> them between crtc's. If they're not they stay on the same crtc, and
>> encoder stealing would have failed anyway.
> We must do this for backwards compat. setCrtc on a connector that needs an
> encoder already used on some other crtc is supposed to disable that
> encoder (and the entire pipe if it's all unused) if we need it.
Well that won't do what you expect it to do in certain cases..

crtc1 has MST_DP1

setcrtc(crtc1, { MST_DP1, MST_DP2 });

MST_DP1 gets disabled.

or

setcrtc fails with -EINVAL

Seems to me that if you steal an encoder, failing with an error would be better.

But for backward compat we could add some code to allow encoder stealing in the legacy setcrtc helper?


More information about the dri-devel mailing list