Commit 53c1b192 authored by Sergei Shtylyov's avatar Sergei Shtylyov Committed by Ralf Baechle

[MIPS] Au1xx0 code sets incorrect mips_hpt_frequency

Alchemy CPU counter ticks at the full CPU clock speed.
Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent be609f35
...@@ -231,7 +231,6 @@ wakeup_counter0_set(int ticks) ...@@ -231,7 +231,6 @@ wakeup_counter0_set(int ticks)
*/ */
unsigned long cal_r4koff(void) unsigned long cal_r4koff(void)
{ {
unsigned long count;
unsigned long cpu_speed; unsigned long cpu_speed;
unsigned long flags; unsigned long flags;
unsigned long counter; unsigned long counter;
...@@ -258,7 +257,7 @@ unsigned long cal_r4koff(void) ...@@ -258,7 +257,7 @@ unsigned long cal_r4koff(void)
#if defined(CONFIG_AU1000_USE32K) #if defined(CONFIG_AU1000_USE32K)
{ {
unsigned long start, end; unsigned long start, end, count;
start = au_readl(SYS_RTCREAD); start = au_readl(SYS_RTCREAD);
start += 2; start += 2;
...@@ -282,7 +281,6 @@ unsigned long cal_r4koff(void) ...@@ -282,7 +281,6 @@ unsigned long cal_r4koff(void)
#else #else
cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) *
AU1000_SRC_CLK; AU1000_SRC_CLK;
count = cpu_speed / 2;
#endif #endif
} }
else { else {
...@@ -291,10 +289,9 @@ unsigned long cal_r4koff(void) ...@@ -291,10 +289,9 @@ unsigned long cal_r4koff(void)
* NOTE: some old silicon doesn't allow reading the PLL. * NOTE: some old silicon doesn't allow reading the PLL.
*/ */
cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK; cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK;
count = cpu_speed / 2;
no_au1xxx_32khz = 1; no_au1xxx_32khz = 1;
} }
mips_hpt_frequency = count; mips_hpt_frequency = cpu_speed;
// Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16) // Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16)
set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16)); set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16));
spin_unlock_irqrestore(&time_lock, flags); spin_unlock_irqrestore(&time_lock, flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment