Commit bdefc6b2 authored by Chun-Kuang Hu's avatar Chun-Kuang Hu

Revert "drm/mediatek: Clear pending flag when cmdq packet is done"

This reverts commit 9efb16c2.

Commit c1ec54b7
("drm/mediatek: Use mailbox rx_callback instead of cmdq_task_cb")
would cause numerous mtk cmdq mailbox driver warning:

WARNING: CPU: 0 PID: 0 at drivers/mailbox/mtk-cmdq-mailbox.c:198
cmdq_task_exec_done+0xb8/0xe0

So revert that patch and all the patches depend on that patch.
Reported-by: default avatarEnric Balletbo Serra <eballetbo@gmail.com>
Tested-by: default avatarEnric Balletbo Serra <eballetbo@gmail.com>
Signed-off-by: default avatarChun-Kuang Hu <chunkuang.hu@kernel.org>
parent 6880fa6c
...@@ -267,36 +267,6 @@ static void ddp_cmdq_cb(struct mbox_client *cl, void *mssg) ...@@ -267,36 +267,6 @@ static void ddp_cmdq_cb(struct mbox_client *cl, void *mssg)
{ {
struct mtk_drm_crtc *mtk_crtc = container_of(cl, struct mtk_drm_crtc, cmdq_cl); struct mtk_drm_crtc *mtk_crtc = container_of(cl, struct mtk_drm_crtc, cmdq_cl);
struct cmdq_cb_data *data = mssg; struct cmdq_cb_data *data = mssg;
struct mtk_crtc_state *state;
unsigned int i;
state = to_mtk_crtc_state(mtk_crtc->base.state);
state->pending_config = false;
if (mtk_crtc->pending_planes) {
for (i = 0; i < mtk_crtc->layer_nr; i++) {
struct drm_plane *plane = &mtk_crtc->planes[i];
struct mtk_plane_state *plane_state;
plane_state = to_mtk_plane_state(plane->state);
plane_state->pending.config = false;
}
mtk_crtc->pending_planes = false;
}
if (mtk_crtc->pending_async_planes) {
for (i = 0; i < mtk_crtc->layer_nr; i++) {
struct drm_plane *plane = &mtk_crtc->planes[i];
struct mtk_plane_state *plane_state;
plane_state = to_mtk_plane_state(plane->state);
plane_state->pending.async_config = false;
}
mtk_crtc->pending_async_planes = false;
}
mtk_crtc->cmdq_vblank_cnt = 0; mtk_crtc->cmdq_vblank_cnt = 0;
mtk_drm_cmdq_pkt_destroy(mtk_crtc->cmdq_chan, data->pkt); mtk_drm_cmdq_pkt_destroy(mtk_crtc->cmdq_chan, data->pkt);
...@@ -453,7 +423,6 @@ static void mtk_crtc_ddp_config(struct drm_crtc *crtc, ...@@ -453,7 +423,6 @@ static void mtk_crtc_ddp_config(struct drm_crtc *crtc,
state->pending_vrefresh, 0, state->pending_vrefresh, 0,
cmdq_handle); cmdq_handle);
if (!cmdq_handle)
state->pending_config = false; state->pending_config = false;
} }
...@@ -474,11 +443,8 @@ static void mtk_crtc_ddp_config(struct drm_crtc *crtc, ...@@ -474,11 +443,8 @@ static void mtk_crtc_ddp_config(struct drm_crtc *crtc,
mtk_ddp_comp_layer_config(comp, local_layer, mtk_ddp_comp_layer_config(comp, local_layer,
plane_state, plane_state,
cmdq_handle); cmdq_handle);
if (!cmdq_handle)
plane_state->pending.config = false; plane_state->pending.config = false;
} }
if (!cmdq_handle)
mtk_crtc->pending_planes = false; mtk_crtc->pending_planes = false;
} }
...@@ -499,11 +465,8 @@ static void mtk_crtc_ddp_config(struct drm_crtc *crtc, ...@@ -499,11 +465,8 @@ static void mtk_crtc_ddp_config(struct drm_crtc *crtc,
mtk_ddp_comp_layer_config(comp, local_layer, mtk_ddp_comp_layer_config(comp, local_layer,
plane_state, plane_state,
cmdq_handle); cmdq_handle);
if (!cmdq_handle)
plane_state->pending.async_config = false; plane_state->pending.async_config = false;
} }
if (!cmdq_handle)
mtk_crtc->pending_async_planes = false; mtk_crtc->pending_async_planes = false;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment