From: Moudy Ho <moudy.ho@mediatek.com> To: Mauro Carvalho Chehab <mchehab@kernel.org>, Matthias Brugger <matthias.bgg@gmail.com>, AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>, Hans Verkuil <hverkuil-cisco@xs4all.nl> Cc: <linux-kernel@vger.kernel.org>, <linux-media@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <linux-mediatek@lists.infradead.org>, Moudy Ho <moudy.ho@mediatek.com> Subject: [PATCH v8 07/12] media: platform: mtk-mdp3: extend GCE event waiting in RDMA and WROT Date: Mon, 30 Oct 2023 18:06:21 +0800 [thread overview] Message-ID: <20231030100626.12564-8-moudy.ho@mediatek.com> (raw) In-Reply-To: <20231030100626.12564-1-moudy.ho@mediatek.com> Support for multiple RDMA/WROT waits for GCE events. Signed-off-by: Moudy Ho <moudy.ho@mediatek.com> --- .../platform/mediatek/mdp3/mdp_cfg_data.c | 2 ++ .../platform/mediatek/mdp3/mtk-mdp3-comp.c | 27 +++++++++++++------ .../platform/mediatek/mdp3/mtk-mdp3-core.h | 2 ++ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/drivers/media/platform/mediatek/mdp3/mdp_cfg_data.c b/drivers/media/platform/mediatek/mdp3/mdp_cfg_data.c index 6f77c33074ec..3834efe54e17 100644 --- a/drivers/media/platform/mediatek/mdp3/mdp_cfg_data.c +++ b/drivers/media/platform/mediatek/mdp3/mdp_cfg_data.c @@ -56,8 +56,10 @@ static const struct mdp_platform_config mt8183_plat_cfg = { .rdma_support_10bit = true, .rdma_rsz1_sram_sharing = true, .rdma_upsample_repeat_only = true, + .rdma_event_num = 1, .rsz_disable_dcm_small_sample = false, .wrot_filter_constraint = false, + .wrot_event_num = 1, }; static const u32 mt8183_mutex_idx[MDP_MAX_COMP_COUNT] = { diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c index 93df2e013438..ed6092e1666f 100644 --- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c +++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c @@ -251,14 +251,20 @@ static int config_rdma_subfrm(struct mdp_comp_ctx *ctx, static int wait_rdma_event(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd) { + const struct mdp_platform_config *mdp_cfg = __get_plat_cfg(ctx); struct device *dev = &ctx->comp->mdp_dev->pdev->dev; phys_addr_t base = ctx->comp->reg_base; u8 subsys_id = ctx->comp->subsys_id; - if (ctx->comp->alias_id == 0) - MM_REG_WAIT(cmd, ctx->comp->gce_event[MDP_GCE_EVENT_EOF]); - else - dev_err(dev, "Do not support RDMA1_DONE event\n"); + if (!mdp_cfg) + return -EINVAL; + + if (ctx->comp->alias_id >= mdp_cfg->rdma_event_num) { + dev_err(dev, "Invalid RDMA event %d\n", ctx->comp->alias_id); + return -EINVAL; + } + + MM_REG_WAIT(cmd, ctx->comp->gce_event[MDP_GCE_EVENT_EOF]); /* Disable RDMA */ MM_REG_WRITE(cmd, subsys_id, base, MDP_RDMA_EN, 0x0, BIT(0)); @@ -553,10 +559,15 @@ static int wait_wrot_event(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd) phys_addr_t base = ctx->comp->reg_base; u8 subsys_id = ctx->comp->subsys_id; - if (ctx->comp->alias_id == 0) - MM_REG_WAIT(cmd, ctx->comp->gce_event[MDP_GCE_EVENT_EOF]); - else - dev_err(dev, "Do not support WROT1_DONE event\n"); + if (!mdp_cfg) + return -EINVAL; + + if (ctx->comp->alias_id >= mdp_cfg->wrot_event_num) { + dev_err(dev, "Invalid WROT event %d!\n", ctx->comp->alias_id); + return -EINVAL; + } + + MM_REG_WAIT(cmd, ctx->comp->gce_event[MDP_GCE_EVENT_EOF]); if (mdp_cfg && mdp_cfg->wrot_filter_constraint) MM_REG_WRITE(cmd, subsys_id, base, VIDO_MAIN_BUF_SIZE, 0x0, diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h index 22d1b17ef2fc..e57c415a1c78 100644 --- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h +++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h @@ -49,8 +49,10 @@ struct mdp_platform_config { bool rdma_support_10bit; bool rdma_rsz1_sram_sharing; bool rdma_upsample_repeat_only; + u32 rdma_event_num; bool rsz_disable_dcm_small_sample; bool wrot_filter_constraint; + u32 wrot_event_num; }; /* indicate which mutex is used by each pipepline */ -- 2.18.0
WARNING: multiple messages have this Message-ID (diff)
From: Moudy Ho <moudy.ho@mediatek.com> To: Mauro Carvalho Chehab <mchehab@kernel.org>, Matthias Brugger <matthias.bgg@gmail.com>, AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>, Hans Verkuil <hverkuil-cisco@xs4all.nl> Cc: <linux-kernel@vger.kernel.org>, <linux-media@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <linux-mediatek@lists.infradead.org>, Moudy Ho <moudy.ho@mediatek.com> Subject: [PATCH v8 07/12] media: platform: mtk-mdp3: extend GCE event waiting in RDMA and WROT Date: Mon, 30 Oct 2023 18:06:21 +0800 [thread overview] Message-ID: <20231030100626.12564-8-moudy.ho@mediatek.com> (raw) In-Reply-To: <20231030100626.12564-1-moudy.ho@mediatek.com> Support for multiple RDMA/WROT waits for GCE events. Signed-off-by: Moudy Ho <moudy.ho@mediatek.com> --- .../platform/mediatek/mdp3/mdp_cfg_data.c | 2 ++ .../platform/mediatek/mdp3/mtk-mdp3-comp.c | 27 +++++++++++++------ .../platform/mediatek/mdp3/mtk-mdp3-core.h | 2 ++ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/drivers/media/platform/mediatek/mdp3/mdp_cfg_data.c b/drivers/media/platform/mediatek/mdp3/mdp_cfg_data.c index 6f77c33074ec..3834efe54e17 100644 --- a/drivers/media/platform/mediatek/mdp3/mdp_cfg_data.c +++ b/drivers/media/platform/mediatek/mdp3/mdp_cfg_data.c @@ -56,8 +56,10 @@ static const struct mdp_platform_config mt8183_plat_cfg = { .rdma_support_10bit = true, .rdma_rsz1_sram_sharing = true, .rdma_upsample_repeat_only = true, + .rdma_event_num = 1, .rsz_disable_dcm_small_sample = false, .wrot_filter_constraint = false, + .wrot_event_num = 1, }; static const u32 mt8183_mutex_idx[MDP_MAX_COMP_COUNT] = { diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c index 93df2e013438..ed6092e1666f 100644 --- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c +++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c @@ -251,14 +251,20 @@ static int config_rdma_subfrm(struct mdp_comp_ctx *ctx, static int wait_rdma_event(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd) { + const struct mdp_platform_config *mdp_cfg = __get_plat_cfg(ctx); struct device *dev = &ctx->comp->mdp_dev->pdev->dev; phys_addr_t base = ctx->comp->reg_base; u8 subsys_id = ctx->comp->subsys_id; - if (ctx->comp->alias_id == 0) - MM_REG_WAIT(cmd, ctx->comp->gce_event[MDP_GCE_EVENT_EOF]); - else - dev_err(dev, "Do not support RDMA1_DONE event\n"); + if (!mdp_cfg) + return -EINVAL; + + if (ctx->comp->alias_id >= mdp_cfg->rdma_event_num) { + dev_err(dev, "Invalid RDMA event %d\n", ctx->comp->alias_id); + return -EINVAL; + } + + MM_REG_WAIT(cmd, ctx->comp->gce_event[MDP_GCE_EVENT_EOF]); /* Disable RDMA */ MM_REG_WRITE(cmd, subsys_id, base, MDP_RDMA_EN, 0x0, BIT(0)); @@ -553,10 +559,15 @@ static int wait_wrot_event(struct mdp_comp_ctx *ctx, struct mdp_cmdq_cmd *cmd) phys_addr_t base = ctx->comp->reg_base; u8 subsys_id = ctx->comp->subsys_id; - if (ctx->comp->alias_id == 0) - MM_REG_WAIT(cmd, ctx->comp->gce_event[MDP_GCE_EVENT_EOF]); - else - dev_err(dev, "Do not support WROT1_DONE event\n"); + if (!mdp_cfg) + return -EINVAL; + + if (ctx->comp->alias_id >= mdp_cfg->wrot_event_num) { + dev_err(dev, "Invalid WROT event %d!\n", ctx->comp->alias_id); + return -EINVAL; + } + + MM_REG_WAIT(cmd, ctx->comp->gce_event[MDP_GCE_EVENT_EOF]); if (mdp_cfg && mdp_cfg->wrot_filter_constraint) MM_REG_WRITE(cmd, subsys_id, base, VIDO_MAIN_BUF_SIZE, 0x0, diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h index 22d1b17ef2fc..e57c415a1c78 100644 --- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h +++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h @@ -49,8 +49,10 @@ struct mdp_platform_config { bool rdma_support_10bit; bool rdma_rsz1_sram_sharing; bool rdma_upsample_repeat_only; + u32 rdma_event_num; bool rsz_disable_dcm_small_sample; bool wrot_filter_constraint; + u32 wrot_event_num; }; /* indicate which mutex is used by each pipepline */ -- 2.18.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-10-30 10:14 UTC|newest] Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-10-30 10:06 [PATCH v8 00/12] add support MDP3 on MT8195 platform Moudy Ho 2023-10-30 10:06 ` Moudy Ho 2023-10-30 10:06 ` [PATCH v8 01/12] media: platform: mtk-mdp3: add support second sets of MMSYS Moudy Ho 2023-10-30 10:06 ` Moudy Ho 2023-11-06 12:45 ` AngeloGioacchino Del Regno 2023-11-06 12:45 ` AngeloGioacchino Del Regno 2023-10-30 10:06 ` [PATCH v8 02/12] media: platform: mtk-mdp3: add support second sets of MUTEX Moudy Ho 2023-10-30 10:06 ` Moudy Ho 2023-11-06 12:45 ` AngeloGioacchino Del Regno 2023-11-06 12:45 ` AngeloGioacchino Del Regno 2023-10-30 10:06 ` [PATCH v8 03/12] media: platform: mtk-mdp3: introduce more pipelines from MT8195 Moudy Ho 2023-10-30 10:06 ` Moudy Ho 2023-11-06 12:45 ` AngeloGioacchino Del Regno 2023-11-06 12:45 ` AngeloGioacchino Del Regno 2023-10-30 10:06 ` [PATCH v8 04/12] media: platform: mtk-mdp3: introduce more MDP3 components Moudy Ho 2023-10-30 10:06 ` Moudy Ho 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-10-30 10:06 ` [PATCH v8 05/12] media: platform: mtk-mdp3: add checks for dummy components Moudy Ho 2023-10-30 10:06 ` Moudy Ho 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-10-30 10:06 ` [PATCH v8 06/12] media: platform: mtk-mdp3: avoid multiple driver registrations Moudy Ho 2023-10-30 10:06 ` Moudy Ho 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-10-30 10:06 ` Moudy Ho [this message] 2023-10-30 10:06 ` [PATCH v8 07/12] media: platform: mtk-mdp3: extend GCE event waiting in RDMA and WROT Moudy Ho 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-10-30 10:06 ` [PATCH v8 08/12] media: platform: mtk-mdp3: add support for blending multiple components Moudy Ho 2023-10-30 10:06 ` Moudy Ho 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-10-30 10:06 ` [PATCH v8 09/12] media: platform: mtk-mdp3: add mt8195 platform configuration Moudy Ho 2023-10-30 10:06 ` Moudy Ho 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-10-30 10:06 ` [PATCH v8 10/12] media: platform: mtk-mdp3: add mt8195 shared memory configurations Moudy Ho 2023-10-30 10:06 ` Moudy Ho 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-10-30 10:06 ` [PATCH v8 11/12] media: platform: mtk-mdp3: add mt8195 MDP3 component settings Moudy Ho 2023-10-30 10:06 ` Moudy Ho 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-10-30 10:06 ` [PATCH v8 12/12] media: platform: mtk-mdp3: add support for parallel pipe to improve FPS Moudy Ho 2023-10-30 10:06 ` Moudy Ho 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-11-06 12:44 ` AngeloGioacchino Del Regno 2023-10-31 8:41 ` [PATCH v8 00/12] add support MDP3 on MT8195 platform Moudy Ho (何宗原) 2023-10-31 8:41 ` Moudy Ho (何宗原) 2023-11-06 12:45 ` AngeloGioacchino Del Regno 2023-11-06 12:45 ` AngeloGioacchino Del Regno 2023-11-09 17:14 ` nicolas 2023-11-09 17:14 ` nicolas 2023-12-16 6:47 ` Sebastian Fricke 2023-12-16 6:47 ` Sebastian Fricke
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20231030100626.12564-8-moudy.ho@mediatek.com \ --to=moudy.ho@mediatek.com \ --cc=angelogioacchino.delregno@collabora.com \ --cc=hverkuil-cisco@xs4all.nl \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=matthias.bgg@gmail.com \ --cc=mchehab@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.