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
8bc2bee2
Commit
8bc2bee2
authored
Aug 29, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge HEAD from master.kernel.org:/pub/scm/linux/kernel/git/paulus/ppc64-2.6
parents
826509f8
8913ca1c
Changes
74
Hide whitespace changes
Inline
Side-by-side
Showing
74 changed files
with
204 additions
and
567 deletions
+204
-567
arch/ppc/Makefile
arch/ppc/Makefile
+10
-1
arch/ppc64/Makefile
arch/ppc64/Makefile
+9
-0
arch/ppc64/configs/g5_defconfig
arch/ppc64/configs/g5_defconfig
+3
-3
arch/ppc64/configs/iSeries_defconfig
arch/ppc64/configs/iSeries_defconfig
+3
-3
arch/ppc64/configs/maple_defconfig
arch/ppc64/configs/maple_defconfig
+3
-3
arch/ppc64/configs/pSeries_defconfig
arch/ppc64/configs/pSeries_defconfig
+3
-3
arch/ppc64/defconfig
arch/ppc64/defconfig
+3
-3
arch/ppc64/kernel/head.S
arch/ppc64/kernel/head.S
+15
-1
arch/ppc64/kernel/iSeries_vio.c
arch/ppc64/kernel/iSeries_vio.c
+16
-5
arch/ppc64/kernel/lparcfg.c
arch/ppc64/kernel/lparcfg.c
+1
-0
arch/ppc64/kernel/of_device.c
arch/ppc64/kernel/of_device.c
+0
-2
arch/ppc64/kernel/pSeries_vio.c
arch/ppc64/kernel/pSeries_vio.c
+13
-6
arch/ppc64/kernel/prom_init.c
arch/ppc64/kernel/prom_init.c
+4
-1
arch/ppc64/kernel/vio.c
arch/ppc64/kernel/vio.c
+27
-46
arch/ppc64/mm/hash_low.S
arch/ppc64/mm/hash_low.S
+1
-3
arch/ppc64/oprofile/common.c
arch/ppc64/oprofile/common.c
+1
-0
drivers/block/viodasd.c
drivers/block/viodasd.c
+1
-1
drivers/cdrom/viocd.c
drivers/cdrom/viocd.c
+1
-1
drivers/char/hvc_vio.c
drivers/char/hvc_vio.c
+1
-1
drivers/char/hvcs.c
drivers/char/hvcs.c
+1
-1
drivers/char/viotape.c
drivers/char/viotape.c
+1
-1
drivers/net/ibmveth.c
drivers/net/ibmveth.c
+1
-1
drivers/net/iseries_veth.c
drivers/net/iseries_veth.c
+1
-1
drivers/scsi/ibmvscsi/ibmvscsi.c
drivers/scsi/ibmvscsi/ibmvscsi.c
+1
-1
drivers/scsi/ibmvscsi/rpa_vscsi.c
drivers/scsi/ibmvscsi/rpa_vscsi.c
+1
-0
include/asm-powerpc/8253pit.h
include/asm-powerpc/8253pit.h
+1
-1
include/asm-powerpc/agp.h
include/asm-powerpc/agp.h
+0
-0
include/asm-powerpc/cputime.h
include/asm-powerpc/cputime.h
+1
-0
include/asm-powerpc/div64.h
include/asm-powerpc/div64.h
+0
-0
include/asm-powerpc/emergency-restart.h
include/asm-powerpc/emergency-restart.h
+1
-0
include/asm-powerpc/errno.h
include/asm-powerpc/errno.h
+0
-0
include/asm-powerpc/ioctl.h
include/asm-powerpc/ioctl.h
+0
-0
include/asm-powerpc/ioctls.h
include/asm-powerpc/ioctls.h
+0
-0
include/asm-powerpc/ipc.h
include/asm-powerpc/ipc.h
+0
-0
include/asm-powerpc/linkage.h
include/asm-powerpc/linkage.h
+0
-0
include/asm-powerpc/local.h
include/asm-powerpc/local.h
+0
-0
include/asm-powerpc/namei.h
include/asm-powerpc/namei.h
+0
-0
include/asm-powerpc/percpu.h
include/asm-powerpc/percpu.h
+1
-0
include/asm-powerpc/poll.h
include/asm-powerpc/poll.h
+0
-0
include/asm-powerpc/resource.h
include/asm-powerpc/resource.h
+1
-0
include/asm-powerpc/shmparam.h
include/asm-powerpc/shmparam.h
+0
-0
include/asm-powerpc/string.h
include/asm-powerpc/string.h
+0
-0
include/asm-powerpc/unaligned.h
include/asm-powerpc/unaligned.h
+0
-0
include/asm-powerpc/xor.h
include/asm-powerpc/xor.h
+0
-0
include/asm-ppc/cputime.h
include/asm-ppc/cputime.h
+0
-6
include/asm-ppc/emergency-restart.h
include/asm-ppc/emergency-restart.h
+0
-6
include/asm-ppc/hdreg.h
include/asm-ppc/hdreg.h
+0
-1
include/asm-ppc/local.h
include/asm-ppc/local.h
+0
-6
include/asm-ppc/percpu.h
include/asm-ppc/percpu.h
+0
-6
include/asm-ppc64/8253pit.h
include/asm-ppc64/8253pit.h
+0
-10
include/asm-ppc64/agp.h
include/asm-ppc64/agp.h
+0
-23
include/asm-ppc64/cputime.h
include/asm-ppc64/cputime.h
+0
-6
include/asm-ppc64/div64.h
include/asm-ppc64/div64.h
+0
-1
include/asm-ppc64/emergency-restart.h
include/asm-ppc64/emergency-restart.h
+0
-6
include/asm-ppc64/errno.h
include/asm-ppc64/errno.h
+0
-18
include/asm-ppc64/hdreg.h
include/asm-ppc64/hdreg.h
+0
-1
include/asm-ppc64/ioctl.h
include/asm-ppc64/ioctl.h
+0
-74
include/asm-ppc64/ioctls.h
include/asm-ppc64/ioctls.h
+0
-114
include/asm-ppc64/ipc.h
include/asm-ppc64/ipc.h
+0
-1
include/asm-ppc64/linkage.h
include/asm-ppc64/linkage.h
+0
-6
include/asm-ppc64/namei.h
include/asm-ppc64/namei.h
+0
-23
include/asm-ppc64/param.h
include/asm-ppc64/param.h
+3
-1
include/asm-ppc64/percpu.h
include/asm-ppc64/percpu.h
+0
-6
include/asm-ppc64/pgtable.h
include/asm-ppc64/pgtable.h
+2
-0
include/asm-ppc64/poll.h
include/asm-ppc64/poll.h
+0
-32
include/asm-ppc64/processor.h
include/asm-ppc64/processor.h
+1
-0
include/asm-ppc64/resource.h
include/asm-ppc64/resource.h
+0
-6
include/asm-ppc64/shmparam.h
include/asm-ppc64/shmparam.h
+0
-13
include/asm-ppc64/string.h
include/asm-ppc64/string.h
+0
-35
include/asm-ppc64/unaligned.h
include/asm-ppc64/unaligned.h
+0
-21
include/asm-ppc64/vio.h
include/asm-ppc64/vio.h
+47
-54
include/asm-ppc64/xor.h
include/asm-ppc64/xor.h
+0
-1
include/linux/mod_devicetable.h
include/linux/mod_devicetable.h
+6
-1
scripts/mod/file2alias.c
scripts/mod/file2alias.c
+19
-0
No files found.
arch/ppc/Makefile
View file @
8bc2bee2
...
...
@@ -21,11 +21,13 @@ CC := $(CC) -m32
endif
LDFLAGS_vmlinux
:=
-Ttext
$(KERNELLOAD)
-Bstatic
CPPFLAGS
+=
-Iarch
/
$(ARCH)
CPPFLAGS
+=
-Iarch
/
$(ARCH)
-Iinclude3
AFLAGS
+=
-Iarch
/
$(ARCH)
CFLAGS
+=
-Iarch
/
$(ARCH)
-msoft-float
-pipe
\
-ffixed-r2
-mmultiple
CPP
=
$(CC)
-E
$(CFLAGS)
# Temporary hack until we have migrated to asm-powerpc
LINUXINCLUDE
+=
-Iinclude3
CHECKFLAGS
+=
-D__powerpc__
...
...
@@ -101,6 +103,7 @@ endef
archclean
:
$(Q)$(MAKE)
$(clean)
=
arch
/ppc/boot
$(Q)
rm
-rf
include3
prepare
:
include/asm-$(ARCH)/offsets.h checkbin
...
...
@@ -110,6 +113,12 @@ arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
include/asm-$(ARCH)/offsets.h
:
arch/$(ARCH)/kernel/asm-offsets.s
$(
call
filechk,gen-asm-offsets
)
# Temporary hack until we have migrated to asm-powerpc
include/asm
:
include3/asm
include3/asm
:
$(Q)
if
[
!
-d
include3
]
;
then
mkdir
-p
include3
;
fi
$(Q)
ln
-fsn
$(srctree)
/include/asm-powerpc include3/asm
# Use the file '.tmp_gas_check' for binutils tests, as gas won't output
# to stdout and these checks are run even on install targets.
TOUT
:=
.tmp_gas_check
...
...
arch/ppc64/Makefile
View file @
8bc2bee2
...
...
@@ -55,6 +55,8 @@ LDFLAGS := -m elf64ppc
LDFLAGS_vmlinux
:=
-Bstatic
-e
$(KERNELLOAD)
-Ttext
$(KERNELLOAD)
CFLAGS
+=
-msoft-float
-pipe
-mminimal-toc
-mtraceback
=
none
\
-mcall-aixdesc
# Temporary hack until we have migrated to asm-powerpc
CPPFLAGS
+=
-Iinclude3
GCC_VERSION
:=
$(
call
cc-version
)
GCC_BROKEN_VEC
:=
$(
shell
if
[
$(GCC_VERSION)
-lt
0400
]
;
then
echo
"y"
;
fi
;
)
...
...
@@ -112,6 +114,7 @@ all: $(KBUILD_IMAGE)
archclean
:
$(Q)$(MAKE)
$(clean)
=
$(boot)
$(Q)
rm
-rf
include3
prepare
:
include/asm-ppc64/offsets.h
...
...
@@ -121,6 +124,12 @@ arch/ppc64/kernel/asm-offsets.s: include/asm include/linux/version.h \
include/asm-ppc64/offsets.h
:
arch/ppc64/kernel/asm-offsets.s
$(
call
filechk,gen-asm-offsets
)
# Temporary hack until we have migrated to asm-powerpc
include/asm
:
include3/asm
include3/asm
:
$(Q)
if
[
!
-d
include3
]
;
then
mkdir
-p
include3
;
fi
;
$(Q)
ln
-fsn
$(srctree)
/include/asm-powerpc include3/asm
define
archhelp
echo
'* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
echo
' zImage.initrd- Compressed kernel image with initrd attached,'
...
...
arch/ppc64/configs/g5_defconfig
View file @
8bc2bee2
...
...
@@ -103,10 +103,10 @@ CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
CONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=
10
0
CONFIG_HZ=
25
0
CONFIG_GENERIC_HARDIRQS=y
CONFIG_SECCOMP=y
CONFIG_ISA_DMA_API=y
...
...
arch/ppc64/configs/iSeries_defconfig
View file @
8bc2bee2
...
...
@@ -94,10 +94,10 @@ CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
CONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=
10
0
CONFIG_HZ=
25
0
CONFIG_GENERIC_HARDIRQS=y
CONFIG_LPARCFG=y
CONFIG_SECCOMP=y
...
...
arch/ppc64/configs/maple_defconfig
View file @
8bc2bee2
...
...
@@ -103,10 +103,10 @@ CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
CONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=
10
0
CONFIG_HZ=
25
0
CONFIG_GENERIC_HARDIRQS=y
CONFIG_SECCOMP=y
CONFIG_ISA_DMA_API=y
...
...
arch/ppc64/configs/pSeries_defconfig
View file @
8bc2bee2
...
...
@@ -112,10 +112,10 @@ CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
CONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=
10
0
CONFIG_HZ=
25
0
CONFIG_EEH=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_PPC_RTAS=y
...
...
arch/ppc64/defconfig
View file @
8bc2bee2
...
...
@@ -114,10 +114,10 @@ CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
CONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=
10
0
CONFIG_HZ=
25
0
CONFIG_EEH=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_PPC_RTAS=y
...
...
arch/ppc64/kernel/head.S
View file @
8bc2bee2
...
...
@@ -1269,7 +1269,21 @@ initial_stab:
.
=
0x7000
.
globl
fwnmi_data_area
fwnmi_data_area
:
.
space
PAGE_SIZE
/
*
iSeries
does
not
use
the
FWNMI
stuff
,
so
it
is
safe
to
put
*
this
here
,
even
if
we
later
allow
kernels
that
will
boot
on
*
both
pSeries
and
iSeries
*/
#ifdef CONFIG_PPC_ISERIES
.
=
LPARMAP_PHYS
#include "lparmap.s"
/*
*
This
".text"
is
here
for
old
compilers
that
generate
a
trailing
*
.
note
section
when
compiling
.
c
files
to
.
s
*/
.
text
#endif /* CONFIG_PPC_ISERIES */
.
=
0x8000
/*
*
On
pSeries
,
secondary
processors
spin
in
the
following
code
.
...
...
arch/ppc64/kernel/iSeries_vio.c
View file @
8bc2bee2
...
...
@@ -68,7 +68,7 @@ static void __init iommu_vio_init(void)
}
/**
* vio_register_device
: - Register a new
vio device.
* vio_register_device
_iseries: - Register a new iSeries
vio device.
* @voidev: The device to register.
*/
static
struct
vio_dev
*
__init
vio_register_device_iseries
(
char
*
type
,
...
...
@@ -76,7 +76,7 @@ static struct vio_dev *__init vio_register_device_iseries(char *type,
{
struct
vio_dev
*
viodev
;
/* allocate a vio_dev for this
nod
e */
/* allocate a vio_dev for this
devic
e */
viodev
=
kmalloc
(
sizeof
(
struct
vio_dev
),
GFP_KERNEL
);
if
(
!
viodev
)
return
NULL
;
...
...
@@ -84,8 +84,15 @@ static struct vio_dev *__init vio_register_device_iseries(char *type,
snprintf
(
viodev
->
dev
.
bus_id
,
BUS_ID_SIZE
,
"%s%d"
,
type
,
unit_num
);
return
vio_register_device_common
(
viodev
,
viodev
->
dev
.
bus_id
,
type
,
unit_num
,
&
vio_iommu_table
);
viodev
->
name
=
viodev
->
dev
.
bus_id
;
viodev
->
type
=
type
;
viodev
->
unit_address
=
unit_num
;
viodev
->
iommu_table
=
&
vio_iommu_table
;
if
(
vio_register_device
(
viodev
)
==
NULL
)
{
kfree
(
viodev
);
return
NULL
;
}
return
viodev
;
}
void
__init
probe_bus_iseries
(
void
)
...
...
@@ -124,6 +131,10 @@ static int vio_match_device_iseries(const struct vio_device_id *id,
return
strncmp
(
dev
->
type
,
id
->
type
,
strlen
(
id
->
type
))
==
0
;
}
static
struct
vio_bus_ops
vio_bus_ops_iseries
=
{
.
match
=
vio_match_device_iseries
,
};
/**
* vio_bus_init_iseries: - Initialize the iSeries virtual IO bus
*/
...
...
@@ -131,7 +142,7 @@ static int __init vio_bus_init_iseries(void)
{
int
err
;
err
=
vio_bus_init
(
vio_match_device_iseries
,
NULL
,
NULL
);
err
=
vio_bus_init
(
&
vio_bus_ops_iseries
);
if
(
err
==
0
)
{
iommu_vio_init
();
vio_bus_device
.
iommu_table
=
&
vio_iommu_table
;
...
...
arch/ppc64/kernel/lparcfg.c
View file @
8bc2bee2
...
...
@@ -273,6 +273,7 @@ static void parse_system_parameter_string(struct seq_file *m)
if
(
!
workbuffer
)
{
printk
(
KERN_ERR
"%s %s kmalloc failure at line %d
\n
"
,
__FILE__
,
__FUNCTION__
,
__LINE__
);
kfree
(
local_buffer
);
return
;
}
#ifdef LPARCFG_DEBUG
...
...
arch/ppc64/kernel/of_device.c
View file @
8bc2bee2
...
...
@@ -236,7 +236,6 @@ void of_device_unregister(struct of_device *ofdev)
struct
of_device
*
of_platform_device_create
(
struct
device_node
*
np
,
const
char
*
bus_id
)
{
struct
of_device
*
dev
;
u32
*
reg
;
dev
=
kmalloc
(
sizeof
(
*
dev
),
GFP_KERNEL
);
if
(
!
dev
)
...
...
@@ -250,7 +249,6 @@ struct of_device* of_platform_device_create(struct device_node *np, const char *
dev
->
dev
.
bus
=
&
of_platform_bus_type
;
dev
->
dev
.
release
=
of_release_dev
;
reg
=
(
u32
*
)
get_property
(
np
,
"reg"
,
NULL
);
strlcpy
(
dev
->
dev
.
bus_id
,
bus_id
,
BUS_ID_SIZE
);
if
(
of_device_register
(
dev
)
!=
0
)
{
...
...
arch/ppc64/kernel/pSeries_vio.c
View file @
8bc2bee2
...
...
@@ -19,6 +19,7 @@
#include <linux/kobject.h>
#include <asm/iommu.h>
#include <asm/dma.h>
#include <asm/prom.h>
#include <asm/vio.h>
#include <asm/hvcall.h>
...
...
@@ -75,6 +76,12 @@ static void vio_unregister_device_pseries(struct vio_dev *viodev)
device_remove_file
(
&
viodev
->
dev
,
&
dev_attr_devspec
);
}
static
struct
vio_bus_ops
vio_bus_ops_pseries
=
{
.
match
=
vio_match_device_pseries
,
.
unregister_device
=
vio_unregister_device_pseries
,
.
release_device
=
vio_release_device_pseries
,
};
/**
* vio_bus_init_pseries: - Initialize the pSeries virtual IO bus
*/
...
...
@@ -82,9 +89,7 @@ static int __init vio_bus_init_pseries(void)
{
int
err
;
err
=
vio_bus_init
(
vio_match_device_pseries
,
vio_unregister_device_pseries
,
vio_release_device_pseries
);
err
=
vio_bus_init
(
&
vio_bus_ops_pseries
);
if
(
err
==
0
)
probe_bus_pseries
();
return
err
;
...
...
@@ -181,11 +186,13 @@ struct vio_dev * __devinit vio_register_device_node(struct device_node *of_node)
}
snprintf
(
viodev
->
dev
.
bus_id
,
BUS_ID_SIZE
,
"%x"
,
*
unit_address
);
viodev
->
name
=
of_node
->
name
;
viodev
->
type
=
of_node
->
type
;
viodev
->
unit_address
=
*
unit_address
;
viodev
->
iommu_table
=
vio_build_iommu_table
(
viodev
);
/* register with generic device framework */
if
(
vio_register_device_common
(
viodev
,
of_node
->
name
,
of_node
->
type
,
*
unit_address
,
vio_build_iommu_table
(
viodev
))
==
NULL
)
{
if
(
vio_register_device
(
viodev
)
==
NULL
)
{
/* XXX free TCE table */
kfree
(
viodev
);
return
NULL
;
...
...
arch/ppc64/kernel/prom_init.c
View file @
8bc2bee2
...
...
@@ -892,7 +892,10 @@ static void __init prom_init_mem(void)
if
(
RELOC
(
of_platform
)
==
PLATFORM_PSERIES_LPAR
)
RELOC
(
alloc_top
)
=
RELOC
(
rmo_top
);
else
RELOC
(
alloc_top
)
=
RELOC
(
rmo_top
)
=
min
(
0x40000000ul
,
RELOC
(
ram_top
));
/* Some RS64 machines have buggy firmware where claims up at 1GB
* fails. Cap at 768MB as a workaround. Still plenty of room.
*/
RELOC
(
alloc_top
)
=
RELOC
(
rmo_top
)
=
min
(
0x30000000ul
,
RELOC
(
ram_top
));
prom_printf
(
"memory layout at init:
\n
"
);
prom_printf
(
" memory_limit : %x (16 MB aligned)
\n
"
,
RELOC
(
prom_memory_limit
));
...
...
arch/ppc64/kernel/vio.c
View file @
8bc2bee2
...
...
@@ -32,14 +32,13 @@ struct vio_dev vio_bus_device = { /* fake "parent" device */
.
dev
.
bus
=
&
vio_bus_type
,
};
static
int
(
*
is_match
)(
const
struct
vio_device_id
*
id
,
const
struct
vio_dev
*
dev
);
static
void
(
*
unregister_device_callback
)(
struct
vio_dev
*
dev
);
static
void
(
*
release_device_callback
)(
struct
device
*
dev
);
static
struct
vio_bus_ops
vio_bus_ops
;
/* convert from struct device to struct vio_dev and pass to driver.
/*
* Convert from struct device to struct vio_dev and pass to driver.
* dev->driver has already been set by generic code because vio_bus_match
* succeeded. */
* succeeded.
*/
static
int
vio_bus_probe
(
struct
device
*
dev
)
{
struct
vio_dev
*
viodev
=
to_vio_dev
(
dev
);
...
...
@@ -51,9 +50,8 @@ static int vio_bus_probe(struct device *dev)
return
error
;
id
=
vio_match_device
(
viodrv
->
id_table
,
viodev
);
if
(
id
)
{
if
(
id
)
error
=
viodrv
->
probe
(
viodev
,
id
);
}
return
error
;
}
...
...
@@ -64,9 +62,8 @@ static int vio_bus_remove(struct device *dev)
struct
vio_dev
*
viodev
=
to_vio_dev
(
dev
);
struct
vio_driver
*
viodrv
=
to_vio_driver
(
dev
->
driver
);
if
(
viodrv
->
remove
)
{
if
(
viodrv
->
remove
)
return
viodrv
->
remove
(
viodev
);
}
/* driver can't remove */
return
1
;
...
...
@@ -102,19 +99,20 @@ void vio_unregister_driver(struct vio_driver *viodrv)
EXPORT_SYMBOL
(
vio_unregister_driver
);
/**
* vio_match_device: - Tell if a VIO device has a matching VIO device id structure.
* @ids: array of VIO device id structures to search in
* @dev: the VIO device structure to match against
* vio_match_device: - Tell if a VIO device has a matching
* VIO device id structure.
* @ids: array of VIO device id structures to search in
* @dev: the VIO device structure to match against
*
* Used by a driver to check whether a VIO device present in the
* system is in its list of supported devices. Returns the matching
* vio_device_id structure or NULL if there is no match.
*/
static
const
struct
vio_device_id
*
vio_match_device
(
const
struct
vio_device_id
*
ids
,
const
struct
vio_dev
*
dev
)
static
const
struct
vio_device_id
*
vio_match_device
(
const
struct
vio_device_id
*
ids
,
const
struct
vio_dev
*
dev
)
{
while
(
ids
->
type
)
{
if
(
is_
match
(
ids
,
dev
))
while
(
ids
->
type
[
0
]
!=
'\0'
)
{
if
(
vio_bus_ops
.
match
(
ids
,
dev
))
return
ids
;
ids
++
;
}
...
...
@@ -124,16 +122,11 @@ static const struct vio_device_id * vio_match_device(const struct vio_device_id
/**
* vio_bus_init: - Initialize the virtual IO bus
*/
int
__init
vio_bus_init
(
int
(
*
match_func
)(
const
struct
vio_device_id
*
id
,
const
struct
vio_dev
*
dev
),
void
(
*
unregister_dev
)(
struct
vio_dev
*
),
void
(
*
release_dev
)(
struct
device
*
))
int
__init
vio_bus_init
(
struct
vio_bus_ops
*
ops
)
{
int
err
;
is_match
=
match_func
;
unregister_device_callback
=
unregister_dev
;
release_device_callback
=
release_dev
;
vio_bus_ops
=
*
ops
;
err
=
bus_register
(
&
vio_bus_type
);
if
(
err
)
{
...
...
@@ -141,7 +134,8 @@ int __init vio_bus_init(int (*match_func)(const struct vio_device_id *id,
return
err
;
}
/* the fake parent of all vio devices, just to give us
/*
* The fake parent of all vio devices, just to give us
* a nice directory
*/
err
=
device_register
(
&
vio_bus_device
.
dev
);
...
...
@@ -157,25 +151,20 @@ int __init vio_bus_init(int (*match_func)(const struct vio_device_id *id,
/* vio_dev refcount hit 0 */
static
void
__devinit
vio_dev_release
(
struct
device
*
dev
)
{
if
(
release_device_callback
)
release_device_callback
(
dev
);
if
(
vio_bus_ops
.
release_device
)
vio_bus_ops
.
release_device
(
dev
);
kfree
(
to_vio_dev
(
dev
));
}
static
ssize_t
viodev_show_name
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
static
ssize_t
viodev_show_name
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
{
return
sprintf
(
buf
,
"%s
\n
"
,
to_vio_dev
(
dev
)
->
name
);
}
DEVICE_ATTR
(
name
,
S_IRUSR
|
S_IRGRP
|
S_IROTH
,
viodev_show_name
,
NULL
);
struct
vio_dev
*
__devinit
vio_register_device_common
(
struct
vio_dev
*
viodev
,
char
*
name
,
char
*
type
,
uint32_t
unit_address
,
struct
iommu_table
*
iommu_table
)
struct
vio_dev
*
__devinit
vio_register_device
(
struct
vio_dev
*
viodev
)
{
viodev
->
name
=
name
;
viodev
->
type
=
type
;
viodev
->
unit_address
=
unit_address
;
viodev
->
iommu_table
=
iommu_table
;
/* init generic 'struct device' fields: */
viodev
->
dev
.
parent
=
&
vio_bus_device
.
dev
;
viodev
->
dev
.
bus
=
&
vio_bus_type
;
...
...
@@ -194,8 +183,8 @@ struct vio_dev * __devinit vio_register_device_common(
void
__devinit
vio_unregister_device
(
struct
vio_dev
*
viodev
)
{
if
(
unregister_device_callback
)
unregister_device_callback
(
viodev
);
if
(
vio_bus_ops
.
unregister_device
)
vio_bus_ops
.
unregister_device
(
viodev
);
device_remove_file
(
&
viodev
->
dev
,
&
dev_attr_name
);
device_unregister
(
&
viodev
->
dev
);
}
...
...
@@ -262,16 +251,8 @@ static int vio_bus_match(struct device *dev, struct device_driver *drv)
const
struct
vio_dev
*
vio_dev
=
to_vio_dev
(
dev
);
struct
vio_driver
*
vio_drv
=
to_vio_driver
(
drv
);
const
struct
vio_device_id
*
ids
=
vio_drv
->
id_table
;
const
struct
vio_device_id
*
found_id
;
if
(
!
ids
)
return
0
;
found_id
=
vio_match_device
(
ids
,
vio_dev
);
if
(
found_id
)
return
1
;
return
0
;
return
(
ids
!=
NULL
)
&&
(
vio_match_device
(
ids
,
vio_dev
)
!=
NULL
);
}
struct
bus_type
vio_bus_type
=
{
...
...
arch/ppc64/mm/hash_low.S
View file @
8bc2bee2
...
...
@@ -128,13 +128,11 @@ _GLOBAL(__hash_page)
/
*
We
eventually
do
the
icache
sync
here
(
maybe
inline
that
*
code
rather
than
call
a
C
function
...
)
*/
BEGIN_FTR_SECTION
BEGIN_FTR_SECTION
mr
r4
,
r30
mr
r5
,
r7
bl
.
hash_page_do_lazy_icache
END_FTR_SECTION_IFSET
(
CPU_FTR_NOEXECUTE
)
END_FTR_SECTION_IFCLR
(
CPU_FTR_COHERENT_ICACHE
)
END_FTR_SECTION
(
CPU_FTR_NOEXECUTE
|
CPU_FTR_COHERENT_ICACHE
,
CPU_FTR_NOEXECUTE
)
/
*
At
this
point
,
r3
contains
new
PP
bits
,
save
them
in
*
place
of
"access"
in
the
param
area
(
sic
)
...
...
arch/ppc64/oprofile/common.c
View file @
8bc2bee2
...
...
@@ -153,6 +153,7 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
case
PV_970
:
case
PV_970FX
:
case
PV_970MP
:
model
=
&
op_model_power4
;
model
->
num_counters
=
8
;
ops
->
cpu_type
=
"ppc64/970"
;
...
...
drivers/block/viodasd.c
View file @
8bc2bee2
...
...
@@ -776,7 +776,7 @@ static int viodasd_remove(struct vio_dev *vdev)
*/
static
struct
vio_device_id
viodasd_device_table
[]
__devinitdata
=
{
{
"viodasd"
,
""
},
{
0
,
}
{
""
,
""
}
};
MODULE_DEVICE_TABLE
(
vio
,
viodasd_device_table
);
...
...
drivers/cdrom/viocd.c
View file @
8bc2bee2
...
...
@@ -734,7 +734,7 @@ static int viocd_remove(struct vio_dev *vdev)
*/
static
struct
vio_device_id
viocd_device_table
[]
__devinitdata
=
{
{
"viocd"
,
""
},
{
0
,
}
{
""
,
""
}
};
MODULE_DEVICE_TABLE
(
vio
,
viocd_device_table
);
...
...
drivers/char/hvc_vio.c
View file @
8bc2bee2
...
...
@@ -39,7 +39,7 @@ char hvc_driver_name[] = "hvc_console";
static
struct
vio_device_id
hvc_driver_table
[]
__devinitdata
=
{
{
"serial"
,
"hvterm1"
},
{
NULL
,
}
{
""
,
""
}
};
MODULE_DEVICE_TABLE
(
vio
,
hvc_driver_table
);
...
...
drivers/char/hvcs.c
View file @
8bc2bee2
...
...
@@ -527,7 +527,7 @@ static int khvcsd(void *unused)
static
struct
vio_device_id
hvcs_driver_table
[]
__devinitdata
=
{
{
"serial-server"
,
"hvterm2"
},
{
NULL
,
}
{
""
,
""
}
};
MODULE_DEVICE_TABLE
(
vio
,
hvcs_driver_table
);
...
...
drivers/char/viotape.c
View file @
8bc2bee2
...
...
@@ -991,7 +991,7 @@ static int viotape_remove(struct vio_dev *vdev)
*/
static
struct
vio_device_id
viotape_device_table
[]
__devinitdata
=
{
{
"viotape"
,
""
},
{
0
,
}
{
""
,
""
}
};
MODULE_DEVICE_TABLE
(
vio
,
viotape_device_table
);
...
...
drivers/net/ibmveth.c
View file @
8bc2bee2
...
...
@@ -1144,7 +1144,7 @@ static void ibmveth_proc_unregister_driver(void)
static
struct
vio_device_id
ibmveth_device_table
[]
__devinitdata
=
{
{
"network"
,
"IBM,l-lan"
},
{
0
,
}
{
""
,
""
}
};
MODULE_DEVICE_TABLE
(
vio
,
ibmveth_device_table
);
...
...
drivers/net/iseries_veth.c
View file @
8bc2bee2
...
...
@@ -1370,7 +1370,7 @@ static int veth_probe(struct vio_dev *vdev, const struct vio_device_id *id)
*/
static
struct
vio_device_id
veth_device_table
[]
__devinitdata
=
{
{
"vlan"
,
""
},
{
NULL
,
NULL
}
{
""
,
""
}
};
MODULE_DEVICE_TABLE
(
vio
,
veth_device_table
);
...
...
drivers/scsi/ibmvscsi/ibmvscsi.c
View file @
8bc2bee2
...
...
@@ -1442,7 +1442,7 @@ static int ibmvscsi_remove(struct vio_dev *vdev)
*/
static
struct
vio_device_id
ibmvscsi_device_table
[]
__devinitdata
=
{
{
"vscsi"
,
"IBM,v-scsi"
},
{
0
,
}
{
""
,
""
}
};
MODULE_DEVICE_TABLE
(
vio
,
ibmvscsi_device_table
);
...
...
drivers/scsi/ibmvscsi/rpa_vscsi.c
View file @
8bc2bee2
...
...
@@ -28,6 +28,7 @@
*/
#include <asm/vio.h>
#include <asm/prom.h>
#include <asm/iommu.h>
#include <asm/hvcall.h>
#include <linux/dma-mapping.h>
...
...
include/asm-ppc/8253pit.h
→
include/asm-p
ower
pc/8253pit.h
View file @
8bc2bee2
...
...
@@ -5,6 +5,6 @@
#ifndef _8253PIT_H
#define _8253PIT_H
#define PIT_TICK_RATE
1193182UL
#define PIT_TICK_RATE 1193182UL
#endif
include/asm-ppc/agp.h
→
include/asm-p
ower
pc/agp.h
View file @
8bc2bee2
File moved
include/asm-powerpc/cputime.h
0 → 100644
View file @
8bc2bee2
#include <asm-generic/cputime.h>
include/asm-ppc/div64.h
→
include/asm-p
ower
pc/div64.h
View file @
8bc2bee2
File moved
include/asm-powerpc/emergency-restart.h
0 → 100644
View file @
8bc2bee2
#include <asm-generic/emergency-restart.h>
include/asm-ppc/errno.h
→
include/asm-p
ower
pc/errno.h
View file @
8bc2bee2
File moved
include/asm-ppc/ioctl.h
→
include/asm-p
ower
pc/ioctl.h
View file @
8bc2bee2
File moved
include/asm-ppc/ioctls.h
→
include/asm-p
ower
pc/ioctls.h
View file @
8bc2bee2
File moved
include/asm-ppc/ipc.h
→
include/asm-p
ower
pc/ipc.h
View file @
8bc2bee2
File moved
include/asm-ppc/linkage.h
→
include/asm-p
ower
pc/linkage.h
View file @
8bc2bee2
File moved
include/asm-p
pc64
/local.h
→
include/asm-p
owerpc
/local.h
View file @
8bc2bee2
File moved
include/asm-ppc/namei.h
→
include/asm-p
ower
pc/namei.h
View file @
8bc2bee2
File moved
include/asm-powerpc/percpu.h
0 → 100644
View file @
8bc2bee2
#include <asm-generic/percpu.h>
include/asm-ppc/poll.h
→
include/asm-p
ower
pc/poll.h
View file @
8bc2bee2
File moved
include/asm-ppc/resource.h
→
include/asm-p
ower
pc/resource.h
View file @
8bc2bee2
#ifndef _PPC_RESOURCE_H
#define _PPC_RESOURCE_H
#include <asm-generic/resource.h>
#endif
include/asm-ppc/shmparam.h
→
include/asm-p
ower
pc/shmparam.h
View file @
8bc2bee2
File moved
include/asm-ppc/string.h
→
include/asm-p
ower
pc/string.h
View file @
8bc2bee2
File moved
include/asm-ppc/unaligned.h
→
include/asm-p
ower
pc/unaligned.h
View file @
8bc2bee2
File moved
include/asm-ppc/xor.h
→
include/asm-p
ower
pc/xor.h
View file @
8bc2bee2
File moved
include/asm-ppc/cputime.h
deleted
100644 → 0
View file @
826509f8
#ifndef __PPC_CPUTIME_H
#define __PPC_CPUTIME_H
#include <asm-generic/cputime.h>
#endif
/* __PPC_CPUTIME_H */
include/asm-ppc/emergency-restart.h
deleted
100644 → 0
View file @
826509f8
#ifndef _ASM_EMERGENCY_RESTART_H
#define _ASM_EMERGENCY_RESTART_H
#include <asm-generic/emergency-restart.h>
#endif
/* _ASM_EMERGENCY_RESTART_H */
include/asm-ppc/hdreg.h
deleted
100644 → 0
View file @
826509f8
#include <asm-generic/hdreg.h>
include/asm-ppc/local.h
deleted
100644 → 0
View file @
826509f8
#ifndef __PPC_LOCAL_H
#define __PPC_LOCAL_H
#include <asm-generic/local.h>
#endif
/* __PPC_LOCAL_H */
include/asm-ppc/percpu.h
deleted
100644 → 0
View file @
826509f8
#ifndef __ARCH_PPC_PERCPU__
#define __ARCH_PPC_PERCPU__
#include <asm-generic/percpu.h>
#endif
/* __ARCH_PPC_PERCPU__ */
include/asm-ppc64/8253pit.h
deleted
100644 → 0
View file @
826509f8
/*
* 8253/8254 Programmable Interval Timer
*/
#ifndef _8253PIT_H
#define _8253PIT_H
#define PIT_TICK_RATE 1193182UL
#endif
include/asm-ppc64/agp.h
deleted
100644 → 0
View file @
826509f8
#ifndef AGP_H
#define AGP_H 1
#include <asm/io.h>
/* nothing much needed here */
#define map_page_into_agp(page)
#define unmap_page_from_agp(page)
#define flush_agp_mappings()
#define flush_agp_cache() mb()
/* Convert a physical address to an address suitable for the GART. */
#define phys_to_gart(x) (x)
#define gart_to_phys(x) (x)
/* GATT allocation. Returns/accepts GATT kernel virtual address. */
#define alloc_gatt_pages(order) \
((char *)__get_free_pages(GFP_KERNEL, (order)))
#define free_gatt_pages(table, order) \
free_pages((unsigned long)(table), (order))
#endif
include/asm-ppc64/cputime.h
deleted
100644 → 0
View file @
826509f8
#ifndef __PPC_CPUTIME_H
#define __PPC_CPUTIME_H
#include <asm-generic/cputime.h>
#endif
/* __PPC_CPUTIME_H */
include/asm-ppc64/div64.h
deleted
100644 → 0
View file @
826509f8
#include <asm-generic/div64.h>
include/asm-ppc64/emergency-restart.h
deleted
100644 → 0
View file @
826509f8
#ifndef _ASM_EMERGENCY_RESTART_H
#define _ASM_EMERGENCY_RESTART_H
#include <asm-generic/emergency-restart.h>
#endif
/* _ASM_EMERGENCY_RESTART_H */
include/asm-ppc64/errno.h
deleted
100644 → 0
View file @
826509f8
#ifndef _PPC64_ERRNO_H
#define _PPC64_ERRNO_H
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#include <asm-generic/errno.h>
#undef EDEADLOCK
#define EDEADLOCK 58
/* File locking deadlock error */
#define _LAST_ERRNO 516
#endif
include/asm-ppc64/hdreg.h
deleted
100644 → 0
View file @
826509f8
#include <asm-generic/hdreg.h>
include/asm-ppc64/ioctl.h
deleted
100644 → 0
View file @
826509f8
#ifndef _PPC64_IOCTL_H
#define _PPC64_IOCTL_H
/*
* This was copied from the alpha as it's a bit cleaner there.
* -- Cort
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#define _IOC_NRBITS 8
#define _IOC_TYPEBITS 8
#define _IOC_SIZEBITS 13
#define _IOC_DIRBITS 3
#define _IOC_NRMASK ((1 << _IOC_NRBITS)-1)
#define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1)
#define _IOC_SIZEMASK ((1 << _IOC_SIZEBITS)-1)
#define _IOC_DIRMASK ((1 << _IOC_DIRBITS)-1)
#define _IOC_NRSHIFT 0
#define _IOC_TYPESHIFT (_IOC_NRSHIFT+_IOC_NRBITS)
#define _IOC_SIZESHIFT (_IOC_TYPESHIFT+_IOC_TYPEBITS)
#define _IOC_DIRSHIFT (_IOC_SIZESHIFT+_IOC_SIZEBITS)
/*
* Direction bits _IOC_NONE could be 0, but OSF/1 gives it a bit.
* And this turns out useful to catch old ioctl numbers in header
* files for us.
*/
#define _IOC_NONE 1U
#define _IOC_READ 2U
#define _IOC_WRITE 4U
#define _IOC(dir,type,nr,size) \
(((dir) << _IOC_DIRSHIFT) | \
((type) << _IOC_TYPESHIFT) | \
((nr) << _IOC_NRSHIFT) | \
((size) << _IOC_SIZESHIFT))
/* provoke compile error for invalid uses of size argument */
extern
unsigned
int
__invalid_size_argument_for_IOC
;
#define _IOC_TYPECHECK(t) \
((sizeof(t) == sizeof(t[1]) && \
sizeof(t) < (1 << _IOC_SIZEBITS)) ? \
sizeof(t) : __invalid_size_argument_for_IOC)
/* used to create numbers */
#define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0)
#define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size)))
#define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
#define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
#define _IOR_BAD(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size))
#define _IOW_BAD(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),sizeof(size))
#define _IOWR_BAD(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size))
/* used to decode them.. */
#define _IOC_DIR(nr) (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
#define _IOC_TYPE(nr) (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK)
#define _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK)
#define _IOC_SIZE(nr) (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)
/* various drivers, such as the pcmcia stuff, need these... */
#define IOC_IN (_IOC_WRITE << _IOC_DIRSHIFT)
#define IOC_OUT (_IOC_READ << _IOC_DIRSHIFT)
#define IOC_INOUT ((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT)
#define IOCSIZE_MASK (_IOC_SIZEMASK << _IOC_SIZESHIFT)
#define IOCSIZE_SHIFT (_IOC_SIZESHIFT)
#endif
/* _PPC64_IOCTL_H */
include/asm-ppc64/ioctls.h
deleted
100644 → 0
View file @
826509f8
#ifndef _ASM_PPC64_IOCTLS_H
#define _ASM_PPC64_IOCTLS_H
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#include <asm/ioctl.h>
#define FIOCLEX _IO('f', 1)
#define FIONCLEX _IO('f', 2)
#define FIOASYNC _IOW('f', 125, int)
#define FIONBIO _IOW('f', 126, int)
#define FIONREAD _IOR('f', 127, int)
#define TIOCINQ FIONREAD
#define FIOQSIZE _IOR('f', 128, loff_t)
#define TIOCGETP _IOR('t', 8, struct sgttyb)
#define TIOCSETP _IOW('t', 9, struct sgttyb)
#define TIOCSETN _IOW('t', 10, struct sgttyb)
/* TIOCSETP wo flush */
#define TIOCSETC _IOW('t', 17, struct tchars)
#define TIOCGETC _IOR('t', 18, struct tchars)
#define TCGETS _IOR('t', 19, struct termios)
#define TCSETS _IOW('t', 20, struct termios)
#define TCSETSW _IOW('t', 21, struct termios)
#define TCSETSF _IOW('t', 22, struct termios)
#define TCGETA _IOR('t', 23, struct termio)
#define TCSETA _IOW('t', 24, struct termio)
#define TCSETAW _IOW('t', 25, struct termio)
#define TCSETAF _IOW('t', 28, struct termio)
#define TCSBRK _IO('t', 29)
#define TCXONC _IO('t', 30)
#define TCFLSH _IO('t', 31)
#define TIOCSWINSZ _IOW('t', 103, struct winsize)
#define TIOCGWINSZ _IOR('t', 104, struct winsize)
#define TIOCSTART _IO('t', 110)
/* start output, like ^Q */
#define TIOCSTOP _IO('t', 111)
/* stop output, like ^S */
#define TIOCOUTQ _IOR('t', 115, int)
/* output queue size */
#define TIOCGLTC _IOR('t', 116, struct ltchars)
#define TIOCSLTC _IOW('t', 117, struct ltchars)
#define TIOCSPGRP _IOW('t', 118, int)
#define TIOCGPGRP _IOR('t', 119, int)
#define TIOCEXCL 0x540C
#define TIOCNXCL 0x540D
#define TIOCSCTTY 0x540E
#define TIOCSTI 0x5412
#define TIOCMGET 0x5415
#define TIOCMBIS 0x5416
#define TIOCMBIC 0x5417
#define TIOCMSET 0x5418
# define TIOCM_LE 0x001
# define TIOCM_DTR 0x002
# define TIOCM_RTS 0x004
# define TIOCM_ST 0x008
# define TIOCM_SR 0x010
# define TIOCM_CTS 0x020
# define TIOCM_CAR 0x040
# define TIOCM_RNG 0x080
# define TIOCM_DSR 0x100
# define TIOCM_CD TIOCM_CAR
# define TIOCM_RI TIOCM_RNG
#define TIOCGSOFTCAR 0x5419
#define TIOCSSOFTCAR 0x541A
#define TIOCLINUX 0x541C
#define TIOCCONS 0x541D
#define TIOCGSERIAL 0x541E
#define TIOCSSERIAL 0x541F
#define TIOCPKT 0x5420
# define TIOCPKT_DATA 0
# define TIOCPKT_FLUSHREAD 1
# define TIOCPKT_FLUSHWRITE 2
# define TIOCPKT_STOP 4
# define TIOCPKT_START 8
# define TIOCPKT_NOSTOP 16
# define TIOCPKT_DOSTOP 32
#define TIOCNOTTY 0x5422
#define TIOCSETD 0x5423
#define TIOCGETD 0x5424
#define TCSBRKP 0x5425
/* Needed for POSIX tcsendbreak() */
#define TIOCSBRK 0x5427
/* BSD compatibility */
#define TIOCCBRK 0x5428
/* BSD compatibility */
#define TIOCGSID 0x5429
/* Return the session ID of FD */
#define TIOCGPTN _IOR('T',0x30, unsigned int)
/* Get Pty Number (of pty-mux device) */
#define TIOCSPTLCK _IOW('T',0x31, int)
/* Lock/unlock Pty */
#define TIOCSERCONFIG 0x5453
#define TIOCSERGWILD 0x5454
#define TIOCSERSWILD 0x5455
#define TIOCGLCKTRMIOS 0x5456
#define TIOCSLCKTRMIOS 0x5457
#define TIOCSERGSTRUCT 0x5458
/* For debugging only */
#define TIOCSERGETLSR 0x5459
/* Get line status register */
/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
# define TIOCSER_TEMT 0x01
/* Transmitter physically empty */
#define TIOCSERGETMULTI 0x545A
/* Get multiport config */
#define TIOCSERSETMULTI 0x545B
/* Set multiport config */
#define TIOCMIWAIT 0x545C
/* wait for a change on serial input line(s) */
#define TIOCGICOUNT 0x545D
/* read serial port inline interrupt counts */
#endif
/* _ASM_PPC64_IOCTLS_H */
include/asm-ppc64/ipc.h
deleted
100644 → 0
View file @
826509f8
#include <asm-generic/ipc.h>
include/asm-ppc64/linkage.h
deleted
100644 → 0
View file @
826509f8
#ifndef __ASM_LINKAGE_H
#define __ASM_LINKAGE_H
/* Nothing to see here... */
#endif
include/asm-ppc64/namei.h
deleted
100644 → 0
View file @
826509f8
/*
* linux/include/asm-ppc/namei.h
* Adapted from linux/include/asm-alpha/namei.h
*
* Included from linux/fs/namei.c
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#ifndef __PPC64_NAMEI_H
#define __PPC64_NAMEI_H
/* This dummy routine maybe changed to something useful
* for /usr/gnemul/ emulation stuff.
* Look at asm-sparc/namei.h for details.
*/
#define __emul_prefix() NULL
#endif
/* __PPC64_NAMEI_H */
include/asm-ppc64/param.h
View file @
8bc2bee2
#ifndef _ASM_PPC64_PARAM_H
#define _ASM_PPC64_PARAM_H
#include <linux/config.h>
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
...
...
@@ -9,7 +11,7 @@
*/
#ifdef __KERNEL__
# define HZ
1000
/* Internal kernel timer frequency */
# define HZ
CONFIG_HZ
/* Internal kernel timer frequency */
# define USER_HZ 100
/* .. some user interfaces are in "ticks" */
# define CLOCKS_PER_SEC (USER_HZ)
/* like times() */
#endif
...
...
include/asm-ppc64/percpu.h
deleted
100644 → 0
View file @
826509f8
#ifndef __ARCH_PPC64_PERCPU__
#define __ARCH_PPC64_PERCPU__
#include <asm-generic/percpu.h>
#endif
/* __ARCH_PPC64_PERCPU__ */
include/asm-ppc64/pgtable.h
View file @
8bc2bee2
...
...
@@ -489,8 +489,10 @@ extern pgd_t swapper_pg_dir[];
extern
void
paging_init
(
void
);
#ifdef CONFIG_HUGETLB_PAGE
#define hugetlb_free_pgd_range(tlb, addr, end, floor, ceiling) \
free_pgd_range(tlb, addr, end, floor, ceiling)
#endif
/*
* This gets called at the end of handling a page fault, when
...
...
include/asm-ppc64/poll.h
deleted
100644 → 0
View file @
826509f8
#ifndef __PPC64_POLL_H
#define __PPC64_POLL_H
/*
* Copyright (C) 2001 PPC64 Team, IBM Corp
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#define POLLIN 0x0001
#define POLLPRI 0x0002
#define POLLOUT 0x0004
#define POLLERR 0x0008
#define POLLHUP 0x0010
#define POLLNVAL 0x0020
#define POLLRDNORM 0x0040
#define POLLRDBAND 0x0080
#define POLLWRNORM 0x0100
#define POLLWRBAND 0x0200
#define POLLMSG 0x0400
#define POLLREMOVE 0x1000
struct
pollfd
{
int
fd
;
short
events
;
short
revents
;
};
#endif
/* __PPC64_POLL_H */
include/asm-ppc64/processor.h
View file @
8bc2bee2
...
...
@@ -268,6 +268,7 @@
#define PV_970FX 0x003C
#define PV_630 0x0040
#define PV_630p 0x0041
#define PV_970MP 0x0044
#define PV_BE 0x0070
/* Platforms supported by PPC64 */
...
...
include/asm-ppc64/resource.h
deleted
100644 → 0
View file @
826509f8
#ifndef _PPC64_RESOURCE_H
#define _PPC64_RESOURCE_H
#include <asm-generic/resource.h>
#endif
/* _PPC64_RESOURCE_H */
include/asm-ppc64/shmparam.h
deleted
100644 → 0
View file @
826509f8
#ifndef _PPC64_SHMPARAM_H
#define _PPC64_SHMPARAM_H
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#define SHMLBA PAGE_SIZE
/* attach addr a multiple of this */
#endif
/* _PPC64_SHMPARAM_H */
include/asm-ppc64/string.h
deleted
100644 → 0
View file @
826509f8
#ifndef _PPC64_STRING_H_
#define _PPC64_STRING_H_
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#define __HAVE_ARCH_STRCPY
#define __HAVE_ARCH_STRNCPY
#define __HAVE_ARCH_STRLEN
#define __HAVE_ARCH_STRCMP
#define __HAVE_ARCH_STRCAT
#define __HAVE_ARCH_MEMSET
#define __HAVE_ARCH_MEMCPY
#define __HAVE_ARCH_MEMMOVE
#define __HAVE_ARCH_MEMCMP
#define __HAVE_ARCH_MEMCHR
extern
int
strcasecmp
(
const
char
*
,
const
char
*
);
extern
int
strncasecmp
(
const
char
*
,
const
char
*
,
int
);
extern
char
*
strcpy
(
char
*
,
const
char
*
);
extern
char
*
strncpy
(
char
*
,
const
char
*
,
__kernel_size_t
);
extern
__kernel_size_t
strlen
(
const
char
*
);
extern
int
strcmp
(
const
char
*
,
const
char
*
);
extern
char
*
strcat
(
char
*
,
const
char
*
);
extern
void
*
memset
(
void
*
,
int
,
__kernel_size_t
);
extern
void
*
memcpy
(
void
*
,
const
void
*
,
__kernel_size_t
);
extern
void
*
memmove
(
void
*
,
const
void
*
,
__kernel_size_t
);
extern
int
memcmp
(
const
void
*
,
const
void
*
,
__kernel_size_t
);
extern
void
*
memchr
(
const
void
*
,
int
,
__kernel_size_t
);
#endif
/* _PPC64_STRING_H_ */
include/asm-ppc64/unaligned.h
deleted
100644 → 0
View file @
826509f8
#ifndef __PPC64_UNALIGNED_H
#define __PPC64_UNALIGNED_H
/*
* The PowerPC can do unaligned accesses itself in big endian mode.
*
* The strange macros are there to make sure these can't
* be misused in a way that makes them not work on other
* architectures where unaligned accesses aren't as simple.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#define get_unaligned(ptr) (*(ptr))
#define put_unaligned(val, ptr) ((void)( *(ptr) = (val) ))
#endif
/* __PPC64_UNALIGNED_H */
include/asm-ppc64/vio.h
View file @
8bc2bee2
...
...
@@ -19,13 +19,15 @@
#include <linux/errno.h>
#include <linux/device.h>
#include <linux/dma-mapping.h>
#include <linux/mod_devicetable.h>
#include <asm/hvcall.h>
#include <asm/prom.h>
#include <asm/scatterlist.h>
/*
/*
* Architecture-specific constants for drivers to
* extract attributes of the device using vio_get_attribute()
*/
*/
#define VETH_MAC_ADDR "local-mac-address"
#define VETH_MCAST_FILTER_SIZE "ibm,mac-address-filters"
...
...
@@ -37,77 +39,68 @@
#define VIO_IRQ_DISABLE 0UL
#define VIO_IRQ_ENABLE 1UL
struct
vio_dev
;
struct
vio_driver
;
struct
vio_device_id
;
struct
iommu_table
;
int
vio_register_driver
(
struct
vio_driver
*
drv
);
void
vio_unregister_driver
(
struct
vio_driver
*
drv
);
#ifdef CONFIG_PPC_PSERIES
struct
vio_dev
*
__devinit
vio_register_device_node
(
struct
device_node
*
node_vdev
);
#endif
void
__devinit
vio_unregister_device
(
struct
vio_dev
*
dev
);
struct
vio_dev
*
vio_find_node
(
struct
device_node
*
vnode
);
const
void
*
vio_get_attribute
(
struct
vio_dev
*
vdev
,
void
*
which
,
int
*
length
);
int
vio_get_irq
(
struct
vio_dev
*
dev
);
int
vio_enable_interrupts
(
struct
vio_dev
*
dev
);
int
vio_disable_interrupts
(
struct
vio_dev
*
dev
);
extern
struct
vio_dev
*
__devinit
vio_register_device_common
(
struct
vio_dev
*
viodev
,
char
*
name
,
char
*
type
,
uint32_t
unit_address
,
struct
iommu_table
*
iommu_table
);
extern
struct
dma_mapping_ops
vio_dma_ops
;
extern
struct
bus_type
vio_bus_type
;
struct
vio_device_id
{
/*
* The vio_dev structure is used to describe virtual I/O devices.
*/
struct
vio_dev
{
struct
iommu_table
*
iommu_table
;
/* vio_map_* uses this */
char
*
name
;
char
*
type
;
char
*
compat
;
uint32_t
unit_address
;
unsigned
int
irq
;
struct
device
dev
;
};
struct
vio_driver
{
struct
list_head
node
;
char
*
name
;
const
struct
vio_device_id
*
id_table
;
/* NULL if wants all devices */
int
(
*
probe
)
(
struct
vio_dev
*
dev
,
const
struct
vio_device_id
*
id
);
/* New device inserted */
int
(
*
remove
)
(
struct
vio_dev
*
dev
);
/* Device removed (NULL if not a hot-plug capable driver) */
const
struct
vio_device_id
*
id_table
;
int
(
*
probe
)(
struct
vio_dev
*
dev
,
const
struct
vio_device_id
*
id
);
int
(
*
remove
)
(
struct
vio_dev
*
dev
);
unsigned
long
driver_data
;
struct
device_driver
driver
;
};
struct
vio_bus_ops
{
int
(
*
match
)(
const
struct
vio_device_id
*
id
,
const
struct
vio_dev
*
dev
);
void
(
*
unregister_device
)(
struct
vio_dev
*
);
void
(
*
release_device
)(
struct
device
*
);
};
extern
struct
dma_mapping_ops
vio_dma_ops
;
extern
struct
bus_type
vio_bus_type
;
extern
struct
vio_dev
vio_bus_device
;
extern
int
vio_register_driver
(
struct
vio_driver
*
drv
);
extern
void
vio_unregister_driver
(
struct
vio_driver
*
drv
);
extern
struct
vio_dev
*
__devinit
vio_register_device
(
struct
vio_dev
*
viodev
);
extern
void
__devinit
vio_unregister_device
(
struct
vio_dev
*
dev
);
extern
int
vio_bus_init
(
struct
vio_bus_ops
*
);
#ifdef CONFIG_PPC_PSERIES
struct
device_node
;
extern
struct
vio_dev
*
__devinit
vio_register_device_node
(
struct
device_node
*
node_vdev
);
extern
struct
vio_dev
*
vio_find_node
(
struct
device_node
*
vnode
);
extern
const
void
*
vio_get_attribute
(
struct
vio_dev
*
vdev
,
void
*
which
,
int
*
length
);
extern
int
vio_enable_interrupts
(
struct
vio_dev
*
dev
);
extern
int
vio_disable_interrupts
(
struct
vio_dev
*
dev
);
#endif
static
inline
struct
vio_driver
*
to_vio_driver
(
struct
device_driver
*
drv
)
{
return
container_of
(
drv
,
struct
vio_driver
,
driver
);
}
/*
* The vio_dev structure is used to describe virtual I/O devices.
*/
struct
vio_dev
{
struct
iommu_table
*
iommu_table
;
/* vio_map_* uses this */
char
*
name
;
char
*
type
;
uint32_t
unit_address
;
unsigned
int
irq
;
struct
device
dev
;
};
extern
struct
vio_dev
vio_bus_device
;
static
inline
struct
vio_dev
*
to_vio_dev
(
struct
device
*
dev
)
{
return
container_of
(
dev
,
struct
vio_dev
,
dev
);
}
extern
int
vio_bus_init
(
int
(
*
is_match
)(
const
struct
vio_device_id
*
id
,
const
struct
vio_dev
*
dev
),
void
(
*
)(
struct
vio_dev
*
),
void
(
*
)(
struct
device
*
));
#endif
/* _ASM_VIO_H */
include/asm-ppc64/xor.h
deleted
100644 → 0
View file @
826509f8
#include <asm-generic/xor.h>
include/linux/mod_devicetable.h
View file @
8bc2bee2
/*
* Device tables which are exported to userspace via
* scripts/
tab
le2alias.c. You must keep that file in sync with this
* scripts/
mod/fi
le2alias.c. You must keep that file in sync with this
* header.
*/
...
...
@@ -190,6 +190,11 @@ struct of_device_id
#endif
};
/* VIO */
struct
vio_device_id
{
char
type
[
32
];
char
compat
[
32
];
};
/* PCMCIA */
...
...
scripts/mod/file2alias.c
View file @
8bc2bee2
...
...
@@ -341,6 +341,22 @@ static int do_of_entry (const char *filename, struct of_device_id *of, char *ali
return
1
;
}
static
int
do_vio_entry
(
const
char
*
filename
,
struct
vio_device_id
*
vio
,
char
*
alias
)
{
char
*
tmp
;
sprintf
(
alias
,
"vio:T%sS%s"
,
vio
->
type
[
0
]
?
vio
->
type
:
"*"
,
vio
->
compat
[
0
]
?
vio
->
compat
:
"*"
);
/* Replace all whitespace with underscores */
for
(
tmp
=
alias
;
tmp
&&
*
tmp
;
tmp
++
)
if
(
isspace
(
*
tmp
))
*
tmp
=
'_'
;
return
1
;
}
/* Ignore any prefix, eg. v850 prepends _ */
static
inline
int
sym_is
(
const
char
*
symbol
,
const
char
*
name
)
{
...
...
@@ -422,6 +438,9 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
else
if
(
sym_is
(
symname
,
"__mod_of_device_table"
))
do_table
(
symval
,
sym
->
st_size
,
sizeof
(
struct
of_device_id
),
do_of_entry
,
mod
);
else
if
(
sym_is
(
symname
,
"__mod_vio_device_table"
))
do_table
(
symval
,
sym
->
st_size
,
sizeof
(
struct
vio_device_id
),
do_vio_entry
,
mod
);
}
...
...
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