[RFC 1/9] drm: add atomic fxns

Jesse Barnes jbarnes at virtuousgeek.org
Wed Sep 12 09:57:20 PDT 2012


On Sun,  9 Sep 2012 22:03:14 -0500
Rob Clark <rob.clark at linaro.org> wrote:

> From: Rob Clark <rob at ti.com>
> 
> The 'atomic' mechanism allows for multiple properties to be updated,
> checked, and commited atomically.  This will be the basis of atomic-
> modeset and nuclear-pageflip.
> 
> The basic flow is:
> 
>    state = dev->atomic_begin();
>    for (... one or more ...)
>       obj->set_property(obj, state, prop, value);
>    if (dev->atomic_check(state))
>       dev->atomic_commit(state, event);
>    dev->atomic_end(state);

I think the above is more suited to drm_crtc_helper code.  I think the
top level callback should contain the arrays and be a single "multi
flip" hook (or maybe a check then set double callback).  For some
drivers that'll end up being a lot simpler, rather than sprinkling
atomic handling code in all the set_property callbacks.

Having a transactional API just seems a little messier with both the
atomic state and per-property state to track and rollback in the case
of failure.

-- 
Jesse Barnes, Intel Open Source Technology Center


More information about the dri-devel mailing list