Hi Mark,Hi Daniel
On 1 December 2015 at 03:26, Mark Yao<mark.yao@xxxxxxxxxxxxxx> wrote:
>+static void rockchip_atomic_wait_for_complete(struct drm_atomic_state *state)I'd be much more comfortable if this passed in an explicit pointer to
>+{
>+ 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);
>+ }
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.