Commit da6cf5125f66ed1810616937777884cea021e66a

Authored by Laurent Pinchart
Committed by Florian Tobias Schandinat
1 parent 3c8a63e22a

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>

Showing 1 changed file with 4 additions and 2 deletions Side-by-side Diff

drivers/video/sh_mobile_meram.c
... ... @@ -373,8 +373,10 @@
373 373 struct sh_mobile_meram_icb *icb)
374 374 {
375 375 /* disable ICB */
376   - meram_write_icb(priv->base, icb->cache_icb, MExxCTL, 0);
377   - meram_write_icb(priv->base, icb->marker_icb, MExxCTL, 0);
  376 + meram_write_icb(priv->base, icb->cache_icb, MExxCTL,
  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 380 icb->cache_unit = 0;
379 381 }
380 382