Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci-2.6.23
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci-2.6.23
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