Re: [PATCH v5 00/14] add support MDP3 on MT8195 platform

From: Hans Verkuil
Date: Fri Sep 15 2023 - 06:30:45 EST


Hi Moudy,

On 12/09/2023 09:57, Moudy Ho wrote:
> Changes since v4:
> - Rebase on v6.6-rc1
> - Remove any unnecessary DTS settings.
> - Adjust the usage of MOD and clock in blending components.
>
> Changes since v3:
> - Depend on :
> [1] https://patchwork.kernel.org/project/linux-media/list/?series=719841
> - Suggested by Krzysztof, integrating all newly added bindings for
> the mt8195 MDP3 into the file "mediatek,mt8195-mdp3.yaml".
> - Revise MDP3 nodes with generic names.
>
> Changes since v2:
> - Depend on :
> [1] MMSYS/MUTEX: https://patchwork.kernel.org/project/linux-mediatek/list/?series=711592
> [2] MDP3: https://patchwork.kernel.org/project/linux-mediatek/list/?series=711618
> - Suggested by Rob to revise MDP3 bindings to pass dtbs check
> - Add parallel paths feature.
> - Add blended components settings.
>
> Changes since v1:
> - Depend on :
> [1] MDP3 : https://patchwork.kernel.org/project/linux-mediatek/list/?series=698872
> [2] MMSYS/MUTEX: https://patchwork.kernel.org/project/linux-mediatek/list/?series=684959
> - Fix compilation failure due to use of undeclared identifier in file "mtk-mdp3-cmdq.c"
>
> Hello,
>
> This patch is used to add support for MDP3 on the MT8195 platform that
> contains more picture quality components, and can arrange more pipelines
> through two sets of MMSYS and MUTEX respectively.

I ran this series through our build system and I got the following compile warning:

drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c: In function 'mdp_path_config.isra':
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:449:51: warning: 'ctx' may be used uninitialized [-Wmaybe-uninitialized]
449 | out = CFG_COMP(MT8195, ctx->param, outputs[0]);
| ~~~^~~~~~~
drivers/media/platform/mediatek/mdp3/mtk-img-ipi.h:137:25: note: in definition of macro 'CFG_COMP'
137 | (IS_ERR_OR_NULL(comp) ? 0 : _CFG_COMP(plat, comp, mem))
| ^~~~
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:402:30: note: 'ctx' was declared here
402 | struct mdp_comp_ctx *ctx;
| ^~~

And also a few smatch warnings/errors:

drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c:871 wait_wrot_event() warn: variable dereferenced before check 'mdp_cfg' (see line 864)
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c:1024 reset_luma_hist() warn: variable dereferenced before check 'mdp_cfg' (see line 1015)
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:447 mdp_path_config() error: potentially dereferencing uninitialized 'ctx'.
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:449 mdp_path_config() error: potentially dereferencing uninitialized 'ctx'.

You can run the same tests yourself, see this announcement:

https://lore.kernel.org/linux-media/18989016-6392-a77b-6cf7-1223c9161def@xxxxxxxxx/

Regards,

Hans

>
> Moudy Ho (14):
> arm64: dts: mediatek: mt8183: correct MDP3 DMA-related nodes
> arm64: dts: mediatek: mt8195: add MDP3 nodes
> media: platform: mtk-mdp3: add support second sets of MMSYS
> media: platform: mtk-mdp3: add support second sets of MUTEX
> media: platform: mtk-mdp3: introduce more pipelines from MT8195
> media: platform: mtk-mdp3: introduce more MDP3 components
> media: platform: mtk-mdp3: add checks for dummy components
> media: platform: mtk-mdp3: avoid multiple driver registrations
> media: platform: mtk-mdp3: extend GCE event waiting in RDMA and WROT
> media: platform: mtk-mdp3: add support for blending multiple
> components
> media: platform: mtk-mdp3: add mt8195 platform configuration
> media: platform: mtk-mdp3: add mt8195 shared memory configurations
> media: platform: mtk-mdp3: add mt8195 MDP3 component settings
> media: platform: mtk-mdp3: add support for parallel pipe to improve
> FPS
>
> arch/arm64/boot/dts/mediatek/mt8183.dtsi | 6 +-
> arch/arm64/boot/dts/mediatek/mt8195.dtsi | 378 ++++++++
> .../platform/mediatek/mdp3/mdp_cfg_data.c | 729 ++++++++++++++-
> .../platform/mediatek/mdp3/mdp_reg_aal.h | 25 +
> .../platform/mediatek/mdp3/mdp_reg_color.h | 31 +
> .../media/platform/mediatek/mdp3/mdp_reg_fg.h | 23 +
> .../platform/mediatek/mdp3/mdp_reg_hdr.h | 31 +
> .../platform/mediatek/mdp3/mdp_reg_merge.h | 25 +
> .../platform/mediatek/mdp3/mdp_reg_ovl.h | 25 +
> .../platform/mediatek/mdp3/mdp_reg_pad.h | 21 +
> .../platform/mediatek/mdp3/mdp_reg_rdma.h | 24 +
> .../platform/mediatek/mdp3/mdp_reg_rsz.h | 2 +
> .../platform/mediatek/mdp3/mdp_reg_tdshp.h | 34 +
> .../platform/mediatek/mdp3/mdp_reg_wrot.h | 8 +
> .../platform/mediatek/mdp3/mdp_sm_mt8195.h | 283 ++++++
> .../platform/mediatek/mdp3/mtk-img-ipi.h | 4 +
> .../platform/mediatek/mdp3/mtk-mdp3-cfg.h | 2 +
> .../platform/mediatek/mdp3/mtk-mdp3-cmdq.c | 447 +++++++--
> .../platform/mediatek/mdp3/mtk-mdp3-cmdq.h | 1 +
> .../platform/mediatek/mdp3/mtk-mdp3-comp.c | 860 +++++++++++++++++-
> .../platform/mediatek/mdp3/mtk-mdp3-comp.h | 93 +-
> .../platform/mediatek/mdp3/mtk-mdp3-core.c | 103 ++-
> .../platform/mediatek/mdp3/mtk-mdp3-core.h | 33 +-
> .../platform/mediatek/mdp3/mtk-mdp3-m2m.c | 15 +
> .../platform/mediatek/mdp3/mtk-mdp3-regs.c | 18 +
> .../platform/mediatek/mdp3/mtk-mdp3-regs.h | 1 +
> .../platform/mediatek/mdp3/mtk-mdp3-vpu.c | 3 +-
> 27 files changed, 3051 insertions(+), 174 deletions(-)
> create mode 100644 drivers/media/platform/mediatek/mdp3/mdp_reg_aal.h
> create mode 100644 drivers/media/platform/mediatek/mdp3/mdp_reg_color.h
> create mode 100644 drivers/media/platform/mediatek/mdp3/mdp_reg_fg.h
> create mode 100644 drivers/media/platform/mediatek/mdp3/mdp_reg_hdr.h
> create mode 100644 drivers/media/platform/mediatek/mdp3/mdp_reg_merge.h
> create mode 100644 drivers/media/platform/mediatek/mdp3/mdp_reg_ovl.h
> create mode 100644 drivers/media/platform/mediatek/mdp3/mdp_reg_pad.h
> create mode 100644 drivers/media/platform/mediatek/mdp3/mdp_reg_tdshp.h
> create mode 100644 drivers/media/platform/mediatek/mdp3/mdp_sm_mt8195.h
>