aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorBen Dooks <ben-linux@fluff.org>2007-06-23 20:16:29 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-06-24 11:59:11 -0400
commit5136237bc392413332b02e69ada158c307da658f (patch)
tree3437861d521eec1d011d80fd8bdd67efa1339fa4 /drivers/mfd
parentb5913bbd2ddebd9c2c6841986c29376e691dd396 (diff)
SM501: Fix sm501_init_reg() mask/set order
The order of the set and mask operation in sm501_init_reg() was setting and then masking the bits set. Correct the order so that we do not end up with 288MHz SDRAM clocks on certain systems. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/sm501.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c
index 4c4412e0de24..3a0ecfc404e9 100644
--- a/drivers/mfd/sm501.c
+++ b/drivers/mfd/sm501.c
@@ -813,6 +813,9 @@ static DEVICE_ATTR(dbg_regs, 0666, sm501_dbg_regs, NULL);
813/* sm501_init_reg 813/* sm501_init_reg
814 * 814 *
815 * Helper function for the init code to setup a register 815 * Helper function for the init code to setup a register
816 *
817 * clear the bits which are set in r->mask, and then set
818 * the bits set in r->set.
816*/ 819*/
817 820
818static inline void sm501_init_reg(struct sm501_devdata *sm, 821static inline void sm501_init_reg(struct sm501_devdata *sm,
@@ -822,8 +825,8 @@ static inline void sm501_init_reg(struct sm501_devdata *sm,
822 unsigned long tmp; 825 unsigned long tmp;
823 826
824 tmp = readl(sm->regs + reg); 827 tmp = readl(sm->regs + reg);
825 tmp |= r->set;
826 tmp &= ~r->mask; 828 tmp &= ~r->mask;
829 tmp |= r->set;
827 writel(tmp, sm->regs + reg); 830 writel(tmp, sm->regs + reg);
828} 831}
829 832