arm: tcc8k: Fix clock rate calculation
authorHans J. Koch <hjk@linutronix.de>
Thu, 17 Feb 2011 15:42:59 +0000 (16:42 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 11 Mar 2011 09:06:06 +0000 (10:06 +0100)
commitfe03a9f7bb89e920e60fd1bb074adab2eed2bf48
tree4389363bf88c7d8d04b1bfc5f3421333470decb4
parent85922e54a3a14a6aee6c0b1fc67d81ef0c60fc9c
arm: tcc8k: Fix clock rate calculation

The calculation of the best divider value for a requested clock rate
always returned a value that was slightly too large. It was also not
protected against possible divisions by zero.

Request for very low, but non zero rates would cause the ACLK divisor
field to overflow. Catch this situation by using the maximum value.

The internal function aclk_set_rate() calculates the correct divider
value, but doesn't write it back to the register. Add the write back.

Signed-off-by: Hans J. Koch <hjk@linutronix.de>
Signed-off-by: Oskar Schirmer <oskar@linutronix.de>
Cc: bigeasy@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/arm/mach-tcc8k/clock.c