From: Rafał Miłecki Date: Tue, 19 Aug 2014 07:14:13 +0000 (+0200) Subject: mtd: bcm47xxnflash: fix typo in freq calculation X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=785e5e111f2187ea3e6f4035f6009da62dd5c043;p=openwrt%2Fstaging%2Fblogic.git mtd: bcm47xxnflash: fix typo in freq calculation We are supposed to mask value, not multiply it. Add some comments btw. Signed-off-by: Rafał Miłecki Signed-off-by: Brian Norris --- diff --git a/drivers/mtd/nand/bcm47xxnflash/ops_bcm4706.c b/drivers/mtd/nand/bcm47xxnflash/ops_bcm4706.c index b2ab373c9eef..dc204f3a47ed 100644 --- a/drivers/mtd/nand/bcm47xxnflash/ops_bcm4706.c +++ b/drivers/mtd/nand/bcm47xxnflash/ops_bcm4706.c @@ -364,11 +364,13 @@ int bcm47xxnflash_ops_bcm4706_init(struct bcm47xxnflash *b47n) /* Configure wait counters */ if (b47n->cc->status & BCMA_CC_CHIPST_4706_PKG_OPTION) { - freq = 100000000; + /* 400 MHz */ + freq = 400000000 / 4; } else { freq = bcma_chipco_pll_read(b47n->cc, 4); - freq = (freq * 0xFFF) >> 3; - freq = (freq * 25000000) >> 3; + freq = (freq & 0xFFF) >> 3; + /* Fixed reference clock 25 MHz and m = 2 */ + freq = (freq * 25000000 / 2) / 4; } clock = freq / 1000000; w0 = bcm47xxnflash_ops_bcm4706_ns_to_cycle(15, clock);