Commit da6cf512 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Florian Tobias Schandinat
Browse files

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: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
parent 3c8a63e2
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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;
}