summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0062-media-aspeed-add-a-workaround-to-fix-a-silicon-bug.patch
diff options
context:
space:
mode:
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.patch26
1 files changed, 14 insertions, 12 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
index efa6f5023..a10963572 100644
--- 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
@@ -1,7 +1,7 @@
-From 09ec380a1d6ae66b2a8124c8fdd984ff829b41d1 Mon Sep 17 00:00:00 2001
+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 4/4] media: aspeed: add a workaround to fix a silicon bug
+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).
@@ -12,14 +12,14 @@ result will be the same.
Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
---
- drivers/media/platform/aspeed-video.c | 26 +++++++++++++++++++-------
- 1 file changed, 19 insertions(+), 7 deletions(-)
+ 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 da20e93f58d3..c2d4a2e6f20f 100644
+index 67d6380d4ef3..f58f44eab588 100644
--- a/drivers/media/platform/aspeed-video.c
+++ b/drivers/media/platform/aspeed-video.c
-@@ -826,8 +826,27 @@ static void aspeed_video_set_resolution(struct aspeed_video *video)
+@@ -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;
@@ -29,9 +29,11 @@ index da20e93f58d3..c2d4a2e6f20f 100644
+ 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 on A0
-+ * revision, use it for all revisions without checking the
-+ * revision ID.
++ * 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);
@@ -47,7 +49,7 @@ index da20e93f58d3..c2d4a2e6f20f 100644
/* 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 +863,6 @@ static void aspeed_video_set_resolution(struct aspeed_video *video)
+@@ -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);
}
@@ -60,7 +62,7 @@ index da20e93f58d3..c2d4a2e6f20f 100644
-
size *= 4;
- if (size == video->srcs[0].size / 2) {
+ if (size != video->srcs[0].size) {
--
-2.21.0
+2.7.4