media: aspeed: set hsync and vsync polarities to normal before starting mode detection
authorJae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
Fri, 13 Sep 2019 18:11:05 +0000 (15:11 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 24 Oct 2019 21:30:36 +0000 (18:30 -0300)
Sometimes it detects a weird resolution such as 1024x287 when the
actual resolution is 1024x768. To resolve such an issue, this
commit adds clearing for hsync and vsync polarity register bits
at the beginning of the first mode detection. This is recommended
in the datasheet.

Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
Reviewed-by: Eddie James <eajames@linux.ibm.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/aspeed-video.c

index 8f77079da55af7e76a0a8661aa00eab108db55aa..929b3a5b88490095db0ee98ffd619283912887f5 100644 (file)
@@ -740,6 +740,8 @@ static void aspeed_video_get_resolution(struct aspeed_video *video)
                }
 
                set_bit(VIDEO_RES_DETECT, &video->flags);
+               aspeed_video_update(video, VE_CTRL,
+                                   VE_CTRL_VSYNC_POL | VE_CTRL_HSYNC_POL, 0);
                aspeed_video_enable_mode_detect(video);
 
                rc = wait_event_interruptible_timeout(video->wait,