[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20190604103422.63a61f46@collabora.com>
Date: Tue, 4 Jun 2019 10:34:22 +0200
From: Boris Brezillon <boris.brezillon@...labora.com>
To: Helen Koike <helen.koike@...labora.com>
Cc: dri-devel@...ts.freedesktop.org, nicholas.kazlauskas@....com,
andrey.grodzovsky@....com, daniel.vetter@...ll.ch,
linux-kernel@...r.kernel.org, Tomasz Figa <tfiga@...omium.org>,
David Airlie <airlied@...ux.ie>,
Sean Paul <seanpaul@...gle.com>, kernel@...labora.com,
harry.wentland@....com,
Stéphane Marchesin <marcheu@...gle.com>,
Sandy Huang <hjc@...k-chips.com>,
linux-rockchip@...ts.infradead.org,
Heiko Stübner <heiko@...ech.de>,
linux-arm-kernel@...ts.infradead.org,
Daniel Vetter <daniel@...ll.ch>
Subject: Re: [PATCH v4 1/5] drm/rockchip: fix fb references in async update
On Mon, 3 Jun 2019 17:13:34 -0300
Helen Koike <helen.koike@...labora.com> wrote:
> On 6/3/19 1:56 PM, Helen Koike wrote:
> > In the case of async update, modifications are done in place, i.e. in the
> > current plane state, so the new_state is prepared and the new_state is
> > cleaned up (instead of the old_state, unlike what happens in a
> > normal sync update).
> > To cleanup the old_fb properly, it needs to be placed in the new_state
> > in the end of async_update, so cleanup call will unreference the old_fb
> > correctly.
> >
> > Also, the previous code had a:
> >
> > plane_state = plane->funcs->atomic_duplicate_state(plane);
> > ...
> > swap(plane_state, plane->state);
> >
> > if (plane->state->fb && plane->state->fb != new_state->fb) {
> > ...
> > }
> >
> > Which was wrong, as the fb were just assigned to be equal, so this if
> > statement nevers evaluates to true.
> >
> > Another details is that the function drm_crtc_vblank_get() can only be
> > called when vop->is_enabled is true, otherwise it has no effect and
> > trows a WARN_ON().
> >
> > Calling drm_atomic_set_fb_for_plane() (which get a referent of the new
> > fb and pus the old fb) is not required, as it is taken care by
> > drm_mode_cursor_universal() when calling
> > drm_atomic_helper_update_plane().
> >
> > Signed-off-by: Helen Koike <helen.koike@...labora.com>
>
> Cc: <stable@...r.kernel.org> # v4.20+
> Fixes: 15609559a834 ("drm/rockchip: update cursors asynchronously
> through atomic.")
One comment for next time you have to add such tags after the fact:
please try to keep lines unwrapped, otherwise patchwork only gets what's
on the first line.
Powered by blists - more mailing lists