[RFC PATCH 3/9] drm/rockchip: Convert to support atomic API

Mark yao mark.yao at rock-chips.com
Tue Dec 1 01:31:28 PST 2015


On 2015年12月01日 16:18, Daniel Stone wrote:
> Hi Mark,
>
> On 1 December 2015 at 03:26, Mark Yao<mark.yao at rock-chips.com>  wrote:
>> >+static void rockchip_atomic_wait_for_complete(struct drm_atomic_state *state)
>> >+{
>> >+       struct drm_crtc_state *crtc_state;
>> >+       struct drm_crtc *crtc;
>> >+       int i;
>> >+
>> >+       for_each_crtc_in_state(state, crtc, crtc_state, i) {
>> >+               if (!crtc->state->active)
>> >+                       continue;
>> >+
>> >+               WARN_ON(drm_crtc_vblank_get(crtc));
>> >+       }
>> >+
>> >+       for_each_crtc_in_state(state, crtc, crtc_state, i) {
>> >+               if (!crtc->state->active)
>> >+                       continue;
>> >+
>> >+               rockchip_crtc_wait_for_update(crtc);
>> >+       }
> I'd be much more comfortable if this passed in an explicit pointer to
> state, or an address to wait for, rather than have wait_for_complete
> dig out state with no locking. The latter is potentially racy for
> async operations.
>
Hi Daniel
    "if this passed in an explicit pointer to state, or an address to 
wait for", I don't understand, can you point how it work?

-- 
Mark Yao




More information about the dri-devel mailing list