diff mbox series

[v1,4/4] media: platform: mtk-mdp3: Set rdma compression reg in each frame

Message ID 20211021063414.23663-5-roy-cw.yeh@mediatek.com (mailing list archive)
State New, archived
Headers show
Series Add additional setting and performance tuning | expand

Commit Message

roy-cw.yeh Oct. 21, 2021, 6:34 a.m. UTC
From: "Roy-CW.Yeh" <roy-cw.yeh@mediatek.com>

Set rdma compression reg in each frame

Signed-off-by: Roy-CW.Yeh <roy-cw.yeh@mediatek.com>
---
 drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c | 10 ++++++----
 drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c |  2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

Comments

AngeloGioacchino Del Regno Oct. 21, 2021, 10:44 a.m. UTC | #1
Il 21/10/21 08:34, roy-cw.yeh ha scritto:
> From: "Roy-CW.Yeh" <roy-cw.yeh@mediatek.com>
> 
> Set rdma compression reg in each frame
> 
> Signed-off-by: Roy-CW.Yeh <roy-cw.yeh@mediatek.com>
> ---
>   drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c | 10 ++++++----
>   drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c |  2 +-
>   2 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c b/drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c
> index 12d6c88c68d2..dc0d1b3ff218 100644
> --- a/drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c
> +++ b/drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c
> @@ -178,15 +178,17 @@ static int config_rdma_frame(struct mdp_comp_ctx *ctx,
>   			/* Setup Compression Control */
>   			MM_REG_WRITE(cmd, subsys_id, base, MDP_RDMA_COMP_CON,
>   				     rdma->comp_ctrl, write_mask);
> -		}
> -
> -		if (mdp_cfg->rdma_support_afbc &&
> -		    (MDP_COLOR_IS_COMPRESS(colorformat))) {
> +		} else if (mdp_cfg->rdma_support_afbc &&
> +			   (MDP_COLOR_IS_COMPRESS(colorformat))) {

Looks like you're unconditionally writing to the compression control register,

so you can just...

>   			MM_REG_WRITE(cmd, subsys_id, base, MDP_RDMA_MF_BKGD_SIZE_IN_PXL,
>   				     ((width + 31) >> 5) << 5, 0x001FFFFF);
>   			MM_REG_WRITE(cmd, subsys_id, base, MDP_RDMA_MF_BKGD_H_SIZE_IN_PXL,
>   				     ((height + 7) >> 3) << 3, 0x001FFFFF);
>   
		}
		/* Setup Compression Control */

		MM_REG_WRITE(cmd, subsys_id, base, MDP_RDMA_COMP_CON,

			     rdma->comp_ctrl, write_mask);	

... and avoid repeating the same thing over and over in all of the conditionals.

> +			/* Setup Compression Control */
> +			MM_REG_WRITE(cmd, subsys_id, base, MDP_RDMA_COMP_CON,
> +				     rdma->comp_ctrl, write_mask);
> +		} else {
>   			/* Setup Compression Control */
>   			MM_REG_WRITE(cmd, subsys_id, base, MDP_RDMA_COMP_CON,
>   				     rdma->comp_ctrl, write_mask);
> diff --git a/drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c b/drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c
> index 875326afb686..1a15490d45e7 100644
> --- a/drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c
> +++ b/drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c
> @@ -34,7 +34,7 @@ static const struct mdp_platform_config mt8195_plat_cfg = {
>   	.rdma_support_afbc              = true,
>   	.rdma_esl_setting               = true,
>   	.rdma_rsz1_sram_sharing         = false,
> -	.rdma_upsample_repeat_only      = true,
> +	.rdma_upsample_repeat_only      = false,
>   	.rsz_disable_dcm_small_sample   = false,
>   	.rsz_etc_control                = true,
>   	.wrot_filter_constraint         = false,
>
diff mbox series

Patch

diff --git a/drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c b/drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c
index 12d6c88c68d2..dc0d1b3ff218 100644
--- a/drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c
+++ b/drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c
@@ -178,15 +178,17 @@  static int config_rdma_frame(struct mdp_comp_ctx *ctx,
 			/* Setup Compression Control */
 			MM_REG_WRITE(cmd, subsys_id, base, MDP_RDMA_COMP_CON,
 				     rdma->comp_ctrl, write_mask);
-		}
-
-		if (mdp_cfg->rdma_support_afbc &&
-		    (MDP_COLOR_IS_COMPRESS(colorformat))) {
+		} else if (mdp_cfg->rdma_support_afbc &&
+			   (MDP_COLOR_IS_COMPRESS(colorformat))) {
 			MM_REG_WRITE(cmd, subsys_id, base, MDP_RDMA_MF_BKGD_SIZE_IN_PXL,
 				     ((width + 31) >> 5) << 5, 0x001FFFFF);
 			MM_REG_WRITE(cmd, subsys_id, base, MDP_RDMA_MF_BKGD_H_SIZE_IN_PXL,
 				     ((height + 7) >> 3) << 3, 0x001FFFFF);
 
+			/* Setup Compression Control */
+			MM_REG_WRITE(cmd, subsys_id, base, MDP_RDMA_COMP_CON,
+				     rdma->comp_ctrl, write_mask);
+		} else {
 			/* Setup Compression Control */
 			MM_REG_WRITE(cmd, subsys_id, base, MDP_RDMA_COMP_CON,
 				     rdma->comp_ctrl, write_mask);
diff --git a/drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c b/drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c
index 875326afb686..1a15490d45e7 100644
--- a/drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c
+++ b/drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c
@@ -34,7 +34,7 @@  static const struct mdp_platform_config mt8195_plat_cfg = {
 	.rdma_support_afbc              = true,
 	.rdma_esl_setting               = true,
 	.rdma_rsz1_sram_sharing         = false,
-	.rdma_upsample_repeat_only      = true,
+	.rdma_upsample_repeat_only      = false,
 	.rsz_disable_dcm_small_sample   = false,
 	.rsz_etc_control                = true,
 	.wrot_filter_constraint         = false,