Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7240f1f1 authored by Lennert Buytenhek's avatar Lennert Buytenhek Committed by Russell King
Browse files

[ARM] 3114/1: use ixp2000_reg_wrb in ixp2000 uengine loader



Patch from Lennert Buytenhek

Make the uengine loader use ixp2000_reg_wrb in the right places.

Signed-off-by: default avatarLennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 84613387
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -91,8 +91,8 @@ EXPORT_SYMBOL(ixp2000_uengine_csr_write);

void ixp2000_uengine_reset(u32 uengine_mask)
{
	ixp2000_reg_write(IXP2000_RESET1, uengine_mask & ixp2000_uengine_mask);
	ixp2000_reg_write(IXP2000_RESET1, 0);
	ixp2000_reg_wrb(IXP2000_RESET1, uengine_mask & ixp2000_uengine_mask);
	ixp2000_reg_wrb(IXP2000_RESET1, 0);
}
EXPORT_SYMBOL(ixp2000_uengine_reset);

@@ -452,21 +452,20 @@ static int __init ixp2000_uengine_init(void)
	/*
	 * Reset microengines.
	 */
	ixp2000_reg_write(IXP2000_RESET1, ixp2000_uengine_mask);
	ixp2000_reg_write(IXP2000_RESET1, 0);
	ixp2000_uengine_reset(ixp2000_uengine_mask);

	/*
	 * Synchronise timestamp counters across all microengines.
	 */
	value = ixp2000_reg_read(IXP2000_MISC_CONTROL);
	ixp2000_reg_write(IXP2000_MISC_CONTROL, value & ~0x80);
	ixp2000_reg_wrb(IXP2000_MISC_CONTROL, value & ~0x80);
	for (uengine = 0; uengine < 32; uengine++) {
		if (ixp2000_uengine_mask & (1 << uengine)) {
			ixp2000_uengine_csr_write(uengine, TIMESTAMP_LOW, 0);
			ixp2000_uengine_csr_write(uengine, TIMESTAMP_HIGH, 0);
		}
	}
	ixp2000_reg_write(IXP2000_MISC_CONTROL, value | 0x80);
	ixp2000_reg_wrb(IXP2000_MISC_CONTROL, value | 0x80);

	return 0;
}