[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <7cd36a53-30d9-7efb-4864-78f994268f1b@collabora.com>
Date: Thu, 13 Feb 2020 14:38:13 +0100
From: Enric Balletbo i Serra <enric.balletbo@...labora.com>
To: linux-kernel@...r.kernel.org
Cc: Collabora Kernel ML <kernel@...labora.com>,
Bibby Hsieh <bibby.hsieh@...iatek.com>, matthias.bgg@...il.com,
drinkcat@...omium.org, hsinyi@...omium.org,
linux-arm-kernel@...ts.infradead.org, CK Hu <ck.hu@...iatek.com>,
Philipp Zabel <p.zabel@...gutronix.de>,
dri-devel@...ts.freedesktop.org,
linux-mediatek@...ts.infradead.org,
David Airlie <airlied@...ux.ie>,
Daniel Vetter <daniel@...ll.ch>
Subject: Re: [PATCH] drm/mediatek: Update the fb property
mtk_plane_atomic_async_update
Hi,
On 13/2/20 13:01, Enric Balletbo i Serra wrote:
> Commit 920fffcc8912 ("drm/mediatek: update cursors by using async atomic
> update") added support to async updates of cursors by using the new atomic
> interface for that. Unfortunately, introduced two issues. The first one is
> that since then, the drm_atomic_helper_async_commit triggers a WARNING due
> current fb is not the new fb. The second one, is that we get a black screen
> connecting the external display on Elm device and another WARNING due vblank
> wait timed out.
>
> Swap the fb in mtk_plane_atomic_async_update to fix both issues.
>
> Fixes: 920fffcc8912 ("drm/mediatek: update cursors by using async atomic update")
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@...labora.com>
> ---
I just noticed this, which should fix the problem too, so you can ignore this patch.
https://patchwork.kernel.org/patch/11379571/
>
> drivers/gpu/drm/mediatek/mtk_drm_plane.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_plane.c b/drivers/gpu/drm/mediatek/mtk_drm_plane.c
> index 914cc7619cd7..7eb10115e72a 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c
> @@ -116,6 +116,7 @@ static void mtk_plane_atomic_async_update(struct drm_plane *plane,
> plane->state->src_h = new_state->src_h;
> plane->state->src_w = new_state->src_w;
> state->pending.async_dirty = true;
> + swap(plane->state->fb, new_state->fb);
>
> mtk_drm_crtc_async_update(new_state->crtc, plane, new_state);
> }
>
Powered by blists - more mailing lists