Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
nexedi
linux
Commits
1d4b2b99
Commit
1d4b2b99
authored
21 years ago
by
Keith M. Wesolowski
Browse files
Options
Download
Plain Diff
Merge foobazco.org:/sources/2.5-sparc-smp
into foobazco.org:/sources/2.5-sparc-todave
parents
27c0bfb6
48a975d3
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
39 additions
and
45 deletions
+39
-45
arch/sparc/kernel/entry.S
arch/sparc/kernel/entry.S
+20
-18
arch/sparc/kernel/smp.c
arch/sparc/kernel/smp.c
+1
-1
arch/sparc/kernel/sparc_ksyms.c
arch/sparc/kernel/sparc_ksyms.c
+2
-2
arch/sparc/kernel/sun4d_smp.c
arch/sparc/kernel/sun4d_smp.c
+0
-7
arch/sparc/kernel/sun4m_smp.c
arch/sparc/kernel/sun4m_smp.c
+0
-6
include/asm-sparc/asmmacro.h
include/asm-sparc/asmmacro.h
+0
-7
include/asm-sparc/delay.h
include/asm-sparc/delay.h
+12
-3
include/asm-sparc/smp.h
include/asm-sparc/smp.h
+4
-1
No files found.
arch/sparc/kernel/entry.S
View file @
1d4b2b99
...
...
@@ -32,6 +32,7 @@
#include <asm/obio.h>
#include <asm/mxcc.h>
#include <asm/thread_info.h>
#include <asm/param.h>
#include <asm/asmmacro.h>
...
...
@@ -1808,36 +1809,37 @@ fpload:
retl
nop
.
globl
ndelay
ndelay
:
/
*
__ndelay
and
__udelay
take
two
arguments
:
*
0
-
nsecs
or
usecs
to
delay
*
1
-
per_cpu
udelay_val
(
loops
per
jiffy
)
*
*
Note
that
ndelay
gives
HZ
times
higher
resolution
but
has
a
10
ms
*
limit
.
udelay
can
handle
up
to
1
s
.
*/
.
globl
__ndelay
__ndelay
:
save
%
sp
,
-
STACKFRAME_SZ
,
%
sp
mov
%
i0
,
%
o0
call
.
umul
mov
5
,
%
o1
mov
0x1ad
,
%
o1
!
2
**
32
/
(
1
000
000
000
/
HZ
)
call
.
umul
mov
%
i1
,
%
o1
!
udelay_val
ba
delay_continue
nop
mov
%
o1
,
%
o0
!
>>
32
later
for
better
resolution
.
globl
udelay
udelay
:
.
globl
__
udelay
__
udelay
:
save
%
sp
,
-
STACKFRAME_SZ
,
%
sp
mov
%
i0
,
%
o0
sethi
%
hi
(
0x10c6
),
%
o1
call
.
umul
or
%
o1
,
%
lo
(
0x10c6
),
%
o1
delay_continue
:
#ifndef CONFIG_SMP
sethi
%
hi
(
loops_per_jiffy
),
%
o3
or
%
o1
,
%
lo
(
0x10c6
),
%
o1
!
2
**
32
/
1
000
000
call
.
umul
ld
[%
o3
+
%
lo
(
loops_per_jiffy
)],
%
o1
#else
GET_PROCESSOR_OFFSET
(
o4
,
o2
)
set
cpu_data
,
%
o3
call
.
umul
ld
[%
o3
+
%
o4
],
%
o1
#endif
mov
%
i1
,
%
o1
!
udelay_val
call
.
umul
mov
100
,
%
o0
mov
HZ
,
%
o0
!
>>
32
earlier
for
wider
range
delay_continue
:
cmp
%
o0
,
0x0
1
:
bne
1
b
...
...
This diff is collapsed.
Click to expand it.
arch/sparc/kernel/smp.c
View file @
1d4b2b99
...
...
@@ -20,11 +20,11 @@
#include <linux/fs.h>
#include <linux/seq_file.h>
#include <linux/cache.h>
#include <linux/delay.h>
#include <asm/ptrace.h>
#include <asm/atomic.h>
#include <asm/delay.h>
#include <asm/irq.h>
#include <asm/page.h>
#include <asm/pgalloc.h>
...
...
This diff is collapsed.
Click to expand it.
arch/sparc/kernel/sparc_ksyms.c
View file @
1d4b2b99
...
...
@@ -165,8 +165,8 @@ EXPORT_SYMBOL(__cpu_number_map);
EXPORT_SYMBOL
(
__cpu_logical_map
);
#endif
EXPORT_SYMBOL
(
udelay
);
EXPORT_SYMBOL
(
ndelay
);
EXPORT_SYMBOL
(
__
udelay
);
EXPORT_SYMBOL
(
__
ndelay
);
EXPORT_SYMBOL
(
rtc_lock
);
EXPORT_SYMBOL
(
mostek_lock
);
EXPORT_SYMBOL
(
mstk48t02_regs
);
...
...
This diff is collapsed.
Click to expand it.
arch/sparc/kernel/sun4d_smp.c
View file @
1d4b2b99
...
...
@@ -49,7 +49,6 @@ static int smp_highest_cpu;
extern
int
smp_threads_ready
;
extern
volatile
unsigned
long
cpu_callin_map
[
NR_CPUS
];
extern
struct
cpuinfo_sparc
cpu_data
[
NR_CPUS
];
extern
unsigned
long
cpu_offset
[
NR_CPUS
];
extern
unsigned
char
boot_cpu_id
;
extern
int
smp_activated
;
extern
volatile
int
__cpu_number_map
[
NR_CPUS
];
...
...
@@ -171,9 +170,6 @@ void __init smp4d_boot_cpus(void)
printk
(
"Entering SMP Mode...
\n
"
);
for
(
i
=
0
;
i
<
NR_CPUS
;
i
++
)
cpu_offset
[
i
]
=
(
char
*
)
&
(
cpu_data
(
i
))
-
(
char
*
)
&
(
cpu_data
(
0
));
if
(
boot_cpu_id
)
current_set
[
0
]
=
NULL
;
...
...
@@ -427,9 +423,6 @@ void smp4d_message_pass(int target, int msg, unsigned long data, int wait)
extern
void
sparc_do_profile
(
unsigned
long
pc
,
unsigned
long
o7
);
#define prof_multiplier(__cpu) cpu_data(__cpu).multiplier
#define prof_counter(__cpu) cpu_data(__cpu).counter
void
smp4d_percpu_timer_interrupt
(
struct
pt_regs
*
regs
)
{
int
cpu
=
hard_smp4d_processor_id
();
...
...
This diff is collapsed.
Click to expand it.
arch/sparc/kernel/sun4m_smp.c
View file @
1d4b2b99
...
...
@@ -44,7 +44,6 @@ extern unsigned long cpu_present_map;
extern
int
smp_num_cpus
;
extern
int
smp_threads_ready
;
extern
volatile
unsigned
long
cpu_callin_map
[
NR_CPUS
];
extern
unsigned
long
cpu_offset
[
NR_CPUS
];
extern
unsigned
char
boot_cpu_id
;
extern
int
smp_activated
;
extern
volatile
int
__cpu_number_map
[
NR_CPUS
];
...
...
@@ -152,9 +151,7 @@ void __init smp4m_boot_cpus(void)
for
(
i
=
0
;
!
cpu_find_by_instance
(
i
,
NULL
,
&
mid
);
i
++
)
cpu_present_map
|=
(
1
<<
mid
);
/* XXX cpu_offset is broken -Keith */
for
(
i
=
0
;
i
<
NR_CPUS
;
i
++
)
{
cpu_offset
[
i
]
=
(
char
*
)
&
(
cpu_data
(
i
))
-
(
char
*
)
&
(
cpu_data
(
0
));
__cpu_number_map
[
i
]
=
-
1
;
__cpu_logical_map
[
i
]
=
-
1
;
}
...
...
@@ -409,9 +406,6 @@ void smp4m_cross_call_irq(void)
extern
void
sparc_do_profile
(
unsigned
long
pc
,
unsigned
long
o7
);
#define prof_multiplier(__cpu) cpu_data(__cpu).multiplier
#define prof_counter(__cpu) cpu_data(__cpu).counter
void
smp4m_percpu_timer_interrupt
(
struct
pt_regs
*
regs
)
{
int
cpu
=
smp_processor_id
();
...
...
This diff is collapsed.
Click to expand it.
include/asm-sparc/asmmacro.h
View file @
1d4b2b99
...
...
@@ -29,13 +29,6 @@
srl %reg, 12, %reg; \
and %reg, 3, %reg;
#define GET_PROCESSOR_OFFSET(reg, tmp) \
GET_PROCESSOR_ID(reg) \
sethi %hi(cpu_offset), %tmp; \
sll %reg, 2, %reg; \
or %tmp, %lo(cpu_offset), %tmp; \
ld [%tmp + %reg], %reg;
/* All trap entry points _must_ begin with this macro or else you
* lose. It makes sure the kernel has a proper window so that
* c-code can be called.
...
...
This diff is collapsed.
Click to expand it.
include/asm-sparc/delay.h
View file @
1d4b2b99
...
...
@@ -7,7 +7,8 @@
#ifndef __SPARC_DELAY_H
#define __SPARC_DELAY_H
extern
unsigned
long
loops_per_jiffy
;
#include <linux/config.h>
#include <asm/cpudata.h>
extern
__inline__
void
__delay
(
unsigned
long
loops
)
{
...
...
@@ -20,7 +21,15 @@ extern __inline__ void __delay(unsigned long loops)
}
/* This is too messy with inline asm on the Sparc. */
extern
void
udelay
(
unsigned
long
usecs
);
extern
void
ndelay
(
unsigned
long
usecs
);
extern
void
__udelay
(
unsigned
long
usecs
,
unsigned
long
lpj
);
extern
void
__ndelay
(
unsigned
long
nsecs
,
unsigned
long
lpj
);
#ifdef CONFIG_SMP
#define __udelay_val cpu_data(smp_processor_id()).udelay_val
#else
/* SMP */
#define __udelay_val loops_per_jiffy
#endif
/* SMP */
#define udelay(__usecs) __udelay(__usecs, __udelay_val)
#define ndelay(__nsecs) __ndelay(__nsecs, __udelay_val)
#endif
/* defined(__SPARC_DELAY_H) */
This diff is collapsed.
Click to expand it.
include/asm-sparc/smp.h
View file @
1d4b2b99
...
...
@@ -148,7 +148,10 @@ extern __inline__ int hard_smp_processor_id(void)
}
#endif
#define smp_processor_id() hard_smp_processor_id()
#define smp_processor_id() (current_thread_info()->cpu)
#define prof_multiplier(__cpu) cpu_data(__cpu).multiplier
#define prof_counter(__cpu) cpu_data(__cpu).counter
#endif
/* !(__ASSEMBLY__) */
...
...
This diff is collapsed.
Click to expand it.
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