diff options
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0062-media-aspeed-add-a-workaround-to-fix-a-silicon-bug.patch')
-rw-r--r-- | meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0062-media-aspeed-add-a-workaround-to-fix-a-silicon-bug.patch | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0062-media-aspeed-add-a-workaround-to-fix-a-silicon-bug.patch b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0062-media-aspeed-add-a-workaround-to-fix-a-silicon-bug.patch deleted file mode 100644 index a10963572..000000000 --- a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0062-media-aspeed-add-a-workaround-to-fix-a-silicon-bug.patch +++ /dev/null @@ -1,68 +0,0 @@ -From fa386f96691ed8501949daf5129667b72723a55e Mon Sep 17 00:00:00 2001 -From: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> -Date: Thu, 23 May 2019 14:33:03 -0700 -Subject: [PATCH] media: aspeed: add a workaround to fix a silicon bug - -AST2500 silicon revision A1 and A2 have a silicon bug which causes -extremly long capturing time on specific resolutions (1680 width). -To fix the bug, this commit adjusts the capturing window register -setting to 1728 if detected width is 1680. The compression window -register setting will be kept as the original width so output -result will be the same. - -Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> ---- - drivers/media/platform/aspeed-video.c | 28 +++++++++++++++++++++------- - 1 file changed, 21 insertions(+), 7 deletions(-) - -diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c -index 67d6380d4ef3..f58f44eab588 100644 ---- a/drivers/media/platform/aspeed-video.c -+++ b/drivers/media/platform/aspeed-video.c -@@ -826,8 +826,29 @@ static void aspeed_video_set_resolution(struct aspeed_video *video) - struct v4l2_bt_timings *act = &video->active_timings; - unsigned int size = act->width * act->height; - -+ /* Set capture/compression frame sizes */ - aspeed_video_calc_compressed_size(video, size); - -+ if (video->active_timings.width == 1680) { -+ /* -+ * This is a workaround to fix a silicon bug on A1 and A2 -+ * revisions. Since it doesn't break capturing operation of -+ * other revisions, use it for all revisions without checking -+ * the revision ID. It picked 1728 which is a very next -+ * 64-pixels aligned value to 1680 to minimize memory bandwidth -+ * and to get better access speed from video engine. -+ */ -+ aspeed_video_write(video, VE_CAP_WINDOW, -+ 1728 << 16 | act->height); -+ size += (1728 - 1680) * video->active_timings.height; -+ } else { -+ aspeed_video_write(video, VE_CAP_WINDOW, -+ act->width << 16 | act->height); -+ } -+ aspeed_video_write(video, VE_COMP_WINDOW, -+ act->width << 16 | act->height); -+ aspeed_video_write(video, VE_SRC_SCANLINE_OFFSET, act->width * 4); -+ - /* Don't use direct mode below 1024 x 768 (irqs don't fire) */ - if (size < DIRECT_FETCH_THRESHOLD) { - aspeed_video_write(video, VE_TGS_0, -@@ -844,13 +865,6 @@ static void aspeed_video_set_resolution(struct aspeed_video *video) - aspeed_video_update(video, VE_CTRL, 0, VE_CTRL_DIRECT_FETCH); - } - -- /* Set capture/compression frame sizes */ -- aspeed_video_write(video, VE_CAP_WINDOW, -- act->width << 16 | act->height); -- aspeed_video_write(video, VE_COMP_WINDOW, -- act->width << 16 | act->height); -- aspeed_video_write(video, VE_SRC_SCANLINE_OFFSET, act->width * 4); -- - size *= 4; - - if (size != video->srcs[0].size) { --- -2.7.4 - |