aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/sh_mobile_meram.c
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2011-08-31 07:00:52 -0400
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2011-09-05 12:37:13 -0400
commitda6cf5125f66ed1810616937777884cea021e66a (patch)
treea0d171675594e4a1bca6175dab680c01fdf36a16 /drivers/video/sh_mobile_meram.c
parent3c8a63e22a0802fd56380f6ab305b419f18eb6f5 (diff)
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/sh_mobile_meram.c')
-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 f63297099193..4d63490209cd 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,
373 struct sh_mobile_meram_icb *icb) 373 struct sh_mobile_meram_icb *icb)
374{ 374{
375 /* disable ICB */ 375 /* disable ICB */
376 meram_write_icb(priv->base, icb->cache_icb, MExxCTL, 0); 376 meram_write_icb(priv->base, icb->cache_icb, MExxCTL,
377 meram_write_icb(priv->base, icb->marker_icb, MExxCTL, 0); 377 MExxCTL_WBF | MExxCTL_WF | MExxCTL_RF);
378 meram_write_icb(priv->base, icb->marker_icb, MExxCTL,
379 MExxCTL_WBF | MExxCTL_WF | MExxCTL_RF);
378 icb->cache_unit = 0; 380 icb->cache_unit = 0;
379} 381}
380 382