* [PATCH] arch/mips/au1000/time.c cleanup
@ 2005-11-07 20:16 Sergei Shtylylov
2006-06-02 21:20 ` [PATCH] arch/mips/au1000/common/time.c cleanup (take 2) Sergei Shtylyov
2006-06-24 15:22 ` [PATCH] Alchemy counter runs at full CPU speed Sergei Shtylyov
0 siblings, 2 replies; 4+ messages in thread
From: Sergei Shtylylov @ 2005-11-07 20:16 UTC (permalink / raw)
To: Linux MIPS Development; +Cc: Manish Lachwani, Pete Popov, Konstantin Baidarov
[-- Attachment #1: Type: text/plain, Size: 228 bytes --]
Hello.
Mark au1xxx_timer_setup() __init, just because it is. Get rid of
unneeded extrns (note that (*do_gettimeoffset)() is already declared by
<asm/time.c>) and an unused variable. Kill some whitespace...
WBR, Sergei
[-- Attachment #2: Au1xx0-time-cleanup.patch --]
[-- Type: text/plain, Size: 1026 bytes --]
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Index: arch/mips/au1000/common/time.c
===================================================================
--- arch/mips/au1000/common/time.c~ 19 Jul 2005 07:05:36 -0000
+++ arch/mips/au1000/common/time.c 1 Nov 2005 19:03:51 -0000
@@ -50,10 +50,6 @@
#include <linux/mc146818rtc.h>
#include <linux/timex.h>
-extern void do_softirq(void);
-extern volatile unsigned long wall_jiffies;
-unsigned long missed_heart_beats = 0;
-
static unsigned long r4k_offset; /* Amount to increment compare reg each time */
static unsigned long r4k_cur; /* What counter should be at next timer irq */
int no_au1xxx_32khz;
@@ -387,10 +383,9 @@ static unsigned long do_fast_pm_gettimeo
}
#endif
-void au1xxx_timer_setup(struct irqaction *irq)
+void __init au1xxx_timer_setup(struct irqaction *irq)
{
- unsigned int est_freq;
- extern unsigned long (*do_gettimeoffset)(void);
+ unsigned int est_freq;
printk("calculating r4koff... ");
r4k_offset = cal_r4koff();
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH] arch/mips/au1000/common/time.c cleanup (take 2)
2005-11-07 20:16 [PATCH] arch/mips/au1000/time.c cleanup Sergei Shtylylov
@ 2006-06-02 21:20 ` Sergei Shtylyov
2006-09-03 18:17 ` [PATCH] Au1xx0 code sets incorrect mips_hpt_frequency Sergei Shtylyov
2006-06-24 15:22 ` [PATCH] Alchemy counter runs at full CPU speed Sergei Shtylyov
1 sibling, 1 reply; 4+ messages in thread
From: Sergei Shtylyov @ 2006-06-02 21:20 UTC (permalink / raw)
To: Linux-MIPS; +Cc: Manish Lachwani, Ralf Baechle, Jordan Crouse
[-- Attachment #1: Type: text/plain, Size: 496 bytes --]
Au1xx0 CPU counter ticks at the full CPU clock speed, not at the halved
one -- this is not an issue with the current kernel since Alchemy uses its own
timer handler here which pays no attention to mips_hpt_frequency.
Additionally, mark au1xxx_timer_setup() __init because it is, get rid of
unneeded externs (note that (*do_gettimeoffset)() is already declared by
<asm/time.c>) and an unused variable, and kill some whitespace...
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
[-- Attachment #2: Au1xx0-fix-counter-frequency.patch --]
[-- Type: text/plain, Size: 1633 bytes --]
Index: linux-mips/arch/mips/au1000/common/time.c
===================================================================
--- linux-mips.orig/arch/mips/au1000/common/time.c
+++ linux-mips/arch/mips/au1000/common/time.c
@@ -50,10 +50,6 @@
#include <linux/mc146818rtc.h>
#include <linux/timex.h>
-extern void do_softirq(void);
-extern volatile unsigned long wall_jiffies;
-unsigned long missed_heart_beats = 0;
-
static unsigned long r4k_offset; /* Amount to increment compare reg each time */
static unsigned long r4k_cur; /* What counter should be at next timer irq */
int no_au1xxx_32khz;
@@ -287,7 +283,6 @@ unsigned long cal_r4koff(void)
#else
cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) *
AU1000_SRC_CLK;
- count = cpu_speed / 2;
#endif
}
else {
@@ -296,10 +291,9 @@ unsigned long cal_r4koff(void)
* NOTE: some old silicon doesn't allow reading the PLL.
*/
cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK;
- count = cpu_speed / 2;
no_au1xxx_32khz = 1;
}
- mips_hpt_frequency = count;
+ mips_hpt_frequency = cpu_speed;
// Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16)
set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16));
spin_unlock_irqrestore(&time_lock, flags);
@@ -388,10 +382,9 @@ static unsigned long do_fast_pm_gettimeo
}
#endif
-void au1xxx_timer_setup(struct irqaction *irq)
+void __init au1xxx_timer_setup(struct irqaction *irq)
{
- unsigned int est_freq;
- extern unsigned long (*do_gettimeoffset)(void);
+ unsigned int est_freq;
printk("calculating r4koff... ");
r4k_offset = cal_r4koff();
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH] Au1xx0 code sets incorrect mips_hpt_frequency
2006-06-02 21:20 ` [PATCH] arch/mips/au1000/common/time.c cleanup (take 2) Sergei Shtylyov
@ 2006-09-03 18:17 ` Sergei Shtylyov
0 siblings, 0 replies; 4+ messages in thread
From: Sergei Shtylyov @ 2006-09-03 18:17 UTC (permalink / raw)
To: Linux-MIPS; +Cc: Manish Lachwani, Ralf Baechle
[-- Attachment #1: Type: text/plain, Size: 507 bytes --]
Alchemy CPU counter ticks at the full CPU clock speed, not at the halved one
-- this is not an issue with the current kernel since Alchemy uses its own
timer handler here which pays no attention to mips_hpt_frequency.
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
---
I joined this fix to the arch/mips/au1000/common/time.c cleanup patch
previously but its earlier verison has been finally committed, so here's the
recast which fixes the warning about the 'count' variable being unused...
[-- Attachment #2: Au1xx0-fix-counter-frequency.patch --]
[-- Type: text/plain, Size: 1296 bytes --]
Index: linux-mips/arch/mips/au1000/common/time.c
===================================================================
--- linux-mips.orig/arch/mips/au1000/common/time.c
+++ linux-mips/arch/mips/au1000/common/time.c
@@ -231,7 +231,6 @@ wakeup_counter0_set(int ticks)
*/
unsigned long cal_r4koff(void)
{
- unsigned long count;
unsigned long cpu_speed;
unsigned long flags;
unsigned long counter;
@@ -258,7 +257,7 @@ unsigned long cal_r4koff(void)
#if defined(CONFIG_AU1000_USE32K)
{
- unsigned long start, end;
+ unsigned long start, end, count;
start = au_readl(SYS_RTCREAD);
start += 2;
@@ -282,7 +281,6 @@ unsigned long cal_r4koff(void)
#else
cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) *
AU1000_SRC_CLK;
- count = cpu_speed / 2;
#endif
}
else {
@@ -291,10 +289,9 @@ unsigned long cal_r4koff(void)
* NOTE: some old silicon doesn't allow reading the PLL.
*/
cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK;
- count = cpu_speed / 2;
no_au1xxx_32khz = 1;
}
- mips_hpt_frequency = count;
+ mips_hpt_frequency = cpu_speed;
// Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16)
set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16));
spin_unlock_irqrestore(&time_lock, flags);
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] Alchemy counter runs at full CPU speed
2005-11-07 20:16 [PATCH] arch/mips/au1000/time.c cleanup Sergei Shtylylov
2006-06-02 21:20 ` [PATCH] arch/mips/au1000/common/time.c cleanup (take 2) Sergei Shtylyov
@ 2006-06-24 15:22 ` Sergei Shtylyov
1 sibling, 0 replies; 4+ messages in thread
From: Sergei Shtylyov @ 2006-06-24 15:22 UTC (permalink / raw)
To: Linux-MIPS; +Cc: Ralf Baechle
[-- Attachment #1: Type: text/plain, Size: 388 bytes --]
Au1xx0 CPU counter ticks at the full CPU clock speed, not at the halved one.
This is not an issue with the current kernel since Alchemy uses its own timer
handler here which pays no attention to mips_hpt_frequency, so this is a
cleanup type patch (though our kernel had its clock ticking at double speed
because of this :-).
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
[-- Attachment #2: Au1xx0-fix-counter-frequency.patch --]
[-- Type: text/plain, Size: 894 bytes --]
Index: linux-mips/arch/mips/au1000/common/time.c
===================================================================
--- linux-mips.orig/arch/mips/au1000/common/time.c
+++ linux-mips/arch/mips/au1000/common/time.c
@@ -287,7 +287,6 @@ unsigned long cal_r4koff(void)
#else
cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) *
AU1000_SRC_CLK;
- count = cpu_speed / 2;
#endif
}
else {
@@ -296,10 +295,9 @@ unsigned long cal_r4koff(void)
* NOTE: some old silicon doesn't allow reading the PLL.
*/
cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK;
- count = cpu_speed / 2;
no_au1xxx_32khz = 1;
}
- mips_hpt_frequency = count;
+ mips_hpt_frequency = cpu_speed;
// Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16)
set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16));
spin_unlock_irqrestore(&time_lock, flags);
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-09-03 18:16 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-07 20:16 [PATCH] arch/mips/au1000/time.c cleanup Sergei Shtylylov
2006-06-02 21:20 ` [PATCH] arch/mips/au1000/common/time.c cleanup (take 2) Sergei Shtylyov
2006-09-03 18:17 ` [PATCH] Au1xx0 code sets incorrect mips_hpt_frequency Sergei Shtylyov
2006-06-24 15:22 ` [PATCH] Alchemy counter runs at full CPU speed Sergei Shtylyov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.