MTK do rotation checking and transferring in layer check function, but we do not check that in atomic_check, so add back in atomic_check function.
Fixes: 920fffcc8912 ("drm/mediatek: update cursors by using async atomic update")
Signed-off-by: Bibby Hsieh bibby.hsieh@mediatek.com --- drivers/gpu/drm/mediatek/mtk_drm_plane.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_plane.c b/drivers/gpu/drm/mediatek/mtk_drm_plane.c index 189744d34f53..d32b494ff1de 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c @@ -81,6 +81,7 @@ static int mtk_plane_atomic_async_check(struct drm_plane *plane, struct drm_plane_state *state) { struct drm_crtc_state *crtc_state; + int ret;
if (plane != state->crtc->cursor) return -EINVAL; @@ -91,6 +92,11 @@ static int mtk_plane_atomic_async_check(struct drm_plane *plane, if (!plane->state->fb) return -EINVAL;
+ ret = mtk_drm_crtc_plane_check(state->crtc, plane, + to_mtk_plane_state(state)); + if (ret) + return ret; + if (state->state) crtc_state = drm_atomic_get_existing_crtc_state(state->state, state->crtc);
Besides x, y position, width and height, fb also need updating in async update.
Fixes: 920fffcc8912 ("drm/mediatek: update cursors by using async atomic update")
Signed-off-by: Bibby Hsieh bibby.hsieh@mediatek.com --- 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 d32b494ff1de..e084c36fdd8a 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c @@ -122,6 +122,7 @@ static void mtk_plane_atomic_async_update(struct drm_plane *plane, plane->state->src_y = new_state->src_y; plane->state->src_h = new_state->src_h; plane->state->src_w = new_state->src_w; + swap(plane->state->fb, new_state->fb); state->pending.async_dirty = true;
mtk_drm_crtc_async_update(new_state->crtc, plane, new_state);
Hi, Bibby:
On Thu, 2020-02-13 at 09:23 +0800, Bibby Hsieh wrote:
Besides x, y position, width and height, fb also need updating in async update.
Reviewed-by: CK Hu ck.hu@mediatek.com
Fixes: 920fffcc8912 ("drm/mediatek: update cursors by using async atomic update")
Signed-off-by: Bibby Hsieh bibby.hsieh@mediatek.com
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 d32b494ff1de..e084c36fdd8a 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c @@ -122,6 +122,7 @@ static void mtk_plane_atomic_async_update(struct drm_plane *plane, plane->state->src_y = new_state->src_y; plane->state->src_h = new_state->src_h; plane->state->src_w = new_state->src_w;
swap(plane->state->fb, new_state->fb); state->pending.async_dirty = true;
mtk_drm_crtc_async_update(new_state->crtc, plane, new_state);
Hi,
Missatge de CK Hu ck.hu@mediatek.com del dia dj., 13 de febr. 2020 a les 5:06:
Hi, Bibby:
On Thu, 2020-02-13 at 09:23 +0800, Bibby Hsieh wrote:
Besides x, y position, width and height, fb also need updating in async update.
Reviewed-by: CK Hu ck.hu@mediatek.com
Fixes: 920fffcc8912 ("drm/mediatek: update cursors by using async atomic update")
Signed-off-by: Bibby Hsieh bibby.hsieh@mediatek.com
This patch actually fixes two issues as explained in [1], I send the patch without seeing that another one was already sent. Both do the same thing. So,
Tested-by: Enric Balletbo i Serra enric.balletbo@collabora.com
[1] https://lkml.org/lkml/2020/2/13/286
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 d32b494ff1de..e084c36fdd8a 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c @@ -122,6 +122,7 @@ static void mtk_plane_atomic_async_update(struct drm_plane *plane, plane->state->src_y = new_state->src_y; plane->state->src_h = new_state->src_h; plane->state->src_w = new_state->src_w;
swap(plane->state->fb, new_state->fb); state->pending.async_dirty = true; mtk_drm_crtc_async_update(new_state->crtc, plane, new_state);
-- CK Hu ck.hu@mediatek.com _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Hi, Bibby:
On Thu, 2020-02-13 at 12:06 +0800, CK Hu wrote:
Hi, Bibby:
On Thu, 2020-02-13 at 09:23 +0800, Bibby Hsieh wrote:
Besides x, y position, width and height, fb also need updating in async update.
Reviewed-by: CK Hu ck.hu@mediatek.com
Applied to mediatek-drm-fixes-5.6 [1], thanks.
[1] https://github.com/ckhu-mediatek/linux.git-tags/commits/mediatek-drm-fixes-5...
Regards, CK
Fixes: 920fffcc8912 ("drm/mediatek: update cursors by using async atomic update")
Signed-off-by: Bibby Hsieh bibby.hsieh@mediatek.com
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 d32b494ff1de..e084c36fdd8a 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c @@ -122,6 +122,7 @@ static void mtk_plane_atomic_async_update(struct drm_plane *plane, plane->state->src_y = new_state->src_y; plane->state->src_h = new_state->src_h; plane->state->src_w = new_state->src_w;
swap(plane->state->fb, new_state->fb); state->pending.async_dirty = true;
mtk_drm_crtc_async_update(new_state->crtc, plane, new_state);
Hi, Bibby:
On Thu, 2020-02-13 at 09:23 +0800, Bibby Hsieh wrote:
MTK do rotation checking and transferring in layer check function, but we do not check that in atomic_check, so add back in atomic_check function.
Reviewed-by: CK Hu ck.hu@mediatek.com
Fixes: 920fffcc8912 ("drm/mediatek: update cursors by using async atomic update")
Signed-off-by: Bibby Hsieh bibby.hsieh@mediatek.com
drivers/gpu/drm/mediatek/mtk_drm_plane.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_plane.c b/drivers/gpu/drm/mediatek/mtk_drm_plane.c index 189744d34f53..d32b494ff1de 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c @@ -81,6 +81,7 @@ static int mtk_plane_atomic_async_check(struct drm_plane *plane, struct drm_plane_state *state) { struct drm_crtc_state *crtc_state;
int ret;
if (plane != state->crtc->cursor) return -EINVAL;
@@ -91,6 +92,11 @@ static int mtk_plane_atomic_async_check(struct drm_plane *plane, if (!plane->state->fb) return -EINVAL;
- ret = mtk_drm_crtc_plane_check(state->crtc, plane,
to_mtk_plane_state(state));
- if (ret)
return ret;
- if (state->state) crtc_state = drm_atomic_get_existing_crtc_state(state->state, state->crtc);
Hi, Bibby:
On Thu, 2020-02-13 at 11:54 +0800, CK Hu wrote:
Hi, Bibby:
On Thu, 2020-02-13 at 09:23 +0800, Bibby Hsieh wrote:
MTK do rotation checking and transferring in layer check function, but we do not check that in atomic_check, so add back in atomic_check function.
Reviewed-by: CK Hu ck.hu@mediatek.com
Applied to mediatek-drm-fixes-5.6 [1], thanks.
[1] https://github.com/ckhu-mediatek/linux.git-tags/commits/mediatek-drm-fixes-5...
Regards, CK
Fixes: 920fffcc8912 ("drm/mediatek: update cursors by using async atomic update")
Signed-off-by: Bibby Hsieh bibby.hsieh@mediatek.com
drivers/gpu/drm/mediatek/mtk_drm_plane.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_plane.c b/drivers/gpu/drm/mediatek/mtk_drm_plane.c index 189744d34f53..d32b494ff1de 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c @@ -81,6 +81,7 @@ static int mtk_plane_atomic_async_check(struct drm_plane *plane, struct drm_plane_state *state) { struct drm_crtc_state *crtc_state;
int ret;
if (plane != state->crtc->cursor) return -EINVAL;
@@ -91,6 +92,11 @@ static int mtk_plane_atomic_async_check(struct drm_plane *plane, if (!plane->state->fb) return -EINVAL;
- ret = mtk_drm_crtc_plane_check(state->crtc, plane,
to_mtk_plane_state(state));
- if (ret)
return ret;
- if (state->state) crtc_state = drm_atomic_get_existing_crtc_state(state->state, state->crtc);
dri-devel@lists.freedesktop.org