From: Hartley Sweeten <hartleys@visionengravers.com> Date: Mon, 14 Jun 2010 15:54:16 +0000 (+0100) Subject: ARM: 6174/1: ep93xx: clear devcfg bits before setting them X-Git-Tag: v2.6.36-rc1~591^2~2^3 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=a0fb007bf0c7de9ae361a9ad3821df4c69d4d2d9;p=users%2Fjedix%2Flinux-maple.git ARM: 6174/1: ep93xx: clear devcfg bits before setting them The ep93xx core helper function ep93xx_devcfg_set_clear should mask the clear_bits before setting the new set_bits in case the clear_bits are a mask value that also includes the set_bits. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Acked-by: Ryan Mallon <ryan@bluewatersys.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> --- diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c index f4b25bf00b64..8e37a045188c 100644 --- a/arch/arm/mach-ep93xx/core.c +++ b/arch/arm/mach-ep93xx/core.c @@ -216,8 +216,8 @@ void ep93xx_devcfg_set_clear(unsigned int set_bits, unsigned int clear_bits) spin_lock_irqsave(&syscon_swlock, flags); val = __raw_readl(EP93XX_SYSCON_DEVCFG); - val |= set_bits; val &= ~clear_bits; + val |= set_bits; __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK); __raw_writel(val, EP93XX_SYSCON_DEVCFG);