From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
linux-omap@vger.kernel.org, linux-fbdev@vger.kernel.org
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Subject: [PATCH 01/11] OMAPDSS: DISPC: work-around for errata i631
Date: Wed, 17 Jun 2015 12:54:25 +0000 [thread overview]
Message-ID: <1434545675-477-2-git-send-email-tomi.valkeinen@ti.com> (raw)
In-Reply-To: <1434545675-477-1-git-send-email-tomi.valkeinen@ti.com>
Errata i631 description:
"When in YUV4:2:0 format in 1D burst, the DISPC DMA skips lines when
fetching Chroma sampling."
Workaround:
"If YUV4:2:0-1D burst is required: Set
DISPC_VIDp_ATTRIBUTES[22]DOUBLESTRIDE to 0x0 and
DISPC_VIDp_ATTRIBUTES[13:12]ROTATION to 0x1 or 0x3"
The description is somewhat confusing, but testing has shown that DSS
fetches extra rows from memory when using NV12 format in 1D mode. If the
memory after the framebuffer is inaccessible, this leads to OCP errors.
The driver always uses DOUBLESTRIDE=0 when using 1D mode, so we only
need to handle the ROTATION part.
The issue exist on all OMAP4 and OMAP5 based DSS IPs.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
drivers/video/fbdev/omap2/dss/dispc.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/video/fbdev/omap2/dss/dispc.c b/drivers/video/fbdev/omap2/dss/dispc.c
index f4fc77d9d3bf..a074d8b70591 100644
--- a/drivers/video/fbdev/omap2/dss/dispc.c
+++ b/drivers/video/fbdev/omap2/dss/dispc.c
@@ -1741,6 +1741,15 @@ static void dispc_ovl_set_rotation_attrs(enum omap_plane plane, u8 rotation,
row_repeat = false;
}
+ /*
+ * OMAP4/5 Errata i631:
+ * NV12 in 1D mode must use ROTATION=1. Otherwise DSS will fetch extra
+ * rows beyond the framebuffer, which may cause OCP error.
+ */
+ if (color_mode = OMAP_DSS_COLOR_NV12 &&
+ rotation_type != OMAP_DSS_ROT_TILER)
+ vidrot = 1;
+
REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), vidrot, 13, 12);
if (dss_has_feature(FEAT_ROWREPEATENABLE))
REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane),
--
2.1.4
next prev parent reply other threads:[~2015-06-17 12:54 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-17 12:54 [PATCH 00/11] OMAPDSS: scaling & misc fixes Tomi Valkeinen
2015-06-17 12:54 ` Tomi Valkeinen [this message]
2015-06-17 12:54 ` [PATCH 02/11] OMAPDSS: DISPC: fix predecimation for YUV modes Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 03/11] OMAPDSS: DISPC: fix check_horiz_timing_omap3 args Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 04/11] OMAPDSS: DISPC: add check for scaling limits Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 05/11] OMAPDSS: DISPC: fix row_inc for OMAP3 Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 06/11] OMAPDSS: DISPC: fix 64 bit issue in 5-tap Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 07/11] OMAPDSS: DISPC: check if scaling setup failed Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 08/11] OMAPDSS: DISPC: do only y decimation on OMAP3 Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 09/11] OMAPDSS: DISPC: scaler debug print Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 10/11] OMAPDSS: HDMI4: fix error handling Tomi Valkeinen
2015-06-17 12:54 ` [PATCH 11/11] OMAPDSS: HDMI: wait for framedone when stopping video Tomi Valkeinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1434545675-477-2-git-send-email-tomi.valkeinen@ti.com \
--to=tomi.valkeinen@ti.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).