Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
9b1ea0b2
Commit
9b1ea0b2
authored
Aug 31, 2003
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://bk.arm.linux.org.uk/linux-2.6-rmk
into home.osdl.org:/home/torvalds/v2.5/linux
parents
038921ab
01dfd80f
Changes
37
Show whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
776 additions
and
622 deletions
+776
-622
arch/arm/Makefile
arch/arm/Makefile
+1
-0
arch/arm/boot/Makefile
arch/arm/boot/Makefile
+6
-5
arch/arm/common/amba.c
arch/arm/common/amba.c
+25
-17
arch/arm/common/sa1111.c
arch/arm/common/sa1111.c
+115
-60
arch/arm/def-configs/iq80310
arch/arm/def-configs/iq80310
+63
-28
arch/arm/def-configs/iq80321
arch/arm/def-configs/iq80321
+112
-30
arch/arm/kernel/apm.c
arch/arm/kernel/apm.c
+2
-12
arch/arm/kernel/bios32.c
arch/arm/kernel/bios32.c
+14
-1
arch/arm/kernel/ecard.c
arch/arm/kernel/ecard.c
+2
-2
arch/arm/kernel/entry-header.S
arch/arm/kernel/entry-header.S
+0
-6
arch/arm/kernel/pm.c
arch/arm/kernel/pm.c
+2
-31
arch/arm/kernel/vmlinux.lds.S
arch/arm/kernel/vmlinux.lds.S
+124
-11
arch/arm/mach-footbridge/netwinder-pci.c
arch/arm/mach-footbridge/netwinder-pci.c
+2
-2
arch/arm/mach-iop3xx/iop321-time.c
arch/arm/mach-iop3xx/iop321-time.c
+4
-1
arch/arm/mach-iop3xx/iq80310-time.c
arch/arm/mach-iop3xx/iq80310-time.c
+6
-15
arch/arm/mach-sa1100/leds-simpad.c
arch/arm/mach-sa1100/leds-simpad.c
+1
-0
arch/arm/mach-sa1100/leds.c
arch/arm/mach-sa1100/leds.c
+2
-0
arch/arm/mach-sa1100/leds.h
arch/arm/mach-sa1100/leds.h
+1
-0
arch/arm/vmlinux-armo.lds.in
arch/arm/vmlinux-armo.lds.in
+0
-114
arch/arm/vmlinux-armv.lds.in
arch/arm/vmlinux-armv.lds.in
+0
-134
drivers/input/serio/sa1111ps2.c
drivers/input/serio/sa1111ps2.c
+26
-44
drivers/pcmcia/sa1111_generic.c
drivers/pcmcia/sa1111_generic.c
+34
-27
drivers/usb/host/ohci-sa1111.c
drivers/usb/host/ohci-sa1111.c
+11
-26
include/asm-arm/apm.h
include/asm-arm/apm.h
+56
-0
include/asm-arm/arch-ebsa285/time.h
include/asm-arm/arch-ebsa285/time.h
+6
-3
include/asm-arm/arch-ebsa285/timex.h
include/asm-arm/arch-ebsa285/timex.h
+4
-4
include/asm-arm/arch-iop3xx/iop310.h
include/asm-arm/arch-iop3xx/iop310.h
+8
-0
include/asm-arm/arch-iop3xx/iop321.h
include/asm-arm/arch-iop3xx/iop321.h
+4
-0
include/asm-arm/arch-iop3xx/memory.h
include/asm-arm/arch-iop3xx/memory.h
+2
-0
include/asm-arm/arch-pxa/pxa-regs.h
include/asm-arm/arch-pxa/pxa-regs.h
+2
-2
include/asm-arm/arch-sa1100/simpad.h
include/asm-arm/arch-sa1100/simpad.h
+48
-18
include/asm-arm/checksum.h
include/asm-arm/checksum.h
+2
-2
include/asm-arm/dma-mapping.h
include/asm-arm/dma-mapping.h
+37
-10
include/asm-arm/hardware/amba.h
include/asm-arm/hardware/amba.h
+2
-2
include/asm-arm/hardware/sa1111.h
include/asm-arm/hardware/sa1111.h
+10
-0
include/asm-arm/pci.h
include/asm-arm/pci.h
+13
-0
include/asm-arm/unistd.h
include/asm-arm/unistd.h
+29
-15
No files found.
arch/arm/Makefile
View file @
9b1ea0b2
...
...
@@ -24,6 +24,7 @@ ifeq ($(CONFIG_CPU_BIG_ENDIAN),y)
CFLAGS
+=
-mbig-endian
AS
+=
-EB
LD
+=
-EB
AFLAGS
+=
-mbig-endian
endif
check_gcc
=
$(
shell
if
$(CC)
$(1)
-S
-o
/dev/null
-xc
/dev/null
>
/dev/null 2>&1
;
then
echo
"
$(1)
"
;
else
echo
"
$(2)
"
;
fi
)
...
...
arch/arm/boot/Makefile
View file @
9b1ea0b2
...
...
@@ -44,9 +44,10 @@ ifeq ($(CONFIG_ARCH_SA1100),y)
endif
zreladdr-$(CONFIG_ARCH_PXA)
:=
0xa0008000
zreladdr-$(CONFIG_ARCH_ANAKIN)
:=
0x20008000
zreladdr-$(CONFIG_ARCH_IQ80310
)
:=
0xa0008000
zreladdr-$(CONFIG_ARCH_IQ80321)
:=
0xa00080
00
zreladdr-$(CONFIG_ARCH_IOP3XX
)
:=
0xa0008000
params-phys-$(CONFIG_ARCH_IOP3XX)
:=
0xa00001
00
zreladdr-$(CONFIG_ARCH_ADIFCC)
:=
0xc0008000
params-phys-$(CONFIG_ARCH_ADIFCC)
:=
0xc0000100
ZRELADDR
:=
$
(
zreladdr-y
)
ZTEXTADDR
:=
$
(
ztextaddr-y
)
...
...
arch/arm/common/amba.c
View file @
9b1ea0b2
...
...
@@ -41,13 +41,35 @@ static int amba_match(struct device *dev, struct device_driver *drv)
return
amba_lookup
(
pcdrv
->
id_table
,
pcdev
)
!=
NULL
;
}
static
int
amba_suspend
(
struct
device
*
dev
,
u32
state
)
{
struct
amba_driver
*
drv
=
to_amba_driver
(
dev
->
driver
);
int
ret
=
0
;
if
(
dev
->
driver
&&
drv
->
suspend
)
ret
=
drv
->
suspend
(
to_amba_device
(
dev
),
state
);
return
ret
;
}
static
int
amba_resume
(
struct
device
*
dev
)
{
struct
amba_driver
*
drv
=
to_amba_driver
(
dev
->
driver
);
int
ret
=
0
;
if
(
dev
->
driver
&&
drv
->
resume
)
ret
=
drv
->
resume
(
to_amba_device
(
dev
));
return
ret
;
}
/*
* Primecells are part of the Advanced Microcontroller Bus Architecture,
* so we call the bus "amba".
*/
struct
bus_type
amba_bustype
=
{
st
atic
st
ruct
bus_type
amba_bustype
=
{
.
name
=
"amba"
,
.
match
=
amba_match
,
.
suspend
=
amba_suspend
,
.
resume
=
amba_resume
,
};
static
int
__init
amba_init
(
void
)
...
...
@@ -84,18 +106,6 @@ static void amba_shutdown(struct device *dev)
drv
->
shutdown
(
to_amba_device
(
dev
));
}
static
int
amba_suspend
(
struct
device
*
dev
,
u32
state
,
u32
level
)
{
struct
amba_driver
*
drv
=
to_amba_driver
(
dev
->
driver
);
return
drv
->
suspend
(
to_amba_device
(
dev
),
state
,
level
);
}
static
int
amba_resume
(
struct
device
*
dev
,
u32
level
)
{
struct
amba_driver
*
drv
=
to_amba_driver
(
dev
->
driver
);
return
drv
->
resume
(
to_amba_device
(
dev
),
level
);
}
/**
* amba_driver_register - register an AMBA device driver
* @drv: amba device driver structure
...
...
@@ -112,8 +122,6 @@ int amba_driver_register(struct amba_driver *drv)
SETFN
(
probe
);
SETFN
(
remove
);
SETFN
(
shutdown
);
SETFN
(
suspend
);
SETFN
(
resume
);
return
driver_register
(
&
drv
->
drv
);
}
...
...
arch/arm/common/sa1111.c
View file @
9b1ea0b2
...
...
@@ -790,9 +790,12 @@ static int sa1111_suspend(struct device *dev, u32 state, u32 level)
struct
sa1111
*
sachip
=
dev_get_drvdata
(
dev
);
struct
sa1111_save_data
*
save
;
unsigned
long
flags
;
unsigned
int
val
;
char
*
base
;
if
(
!
dev
->
saved_state
&&
level
==
SUSPEND_NOTIFY
)
if
(
level
!=
SUSPEND_DISABLE
)
return
0
;
dev
->
saved_state
=
kmalloc
(
sizeof
(
struct
sa1111_save_data
),
GFP_KERNEL
);
if
(
!
dev
->
saved_state
)
return
-
ENOMEM
;
...
...
@@ -804,7 +807,6 @@ static int sa1111_suspend(struct device *dev, u32 state, u32 level)
/*
* Save state.
*/
if
(
level
==
SUSPEND_SAVE_STATE
)
{
base
=
sachip
->
base
;
save
->
skcr
=
sa1111_readl
(
base
+
SA1111_SKCR
);
save
->
skpcr
=
sa1111_readl
(
base
+
SA1111_SKPCR
);
...
...
@@ -822,18 +824,14 @@ static int sa1111_suspend(struct device *dev, u32 state, u32 level)
save
->
wakepol1
=
sa1111_readl
(
base
+
SA1111_WAKEPOL1
);
save
->
wakeen0
=
sa1111_readl
(
base
+
SA1111_WAKEEN0
);
save
->
wakeen1
=
sa1111_readl
(
base
+
SA1111_WAKEEN1
);
}
/*
* Disable.
*/
if
(
level
==
SUSPEND_POWER_DOWN
&&
state
==
4
)
{
unsigned
int
val
=
sa1111_readl
(
sachip
->
base
+
SA1111_SKCR
);
val
=
sa1111_readl
(
sachip
->
base
+
SA1111_SKCR
);
sa1111_writel
(
val
|
SKCR_SLEEP
,
sachip
->
base
+
SA1111_SKCR
);
sa1111_writel
(
0
,
sachip
->
base
+
SA1111_SKPWM0
);
sa1111_writel
(
0
,
sachip
->
base
+
SA1111_SKPWM1
);
}
spin_unlock_irqrestore
(
&
sachip
->
lock
,
flags
);
...
...
@@ -857,6 +855,9 @@ static int sa1111_resume(struct device *dev, u32 level)
unsigned
long
flags
,
id
;
char
*
base
;
if
(
level
!=
RESUME_ENABLE
)
return
0
;
save
=
(
struct
sa1111_save_data
*
)
dev
->
saved_state
;
if
(
!
save
)
return
0
;
...
...
@@ -878,14 +879,10 @@ static int sa1111_resume(struct device *dev, u32 level)
/*
* First of all, wake up the chip.
*/
if
(
level
==
RESUME_POWER_ON
)
{
sa1111_wake
(
sachip
);
sa1111_writel
(
0
,
sachip
->
base
+
SA1111_INTC
+
SA1111_INTEN0
);
sa1111_writel
(
0
,
sachip
->
base
+
SA1111_INTC
+
SA1111_INTEN1
);
}
if
(
level
==
RESUME_RESTORE_STATE
)
{
base
=
sachip
->
base
;
sa1111_writel
(
save
->
skcr
,
base
+
SA1111_SKCR
);
sa1111_writel
(
save
->
skpcr
,
base
+
SA1111_SKPCR
);
...
...
@@ -903,14 +900,11 @@ static int sa1111_resume(struct device *dev, u32 level)
sa1111_writel
(
save
->
wakepol1
,
base
+
SA1111_WAKEPOL1
);
sa1111_writel
(
save
->
wakeen0
,
base
+
SA1111_WAKEEN0
);
sa1111_writel
(
save
->
wakeen1
,
base
+
SA1111_WAKEEN1
);
}
spin_unlock_irqrestore
(
&
sachip
->
lock
,
flags
);
if
(
level
==
RESUME_ENABLE
)
{
dev
->
saved_state
=
NULL
;
kfree
(
save
);
}
return
0
;
}
...
...
@@ -1135,9 +1129,55 @@ static int sa1111_match(struct device *_dev, struct device_driver *_drv)
return
dev
->
devid
==
drv
->
devid
;
}
static
int
sa1111_bus_suspend
(
struct
device
*
dev
,
u32
state
)
{
struct
sa1111_dev
*
sadev
=
SA1111_DEV
(
dev
);
struct
sa1111_driver
*
drv
=
SA1111_DRV
(
dev
->
driver
);
int
ret
=
0
;
if
(
drv
&&
drv
->
suspend
)
ret
=
drv
->
suspend
(
sadev
,
state
);
return
ret
;
}
static
int
sa1111_bus_resume
(
struct
device
*
dev
)
{
struct
sa1111_dev
*
sadev
=
SA1111_DEV
(
dev
);
struct
sa1111_driver
*
drv
=
SA1111_DRV
(
dev
->
driver
);
int
ret
=
0
;
if
(
drv
&&
drv
->
resume
)
ret
=
drv
->
resume
(
sadev
);
return
ret
;
}
static
int
sa1111_bus_probe
(
struct
device
*
dev
)
{
struct
sa1111_dev
*
sadev
=
SA1111_DEV
(
dev
);
struct
sa1111_driver
*
drv
=
SA1111_DRV
(
dev
->
driver
);
int
ret
=
-
ENODEV
;
if
(
drv
->
probe
)
ret
=
drv
->
probe
(
sadev
);
return
ret
;
}
static
int
sa1111_bus_remove
(
struct
device
*
dev
)
{
struct
sa1111_dev
*
sadev
=
SA1111_DEV
(
dev
);
struct
sa1111_driver
*
drv
=
SA1111_DRV
(
dev
->
driver
);
int
ret
=
0
;
if
(
drv
->
remove
)
ret
=
drv
->
remove
(
sadev
);
return
ret
;
}
struct
bus_type
sa1111_bus_type
=
{
.
name
=
"RAB
"
,
.
name
=
"sa1111-rab
"
,
.
match
=
sa1111_match
,
.
suspend
=
sa1111_bus_suspend
,
.
resume
=
sa1111_bus_resume
,
};
static
int
sa1111_rab_bus_init
(
void
)
...
...
@@ -1147,6 +1187,19 @@ static int sa1111_rab_bus_init(void)
postcore_initcall
(
sa1111_rab_bus_init
);
int
sa1111_driver_register
(
struct
sa1111_driver
*
driver
)
{
driver
->
drv
.
probe
=
sa1111_bus_probe
;
driver
->
drv
.
remove
=
sa1111_bus_remove
;
driver
->
drv
.
bus
=
&
sa1111_bus_type
;
return
driver_register
(
&
driver
->
drv
);
}
void
sa1111_driver_unregister
(
struct
sa1111_driver
*
driver
)
{
driver_unregister
(
&
driver
->
drv
);
}
EXPORT_SYMBOL
(
sa1111_check_dma_bug
);
EXPORT_SYMBOL
(
sa1111_select_audio_mode
);
EXPORT_SYMBOL
(
sa1111_set_audio_rate
);
...
...
@@ -1155,3 +1208,5 @@ EXPORT_SYMBOL(sa1111_enable_device);
EXPORT_SYMBOL
(
sa1111_disable_device
);
EXPORT_SYMBOL
(
sa1111_pll_clock
);
EXPORT_SYMBOL
(
sa1111_bus_type
);
EXPORT_SYMBOL
(
sa1111_driver_register
);
EXPORT_SYMBOL
(
sa1111_driver_unregister
);
arch/arm/def-configs/iq80310
View file @
9b1ea0b2
...
...
@@ -19,6 +19,12 @@ CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
#
# Loadable module support
...
...
@@ -34,7 +40,6 @@ CONFIG_KMOD=y
#
# CONFIG_ARCH_ADIFCC is not set
# CONFIG_ARCH_ANAKIN is not set
# CONFIG_ARCH_ARCA5K is not set
# CONFIG_ARCH_CLPS7500 is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CO285 is not set
...
...
@@ -49,14 +54,6 @@ CONFIG_ARCH_IOP3XX=y
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_SHARK is not set
#
# Archimedes/A5000 Implementations
#
#
# Archimedes/A5000 Implementations (select only ONE)
#
#
# CLPS711X/EP721X Implementations
#
...
...
@@ -73,7 +70,9 @@ CONFIG_ARCH_IOP3XX=y
# IOP3xx Implementation Options
#
CONFIG_ARCH_IQ80310=y
# CONFIG_ARCH_IQ80321 is not set
CONFIG_ARCH_IOP310=y
# CONFIG_ARCH_IOP321 is not set
#
# IOP3xx Chipset Features
...
...
@@ -83,6 +82,14 @@ CONFIG_ARCH_IOP310=y
# CONFIG_IOP3XX_MU is not set
# CONFIG_IOP3XX_PMON is not set
#
# ADIFCC Implementation Options
#
#
# ADI Board Types
#
#
# Intel PXA250/210 Implementations
#
...
...
@@ -96,6 +103,7 @@ CONFIG_ARCH_IOP310=y
#
CONFIG_CPU_32=y
CONFIG_CPU_XSCALE=y
CONFIG_XS80200=y
CONFIG_CPU_32v5=y
#
...
...
@@ -115,10 +123,16 @@ CONFIG_ZBOOT_ROM_BSS=0xa1008000
CONFIG_PCI_NAMES=y
# CONFIG_HOTPLUG is not set
#
# MMC/SD Card support
#
# CONFIG_MMC is not set
#
# At least one math emulation must be selected
#
CONFIG_FPE_NWFPE=y
# CONFIG_FPE_NWFPE_XP is not set
# CONFIG_FPE_FASTFPE is not set
CONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not set
...
...
@@ -154,6 +168,7 @@ CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
#
# RAM/ROM/Flash chip drivers
...
...
@@ -164,6 +179,7 @@ CONFIG_MTD_GEN_PROBE=y
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_CFI_INTELEXT=y
# CONFIG_MTD_CFI_AMDSTD is not set
# CONFIG_MTD_CFI_STAA is not set
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
...
...
@@ -172,13 +188,11 @@ CONFIG_MTD_CFI_INTELEXT=y
#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_NORA is not set
# CONFIG_MTD_ARM_INTEGRATOR is not set
CONFIG_MTD_IQ80310=y
# CONFIG_MTD_EDB7312 is not set
# CONFIG_MTD_PCI is not set
# CONFIG_MTD_UCLINUX is not set
#
# Self-contained MTD device drivers
...
...
@@ -191,9 +205,9 @@ CONFIG_MTD_IQ80310=y
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC1000 is not set
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
#
# NAND Flash Device Drivers
...
...
@@ -236,7 +250,6 @@ CONFIG_NET=y
# CONFIG_NETLINK_DEV is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
# CONFIG_FILTER is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
...
...
@@ -253,7 +266,7 @@ CONFIG_IP_PNP_BOOTP=y
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_
XFRM_USER
is not set
# CONFIG_
INET_IPCOMP
is not set
#
# IP: Netfilter Configuration
...
...
@@ -264,7 +277,13 @@ CONFIG_IP_PNP_BOOTP=y
# CONFIG_IP_NF_ARPTABLES is not set
# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
# CONFIG_IP_NF_COMPAT_IPFWADM is not set
#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
# CONFIG_XFRM_USER is not set
#
# SCTP Configuration (EXPERIMENTAL)
...
...
@@ -310,6 +329,7 @@ CONFIG_NETDEVICES=y
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_SMC91X is not set
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
...
...
@@ -351,6 +371,11 @@ CONFIG_EEPRO100=y
# CONFIG_R8169 is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
#
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
...
...
@@ -402,6 +427,7 @@ CONFIG_BLK_DEV_IDEDISK=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
#
# IDE chipset support/bugfixes
...
...
@@ -409,7 +435,7 @@ CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDEPCI is not set
#
# SCSI support
# SCSI
device
support
#
# CONFIG_SCSI is not set
...
...
@@ -481,6 +507,7 @@ CONFIG_UNIX98_PTY_COUNT=256
#
# I2C Hardware Sensors Chip support
#
# CONFIG_I2C_SENSOR is not set
#
# L3 serial bus support
...
...
@@ -534,6 +561,8 @@ CONFIG_VIDEO_DEV=y
# CONFIG_VIDEO_PMS is not set
# CONFIG_VIDEO_CPIA is not set
# CONFIG_VIDEO_STRADIS is not set
# CONFIG_VIDEO_HEXIUM_ORION is not set
# CONFIG_VIDEO_HEXIUM_GEMINI is not set
#
# Radio Adapters
...
...
@@ -551,18 +580,29 @@ CONFIG_DVB_CORE=y
#
# Supported Frontend Modules
#
CONFIG_DVB_ALPS_BSRU6=y
# CONFIG_DVB_STV0299 is not set
# CONFIG_DVB_ALPS_BSRV2 is not set
# CONFIG_DVB_ALPS_TDLB7 is not set
# CONFIG_DVB_ALPS_TDMB7 is not set
# CONFIG_DVB_ATMEL_AT76C651 is not set
# CONFIG_DVB_CX24110 is not set
# CONFIG_DVB_GRUNDIG_29504_491 is not set
# CONFIG_DVB_GRUNDIG_29504_401 is not set
# CONFIG_DVB_MT312 is not set
# CONFIG_DVB_VES1820 is not set
# CONFIG_DVB_TDA1004X is not set
#
# Supported
DVB
Adapters
# Supported
SAA7146 based PCI
Adapters
#
# CONFIG_DVB_AV7110 is not set
# CONFIG_DVB_BUDGET is not set
#
# Supported FlexCopII (B2C2) Adapters
#
# CONFIG_DVB_B2C2_SKYSTAR is not set
# CONFIG_VIDEO_BTCX is not set
#
# File systems
...
...
@@ -598,6 +638,7 @@ CONFIG_EXT2_FS=y
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
CONFIG_DEVPTS_FS=y
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
CONFIG_RAMFS=y
...
...
@@ -631,13 +672,13 @@ CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_LOCKD=y
# CONFIG_EXPORTFS is not set
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_GSS is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_GSS is not set
# CONFIG_AFS_FS is not set
#
...
...
@@ -655,6 +696,7 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_NEC98_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
...
...
@@ -665,13 +707,6 @@ CONFIG_MSDOS_PARTITION=y
#
# CONFIG_FB is not set
#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
#
# Sound
#
...
...
@@ -695,6 +730,7 @@ CONFIG_DUMMY_CONSOLE=y
# USB support
#
# CONFIG_USB is not set
# CONFIG_USB_GADGET is not set
#
# Bluetooth support
...
...
@@ -714,7 +750,6 @@ CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_WAITQ is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_ERRORS=y
CONFIG_KALLSYMS=y
CONFIG_DEBUG_LL=y
#
...
...
arch/arm/def-configs/iq80321
View file @
9b1ea0b2
...
...
@@ -9,7 +9,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
#
# Code maturity level options
#
# CONFIG_EXPERIMENTAL is not set
CONFIG_EXPERIMENTAL=y
#
# General setup
...
...
@@ -19,6 +19,12 @@ CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
#
# Loadable module support
...
...
@@ -26,6 +32,7 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_MODULES=y
# CONFIG_MODULE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y
#
...
...
@@ -33,7 +40,6 @@ CONFIG_KMOD=y
#
# CONFIG_ARCH_ADIFCC is not set
# CONFIG_ARCH_ANAKIN is not set
# CONFIG_ARCH_ARCA5K is not set
# CONFIG_ARCH_CLPS7500 is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CO285 is not set
...
...
@@ -48,14 +54,6 @@ CONFIG_ARCH_IOP3XX=y
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_SHARK is not set
#
# Archimedes/A5000 Implementations
#
#
# Archimedes/A5000 Implementations (select only ONE)
#
#
# CLPS711X/EP721X Implementations
#
...
...
@@ -79,6 +77,18 @@ CONFIG_ARCH_IOP321=y
#
# IOP3xx Chipset Features
#
# CONFIG_IOP3XX_AAU is not set
# CONFIG_IOP3XX_DMA is not set
# CONFIG_IOP3XX_MU is not set
# CONFIG_IOP3XX_PMON is not set
#
# ADIFCC Implementation Options
#
#
# ADI Board Types
#
#
# Intel PXA250/210 Implementations
...
...
@@ -98,6 +108,7 @@ CONFIG_CPU_32v5=y
#
# Processor Features
#
# CONFIG_ARM_THUMB is not set
CONFIG_XSCALE_PMU=y
#
...
...
@@ -111,18 +122,26 @@ CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_PCI_NAMES=y
# CONFIG_HOTPLUG is not set
#
# MMC/SD Card support
#
# CONFIG_MMC is not set
#
# At least one math emulation must be selected
#
CONFIG_FPE_NWFPE=y
# CONFIG_FPE_NWFPE_XP is not set
# CONFIG_FPE_FASTFPE is not set
CONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not set
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PM is not set
# CONFIG_PREEMPT is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="ip=boot root=nfs console=ttyS0,115200"
CONFIG_CMDLINE="ip=boot root=nfs console=ttyS0,115200
mem=128M@0xa0000000
"
CONFIG_ALIGNMENT_TRAP=y
#
...
...
@@ -148,6 +167,7 @@ CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
#
# RAM/ROM/Flash chip drivers
...
...
@@ -158,6 +178,7 @@ CONFIG_MTD_GEN_PROBE=y
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_CFI_INTELEXT=y
# CONFIG_MTD_CFI_AMDSTD is not set
# CONFIG_MTD_CFI_STAA is not set
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
...
...
@@ -166,13 +187,10 @@ CONFIG_MTD_CFI_INTELEXT=y
#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_NORA is not set
# CONFIG_MTD_ARM_INTEGRATOR is not set
CONFIG_MTD_IQ80321=y
# CONFIG_MTD_EDB7312 is not set
# CONFIG_MTD_PCI is not set
# CONFIG_MTD_UCLINUX is not set
#
# Self-contained MTD device drivers
...
...
@@ -185,9 +203,9 @@ CONFIG_MTD_IQ80321=y
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC1000 is not set
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
#
# NAND Flash Device Drivers
...
...
@@ -206,6 +224,7 @@ CONFIG_MTD_IQ80321=y
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_RAM=y
...
...
@@ -229,7 +248,6 @@ CONFIG_NET=y
# CONFIG_NETLINK_DEV is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
# CONFIG_FILTER is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
...
...
@@ -241,24 +259,47 @@ CONFIG_IP_PNP_BOOTP=y
# CONFIG_IP_PNP_RARP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
# CONFIG_INET_ECN is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_
XFRM_USER
is not set
# CONFIG_
INET_IPCOMP
is not set
#
# IP: Netfilter Configuration
#
# CONFIG_IP_NF_CONNTRACK is not set
# CONFIG_IP_NF_QUEUE is not set
# CONFIG_IP_NF_IPTABLES is not set
# CONFIG_IP_NF_ARPTABLES is not set
# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
# CONFIG_IP_NF_COMPAT_IPFWADM is not set
#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
# CONFIG_XFRM_USER is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
CONFIG_IPV6_SCTP__=y
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_LLC is not set
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
...
...
@@ -279,12 +320,14 @@ CONFIG_NETDEVICES=y
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_ETHERTAP is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
# CONFIG_MII is not set
# CONFIG_SMC91X is not set
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
...
...
@@ -298,6 +341,7 @@ CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_DGRS is not set
CONFIG_EEPRO100=y
# CONFIG_EEPRO100_PIO is not set
...
...
@@ -305,6 +349,7 @@ CONFIG_EEPRO100=y
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
...
...
@@ -317,13 +362,21 @@ CONFIG_EEPRO100=y
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
CONFIG_E1000=y
CONFIG_E1000_NAPI=y
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
#
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
...
...
@@ -335,6 +388,8 @@ CONFIG_EEPRO100=y
#
# Token Ring devices (depends on LLC=y)
#
# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set
#
# Wan interfaces
...
...
@@ -371,6 +426,7 @@ CONFIG_BLK_DEV_IDEDISK=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
#
# IDE chipset support/bugfixes
...
...
@@ -379,11 +435,13 @@ CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_BLK_DEV_GENERIC is not set
# CONFIG_IDEPCI_SHARE_IRQ is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDE_TCQ is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_PCI_WIP is not set
CONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
...
...
@@ -391,11 +449,13 @@ CONFIG_BLK_DEV_ADMA=y
CONFIG_BLK_DEV_CMD64X=y
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
...
...
@@ -408,10 +468,15 @@ CONFIG_IDEDMA_AUTO=y
# CONFIG_IDEDMA_IVB is not set
#
# SCSI support
# SCSI
device
support
#
# CONFIG_SCSI is not set
#
# IEEE 1394 (FireWire) support (EXPERIMENTAL)
#
# CONFIG_IEEE1394 is not set
#
# I2O device support
#
...
...
@@ -450,11 +515,16 @@ CONFIG_SOUND_GAMEPORT=y
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# CONFIG_SERIAL_8250_EXTENDED is not set
#
# Non-8250 serial port support
#
# CONFIG_SERIAL_DZ is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
...
...
@@ -470,6 +540,7 @@ CONFIG_UNIX98_PTY_COUNT=256
#
# I2C Hardware Sensors Chip support
#
# CONFIG_I2C_SENSOR is not set
#
# L3 serial bus support
...
...
@@ -522,6 +593,9 @@ CONFIG_VIDEO_DEV=y
#
# CONFIG_VIDEO_PMS is not set
# CONFIG_VIDEO_CPIA is not set
# CONFIG_VIDEO_STRADIS is not set
# CONFIG_VIDEO_HEXIUM_ORION is not set
# CONFIG_VIDEO_HEXIUM_GEMINI is not set
#
# Radio Adapters
...
...
@@ -534,6 +608,7 @@ CONFIG_VIDEO_DEV=y
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
# CONFIG_VIDEO_BTCX is not set
#
# File systems
...
...
@@ -567,16 +642,25 @@ CONFIG_EXT2_FS=y
# Pseudo filesystems
#
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
CONFIG_DEVPTS_FS=y
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
CONFIG_RAMFS=y
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_JFFS_FS is not set
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
# CONFIG_JFFS2_FS_NAND is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
...
...
@@ -589,15 +673,19 @@ CONFIG_JFFS2_FS_DEBUG=0
#
CONFIG_NFS_FS=y
# CONFIG_NFS_V3 is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFSD is not set
CONFIG_ROOT_NFS=y
CONFIG_LOCKD=y
# CONFIG_EXPORTFS is not set
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_GSS is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
CONFIG_SUNRPC=y
# CONFIG_INTERMEZZO_FS is not set
# CONFIG_AFS_FS is not set
#
# Partition Types
...
...
@@ -614,6 +702,7 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_NEC98_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
...
...
@@ -624,13 +713,6 @@ CONFIG_MSDOS_PARTITION=y
#
# CONFIG_FB is not set
#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
#
# Sound
#
...
...
@@ -654,6 +736,7 @@ CONFIG_DUMMY_CONSOLE=y
# USB support
#
# CONFIG_USB is not set
# CONFIG_USB_GADGET is not set
#
# Bluetooth support
...
...
@@ -664,7 +747,7 @@ CONFIG_DUMMY_CONSOLE=y
# Kernel hacking
#
CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_USER=y
# CONFIG_DEBUG_USER is not set
# CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SLAB is not set
...
...
@@ -673,7 +756,6 @@ CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_WAITQ is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_ERRORS=y
# CONFIG_KALLSYMS is not set
CONFIG_DEBUG_LL=y
#
...
...
arch/arm/kernel/apm.c
View file @
9b1ea0b2
...
...
@@ -26,6 +26,7 @@
#include <linux/init.h>
#include <linux/completion.h>
#include <asm/apm.h>
/* apm_power_info */
#include <asm/system.h>
/*
...
...
@@ -93,18 +94,7 @@ static DECLARE_COMPLETION(kapmd_exit);
static
const
char
driver_version
[]
=
"1.13"
;
/* no spaces */
/*
* This structure gets filled in by the machine specific 'get_power_status'
* implementation. Any fields which are not set default to a safe value.
*/
struct
apm_power_info
{
unsigned
char
ac_line_status
;
unsigned
char
battery_status
;
unsigned
char
battery_flag
;
unsigned
char
battery_life
;
int
time
;
int
units
;
};
/*
* Compatibility cruft until the IPAQ people move over to the new
...
...
arch/arm/kernel/bios32.c
View file @
9b1ea0b2
...
...
@@ -263,7 +263,7 @@ struct pci_fixup pcibios_fixups[] = {
void
__devinit
pcibios_update_irq
(
struct
pci_dev
*
dev
,
int
irq
)
{
if
(
debug_pci
)
printk
(
"PCI: Assigning IRQ %02d to %s
\n
"
,
irq
,
dev
->
dev
.
name
);
printk
(
"PCI: Assigning IRQ %02d to %s
\n
"
,
irq
,
pci_name
(
dev
)
);
pci_write_config_byte
(
dev
,
PCI_INTERRUPT_LINE
,
irq
);
}
...
...
@@ -362,6 +362,19 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus)
isa_bridge
=
dev
;
break
;
#endif
case
PCI_CLASS_BRIDGE_PCI
:
pci_read_config_word
(
dev
,
PCI_BRIDGE_CONTROL
,
&
status
);
status
|=
PCI_BRIDGE_CTL_PARITY
|
PCI_BRIDGE_CTL_MASTER_ABORT
;
status
&=
~
(
PCI_BRIDGE_CTL_BUS_RESET
|
PCI_BRIDGE_CTL_FAST_BACK
);
pci_write_config_word
(
dev
,
PCI_BRIDGE_CONTROL
,
status
);
break
;
case
PCI_CLASS_BRIDGE_CARDBUS
:
pci_read_config_word
(
dev
,
PCI_CB_BRIDGE_CONTROL
,
&
status
);
status
|=
PCI_CB_BRIDGE_CTL_PARITY
|
PCI_CB_BRIDGE_CTL_MASTER_ABORT
;
pci_write_config_word
(
dev
,
PCI_CB_BRIDGE_CONTROL
,
status
);
break
;
}
}
/*
...
...
arch/arm/kernel/ecard.c
View file @
9b1ea0b2
...
...
@@ -896,7 +896,7 @@ static DEVICE_ATTR(resource, S_IRUGO, ecard_show_resources, NULL);
static
ssize_t
ecard_show_vendor
(
struct
device
*
dev
,
char
*
buf
)
{
struct
expansion_card
*
ec
=
ECARD_DEV
(
dev
);
return
sprintf
(
buf
,
"%u
\n
"
,
ec
->
manufacturer
);
return
sprintf
(
buf
,
"%u
\n
"
,
ec
->
cid
.
manufacturer
);
}
static
DEVICE_ATTR
(
vendor
,
S_IRUGO
,
ecard_show_vendor
,
NULL
);
...
...
@@ -904,7 +904,7 @@ static DEVICE_ATTR(vendor, S_IRUGO, ecard_show_vendor, NULL);
static
ssize_t
ecard_show_device
(
struct
device
*
dev
,
char
*
buf
)
{
struct
expansion_card
*
ec
=
ECARD_DEV
(
dev
);
return
sprintf
(
buf
,
"%u
\n
"
,
ec
->
product
);
return
sprintf
(
buf
,
"%u
\n
"
,
ec
->
cid
.
product
);
}
static
DEVICE_ATTR
(
device
,
S_IRUGO
,
ecard_show_device
,
NULL
);
...
...
arch/arm/kernel/entry-header.S
View file @
9b1ea0b2
...
...
@@ -63,13 +63,7 @@
#define S_OFF 8
.
macro
set_cpsr_c
,
reg
,
mode
#if 1
/
*
broken
binutils
*/
mov
\
reg
,
\
mode
msr
cpsr_c
,
\
reg
#else
msr
cpsr_c
,
\
mode
#endif
.
endm
.
macro
disable_irq
,
temp
...
...
arch/arm/kernel/pm.c
View file @
9b1ea0b2
...
...
@@ -36,23 +36,7 @@ int suspend(void)
if
(
ret
!=
0
)
goto
out
;
/*
* Tell LDM devices we're going to suspend.
*/
ret
=
device_suspend
(
4
,
SUSPEND_NOTIFY
);
if
(
ret
!=
0
)
goto
resume_legacy
;
/*
* Disable, devices, and save state.
*/
device_suspend
(
4
,
SUSPEND_DISABLE
);
device_suspend
(
4
,
SUSPEND_SAVE_STATE
);
/*
* Tell devices that they're going to be powered off.
*/
device_suspend
(
4
,
SUSPEND_POWER_DOWN
);
device_suspend
(
3
);
local_irq_disable
();
leds_event
(
led_stop
);
...
...
@@ -62,21 +46,8 @@ int suspend(void)
leds_event
(
led_start
);
local_irq_enable
();
/*
* Tell devices that they now have power.
*/
device_resume
(
RESUME_POWER_ON
);
/*
* Resume LDM devices.
*/
device_resume
(
RESUME_RESTORE_STATE
);
device_resume
(
RESUME_ENABLE
);
device_resume
();
resume_legacy:
/*
* Resume "legacy" devices.
*/
pm_send_all
(
PM_RESUME
,
(
void
*
)
0
);
out:
...
...
arch/arm/kernel/vmlinux.lds.S
View file @
9b1ea0b2
#include <linux/config.h>
/*
ld
script
to
make
ARM
Linux
kernel
*
taken
from
the
i386
version
by
Russell
King
*
Written
by
Martin
Mares
<
mj
@
atrey
.
karlin
.
mff
.
cuni
.
cz
>
*/
#i
fdef CONFIG_CPU_26
#i
nclude <asm-generic/vmlinux.lds.h>
#ifdef CONFIG_ROM_KERNEL
OUTPUT_ARCH
(
arm
)
ENTRY
(
stext
)
#ifndef __ARMEB__
jiffies
=
jiffies_64
;
#else
jiffies
=
jiffies_64
+
4
;
#endif
SECTIONS
{
.
=
TEXTADDR
;
.
init
:
{
/*
Init
code
and
data
*/
_stext
=
.
;
__init_begin
=
.
;
_sinittext
=
.
;
*(.
init.text
)
_einittext
=
.
;
__proc_info_begin
=
.
;
*(.
proc.info
)
__proc_info_end
=
.
;
__arch_info_begin
=
.
;
*(.
arch.info
)
__arch_info_end
=
.
;
__tagtable_begin
=
.
;
*(.
taglist
)
__tagtable_end
=
.
;
*(.
init.data
)
.
=
ALIGN
(
16
)
;
__setup_start
=
.
;
*(.
init.setup
)
__setup_end
=
.
;
__early_begin
=
.
;
*(
__early_param
)
__early_end
=
.
;
__start___param
=
.
;
*(
__param
)
__stop___param
=
.
;
__initcall_start
=
.
;
*(.
initcall1.init
)
*(.
initcall2.init
)
*(.
initcall3.init
)
*(.
initcall4.init
)
*(.
initcall5.init
)
*(.
initcall6.init
)
*(.
initcall7.init
)
__initcall_end
=
.
;
__con_initcall_start
=
.
;
*(.
con_initcall
.
init
)
__con_initcall_end
=
.
;
__security_initcall_start
=
.
;
*(.
security_initcall
.
init
)
__security_initcall_end
=
.
;
.
=
ALIGN
(
32
)
;
__initramfs_start
=
.
;
usr
/
built
-
in.o
(.
init.ramfs
)
__initramfs_end
=
.
;
.
=
ALIGN
(
4096
)
;
__init_end
=
.
;
}
#include "vmlinux-armo-rom.lds.in"
/
DISCARD
/
:
{
/*
Exit
code
and
data
*/
*(.
exit.text
)
*(.
exit.data
)
*(.
exitcall.exit
)
}
#else
.
text
:
{
/*
Real
text
segment
*/
_text
=
.
; /* Text and read-only data */
*(.
text
)
*(.
fixup
)
*(.
gnu.warning
)
*(.
rodata
)
*(.
rodata
.*)
*(.
glue_7
)
*(.
glue_7t
)
*(.
got
)
/*
Global
offset
table
*/
#include "vmlinux-armo.lds.in"
_etext
=
.
; /* End of text section */
}
#endif
.
=
ALIGN
(
16
)
;
__ex_table
:
{
/*
Exception
table
*/
__start___ex_table
=
.
;
*(
__ex_table
)
__stop___ex_table
=
.
;
}
#endif
RODATA
#ifdef CONFIG_CPU_32
.
=
ALIGN
(
8192
)
;
#include "vmlinux-armv.lds.in"
.
data
:
{
/
*
*
first
,
the
init
task
union
,
aligned
*
to
an
8192
byte
boundary
.
*/
*(.
init.task
)
#endif
/
*
*
then
the
cacheline
aligned
data
*/
.
=
ALIGN
(
32
)
;
*(.
data.
cacheline_aligned
)
/
*
*
and
the
usual
data
section
*/
*(.
data
)
CONSTRUCTORS
_edata
=
.
;
}
.
bss
:
{
__bss_start
=
.
; /* BSS */
*(.
bss
)
*(
COMMON
)
_end
=
.
;
}
/
*
Stabs
debugging
sections
.
*/
.
stab
0
:
{
*(
.
stab
)
}
.
stabstr
0
:
{
*(
.
stabstr
)
}
.
stab.excl
0
:
{
*(
.
stab
.
excl
)
}
.
stab.exclstr
0
:
{
*(
.
stab
.
exclstr
)
}
.
stab.index
0
:
{
*(
.
stab
.
index
)
}
.
stab.indexstr
0
:
{
*(
.
stab
.
indexstr
)
}
.
comment
0
:
{
*(
.
comment
)
}
}
arch/arm/mach-footbridge/netwinder-pci.c
View file @
9b1ea0b2
...
...
@@ -36,8 +36,8 @@ static int __init netwinder_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
return
IRQ_NETWINDER_ETHER10
;
default:
printk
(
KERN_ERR
"PCI: unknown device in slot %s
: %s
\n
"
,
pci_name
(
dev
)
,
dev
->
dev
.
name
);
printk
(
KERN_ERR
"PCI: unknown device in slot %s
\n
"
,
pci_name
(
dev
));
return
0
;
}
}
...
...
arch/arm/mach-iop3xx/iop321-time.c
View file @
9b1ea0b2
...
...
@@ -51,7 +51,8 @@ static unsigned long iop321_gettimeoffset(void)
return
usec
;
}
static
void
iop321_timer_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
iop321_timer_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
u32
tisr
;
...
...
@@ -62,6 +63,8 @@ static void iop321_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
asm
volatile
(
"mcr p6, 0, %0, c6, c1, 0"
:
:
"r"
(
tisr
));
do_timer
(
regs
);
return
IRQ_HANDLED
;
}
extern
unsigned
long
(
*
gettimeoffset
)(
void
);
...
...
arch/arm/mach-iop3xx/iq80310-time.c
View file @
9b1ea0b2
...
...
@@ -88,7 +88,8 @@ static unsigned long iq80310_gettimeoffset (void)
}
static
void
iq80310_timer_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
iq80310_timer_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
volatile
u_char
*
timer_en
=
(
volatile
u_char
*
)
IQ80310_TIMER_EN
;
...
...
@@ -96,21 +97,9 @@ static void iq80310_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
*
timer_en
&=
~
2
;
*
timer_en
|=
2
;
/*
* AHEM..HACK
*
* Since the timer interrupt is cascaded through the CPLD and
* the 80312 and the demux code calls do_IRQ, the irq count is
* going to be at least 2 when we get here and this will cause the
* kernel to increment the system tick counter even if we're
* idle. This causes it to look like there's always 100% system
* time, which is not the case. To get around it, we just decrement
* the IRQ count before calling do_timer. We increment it again
* b/c otherwise it will go negative and than bad things happen.
*
* -DS
*/
do_timer
(
regs
);
return
IRQ_HANDLED
;
}
extern
unsigned
long
(
*
gettimeoffset
)(
void
);
...
...
@@ -126,7 +115,9 @@ void __init time_init(void)
volatile
u_char
*
timer_en
=
(
volatile
u_char
*
)
IQ80310_TIMER_EN
;
gettimeoffset
=
iq80310_gettimeoffset
;
setup_irq
(
IRQ_IQ80310_TIMER
,
&
timer_irq
);
*
timer_en
=
0
;
iq80310_write_timer
(
LATCH
);
*
timer_en
|=
2
;
...
...
arch/arm/mach-sa1100/leds-simpad.c
View file @
9b1ea0b2
...
...
@@ -9,6 +9,7 @@
#include <asm/hardware.h>
#include <asm/leds.h>
#include <asm/system.h>
#include <asm/arch/simpad.h>
#include "leds.h"
...
...
arch/arm/mach-sa1100/leds.c
View file @
9b1ea0b2
...
...
@@ -41,6 +41,8 @@ sa1100_leds_init(void)
leds_event
=
adsbitsy_leds_event
;
if
(
machine_is_pt_system3
())
leds_event
=
system3_leds_event
;
if
(
machine_is_simpad
())
leds_event
=
simpad_leds_event
;
/* what about machine registry? including led, apm... -zecke */
leds_event
(
led_start
);
return
0
;
...
...
arch/arm/mach-sa1100/leds.h
View file @
9b1ea0b2
...
...
@@ -11,3 +11,4 @@ extern void pfs168_leds_event(led_event_t evt);
extern
void
graphicsmaster_leds_event
(
led_event_t
evt
);
extern
void
adsbitsy_leds_event
(
led_event_t
evt
);
extern
void
system3_leds_event
(
led_event_t
evt
);
extern
void
simpad_leds_event
(
led_event_t
evt
);
arch/arm/vmlinux-armo.lds.in
deleted
100644 → 0
View file @
038921ab
/* ld script to make ARM Linux kernel
* taken from the i386 version by Russell King
* Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
*/
#include <asm-generic/vmlinux.lds.h>
OUTPUT_ARCH(arm)
ENTRY(stext)
jiffies = jiffies_64;
SECTIONS
{
. = TEXTADDR;
.init : { /* Init code and data */
_stext = .;
__init_begin = .;
_sinittext = .;
*(.init.text)
_einittext = .;
__proc_info_begin = .;
*(.proc.info)
__proc_info_end = .;
__arch_info_begin = .;
*(.arch.info)
__arch_info_end = .;
__tagtable_begin = .;
*(.taglist)
__tagtable_end = .;
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
__con_initcall_start = .;
*(.con_initcall.init)
__con_initcall_end = .;
SECURITY_INIT
. = ALIGN(32768);
__init_end = .;
}
.init.task : {
*(.init.task)
}
/DISCARD/ : { /* Exit code and data */
*(.exit.text)
*(.exit.data)
*(.exitcall.exit)
}
.text : { /* Real text segment */
_text = .; /* Text and read-only data */
*(.text)
*(.fixup)
*(.gnu.warning)
*(.rodata)
*(.rodata.*)
*(.glue_7)
*(.glue_7t)
*(.got) /* Global offset table */
_etext = .; /* End of text section */
}
. = ALIGN(16);
__ex_table : { /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
}
RODATA
.data : {
/*
* The cacheline aligned data
*/
. = ALIGN(32);
*(.data.cacheline_aligned)
/*
* and the usual data section
*/
*(.data)
CONSTRUCTORS
_edata = .;
}
.bss : {
__bss_start = .; /* BSS */
*(.bss)
*(COMMON)
_end = . ;
}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
}
arch/arm/vmlinux-armv.lds.in
deleted
100644 → 0
View file @
038921ab
/* ld script to make ARM Linux kernel
* taken from the i386 version by Russell King
* Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>
*/
#include <asm-generic/vmlinux.lds.h>
OUTPUT_ARCH(arm)
ENTRY(stext)
#ifndef __ARMEB__
jiffies = jiffies_64;
#else
jiffies = jiffies_64 + 4;
#endif
SECTIONS
{
. = TEXTADDR;
.init : { /* Init code and data */
_stext = .;
__init_begin = .;
_sinittext = .;
*(.init.text)
_einittext = .;
__proc_info_begin = .;
*(.proc.info)
__proc_info_end = .;
__arch_info_begin = .;
*(.arch.info)
__arch_info_end = .;
__tagtable_begin = .;
*(.taglist)
__tagtable_end = .;
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__early_begin = .;
*(__early_param)
__early_end = .;
__start___param = .;
*(__param)
__stop___param = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
__con_initcall_start = .;
*(.con_initcall.init)
__con_initcall_end = .;
__security_initcall_start = .;
*(.security_initcall.init)
__security_initcall_end = .;
. = ALIGN(32);
__initramfs_start = .;
usr/built-in.o(.init.ramfs)
__initramfs_end = .;
. = ALIGN(4096);
__init_end = .;
}
/DISCARD/ : { /* Exit code and data */
*(.exit.text)
*(.exit.data)
*(.exitcall.exit)
}
.text : { /* Real text segment */
_text = .; /* Text and read-only data */
*(.text)
*(.fixup)
*(.gnu.warning)
*(.rodata)
*(.rodata.*)
*(.glue_7)
*(.glue_7t)
*(.got) /* Global offset table */
_etext = .; /* End of text section */
}
. = ALIGN(16);
__ex_table : { /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
}
RODATA
. = ALIGN(8192);
.data : {
/*
* first, the init task union, aligned
* to an 8192 byte boundary.
*/
*(.init.task)
/*
* then the cacheline aligned data
*/
. = ALIGN(32);
*(.data.cacheline_aligned)
/*
* and the usual data section
*/
*(.data)
CONSTRUCTORS
_edata = .;
}
.bss : {
__bss_start = .; /* BSS */
*(.bss)
*(COMMON)
_end = . ;
}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
}
drivers/input/serio/sa1111ps2.c
View file @
9b1ea0b2
...
...
@@ -232,9 +232,8 @@ static int __init ps2_test(struct ps2if *ps2if)
/*
* Add one device to this driver.
*/
static
int
ps2_probe
(
struct
device
*
dev
)
static
int
ps2_probe
(
struct
sa1111_dev
*
dev
)
{
struct
sa1111_dev
*
sadev
=
SA1111_DEV
(
dev
);
struct
ps2if
*
ps2if
;
int
ret
;
...
...
@@ -249,20 +248,20 @@ static int ps2_probe(struct device *dev)
ps2if
->
io
.
write
=
ps2_write
;
ps2if
->
io
.
open
=
ps2_open
;
ps2if
->
io
.
close
=
ps2_close
;
ps2if
->
io
.
name
=
dev
->
name
;
ps2if
->
io
.
phys
=
dev
->
bus_id
;
ps2if
->
io
.
name
=
dev
->
dev
.
bus_id
;
ps2if
->
io
.
phys
=
dev
->
dev
.
bus_id
;
ps2if
->
io
.
driver
=
ps2if
;
ps2if
->
dev
=
sa
dev
;
dev
->
driver_data
=
ps2if
;
ps2if
->
dev
=
dev
;
sa1111_set_drvdata
(
dev
,
ps2if
)
;
spin_lock_init
(
&
ps2if
->
lock
);
/*
* Request the physical region for this PS2 port.
*/
if
(
!
request_mem_region
(
sa
dev
->
res
.
start
,
sadev
->
res
.
end
-
sa
dev
->
res
.
start
+
1
,
SA1111_DRIVER_NAME
(
sa
dev
)))
{
if
(
!
request_mem_region
(
dev
->
res
.
start
,
dev
->
res
.
end
-
dev
->
res
.
start
+
1
,
SA1111_DRIVER_NAME
(
dev
)))
{
ret
=
-
EBUSY
;
goto
free
;
}
...
...
@@ -270,7 +269,7 @@ static int ps2_probe(struct device *dev)
/*
* Our parent device has already mapped the region.
*/
ps2if
->
base
=
(
unsigned
long
)
sa
dev
->
mapbase
;
ps2if
->
base
=
(
unsigned
long
)
dev
->
mapbase
;
sa1111_enable_device
(
ps2if
->
dev
);
...
...
@@ -301,10 +300,10 @@ static int ps2_probe(struct device *dev)
out:
sa1111_disable_device
(
ps2if
->
dev
);
release_mem_region
(
sa
dev
->
res
.
start
,
sadev
->
res
.
end
-
sa
dev
->
res
.
start
+
1
);
release_mem_region
(
dev
->
res
.
start
,
dev
->
res
.
end
-
dev
->
res
.
start
+
1
);
free:
dev
->
driver_data
=
NULL
;
sa1111_set_drvdata
(
dev
,
NULL
)
;
kfree
(
ps2if
);
return
ret
;
}
...
...
@@ -312,31 +311,17 @@ static int ps2_probe(struct device *dev)
/*
* Remove one device from this driver.
*/
static
int
ps2_remove
(
struct
device
*
dev
)
static
int
ps2_remove
(
struct
sa1111_dev
*
dev
)
{
struct
ps2if
*
ps2if
=
dev
->
driver_data
;
struct
sa1111_dev
*
sadev
=
SA1111_DEV
(
dev
);
struct
ps2if
*
ps2if
=
sa1111_get_drvdata
(
dev
);
serio_unregister_port
(
&
ps2if
->
io
);
release_mem_region
(
sadev
->
res
.
start
,
sadev
->
res
.
end
-
sadev
->
res
.
start
+
1
);
kfree
(
ps2if
);
dev
->
driver_data
=
NULL
;
return
0
;
}
release_mem_region
(
dev
->
res
.
start
,
dev
->
res
.
end
-
dev
->
res
.
start
+
1
);
sa1111_set_drvdata
(
dev
,
NULL
);
/*
* We should probably do something here, but what?
*/
static
int
ps2_suspend
(
struct
device
*
dev
,
u32
state
,
u32
level
)
{
return
0
;
}
kfree
(
ps2if
);
static
int
ps2_resume
(
struct
device
*
dev
,
u32
level
)
{
return
0
;
}
...
...
@@ -346,23 +331,20 @@ static int ps2_resume(struct device *dev, u32 level)
static
struct
sa1111_driver
ps2_driver
=
{
.
drv
=
{
.
name
=
"sa1111-ps2"
,
.
bus
=
&
sa1111_bus_type
,
.
probe
=
ps2_probe
,
.
remove
=
ps2_remove
,
.
suspend
=
ps2_suspend
,
.
resume
=
ps2_resume
,
},
.
devid
=
SA1111_DEVID_PS2
,
.
probe
=
ps2_probe
,
.
remove
=
ps2_remove
,
};
static
int
__init
ps2_init
(
void
)
{
return
driver_register
(
&
ps2_driver
.
drv
);
return
sa1111_driver_register
(
&
ps2_driver
);
}
static
void
__exit
ps2_exit
(
void
)
{
driver_unregister
(
&
ps2_driver
.
drv
);
sa1111_driver_unregister
(
&
ps2_driver
);
}
module_init
(
ps2_init
);
...
...
drivers/pcmcia/sa1111_generic.c
View file @
9b1ea0b2
...
...
@@ -16,6 +16,7 @@
#include <asm/hardware.h>
#include <asm/hardware/sa1111.h>
#include <asm/io.h>
#include <asm/irq.h>
#include "sa1111_generic.h"
...
...
@@ -118,16 +119,15 @@ void sa1111_pcmcia_socket_suspend(struct sa1100_pcmcia_socket *skt)
sa11xx_disable_irqs
(
skt
,
irqs
,
ARRAY_SIZE
(
irqs
));
}
static
int
pcmcia_probe
(
struct
device
*
dev
)
static
int
pcmcia_probe
(
struct
sa1111_dev
*
dev
)
{
struct
sa1111_dev
*
sadev
=
SA1111_DEV
(
dev
);
char
*
base
;
if
(
!
request_mem_region
(
sa
dev
->
res
.
start
,
512
,
SA1111_DRIVER_NAME
(
sa
dev
)))
if
(
!
request_mem_region
(
dev
->
res
.
start
,
512
,
SA1111_DRIVER_NAME
(
dev
)))
return
-
EBUSY
;
base
=
sa
dev
->
mapbase
;
base
=
dev
->
mapbase
;
/*
* Initialise the suspend state.
...
...
@@ -136,61 +136,68 @@ static int pcmcia_probe(struct device *dev)
sa1111_writel
(
PCCR_S0_FLT
|
PCCR_S1_FLT
,
base
+
SA1111_PCCR
);
#ifdef CONFIG_SA1100_ADSBITSY
pcmcia_adsbitsy_init
(
dev
);
pcmcia_adsbitsy_init
(
&
dev
->
dev
);
#endif
#ifdef CONFIG_SA1100_BADGE4
pcmcia_badge4_init
(
dev
);
pcmcia_badge4_init
(
&
dev
->
dev
);
#endif
#ifdef CONFIG_SA1100_GRAPHICSMASTER
pcmcia_graphicsmaster_init
(
dev
);
pcmcia_graphicsmaster_init
(
&
dev
->
dev
);
#endif
#ifdef CONFIG_SA1100_JORNADA720
pcmcia_jornada720_init
(
dev
);
pcmcia_jornada720_init
(
&
dev
->
dev
);
#endif
#ifdef CONFIG_ASSABET_NEPONSET
pcmcia_neponset_init
(
dev
);
pcmcia_neponset_init
(
&
dev
->
dev
);
#endif
#ifdef CONFIG_SA1100_PFS168
pcmcia_pfs_init
(
dev
);
pcmcia_pfs_init
(
&
dev
->
dev
);
#endif
#ifdef CONFIG_SA1100_PT_SYSTEM3
pcmcia_system3_init
(
dev
);
pcmcia_system3_init
(
&
dev
->
dev
);
#endif
#ifdef CONFIG_SA1100_XP860
pcmcia_xp860_init
(
dev
);
pcmcia_xp860_init
(
&
dev
->
dev
);
#endif
return
0
;
}
static
int
__devexit
pcmcia_remove
(
struct
device
*
dev
)
static
int
__devexit
pcmcia_remove
(
struct
sa1111_dev
*
dev
)
{
struct
sa1111_dev
*
sadev
=
SA1111_DEV
(
dev
);
sa11xx_drv_pcmcia_remove
(
dev
);
release_mem_region
(
sadev
->
res
.
start
,
512
);
sa11xx_drv_pcmcia_remove
(
&
dev
->
dev
);
release_mem_region
(
dev
->
res
.
start
,
512
);
return
0
;
}
static
int
pcmcia_suspend
(
struct
sa1111_dev
*
dev
,
u32
state
)
{
return
pcmcia_socket_dev_suspend
(
&
dev
->
dev
,
state
,
SUSPEND_SAVE_STATE
);
}
static
int
pcmcia_resume
(
struct
sa1111_dev
*
dev
)
{
return
pcmcia_socket_dev_resume
(
&
dev
->
dev
,
RESUME_RESTORE_STATE
);
}
static
struct
sa1111_driver
pcmcia_driver
=
{
.
drv
=
{
.
name
=
"sa1111-pcmcia"
,
.
bus
=
&
sa1111_bus_type
,
.
probe
=
pcmcia_probe
,
.
remove
=
__devexit_p
(
pcmcia_remove
),
.
suspend
=
pcmcia_socket_dev_suspend
,
.
resume
=
pcmcia_socket_dev_resume
,
},
.
devid
=
SA1111_DEVID_PCMCIA
,
.
probe
=
pcmcia_probe
,
.
remove
=
__devexit_p
(
pcmcia_remove
),
.
suspend
=
pcmcia_suspend
,
.
resume
=
pcmcia_resume
,
};
static
int
__init
sa1111_drv_pcmcia_init
(
void
)
{
return
driver_register
(
&
pcmcia_driver
.
drv
);
return
sa1111_driver_register
(
&
pcmcia_driver
);
}
static
void
__exit
sa1111_drv_pcmcia_exit
(
void
)
{
driver_unregister
(
&
pcmcia_driver
.
drv
);
sa1111_driver_unregister
(
&
pcmcia_driver
);
}
module_init
(
sa1111_drv_pcmcia_init
);
...
...
drivers/usb/host/ohci-sa1111.c
View file @
9b1ea0b2
...
...
@@ -352,9 +352,8 @@ static const struct hc_driver ohci_sa1111_hc_driver = {
/*-------------------------------------------------------------------------*/
static
int
ohci_hcd_sa1111_drv_probe
(
struct
device
*
_
dev
)
static
int
ohci_hcd_sa1111_drv_probe
(
struct
sa1111_dev
*
dev
)
{
struct
sa1111_dev
*
dev
=
SA1111_DEV
(
_dev
);
struct
usb_hcd
*
hcd
=
NULL
;
int
ret
;
...
...
@@ -364,43 +363,29 @@ static int ohci_hcd_sa1111_drv_probe(struct device *_dev)
ret
=
usb_hcd_sa1111_probe
(
&
ohci_sa1111_hc_driver
,
&
hcd
,
dev
);
if
(
ret
==
0
)
dev
->
dev
.
driver_data
=
hcd
;
sa1111_set_drvdata
(
dev
,
hcd
)
;
return
ret
;
}
static
int
ohci_hcd_sa1111_drv_remove
(
struct
device
*
_
dev
)
static
int
ohci_hcd_sa1111_drv_remove
(
struct
sa1111_dev
*
dev
)
{
struct
sa1111_dev
*
dev
=
SA1111_DEV
(
_dev
);
struct
usb_hcd
*
hcd
=
dev
->
dev
.
driver_data
;
struct
usb_hcd
*
hcd
=
sa1111_get_drvdata
(
dev
);
usb_hcd_sa1111_remove
(
hcd
,
dev
);
dev
->
dev
.
driver_data
=
NULL
;
sa1111_set_drvdata
(
dev
,
NULL
)
;
return
0
;
}
static
int
ohci_hcd_sa1111_drv_suspend
(
struct
device
*
dev
,
u32
state
,
u32
level
)
{
return
0
;
}
static
int
ohci_hcd_sa1111_drv_resume
(
struct
device
*
dev
,
u32
level
)
{
return
0
;
}
static
struct
sa1111_driver
ohci_hcd_sa1111_driver
=
{
.
drv
=
{
.
name
=
"sa1111-ohci"
,
.
bus
=
&
sa1111_bus_type
,
.
probe
=
ohci_hcd_sa1111_drv_probe
,
.
remove
=
ohci_hcd_sa1111_drv_remove
,
.
suspend
=
ohci_hcd_sa1111_drv_suspend
,
.
resume
=
ohci_hcd_sa1111_drv_resume
,
},
.
devid
=
SA1111_DEVID_USB
,
.
probe
=
ohci_hcd_sa1111_drv_probe
,
.
remove
=
ohci_hcd_sa1111_drv_remove
,
};
static
int
__init
ohci_hcd_sa1111_init
(
void
)
...
...
@@ -409,12 +394,12 @@ static int __init ohci_hcd_sa1111_init (void)
dbg
(
"block sizes: ed %d td %d"
,
sizeof
(
struct
ed
),
sizeof
(
struct
td
));
return
driver_register
(
&
ohci_hcd_sa1111_driver
.
drv
);
return
sa1111_driver_register
(
&
ohci_hcd_sa1111_driver
);
}
static
void
__exit
ohci_hcd_sa1111_cleanup
(
void
)
{
driver_unregister
(
&
ohci_hcd_sa1111_driver
.
drv
);
sa1111_driver_unregister
(
&
ohci_hcd_sa1111_driver
);
}
module_init
(
ohci_hcd_sa1111_init
);
...
...
include/asm-arm/apm.h
0 → 100644
View file @
9b1ea0b2
/* -*- linux-c -*-
*
* (C) 2003 zecke@handhelds.org
*
* GPL version 2
*
* based on arch/arm/kernel/apm.c
* factor out the information needed by architectures to provide
* apm status
*
*
*/
#ifndef ARM_ASM_SA1100_APM_H
#define ARM_ASM_SA1100_APM_H
#include <linux/config.h>
#ifdef CONFIG_APM
#define APM_AC_OFFLINE 0
#define APM_AC_ONLINE 1
#define APM_AC_BACKUP 2
#define APM_AC_UNKNOWN 0xFF
#define APM_BATTERY_STATUS_HIGH 0
#define APM_BATTERY_STATUS_LOW 1
#define APM_BATTERY_STATUS_CRITICAL 2
#define APM_BATTERY_STATUS_CHARGING 3
#define APM_BATTERY_STATUS_UNKNOWN 0xFF
#define APM_BATTERY_LIFE_UNKNOWN 0xFFFF
#define APM_BATTERY_LIFE_MINUTES 0x8000
#define APM_BATTERY_LIFE_VALUE_MASK 0x7FFF
/*
* This structure gets filled in by the machine specific 'get_power_status'
* implementation. Any fields which are not set default to a safe value.
*/
struct
apm_power_info
{
unsigned
char
ac_line_status
;
unsigned
char
battery_status
;
unsigned
char
battery_flag
;
unsigned
char
battery_life
;
int
time
;
int
units
;
};
/*
* This allows machines to provide their own "apm get power status" function.
*/
extern
void
(
*
apm_get_power_status
)(
struct
apm_power_info
*
);
#endif
#endif
include/asm-arm/arch-ebsa285/time.h
View file @
9b1ea0b2
...
...
@@ -181,12 +181,13 @@ set_isa_cmos_time(void)
}
static
unsigned
long
timer1_latch
;
static
unsigned
long
timer1_gettimeoffset
(
void
)
{
unsigned
long
value
=
LATCH
-
*
CSR_TIMER1_VALUE
;
unsigned
long
value
=
timer1_latch
-
*
CSR_TIMER1_VALUE
;
return
((
tick_nsec
/
1000
)
*
value
)
/
LATCH
;
return
((
tick_nsec
/
1000
)
*
value
)
/
timer1_latch
;
}
static
irqreturn_t
...
...
@@ -260,8 +261,10 @@ void __init time_init(void)
machine_is_personal_server
())
{
gettimeoffset
=
timer1_gettimeoffset
;
timer1_latch
=
(
mem_fclk_21285
+
8
*
HZ
)
/
(
16
*
HZ
);
*
CSR_TIMER1_CLR
=
0
;
*
CSR_TIMER1_LOAD
=
LATCH
;
*
CSR_TIMER1_LOAD
=
timer1_latch
;
*
CSR_TIMER1_CNTL
=
TIMER_CNTL_ENABLE
|
TIMER_CNTL_AUTORELOAD
|
TIMER_CNTL_DIV16
;
timer_irq
.
handler
=
timer1_interrupt
;
...
...
include/asm-arm/arch-ebsa285/timex.h
View file @
9b1ea0b2
...
...
@@ -11,8 +11,8 @@
*/
/*
*
On EBSA285 boards, the clock runs at 50MHz and is
*
divided by a 4-bit prescaler. Other boards use an
*
ISA derived timer, and this is unused
.
*
We assume a constant here; this satisfies the maths in linux/timex.h
*
and linux/time.h. CLOCK_TICK_RATE is actually system dependent, but
*
this must be a constant
.
*/
#define CLOCK_TICK_RATE (
mem_fclk_21285 /
16)
#define CLOCK_TICK_RATE (
50000000/
16)
include/asm-arm/arch-iop3xx/iop310.h
View file @
9b1ea0b2
...
...
@@ -11,6 +11,14 @@
#ifndef _IOP310_HW_H_
#define _IOP310_HW_H_
/*
* This is needed for mixed drivers that need to work on all
* IOP3xx variants but behave slightly differently on each.
*/
#ifndef __ASSEMBLY__
#define iop_is_310() ((processor_id & 0xffffe3f0) == 0x69052000)
#endif
/*
* IOP310 I/O and Mem space regions for PCI autoconfiguration
*/
...
...
include/asm-arm/arch-iop3xx/iop321.h
View file @
9b1ea0b2
...
...
@@ -15,6 +15,10 @@
#define _IOP321_HW_H_
/*
* This is needed for mixed drivers that need to work on all
* IOP3xx variants but behave slightly differently on each.
*/
#ifndef __ASSEMBLY__
#define iop_is_321() ((processor_id & 0xfffff7e0) == 0x69052420)
#endif
...
...
include/asm-arm/arch-iop3xx/memory.h
View file @
9b1ea0b2
...
...
@@ -66,4 +66,6 @@
extern
void
*
mu_mem
;
#endif
#define PFN_TO_NID(addr) (0)
#endif
include/asm-arm/arch-pxa/pxa-regs.h
View file @
9b1ea0b2
...
...
@@ -836,7 +836,7 @@ typedef void (*ExcpHndlr) (void) ;
#define GPIO1_RST 1
/* reset */
#define GPIO6_MMCCLK 6
/* MMC Clock */
#define GPIO
8
_48MHz 7
/* 48 MHz clock output */
#define GPIO
7
_48MHz 7
/* 48 MHz clock output */
#define GPIO8_MMCCS0 8
/* MMC Chip Select 0 */
#define GPIO9_MMCCS1 9
/* MMC Chip Select 1 */
#define GPIO10_RTCCLK 10
/* real time clock (1 Hz) */
...
...
@@ -939,7 +939,7 @@ typedef void (*ExcpHndlr) (void) ;
#define GPIO1_RTS_MD ( 1 | GPIO_ALT_FN_1_IN)
#define GPIO6_MMCCLK_MD ( 6 | GPIO_ALT_FN_1_OUT)
#define GPIO
8_48MHz_MD ( 8
| GPIO_ALT_FN_1_OUT)
#define GPIO
7_48MHz_MD ( 7
| GPIO_ALT_FN_1_OUT)
#define GPIO8_MMCCS0_MD ( 8 | GPIO_ALT_FN_1_OUT)
#define GPIO9_MMCCS1_MD ( 9 | GPIO_ALT_FN_1_OUT)
#define GPIO10_RTCCLK_MD (10 | GPIO_ALT_FN_1_OUT)
...
...
include/asm-arm/arch-sa1100/simpad.h
View file @
9b1ea0b2
...
...
@@ -5,17 +5,13 @@
*
* This file contains the hardware specific definitions for SIMpad
*
* 2001/05/14 Juergen Messerer <juergen.messerer@
siemens
.ch>
* 2001/05/14 Juergen Messerer <juergen.messerer@
freesurf
.ch>
*/
#ifndef SIMPAD_H
#define SIMPAD_H
#ifndef
__ASM_ARCH_
SIMPAD_H
#define
__ASM_ARCH_
SIMPAD_H
#ifndef __ASM_ARCH_HARDWARE_H
#error "include <asm/hardware.h> instead"
#endif
#define GPIO_UART1_RTS GPIO_GPIO14
#define GPIO_UART1_DTR GPIO_GPIO7
#define GPIO_UART1_CTS GPIO_GPIO8
...
...
@@ -28,7 +24,8 @@
#define GPIO_UART3_DCD GPIO_GPIO18
#define GPIO_UART3_DSR GPIO_GPIO17
#define GPIO_UCB1300_IRQ GPIO_GPIO (22)
/* UCB GPIO and touchscreen */
#define GPIO_POWER_BUTTON GPIO_GPIO0
#define GPIO_UCB1300_IRQ GPIO_GPIO22
/* UCB GPIO and touchscreen */
#define IRQ_UART1_CTS IRQ_GPIO15
#define IRQ_UART1_DCD GPIO_GPIO23
...
...
@@ -38,6 +35,7 @@
#define IRQ_UART3_DSR GPIO_GPIO17
#define IRQ_GPIO_UCB1300_IRQ IRQ_GPIO22
#define IRQ_GPIO_POWER_BUTTON IRQ_GPIO0
/*--- PCMCIA ---*/
...
...
@@ -46,6 +44,10 @@
#define IRQ_GPIO_CF_IRQ IRQ_GPIO1
#define IRQ_GPIO_CF_CD IRQ_GPIO24
/*--- SmartCard ---*/
#define GPIO_SMART_CARD GPIO_GPIO10
#define IRQ_GPIO_SMARD_CARD IRQ_GPIO10
// CS3 Latch is write only, a shadow is necessary
#define CS3BUSTYPE unsigned volatile long
...
...
@@ -71,7 +73,35 @@
#define RS232_ENABLE 0x0440
#define PCMCIAMASK 0x402f
#endif // SIMPAD_H
struct
simpad_battery
{
unsigned
char
ac_status
;
/* line connected yes/no */
unsigned
char
status
;
/* battery loading yes/no */
unsigned
char
percentage
;
/* percentage loaded */
unsigned
short
life
;
/* life till empty */
};
/* These should match the apm_bios.h definitions */
#define SIMPAD_AC_STATUS_AC_OFFLINE 0x00
#define SIMPAD_AC_STATUS_AC_ONLINE 0x01
#define SIMPAD_AC_STATUS_AC_BACKUP 0x02
/* What does this mean? */
#define SIMPAD_AC_STATUS_AC_UNKNOWN 0xff
/* These bitfields are rarely "or'd" together */
#define SIMPAD_BATT_STATUS_HIGH 0x01
#define SIMPAD_BATT_STATUS_LOW 0x02
#define SIMPAD_BATT_STATUS_CRITICAL 0x04
#define SIMPAD_BATT_STATUS_CHARGING 0x08
#define SIMPAD_BATT_STATUS_CHARGE_MAIN 0x10
#define SIMPAD_BATT_STATUS_DEAD 0x20
/* Battery will not charge */
#define SIMPAD_BATT_NOT_INSTALLED 0x20
/* For expansion pack batteries */
#define SIMPAD_BATT_STATUS_FULL 0x40
/* Battery fully charged (and connected to AC) */
#define SIMPAD_BATT_STATUS_NOBATT 0x80
#define SIMPAD_BATT_STATUS_UNKNOWN 0xff
extern
int
simpad_get_battery
(
struct
simpad_battery
*
);
#endif // __ASM_ARCH_SIMPAD_H
...
...
include/asm-arm/checksum.h
View file @
9b1ea0b2
...
...
@@ -105,7 +105,7 @@ csum_tcpudp_nofold(unsigned long saddr, unsigned long daddr, unsigned short len,
adcs %0, %0, %5
\n
\
adc %0, %0, #0"
:
"=&r"
(
sum
)
:
"r"
(
sum
),
"r"
(
daddr
),
"r"
(
saddr
),
"r"
(
ntohs
(
len
)
<<
16
),
"Ir"
(
proto
<<
8
)
:
"r"
(
sum
),
"r"
(
daddr
),
"r"
(
saddr
),
"r"
(
ntohs
(
len
)
),
"Ir"
(
ntohs
(
proto
)
)
:
"cc"
);
return
sum
;
}
...
...
@@ -127,7 +127,7 @@ csum_tcpudp_magic(unsigned long saddr, unsigned long daddr, unsigned short len,
addcs %0, %0, #0x10000
\n
\
mvn %0, %0"
:
"=&r"
(
sum
)
:
"r"
(
sum
),
"r"
(
daddr
),
"r"
(
saddr
),
"r"
(
ntohs
(
len
)),
"Ir"
(
proto
<<
8
)
:
"r"
(
sum
),
"r"
(
daddr
),
"r"
(
saddr
),
"r"
(
ntohs
(
len
)),
"Ir"
(
ntohs
(
proto
)
)
:
"cc"
);
return
sum
>>
16
;
}
...
...
include/asm-arm/dma-mapping.h
View file @
9b1ea0b2
...
...
@@ -128,6 +128,28 @@ dma_map_single(struct device *dev, void *cpu_addr, size_t size,
return
__virt_to_bus
((
unsigned
long
)
cpu_addr
);
}
/**
* dma_map_page - map a portion of a page for streaming DMA
* @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
* @page: page that buffer resides in
* @offset: offset into page for start of buffer
* @size: size of buffer to map
* @dir: DMA transfer direction
*
* Ensure that any data held in the cache is appropriately discarded
* or written back.
*
* The device owns this memory once this call has completed. The CPU
* can regain ownership by calling dma_unmap_page() or dma_sync_single().
*/
static
inline
dma_addr_t
dma_map_page
(
struct
device
*
dev
,
struct
page
*
page
,
unsigned
long
offset
,
size_t
size
,
enum
dma_data_direction
dir
)
{
return
dma_map_single
(
dev
,
page_address
(
page
)
+
offset
,
size
,
(
int
)
dir
);
}
/**
* dma_unmap_single - unmap a single buffer previously mapped
* @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
...
...
@@ -152,21 +174,26 @@ dma_unmap_single(struct device *dev, dma_addr_t handle, size_t size,
/* nothing to do */
}
#if 0
static inline dma_addr_t
dma_map_page(struct device *dev, struct page *page, unsigned long off,
size_t size, enum dma_data_direction dir)
{
/* fixme */
}
/**
* dma_unmap_page - unmap a buffer previously mapped through dma_map_page()
* @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
* @handle: DMA address of buffer
* @size: size of buffer to map
* @dir: DMA transfer direction
*
* Unmap a single streaming mode DMA translation. The handle and size
* must match what was provided in the previous dma_map_single() call.
* All other usages are undefined.
*
* After this call, reads by the CPU to the buffer are guaranteed to see
* whatever the device wrote there.
*/
static
inline
void
dma_unmap_page
(
struct
device
*
dev
,
dma_addr_t
handle
,
size_t
size
,
enum
dma_data_direction
dir
)
{
/* fixme */
dma_unmap_single
(
dev
,
handle
,
size
,
(
int
)
dir
);
}
#endif
/**
* dma_map_sg - map a set of SG buffers for streaming mode DMA
...
...
include/asm-arm/hardware/amba.h
View file @
9b1ea0b2
...
...
@@ -28,8 +28,8 @@ struct amba_driver {
int
(
*
probe
)(
struct
amba_device
*
,
void
*
);
int
(
*
remove
)(
struct
amba_device
*
);
void
(
*
shutdown
)(
struct
amba_device
*
);
int
(
*
suspend
)(
struct
amba_device
*
,
u32
,
u32
);
int
(
*
resume
)(
struct
amba_device
*
,
u32
);
int
(
*
suspend
)(
struct
amba_device
*
,
u32
);
int
(
*
resume
)(
struct
amba_device
*
);
struct
amba_id
*
id_table
;
};
...
...
include/asm-arm/hardware/sa1111.h
View file @
9b1ea0b2
...
...
@@ -542,9 +542,16 @@ struct sa1111_dev {
#define SA1111_DEV(_d) container_of((_d), struct sa1111_dev, dev)
#define sa1111_get_drvdata(d) dev_get_drvdata(&(d)->dev)
#define sa1111_set_drvdata(d,p) dev_get_drvdata(&(d)->dev, p)
struct
sa1111_driver
{
struct
device_driver
drv
;
unsigned
int
devid
;
int
(
*
probe
)(
struct
sa1111_dev
*
);
int
(
*
remove
)(
struct
sa1111_dev
*
);
int
(
*
suspend
)(
struct
sa1111_dev
*
,
u32
);
int
(
*
resume
)(
struct
sa1111_dev
*
);
};
#define SA1111_DRV(_d) container_of((_d), struct sa1111_driver, drv)
...
...
@@ -573,4 +580,7 @@ int sa1111_get_audio_rate(struct sa1111_dev *sadev);
int
sa1111_check_dma_bug
(
dma_addr_t
addr
);
int
sa1111_driver_register
(
struct
sa1111_driver
*
);
void
sa1111_driver_unregister
(
struct
sa1111_driver
*
);
#endif
/* _ASM_ARCH_SA1111 */
include/asm-arm/pci.h
View file @
9b1ea0b2
...
...
@@ -96,6 +96,19 @@ pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg, int nents, int dir)
return
dma_unmap_sg
(
hwdev
?
&
hwdev
->
dev
:
NULL
,
sg
,
nents
,
dir
);
}
static
inline
dma_addr_t
pci_map_page
(
struct
pci_dev
*
hwdev
,
struct
page
*
page
,
unsigned
long
offset
,
size_t
size
,
int
dir
)
{
return
pci_map_single
(
hwdev
,
page_address
(
page
)
+
offset
,
size
,
dir
);
}
static
inline
void
pci_unmap_page
(
struct
pci_dev
*
hwdev
,
dma_addr_t
handle
,
size_t
size
,
int
dir
)
{
return
pci_unmap_single
(
hwdev
,
handle
,
size
,
dir
);
}
static
inline
void
pci_dma_sync_single
(
struct
pci_dev
*
hwdev
,
dma_addr_t
handle
,
size_t
size
,
int
dir
)
{
...
...
include/asm-arm/unistd.h
View file @
9b1ea0b2
...
...
@@ -303,7 +303,7 @@
"swi 0\n\t" \
"pop {r7}"
#else
#define __syscall(name) "swi\t" __sys1(__NR_##name) "
\n\t
"
#define __syscall(name) "swi\t" __sys1(__NR_##name) ""
#endif
#endif
...
...
@@ -318,24 +318,28 @@ do { \
#define _syscall0(type,name) \
type name(void) { \
register long __res __asm__("r0"); \
register long __res_r0 __asm__("r0"); \
long __res; \
__asm__ __volatile__ ( \
__syscall(name) \
:
"=r" (__res)
\
:
"=r" (__res_r0)
\
: \
: "lr"); \
__res = __res_r0; \
__syscall_return(type,__res); \
}
#define _syscall1(type,name,type1,arg1) \
type name(type1 arg1) { \
register long __r0 __asm__("r0") = (long)arg1; \
register long __res __asm__("r0"); \
register long __res_r0 __asm__("r0"); \
long __res; \
__asm__ __volatile__ ( \
__syscall(name) \
: "=r" (__res
)
\
: "=r" (__res
_r0)
\
: "r" (__r0) \
: "lr"); \
__res = __res_r0; \
__syscall_return(type,__res); \
}
...
...
@@ -343,12 +347,14 @@ type name(type1 arg1) { \
type name(type1 arg1,type2 arg2) { \
register long __r0 __asm__("r0") = (long)arg1; \
register long __r1 __asm__("r1") = (long)arg2; \
register long __res __asm__("r0"); \
register long __res_r0 __asm__("r0"); \
long __res; \
__asm__ __volatile__ ( \
__syscall(name) \
: "=r" (__res
)
\
: "=r" (__res
_r0)
\
: "r" (__r0),"r" (__r1) \
: "lr"); \
__res = __res_r0; \
__syscall_return(type,__res); \
}
...
...
@@ -358,12 +364,14 @@ type name(type1 arg1,type2 arg2,type3 arg3) { \
register long __r0 __asm__("r0") = (long)arg1; \
register long __r1 __asm__("r1") = (long)arg2; \
register long __r2 __asm__("r2") = (long)arg3; \
register long __res __asm__("r0"); \
register long __res_r0 __asm__("r0"); \
long __res; \
__asm__ __volatile__ ( \
__syscall(name) \
: "=r" (__res
)
\
: "=r" (__res
_r0)
\
: "r" (__r0),"r" (__r1),"r" (__r2) \
: "lr"); \
__res = __res_r0; \
__syscall_return(type,__res); \
}
...
...
@@ -374,12 +382,14 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \
register long __r1 __asm__("r1") = (long)arg2; \
register long __r2 __asm__("r2") = (long)arg3; \
register long __r3 __asm__("r3") = (long)arg4; \
register long __res __asm__("r0"); \
register long __res_r0 __asm__("r0"); \
long __res; \
__asm__ __volatile__ ( \
__syscall(name) \
: "=r" (__res
)
\
: "=r" (__res
_r0)
\
: "r" (__r0),"r" (__r1),"r" (__r2),"r" (__r3) \
: "lr"); \
__res = __res_r0; \
__syscall_return(type,__res); \
}
...
...
@@ -391,12 +401,14 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) { \
register long __r2 __asm__("r2") = (long)arg3; \
register long __r3 __asm__("r3") = (long)arg4; \
register long __r4 __asm__("r4") = (long)arg5; \
register long __res __asm__("r0"); \
register long __res_r0 __asm__("r0"); \
long __res; \
__asm__ __volatile__ ( \
__syscall(name) \
: "=r" (__res
)
\
: "=r" (__res
_r0)
\
: "r" (__r0),"r" (__r1),"r" (__r2),"r" (__r3),"r" (__r4) \
: "lr"); \
__res = __res_r0; \
__syscall_return(type,__res); \
}
...
...
@@ -408,12 +420,14 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6
register long __r3 __asm__("r3") = (long)arg4; \
register long __r4 __asm__("r4") = (long)arg5; \
register long __r5 __asm__("r5") = (long)arg6; \
register long __res __asm__("r0"); \
register long __res_r0 __asm__("r0"); \
long __res; \
__asm__ __volatile__ ( \
__syscall(name) \
: "=r" (__res
)
\
: "=r" (__res
_r0)
\
: "r" (__r0),"r" (__r1),"r" (__r2),"r" (__r3), "r" (__r4),"r" (__r5) \
: "lr"); \
__res = __res_r0; \
__syscall_return(type,__res); \
}
...
...
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