diff options
author | Scott Wood <scottwood@freescale.com> | 2007-09-05 15:29:10 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2007-09-10 17:02:09 -0400 |
commit | 83fcdb4b352f74a8a74737aedeaf622c37140c73 (patch) | |
tree | 2f948f23d9bf48aa08f82ff48661440c969ffa1c | |
parent | 36c50f729b77144cae8d43457fefca66a4eeff6a (diff) |
[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>
-rw-r--r-- | arch/powerpc/sysdev/cpm2_common.c | 2 |
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) | |||
102 | brg -= 4; | 102 | brg -= 4; |
103 | } | 103 | } |
104 | bp += brg; | 104 | bp += brg; |
105 | *bp = ((BRG_UART_CLK / rate) << 1) | CPM_BRG_EN; | 105 | out_be32(bp, (((BRG_UART_CLK / rate) - 1) << 1) | CPM_BRG_EN); |
106 | 106 | ||
107 | cpm2_unmap(bp); | 107 | cpm2_unmap(bp); |
108 | } | 108 | } |