summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2011-08-31 11:00:52 (GMT)
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2011-09-05 16:37:13 (GMT)
commitda6cf5125f66ed1810616937777884cea021e66a (patch)
treea0d171675594e4a1bca6175dab680c01fdf36a16 /drivers/video
parent3c8a63e22a0802fd56380f6ab305b419f18eb6f5 (diff)
downloadlinux-da6cf5125f66ed1810616937777884cea021e66a.tar.xz
sh_mobile_meram: Reset ICBs at unregistration time
When ICBs are unregistered and later reused they need to be reset to avoid data corruption. Set the WBF, WF and RF bits to make sure ICBs get reset properly. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/sh_mobile_meram.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/video/sh_mobile_meram.c b/drivers/video/sh_mobile_meram.c
index f632970..4d63490 100644
--- a/drivers/video/sh_mobile_meram.c
+++ b/drivers/video/sh_mobile_meram.c
@@ -373,8 +373,10 @@ static void meram_deinit(struct sh_mobile_meram_priv *priv,
struct sh_mobile_meram_icb *icb)
{
/* disable ICB */
- meram_write_icb(priv->base, icb->cache_icb, MExxCTL, 0);
- meram_write_icb(priv->base, icb->marker_icb, MExxCTL, 0);
+ meram_write_icb(priv->base, icb->cache_icb, MExxCTL,
+ MExxCTL_WBF | MExxCTL_WF | MExxCTL_RF);
+ meram_write_icb(priv->base, icb->marker_icb, MExxCTL,
+ MExxCTL_WBF | MExxCTL_WF | MExxCTL_RF);
icb->cache_unit = 0;
}