summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev/cpm2_common.c
diff options
context:
space:
mode:
authorScott Wood2007-09-05 21:29:10 +0200
committerKumar Gala2007-09-10 23:02:09 +0200
commit83fcdb4b352f74a8a74737aedeaf622c37140c73 (patch)
tree2f948f23d9bf48aa08f82ff48661440c969ffa1c /arch/powerpc/sysdev/cpm2_common.c
parent[PPC] 8xx: Fix r3 trashing due to 8MB TLB page instantiation (diff)
downloadkernel-qcow2-linux-83fcdb4b352f74a8a74737aedeaf622c37140c73.tar.gz
kernel-qcow2-linux-83fcdb4b352f74a8a74737aedeaf622c37140c73.tar.xz
kernel-qcow2-linux-83fcdb4b352f74a8a74737aedeaf622c37140c73.zip
[POWERPC] cpm2: Fix off-by-one error in setbrg().
The hardware adds one to the BRG value to get the divider, so it must be subtracted by software. Without this patch, characters will occasionally be corrupted. Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/sysdev/cpm2_common.c')
-rw-r--r--arch/powerpc/sysdev/cpm2_common.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/sysdev/cpm2_common.c b/arch/powerpc/sysdev/cpm2_common.c
index 924412974795..c827715a5090 100644
--- a/arch/powerpc/sysdev/cpm2_common.c
+++ b/arch/powerpc/sysdev/cpm2_common.c
@@ -102,7 +102,7 @@ cpm_setbrg(uint brg, uint rate)
brg -= 4;
}
bp += brg;
- *bp = ((BRG_UART_CLK / rate) << 1) | CPM_BRG_EN;
+ out_be32(bp, (((BRG_UART_CLK / rate) - 1) << 1) | CPM_BRG_EN);
cpm2_unmap(bp);
}