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
Kirill Smelkov
linux
Commits
582fd487
Commit
582fd487
authored
Oct 08, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
parents
7ab501db
ba639933
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
90 additions
and
37 deletions
+90
-37
arch/sparc/Kconfig
arch/sparc/Kconfig
+4
-0
arch/sparc/defconfig
arch/sparc/defconfig
+1
-0
arch/sparc64/kernel/entry.S
arch/sparc64/kernel/entry.S
+21
-18
arch/sparc64/kernel/power.c
arch/sparc64/kernel/power.c
+51
-13
arch/sparc64/kernel/rtrap.S
arch/sparc64/kernel/rtrap.S
+4
-3
arch/sparc64/lib/VISsave.S
arch/sparc64/lib/VISsave.S
+5
-3
drivers/video/p9100.c
drivers/video/p9100.c
+4
-0
No files found.
arch/sparc/Kconfig
View file @
582fd487
...
...
@@ -21,6 +21,10 @@ config GENERIC_ISA_DMA
bool
default y
config GENERIC_IOMAP
bool
default y
source "init/Kconfig"
menu "General machine setup"
...
...
arch/sparc/defconfig
View file @
582fd487
...
...
@@ -5,6 +5,7 @@ CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_HIGHMEM=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
#
# Code maturity level options
...
...
arch/sparc64/kernel/entry.S
View file @
582fd487
...
...
@@ -33,7 +33,7 @@
/
*
This
is
trivial
with
the
new
code
...
*/
.
globl
do_fpdis
do_fpdis
:
sethi
%
hi
(
TSTATE_PEF
),
%
g4
!
IEU0
sethi
%
hi
(
TSTATE_PEF
),
%
g4
rdpr
%
tstate
,
%
g5
andcc
%
g5
,
%
g4
,
%
g0
be
,
pt
%
xcc
,
1
f
...
...
@@ -50,18 +50,18 @@ do_fpdis:
add
%
g0
,
%
g0
,
%
g0
ba
,
a
,
pt
%
xcc
,
rtrap_clr_l6
1
:
ldub
[%
g6
+
TI_FPSAVED
],
%
g5
!
Load
Group
wr
%
g0
,
FPRS_FEF
,
%
fprs
!
LSU
Group
+
4
bubbles
andcc
%
g5
,
FPRS_FEF
,
%
g0
!
IEU1
Group
be
,
a
,
pt
%
icc
,
1
f
!
CTI
clr
%
g7
!
IEU0
ldx
[%
g6
+
TI_GSR
],
%
g7
!
Load
Group
1
:
andcc
%
g5
,
FPRS_DL
,
%
g0
!
IEU1
bne
,
pn
%
icc
,
2
f
!
CTI
fzero
%f0
!
FPA
andcc
%
g5
,
FPRS_DU
,
%
g0
!
IEU1
Group
bne
,
pn
%
icc
,
1
f
!
CTI
fzero
%f2
!
FPA
1
:
ldub
[%
g6
+
TI_FPSAVED
],
%
g5
wr
%
g0
,
FPRS_FEF
,
%
fprs
andcc
%
g5
,
FPRS_FEF
,
%
g0
be
,
a
,
pt
%
icc
,
1
f
clr
%
g7
ldx
[%
g6
+
TI_GSR
],
%
g7
1
:
andcc
%
g5
,
FPRS_DL
,
%
g0
bne
,
pn
%
icc
,
2
f
fzero
%f0
andcc
%
g5
,
FPRS_DU
,
%
g0
bne
,
pn
%
icc
,
1
f
fzero
%f2
faddd
%f0
,
%f2
,
%f4
fmuld
%f0
,
%f2
,
%f6
faddd
%f0
,
%f2
,
%f8
...
...
@@ -104,8 +104,10 @@ do_fpdis:
add
%
g6
,
TI_FPREGS
+
0xc0
,
%
g2
faddd
%f0
,
%f2
,
%f8
fmuld
%f0
,
%f2
,
%f10
ldda
[%
g1
]
ASI_BLK_S
,
%f32
!
grrr
,
where
is
ASI_BLK_NUCLEUS
8
-(
membar
#
Sync
ldda
[%
g1
]
ASI_BLK_S
,
%f32
ldda
[%
g2
]
ASI_BLK_S
,
%f48
membar
#
Sync
faddd
%f0
,
%f2
,
%f12
fmuld
%f0
,
%f2
,
%f14
faddd
%f0
,
%f2
,
%f16
...
...
@@ -116,7 +118,6 @@ do_fpdis:
fmuld
%f0
,
%f2
,
%f26
faddd
%f0
,
%f2
,
%f28
fmuld
%f0
,
%f2
,
%f30
membar
#
Sync
b
,
pt
%
xcc
,
fpdis_exit
nop
2
:
andcc
%
g5
,
FPRS_DU
,
%
g0
...
...
@@ -133,8 +134,10 @@ do_fpdis:
add
%
g6
,
TI_FPREGS
+
0x40
,
%
g2
faddd
%f32
,
%f34
,
%f36
fmuld
%f32
,
%f34
,
%f38
ldda
[%
g1
]
ASI_BLK_S
,
%f0
!
grrr
,
where
is
ASI_BLK_NUCLEUS
8
-(
membar
#
Sync
ldda
[%
g1
]
ASI_BLK_S
,
%f0
ldda
[%
g2
]
ASI_BLK_S
,
%f16
membar
#
Sync
faddd
%f32
,
%f34
,
%f40
fmuld
%f32
,
%f34
,
%f42
faddd
%f32
,
%f34
,
%f44
...
...
@@ -147,7 +150,6 @@ do_fpdis:
fmuld
%f32
,
%f34
,
%f58
faddd
%f32
,
%f34
,
%f60
fmuld
%f32
,
%f34
,
%f62
membar
#
Sync
ba
,
pt
%
xcc
,
fpdis_exit
nop
3
:
mov
SECONDARY_CONTEXT
,
%
g3
...
...
@@ -158,7 +160,8 @@ do_fpdis:
stxa
%
g2
,
[%
g3
]
ASI_DMMU
membar
#
Sync
mov
0x40
,
%
g2
ldda
[%
g1
]
ASI_BLK_S
,
%f0
!
grrr
,
where
is
ASI_BLK_NUCLEUS
8
-(
membar
#
Sync
ldda
[%
g1
]
ASI_BLK_S
,
%f0
ldda
[%
g1
+
%
g2
]
ASI_BLK_S
,
%f16
add
%
g1
,
0x80
,
%
g1
ldda
[%
g1
]
ASI_BLK_S
,
%f32
...
...
arch/sparc64/kernel/power.c
View file @
582fd487
...
...
@@ -17,6 +17,7 @@
#include <asm/system.h>
#include <asm/ebus.h>
#include <asm/isa.h>
#include <asm/auxio.h>
#include <linux/unistd.h>
...
...
@@ -100,46 +101,83 @@ static int powerd(void *__unused)
return
0
;
}
static
int
__init
has_button_interrupt
(
struct
linux_ebus_device
*
edev
)
static
int
__init
has_button_interrupt
(
unsigned
int
irq
,
int
prom_node
)
{
if
(
edev
->
irqs
[
0
]
==
PCI_IRQ_NONE
)
if
(
irq
==
PCI_IRQ_NONE
)
return
0
;
if
(
!
prom_node_has_property
(
edev
->
prom_node
,
"button"
))
if
(
!
prom_node_has_property
(
prom_node
,
"button"
))
return
0
;
return
1
;
}
void
__init
power_init
(
void
)
static
int
__init
power_probe_ebus
(
struct
resource
**
resp
,
unsigned
int
*
irq_p
,
int
*
prom_node_p
)
{
struct
linux_ebus
*
ebus
;
struct
linux_ebus_device
*
edev
;
for_each_ebus
(
ebus
)
{
for_each_ebusdev
(
edev
,
ebus
)
{
if
(
!
strcmp
(
edev
->
prom_name
,
"power"
))
{
*
resp
=
&
edev
->
resource
[
0
];
*
irq_p
=
edev
->
irqs
[
0
];
*
prom_node_p
=
edev
->
prom_node
;
return
0
;
}
}
}
return
-
ENODEV
;
}
static
int
__init
power_probe_isa
(
struct
resource
**
resp
,
unsigned
int
*
irq_p
,
int
*
prom_node_p
)
{
struct
sparc_isa_bridge
*
isa_bus
;
struct
sparc_isa_device
*
isa_dev
;
for_each_isa
(
isa_bus
)
{
for_each_isadev
(
isa_dev
,
isa_bus
)
{
if
(
!
strcmp
(
isa_dev
->
prom_name
,
"power"
))
{
*
resp
=
&
isa_dev
->
resource
;
*
irq_p
=
isa_dev
->
irq
;
*
prom_node_p
=
isa_dev
->
prom_node
;
return
0
;
}
}
}
return
-
ENODEV
;
}
void
__init
power_init
(
void
)
{
struct
resource
*
res
=
NULL
;
unsigned
int
irq
;
int
prom_node
;
static
int
invoked
;
if
(
invoked
)
return
;
invoked
=
1
;
for_each_ebus
(
ebus
)
{
for_each_ebusdev
(
edev
,
ebus
)
{
if
(
!
strcmp
(
edev
->
prom_name
,
"power"
))
if
(
!
power_probe_ebus
(
&
res
,
&
irq
,
&
prom_node
))
goto
found
;
}
}
if
(
!
power_probe_isa
(
&
res
,
&
irq
,
&
prom_node
))
goto
found
;
return
;
found:
power_reg
=
ioremap
(
edev
->
resource
[
0
].
start
,
0x4
);
power_reg
=
ioremap
(
res
->
start
,
0x4
);
printk
(
"power: Control reg at %p ... "
,
power_reg
);
poweroff_method
=
machine_halt
;
/* able to use the standard halt */
if
(
has_button_interrupt
(
edev
))
{
if
(
has_button_interrupt
(
irq
,
prom_node
))
{
if
(
kernel_thread
(
powerd
,
NULL
,
CLONE_FS
)
<
0
)
{
printk
(
"Failed to start power daemon.
\n
"
);
return
;
}
printk
(
"powerd running.
\n
"
);
if
(
request_irq
(
edev
->
irqs
[
0
]
,
if
(
request_irq
(
irq
,
power_handler
,
SA_SHIRQ
,
"power"
,
NULL
)
<
0
)
printk
(
"power: Error, cannot register IRQ handler.
\n
"
);
}
else
{
...
...
arch/sparc64/kernel/rtrap.S
View file @
582fd487
...
...
@@ -312,32 +312,33 @@ kern_fpucheck: ldub [%g6 + TI_FPDEPTH], %l5
wr
%
g1
,
FPRS_FEF
,
%
fprs
ldx
[%
o1
+
%
o5
],
%
g1
add
%
g6
,
TI_XFSR
,
%
o1
membar
#
StoreLoad
|
#
LoadLoad
sll
%
o0
,
8
,
%
o2
add
%
g6
,
TI_FPREGS
,
%
o3
brz
,
pn
%
l6
,
1
f
add
%
g6
,
TI_FPREGS
+
0x40
,
%
o4
membar
#
Sync
ldda
[%
o3
+
%
o2
]
ASI_BLK_P
,
%f0
ldda
[%
o4
+
%
o2
]
ASI_BLK_P
,
%f16
membar
#
Sync
1
:
andcc
%
l2
,
FPRS_DU
,
%
g0
be
,
pn
%
icc
,
1
f
wr
%
g1
,
0
,
%
gsr
add
%
o2
,
0x80
,
%
o2
membar
#
Sync
ldda
[%
o3
+
%
o2
]
ASI_BLK_P
,
%f32
ldda
[%
o4
+
%
o2
]
ASI_BLK_P
,
%f48
1
:
membar
#
Sync
ldx
[%
o1
+
%
o5
],
%
fsr
2
:
stb
%
l5
,
[%
g6
+
TI_FPDEPTH
]
ba
,
pt
%
xcc
,
rt_continue
nop
5
:
wr
%
g0
,
FPRS_FEF
,
%
fprs
membar
#
StoreLoad
|
#
LoadLoad
sll
%
o0
,
8
,
%
o2
add
%
g6
,
TI_FPREGS
+
0x80
,
%
o3
add
%
g6
,
TI_FPREGS
+
0xc0
,
%
o4
membar
#
Sync
ldda
[%
o3
+
%
o2
]
ASI_BLK_P
,
%f32
ldda
[%
o4
+
%
o2
]
ASI_BLK_P
,
%f48
membar
#
Sync
...
...
arch/sparc64/lib/VISsave.S
View file @
582fd487
...
...
@@ -59,15 +59,17 @@ vis1: ldub [%g6 + TI_FPSAVED], %g3
be
,
pn
%
icc
,
9
b
add
%
g6
,
TI_FPREGS
,
%
g2
andcc
%
o5
,
FPRS_DL
,
%
g0
membar
#
StoreStore
|
#
LoadStore
be
,
pn
%
icc
,
4
f
add
%
g6
,
TI_FPREGS
+
0x40
,
%
g3
membar
#
Sync
stda
%f0
,
[%
g2
+
%
g1
]
ASI_BLK_P
stda
%f16
,
[%
g3
+
%
g1
]
ASI_BLK_P
membar
#
Sync
andcc
%
o5
,
FPRS_DU
,
%
g0
be
,
pn
%
icc
,
5
f
4
:
add
%
g1
,
128
,
%
g1
membar
#
Sync
stda
%f32
,
[%
g2
+
%
g1
]
ASI_BLK_P
stda
%f48
,
[%
g3
+
%
g1
]
ASI_BLK_P
...
...
@@ -87,7 +89,7 @@ vis1: ldub [%g6 + TI_FPSAVED], %g3
sll
%
g1
,
5
,
%
g1
add
%
g6
,
TI_FPREGS
+
0xc0
,
%
g3
wr
%
g0
,
FPRS_FEF
,
%
fprs
membar
#
S
toreStore
|
#
LoadStore
membar
#
S
ync
stda
%f32
,
[%
g2
+
%
g1
]
ASI_BLK_P
stda
%f48
,
[%
g3
+
%
g1
]
ASI_BLK_P
membar
#
Sync
...
...
@@ -128,8 +130,8 @@ VISenterhalf:
be
,
pn
%
icc
,
4
f
add
%
g6
,
TI_FPREGS
,
%
g2
membar
#
StoreStore
|
#
LoadStore
add
%
g6
,
TI_FPREGS
+
0x40
,
%
g3
membar
#
Sync
stda
%f0
,
[%
g2
+
%
g1
]
ASI_BLK_P
stda
%f16
,
[%
g3
+
%
g1
]
ASI_BLK_P
membar
#
Sync
...
...
drivers/video/p9100.c
View file @
582fd487
...
...
@@ -288,6 +288,9 @@ static void p9100_init_one(struct sbus_dev *sdev)
all
->
par
.
physbase
=
sdev
->
reg_addrs
[
2
].
phys_addr
;
sbusfb_fill_var
(
&
all
->
info
.
var
,
sdev
->
prom_node
,
8
);
all
->
info
.
var
.
red
.
length
=
8
;
all
->
info
.
var
.
green
.
length
=
8
;
all
->
info
.
var
.
blue
.
length
=
8
;
linebytes
=
prom_getintdefault
(
sdev
->
prom_node
,
"linebytes"
,
all
->
info
.
var
.
xres
);
...
...
@@ -323,6 +326,7 @@ static void p9100_init_one(struct sbus_dev *sdev)
kfree
(
all
);
return
;
}
fb_set_cmap
(
&
all
->
info
.
cmap
,
&
all
->
info
);
list_add
(
&
all
->
list
,
&
p9100_list
);
...
...
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