]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
soc: mediatek: mt8188-mmsys: Migrate to MMSYS_ROUTE() macro
authorAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Wed, 12 Feb 2025 10:00:08 +0000 (11:00 +0100)
committerAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Thu, 6 Mar 2025 10:54:20 +0000 (11:54 +0100)
Change the initialization data in the arrays of structure
mtk_mmsys_routes to make use of the MMSYS_ROUTE() macro:
this will make sure that each array entry's SEL value fits
in its corresponding register mask with a compile time check.

Link: https://lore.kernel.org/r/20250212100012.33001-5-angelogioacchino.delregno@collabora.com
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
drivers/soc/mediatek/mt8188-mmsys.h

index a1d63be0a73dc60bd9e2ef9125bac48f6b081cba..befd293e86c368919523538717c2842e0cb332f6 100644 (file)
@@ -202,158 +202,117 @@ static const u8 mmsys_mt8188_vdo1_rst_tb[] = {
 };
 
 static const struct mtk_mmsys_routes mmsys_mt8188_routing_table[] = {
-       {
-               DDP_COMPONENT_OVL0, DDP_COMPONENT_RDMA0,
-               MT8188_VDO0_OVL_MOUT_EN, MT8188_MOUT_DISP_OVL0_TO_DISP_RDMA0,
-               MT8188_MOUT_DISP_OVL0_TO_DISP_RDMA0
-       }, {
-               DDP_COMPONENT_OVL0, DDP_COMPONENT_WDMA0,
-               MT8188_VDO0_OVL_MOUT_EN, MT8188_MOUT_DISP_OVL0_TO_DISP_WDMA0,
-               MT8188_MOUT_DISP_OVL0_TO_DISP_WDMA0
-       }, {
-               DDP_COMPONENT_OVL0, DDP_COMPONENT_RDMA0,
-               MT8188_VDO0_DISP_RDMA_SEL, MT8188_SEL_IN_DISP_RDMA0_FROM_MASK,
-               MT8188_SEL_IN_DISP_RDMA0_FROM_DISP_OVL0
-       }, {
-               DDP_COMPONENT_DITHER0, DDP_COMPONENT_DSI0,
-               MT8188_VDO0_DSI0_SEL_IN, MT8188_SEL_IN_DSI0_FROM_MASK,
-               MT8188_SEL_IN_DSI0_FROM_DISP_DITHER0
-       }, {
-               DDP_COMPONENT_DITHER0, DDP_COMPONENT_MERGE0,
-               MT8188_VDO0_VPP_MERGE_SEL, MT8188_SEL_IN_VPP_MERGE_FROM_MASK,
-               MT8188_SEL_IN_VPP_MERGE_FROM_DITHER0_OUT
-       }, {
-               DDP_COMPONENT_DITHER0, DDP_COMPONENT_DSC0,
-               MT8188_VDO0_DSC_WARP_SEL,
-               MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_MASK,
-               MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_DISP_DITHER0
-       }, {
-               DDP_COMPONENT_DITHER0, DDP_COMPONENT_DP_INTF0,
-               MT8188_VDO0_DP_INTF0_SEL_IN, MT8188_SEL_IN_DP_INTF0_FROM_MASK,
-               MT8188_SEL_IN_DP_INTF0_FROM_DISP_DITHER0
-       }, {
-               DDP_COMPONENT_DSC0, DDP_COMPONENT_MERGE0,
-               MT8188_VDO0_VPP_MERGE_SEL, MT8188_SEL_IN_VPP_MERGE_FROM_MASK,
-               MT8188_SEL_IN_VPP_MERGE_FROM_DSC_WRAP0_OUT
-       }, {
-               DDP_COMPONENT_DSC0, DDP_COMPONENT_DSI0,
-               MT8188_VDO0_DSI0_SEL_IN, MT8188_SEL_IN_DSI0_FROM_MASK,
-               MT8188_SEL_IN_DSI0_FROM_DSC_WRAP0_OUT
-       }, {
-               DDP_COMPONENT_RDMA0, DDP_COMPONENT_COLOR0,
-               MT8188_VDO0_DISP_RDMA_SEL, MT8188_SOUT_DISP_RDMA0_TO_MASK,
-               MT8188_SOUT_DISP_RDMA0_TO_DISP_COLOR0
-       },  {
-               DDP_COMPONENT_DITHER0, DDP_COMPONENT_DSI0,
-               MT8188_VDO0_DISP_DITHER0_SEL_OUT,
-               MT8188_SOUT_DISP_DITHER0_TO_MASK,
-               MT8188_SOUT_DISP_DITHER0_TO_DSI0
-       },  {
-               DDP_COMPONENT_DITHER0, DDP_COMPONENT_DP_INTF0,
-               MT8188_VDO0_DISP_DITHER0_SEL_OUT,
-               MT8188_SOUT_DISP_DITHER0_TO_MASK,
-               MT8188_SOUT_DISP_DITHER0_TO_DP_INTF0
-       }, {
-               DDP_COMPONENT_MERGE0, DDP_COMPONENT_DP_INTF0,
-               MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
-               MT8188_SOUT_VPP_MERGE_TO_DP_INTF0
-       }, {
-               DDP_COMPONENT_MERGE0, DDP_COMPONENT_DPI0,
-               MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
-               MT8188_SOUT_VPP_MERGE_TO_SINA_VIRTUAL0
-       }, {
-               DDP_COMPONENT_MERGE0, DDP_COMPONENT_WDMA0,
-               MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
-               MT8188_SOUT_VPP_MERGE_TO_DISP_WDMA0
-       }, {
-               DDP_COMPONENT_MERGE0, DDP_COMPONENT_DSC0,
-               MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
-               MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP0_IN
-       }, {
-               DDP_COMPONENT_DSC0, DDP_COMPONENT_DSI0,
-               MT8188_VDO0_DSC_WARP_SEL, MT8188_SOUT_DSC_WRAP0_OUT_TO_MASK,
-               MT8188_SOUT_DSC_WRAP0_OUT_TO_DSI0
-       }, {
-               DDP_COMPONENT_DSC0, DDP_COMPONENT_MERGE0,
-               MT8188_VDO0_DSC_WARP_SEL, MT8188_SOUT_DSC_WRAP0_OUT_TO_MASK,
-               MT8188_SOUT_DSC_WRAP0_OUT_TO_VPP_MERGE
-       },
+       MMSYS_ROUTE(OVL0, RDMA0,
+                   MT8188_VDO0_OVL_MOUT_EN, MT8188_MOUT_DISP_OVL0_TO_DISP_RDMA0,
+                   MT8188_MOUT_DISP_OVL0_TO_DISP_RDMA0),
+       MMSYS_ROUTE(OVL0, WDMA0,
+                   MT8188_VDO0_OVL_MOUT_EN, MT8188_MOUT_DISP_OVL0_TO_DISP_WDMA0,
+                   MT8188_MOUT_DISP_OVL0_TO_DISP_WDMA0),
+       MMSYS_ROUTE(OVL0, RDMA0,
+                   MT8188_VDO0_DISP_RDMA_SEL, MT8188_SEL_IN_DISP_RDMA0_FROM_MASK,
+                   MT8188_SEL_IN_DISP_RDMA0_FROM_DISP_OVL0),
+       MMSYS_ROUTE(DITHER0, DSI0,
+                   MT8188_VDO0_DSI0_SEL_IN, MT8188_SEL_IN_DSI0_FROM_MASK,
+                   MT8188_SEL_IN_DSI0_FROM_DISP_DITHER0),
+       MMSYS_ROUTE(DITHER0, MERGE0,
+                   MT8188_VDO0_VPP_MERGE_SEL, MT8188_SEL_IN_VPP_MERGE_FROM_MASK,
+                   MT8188_SEL_IN_DP_INTF0_FROM_DISP_DITHER0),
+       MMSYS_ROUTE(DITHER0, DSC0,
+                   MT8188_VDO0_DSC_WARP_SEL, MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_MASK,
+                   MT8188_SEL_IN_DSC_WRAP0C0_IN_FROM_DISP_DITHER0),
+       MMSYS_ROUTE(DITHER0, DP_INTF0,
+                   MT8188_VDO0_DP_INTF0_SEL_IN, MT8188_SEL_IN_DP_INTF0_FROM_MASK,
+                   MT8188_SEL_IN_DP_INTF0_FROM_DISP_DITHER0),
+       MMSYS_ROUTE(DSC0, MERGE0,
+                   MT8188_VDO0_VPP_MERGE_SEL, MT8188_SEL_IN_VPP_MERGE_FROM_MASK,
+                   MT8188_SEL_IN_VPP_MERGE_FROM_DSC_WRAP0_OUT),
+       MMSYS_ROUTE(DSC0, DSI0,
+                   MT8188_VDO0_DSI0_SEL_IN, MT8188_SEL_IN_DSI0_FROM_MASK,
+                   MT8188_SEL_IN_DSI0_FROM_DSC_WRAP0_OUT),
+       MMSYS_ROUTE(RDMA0, COLOR0,
+                   MT8188_VDO0_DISP_RDMA_SEL, GENMASK(1, 0),
+                   MT8188_SOUT_DISP_RDMA0_TO_DISP_COLOR0),
+       MMSYS_ROUTE(DITHER0, DSI0,
+                   MT8188_VDO0_DISP_DITHER0_SEL_OUT, MT8188_SOUT_DISP_DITHER0_TO_MASK,
+                   MT8188_SOUT_DISP_DITHER0_TO_DSI0),
+       MMSYS_ROUTE(DITHER0, DP_INTF0,
+                   MT8188_VDO0_DISP_DITHER0_SEL_OUT, MT8188_SOUT_DISP_DITHER0_TO_MASK,
+                   MT8188_SOUT_DISP_DITHER0_TO_DP_INTF0),
+       MMSYS_ROUTE(MERGE0, DP_INTF0,
+                   MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
+                   MT8188_SOUT_VPP_MERGE_TO_DP_INTF0),
+       MMSYS_ROUTE(MERGE0, DPI0,
+                   MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
+                   MT8188_SOUT_VPP_MERGE_TO_SINA_VIRTUAL0),
+       MMSYS_ROUTE(MERGE0, WDMA0,
+                   MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
+                   MT8188_SOUT_VPP_MERGE_TO_DISP_WDMA0),
+       MMSYS_ROUTE(MERGE0, DSC0,
+                   MT8188_VDO0_VPP_MERGE_SEL, MT8188_SOUT_VPP_MERGE_TO_MASK,
+                   MT8188_SOUT_VPP_MERGE_TO_DSC_WRAP0_IN),
+       MMSYS_ROUTE(DSC0, DSI0,
+                   MT8188_VDO0_DSC_WARP_SEL, MT8188_SOUT_DSC_WRAP0_OUT_TO_MASK,
+                   MT8188_SOUT_DSC_WRAP0_OUT_TO_DSI0),
+       MMSYS_ROUTE(DSC0, MERGE0,
+                   MT8188_VDO0_DSC_WARP_SEL, MT8188_SOUT_DSC_WRAP0_OUT_TO_MASK,
+                   MT8188_SOUT_DSC_WRAP0_OUT_TO_VPP_MERGE),
 };
 
 static const struct mtk_mmsys_routes mmsys_mt8188_vdo1_routing_table[] = {
-       {
-               DDP_COMPONENT_MDP_RDMA0, DDP_COMPONENT_MERGE1,
-               MT8188_VDO1_VPP_MERGE0_P0_SEL_IN, GENMASK(0, 0),
-               MT8188_VPP_MERGE0_P0_SEL_IN_FROM_MDP_RDMA0
-       }, {
-               DDP_COMPONENT_MDP_RDMA1, DDP_COMPONENT_MERGE1,
-               MT8188_VDO1_VPP_MERGE0_P1_SEL_IN, GENMASK(0, 0),
-               MT8188_VPP_MERGE0_P1_SEL_IN_FROM_MDP_RDMA1
-       }, {
-               DDP_COMPONENT_MDP_RDMA2, DDP_COMPONENT_MERGE2,
-               MT8188_VDO1_VPP_MERGE1_P0_SEL_IN, GENMASK(0, 0),
-               MT8188_VPP_MERGE1_P0_SEL_IN_FROM_MDP_RDMA2
-       }, {
-               DDP_COMPONENT_MERGE1, DDP_COMPONENT_ETHDR_MIXER,
-               MT8188_VDO1_MERGE0_ASYNC_SOUT_SEL, GENMASK(1, 0),
-               MT8188_SOUT_TO_MIXER_IN1_SEL
-       }, {
-               DDP_COMPONENT_MERGE2, DDP_COMPONENT_ETHDR_MIXER,
-               MT8188_VDO1_MERGE1_ASYNC_SOUT_SEL, GENMASK(1, 0),
-               MT8188_SOUT_TO_MIXER_IN2_SEL
-       }, {
-               DDP_COMPONENT_MERGE3, DDP_COMPONENT_ETHDR_MIXER,
-               MT8188_VDO1_MERGE2_ASYNC_SOUT_SEL, GENMASK(1, 0),
-               MT8188_SOUT_TO_MIXER_IN3_SEL
-       }, {
-               DDP_COMPONENT_MERGE4, DDP_COMPONENT_ETHDR_MIXER,
-               MT8188_VDO1_MERGE3_ASYNC_SOUT_SEL, GENMASK(1, 0),
-               MT8188_SOUT_TO_MIXER_IN4_SEL
-       }, {
-               DDP_COMPONENT_ETHDR_MIXER, DDP_COMPONENT_MERGE5,
-               MT8188_VDO1_MIXER_OUT_SOUT_SEL, GENMASK(0, 0),
-               MT8188_MIXER_SOUT_TO_MERGE4_ASYNC_SEL
-       }, {
-               DDP_COMPONENT_MERGE1, DDP_COMPONENT_ETHDR_MIXER,
-               MT8188_VDO1_MIXER_IN1_SEL_IN, GENMASK(0, 0),
-               MT8188_MIXER_IN1_SEL_IN_FROM_MERGE0_ASYNC_SOUT
-       }, {
-               DDP_COMPONENT_MERGE2, DDP_COMPONENT_ETHDR_MIXER,
-               MT8188_VDO1_MIXER_IN2_SEL_IN, GENMASK(0, 0),
-               MT8188_MIXER_IN2_SEL_IN_FROM_MERGE1_ASYNC_SOUT
-       }, {
-               DDP_COMPONENT_MERGE3, DDP_COMPONENT_ETHDR_MIXER,
-               MT8188_VDO1_MIXER_IN3_SEL_IN, GENMASK(0, 0),
-               MT8188_MIXER_IN3_SEL_IN_FROM_MERGE2_ASYNC_SOUT
-       }, {
-               DDP_COMPONENT_MERGE4, DDP_COMPONENT_ETHDR_MIXER,
-               MT8188_VDO1_MIXER_IN4_SEL_IN, GENMASK(0, 0),
-               MT8188_MIXER_IN4_SEL_IN_FROM_MERGE3_ASYNC_SOUT
-       }, {
-               DDP_COMPONENT_ETHDR_MIXER, DDP_COMPONENT_MERGE5,
-               MT8188_VDO1_MIXER_SOUT_SEL_IN, GENMASK(2, 0),
-               MT8188_MIXER_SOUT_SEL_IN_FROM_DISP_MIXER
-       }, {
-               DDP_COMPONENT_ETHDR_MIXER, DDP_COMPONENT_MERGE5,
-               MT8188_VDO1_MERGE4_ASYNC_SEL_IN, GENMASK(2, 0),
-               MT8188_MERGE4_ASYNC_SEL_IN_FROM_MIXER_OUT_SOUT
-       }, {
-               DDP_COMPONENT_MERGE5, DDP_COMPONENT_DPI1,
-               MT8188_VDO1_DISP_DPI1_SEL_IN, GENMASK(1, 0),
-               MT8188_DISP_DPI1_SEL_IN_FROM_VPP_MERGE4_MOUT
-       }, {
-               DDP_COMPONENT_MERGE5, DDP_COMPONENT_DPI1,
-               MT8188_VDO1_MERGE4_SOUT_SEL, GENMASK(3, 0),
-               MT8188_MERGE4_SOUT_TO_DPI1_SEL
-       }, {
-               DDP_COMPONENT_MERGE5, DDP_COMPONENT_DP_INTF1,
-               MT8188_VDO1_DISP_DP_INTF0_SEL_IN, GENMASK(1, 0),
-               MT8188_DISP_DP_INTF0_SEL_IN_FROM_VPP_MERGE4_MOUT
-       }, {
-               DDP_COMPONENT_MERGE5, DDP_COMPONENT_DP_INTF1,
-               MT8188_VDO1_MERGE4_SOUT_SEL, GENMASK(3, 0),
-               MT8188_MERGE4_SOUT_TO_DP_INTF0_SEL
-       }
+       MMSYS_ROUTE(MDP_RDMA0, MERGE1,
+                   MT8188_VDO1_VPP_MERGE0_P0_SEL_IN, GENMASK(0, 0),
+                   MT8188_VPP_MERGE0_P0_SEL_IN_FROM_MDP_RDMA0),
+       MMSYS_ROUTE(MDP_RDMA1, MERGE1,
+                   MT8188_VDO1_VPP_MERGE0_P1_SEL_IN, GENMASK(0, 0),
+                   MT8188_VPP_MERGE0_P1_SEL_IN_FROM_MDP_RDMA1),
+       MMSYS_ROUTE(MDP_RDMA2, MERGE2,
+                   MT8188_VDO1_VPP_MERGE1_P0_SEL_IN, GENMASK(0, 0),
+                   MT8188_VPP_MERGE1_P0_SEL_IN_FROM_MDP_RDMA2),
+       MMSYS_ROUTE(MERGE1, ETHDR_MIXER,
+                   MT8188_VDO1_MERGE0_ASYNC_SOUT_SEL, GENMASK(1, 0),
+                   MT8188_SOUT_TO_MIXER_IN1_SEL),
+       MMSYS_ROUTE(MERGE2, ETHDR_MIXER,
+                   MT8188_VDO1_MERGE1_ASYNC_SOUT_SEL, GENMASK(1, 0),
+                   MT8188_SOUT_TO_MIXER_IN2_SEL),
+       MMSYS_ROUTE(MERGE3, ETHDR_MIXER,
+                   MT8188_VDO1_MERGE2_ASYNC_SOUT_SEL, GENMASK(1, 0),
+                   MT8188_SOUT_TO_MIXER_IN3_SEL),
+       MMSYS_ROUTE(MERGE4, ETHDR_MIXER,
+                   MT8188_VDO1_MERGE3_ASYNC_SOUT_SEL, GENMASK(1, 0),
+                   MT8188_SOUT_TO_MIXER_IN4_SEL),
+       MMSYS_ROUTE(ETHDR_MIXER, MERGE5,
+                   MT8188_VDO1_MIXER_OUT_SOUT_SEL, GENMASK(0, 0),
+                   MT8188_MIXER_SOUT_TO_MERGE4_ASYNC_SEL),
+       MMSYS_ROUTE(MERGE1, ETHDR_MIXER,
+                   MT8188_VDO1_MIXER_IN1_SEL_IN, GENMASK(0, 0),
+                   MT8188_MIXER_IN1_SEL_IN_FROM_MERGE0_ASYNC_SOUT),
+       MMSYS_ROUTE(MERGE2, ETHDR_MIXER,
+                   MT8188_VDO1_MIXER_IN2_SEL_IN, GENMASK(0, 0),
+                   MT8188_MIXER_IN2_SEL_IN_FROM_MERGE1_ASYNC_SOUT),
+       MMSYS_ROUTE(MERGE3, ETHDR_MIXER,
+                   MT8188_VDO1_MIXER_IN3_SEL_IN, GENMASK(0, 0),
+                   MT8188_MIXER_IN3_SEL_IN_FROM_MERGE2_ASYNC_SOUT),
+       MMSYS_ROUTE(MERGE4, ETHDR_MIXER,
+                   MT8188_VDO1_MIXER_IN4_SEL_IN, GENMASK(0, 0),
+                   MT8188_MIXER_IN4_SEL_IN_FROM_MERGE3_ASYNC_SOUT),
+       MMSYS_ROUTE(ETHDR_MIXER, MERGE5,
+                   MT8188_VDO1_MIXER_SOUT_SEL_IN, GENMASK(2, 0),
+                   MT8188_MIXER_SOUT_SEL_IN_FROM_DISP_MIXER),
+       MMSYS_ROUTE(ETHDR_MIXER, MERGE5,
+                   MT8188_VDO1_MERGE4_ASYNC_SEL_IN, GENMASK(2, 0),
+                   MT8188_MERGE4_ASYNC_SEL_IN_FROM_MIXER_OUT_SOUT),
+       MMSYS_ROUTE(MERGE5, DPI1,
+                   MT8188_VDO1_DISP_DPI1_SEL_IN, GENMASK(1, 0),
+                   MT8188_DISP_DPI1_SEL_IN_FROM_VPP_MERGE4_MOUT),
+       MMSYS_ROUTE(MERGE5, DPI1,
+                   MT8188_VDO1_MERGE4_SOUT_SEL, GENMASK(3, 0),
+                   MT8188_MERGE4_SOUT_TO_DPI1_SEL),
+       MMSYS_ROUTE(MERGE5, DP_INTF1,
+                   MT8188_VDO1_DISP_DP_INTF0_SEL_IN, GENMASK(1, 0),
+                   MT8188_DISP_DP_INTF0_SEL_IN_FROM_VPP_MERGE4_MOUT),
+       MMSYS_ROUTE(MERGE5, DP_INTF1,
+                   MT8188_VDO1_MERGE4_SOUT_SEL, GENMASK(3, 0),
+                   MT8188_MERGE4_SOUT_TO_DP_INTF0_SEL),
 };
 
 #endif /* __SOC_MEDIATEK_MT8188_MMSYS_H */