media: aspeed: Add macro for the fields of the mode-detect registers
authorJammy Huang <jammy_huang@aspeedtech.com>
Wed, 26 Jan 2022 01:47:24 +0000 (09:47 +0800)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Tue, 22 Feb 2022 08:41:11 +0000 (09:41 +0100)
VE_MODE_DT_HOR_TOLER: the tolerance in detecting for stable horizontal
signal.
VE_MODE_DT_VER_TOLER: the tolerance in detecting for stable vertical
signal.
VE_MODE_DT_HOR_STABLE: the minimum required count in detecting stable
HSYNC signal to set mode detection horizontal signal stable.
VE_MODE_DT_VER_STABLE: the minimum required count in detecting stable
VSYNC signal to set mode detection vertical signal stable.

Signed-off-by: Jammy Huang <jammy_huang@aspeedtech.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/platform/aspeed-video.c

index 06ab9e9..cc6825f 100644 (file)
 #define  VE_INTERRUPT_VSYNC_DESC       BIT(11)
 
 #define VE_MODE_DETECT                 0x30c
+#define  VE_MODE_DT_HOR_TOLER          GENMASK(31, 28)
+#define  VE_MODE_DT_VER_TOLER          GENMASK(27, 24)
+#define  VE_MODE_DT_HOR_STABLE         GENMASK(23, 20)
+#define  VE_MODE_DT_VER_STABLE         GENMASK(19, 16)
+#define  VE_MODE_DT_EDG_THROD          GENMASK(15, 8)
+
 #define VE_MEM_RESTRICT_START          0x310
 #define VE_MEM_RESTRICT_END            0x314
 
@@ -1135,7 +1141,12 @@ static void aspeed_video_init_regs(struct aspeed_video *video)
        aspeed_video_write(video, VE_SCALING_FILTER3, 0x00200000);
 
        /* Set mode detection defaults */
-       aspeed_video_write(video, VE_MODE_DETECT, 0x22666500);
+       aspeed_video_write(video, VE_MODE_DETECT,
+                          FIELD_PREP(VE_MODE_DT_HOR_TOLER, 2) |
+                          FIELD_PREP(VE_MODE_DT_VER_TOLER, 2) |
+                          FIELD_PREP(VE_MODE_DT_HOR_STABLE, 6) |
+                          FIELD_PREP(VE_MODE_DT_VER_STABLE, 6) |
+                          FIELD_PREP(VE_MODE_DT_EDG_THROD, 0x65));
 }
 
 static void aspeed_video_start(struct aspeed_video *video)