Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
e1af51c9
Commit
e1af51c9
authored
Oct 11, 2002
by
Pete Zaitcev
Committed by
David S. Miller
Oct 11, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[SPARC]: Fix build of timer routines.
parent
4e78141d
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
10 additions
and
24 deletions
+10
-24
arch/sparc/kernel/pcic.c
arch/sparc/kernel/pcic.c
+7
-11
arch/sparc/kernel/time.c
arch/sparc/kernel/time.c
+3
-13
No files found.
arch/sparc/kernel/pcic.c
View file @
e1af51c9
...
@@ -34,6 +34,8 @@
...
@@ -34,6 +34,8 @@
#include <asm/timer.h>
#include <asm/timer.h>
#include <asm/uaccess.h>
#include <asm/uaccess.h>
extern
rwlock_t
xtime_lock
;
#ifndef CONFIG_PCI
#ifndef CONFIG_PCI
asmlinkage
int
sys_pciconfig_read
(
unsigned
long
bus
,
asmlinkage
int
sys_pciconfig_read
(
unsigned
long
bus
,
...
@@ -737,8 +739,10 @@ static void pcic_clear_clock_irq(void)
...
@@ -737,8 +739,10 @@ static void pcic_clear_clock_irq(void)
static
void
pcic_timer_handler
(
int
irq
,
void
*
h
,
struct
pt_regs
*
regs
)
static
void
pcic_timer_handler
(
int
irq
,
void
*
h
,
struct
pt_regs
*
regs
)
{
{
write_lock
(
&
xtime_lock
);
/* Dummy, to show that we remember */
pcic_clear_clock_irq
();
pcic_clear_clock_irq
();
do_timer
(
regs
);
do_timer
(
regs
);
write_unlock
(
&
xtime_lock
);
}
}
#define USECS_PER_JIFFY 10000
/* We have 100HZ "standard" timer for sparc */
#define USECS_PER_JIFFY 10000
/* We have 100HZ "standard" timer for sparc */
...
@@ -776,9 +780,6 @@ void __init pci_time_init(void)
...
@@ -776,9 +780,6 @@ void __init pci_time_init(void)
static
__inline__
unsigned
long
do_gettimeoffset
(
void
)
static
__inline__
unsigned
long
do_gettimeoffset
(
void
)
{
{
struct
tasklet_struct
*
t
;
unsigned
long
offset
=
0
;
/*
/*
* We devide all to 100
* We devide all to 100
* to have microsecond resolution and to avoid overflow
* to have microsecond resolution and to avoid overflow
...
@@ -786,15 +787,10 @@ static __inline__ unsigned long do_gettimeoffset(void)
...
@@ -786,15 +787,10 @@ static __inline__ unsigned long do_gettimeoffset(void)
unsigned
long
count
=
unsigned
long
count
=
readl
(
pcic0
.
pcic_regs
+
PCI_SYS_COUNTER
)
&
~
PCI_SYS_COUNTER_OVERFLOW
;
readl
(
pcic0
.
pcic_regs
+
PCI_SYS_COUNTER
)
&
~
PCI_SYS_COUNTER_OVERFLOW
;
count
=
((
count
/
100
)
*
USECS_PER_JIFFY
)
/
(
TICK_TIMER_LIMIT
/
100
);
count
=
((
count
/
100
)
*
USECS_PER_JIFFY
)
/
(
TICK_TIMER_LIMIT
/
100
);
return
count
;
t
=
&
bh_task_vec
[
TIMER_BH
];
if
(
test_bit
(
TASKLET_STATE_SCHED
,
&
t
->
state
))
offset
=
1000000
;
return
offset
+
count
;
}
}
extern
unsigned
long
wall_jiffies
;
extern
unsigned
long
wall_jiffies
;
extern
rwlock_t
xtime_lock
;
static
void
pci_do_gettimeofday
(
struct
timeval
*
tv
)
static
void
pci_do_gettimeofday
(
struct
timeval
*
tv
)
{
{
...
...
arch/sparc/kernel/time.c
View file @
e1af51c9
...
@@ -129,6 +129,8 @@ void timer_interrupt(int irq, void *dev_id, struct pt_regs * regs)
...
@@ -129,6 +129,8 @@ void timer_interrupt(int irq, void *dev_id, struct pt_regs * regs)
sparc_do_profile
(
regs
->
pc
,
regs
->
u_regs
[
UREG_RETPC
]);
sparc_do_profile
(
regs
->
pc
,
regs
->
u_regs
[
UREG_RETPC
]);
#endif
#endif
/* Protect counter clear so that do_gettimeoffset works */
write_lock
(
&
xtime_lock
);
#ifdef CONFIG_SUN4
#ifdef CONFIG_SUN4
if
((
idprom
->
id_machtype
==
(
SM_SUN4
|
SM_4_260
))
||
if
((
idprom
->
id_machtype
==
(
SM_SUN4
|
SM_4_260
))
||
(
idprom
->
id_machtype
==
(
SM_SUN4
|
SM_4_110
)))
{
(
idprom
->
id_machtype
==
(
SM_SUN4
|
SM_4_110
)))
{
...
@@ -140,8 +142,6 @@ void timer_interrupt(int irq, void *dev_id, struct pt_regs * regs)
...
@@ -140,8 +142,6 @@ void timer_interrupt(int irq, void *dev_id, struct pt_regs * regs)
#endif
#endif
clear_clock_irq
();
clear_clock_irq
();
write_lock
(
&
xtime_lock
);
do_timer
(
regs
);
do_timer
(
regs
);
/* Determine when to update the Mostek clock. */
/* Determine when to update the Mostek clock. */
...
@@ -459,17 +459,7 @@ void __init time_init(void)
...
@@ -459,17 +459,7 @@ void __init time_init(void)
extern
__inline__
unsigned
long
do_gettimeoffset
(
void
)
extern
__inline__
unsigned
long
do_gettimeoffset
(
void
)
{
{
struct
tasklet_struct
*
t
;
return
(
*
master_l10_counter
>>
10
)
&
0x1fffff
;
unsigned
long
offset
=
0
;
unsigned
int
count
;
count
=
(
*
master_l10_counter
>>
10
)
&
0x1fffff
;
t
=
&
bh_task_vec
[
TIMER_BH
];
if
(
test_bit
(
TASKLET_STATE_SCHED
,
&
t
->
state
))
offset
=
1000000
;
return
offset
+
count
;
}
}
/* Ok, my cute asm atomicity trick doesn't work anymore.
/* Ok, my cute asm atomicity trick doesn't work anymore.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment