[PATCH 12/17] drm: convert crtc to properties/state
Rob Clark
robdclark at gmail.com
Mon May 26 04:35:45 PDT 2014
On Mon, May 26, 2014 at 5:31 AM, Daniel Vetter <daniel at ffwll.ch> wrote:
>> +struct drm_crtc_state *
>> +drm_atomic_get_crtc_state(struct drm_crtc *crtc, struct drm_atomic_state *a)
>> +{
>> + struct drm_crtc_state *cstate;
>> + int ret;
>> +
>> + cstate = a->cstates[crtc->id];
>> +
>> + if (!cstate) {
>> + ret = drm_modeset_lock(&crtc->mutex, &a->acquire_ctx);
>> + if (ret)
>> + return ERR_PTR(ret);
>> +
>> + cstate = drm_crtc_create_state(crtc);
>> + if (!cstate)
>> + return ERR_PTR(-ENOMEM);
>> + init_crtc_state(crtc, cstate, a);
>> + a->crtcs[crtc->id] = crtc;
>> + a->cstates[crtc->id] = cstate;
>> +
>> + /* we'll need it later, so make sure we have state
>> + * for primary plane too:
>> + */
>> + drm_atomic_get_plane_state(crtc->primary, a);
>
> I haven't figured out why. With primary planes I don't really see a need
> for this. If we need it to implement the legacy setcrtc interface, then
> that should be done there, not here.
well, if you sort out how to disable primary helper plane, then yes,
you are right :-)
see commit_crtc_state()
BR,
-R
More information about the dri-devel
mailing list