Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
c931488c
Commit
c931488c
authored
Oct 13, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/home/rmk/linux-2.6-arm
parents
aac372de
3a8f675c
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
116 additions
and
64 deletions
+116
-64
arch/arm/Makefile
arch/arm/Makefile
+1
-1
arch/arm/kernel/armksyms.c
arch/arm/kernel/armksyms.c
+2
-2
arch/arm/kernel/entry-common.S
arch/arm/kernel/entry-common.S
+1
-6
arch/arm/mach-s3c2410/mach-anubis.c
arch/arm/mach-s3c2410/mach-anubis.c
+1
-1
arch/arm/mach-s3c2410/mach-bast.c
arch/arm/mach-s3c2410/mach-bast.c
+2
-2
arch/arm/mach-s3c2410/mach-vr1000.c
arch/arm/mach-s3c2410/mach-vr1000.c
+1
-1
arch/arm/mach-s3c2410/s3c2410.c
arch/arm/mach-s3c2410/s3c2410.c
+0
-3
arch/arm/mach-s3c2410/s3c2440.c
arch/arm/mach-s3c2410/s3c2440.c
+2
-2
arch/arm/mach-s3c2410/time.c
arch/arm/mach-s3c2410/time.c
+1
-0
arch/arm/mm/alignment.c
arch/arm/mm/alignment.c
+22
-22
arch/arm/nwfpe/fpa11.c
arch/arm/nwfpe/fpa11.c
+0
-5
arch/arm/nwfpe/fpa11.h
arch/arm/nwfpe/fpa11.h
+20
-0
arch/arm/nwfpe/fpa11_cprt.c
arch/arm/nwfpe/fpa11_cprt.c
+1
-2
arch/arm/nwfpe/fpopcode.h
arch/arm/nwfpe/fpopcode.h
+6
-0
arch/arm/nwfpe/softfloat.h
arch/arm/nwfpe/softfloat.h
+3
-0
drivers/serial/imx.c
drivers/serial/imx.c
+33
-6
drivers/serial/pxa.c
drivers/serial/pxa.c
+1
-1
drivers/serial/s3c2410.c
drivers/serial/s3c2410.c
+8
-7
include/asm-arm/arch-pxa/pxa-regs.h
include/asm-arm/arch-pxa/pxa-regs.h
+4
-3
include/asm-arm/arch-s3c2410/hardware.h
include/asm-arm/arch-s3c2410/hardware.h
+7
-0
No files found.
arch/arm/Makefile
View file @
c931488c
...
@@ -53,7 +53,7 @@ tune-$(CONFIG_CPU_ARM926T) :=-mtune=arm9tdmi
...
@@ -53,7 +53,7 @@ tune-$(CONFIG_CPU_ARM926T) :=-mtune=arm9tdmi
tune-$(CONFIG_CPU_SA110)
:=
-mtune
=
strongarm110
tune-$(CONFIG_CPU_SA110)
:=
-mtune
=
strongarm110
tune-$(CONFIG_CPU_SA1100)
:=
-mtune
=
strongarm1100
tune-$(CONFIG_CPU_SA1100)
:=
-mtune
=
strongarm1100
tune-$(CONFIG_CPU_XSCALE)
:=
$(
call
cc-option,-mtune
=
xscale,-mtune
=
strongarm110
)
-Wa
,-mcpu
=
xscale
tune-$(CONFIG_CPU_XSCALE)
:=
$(
call
cc-option,-mtune
=
xscale,-mtune
=
strongarm110
)
-Wa
,-mcpu
=
xscale
tune-$(CONFIG_CPU_V6)
:=
-mtune
=
strongarm
tune-$(CONFIG_CPU_V6)
:=
$(
call
cc-option,-mtune
=
arm1136j-s,-mtune
=
strongarm
)
# Need -Uarm for gcc < 3.x
# Need -Uarm for gcc < 3.x
CFLAGS_ABI
:=
$(
call
cc-option,-mapcs-32,-mabi
=
apcs-gnu
)
$(
call
cc-option,-mno-thumb-interwork,
)
CFLAGS_ABI
:=
$(
call
cc-option,-mapcs-32,-mabi
=
apcs-gnu
)
$(
call
cc-option,-mno-thumb-interwork,
)
...
...
arch/arm/kernel/armksyms.c
View file @
c931488c
...
@@ -45,8 +45,8 @@ extern void fp_enter(void);
...
@@ -45,8 +45,8 @@ extern void fp_enter(void);
#define EXPORT_SYMBOL_ALIAS(sym,orig) \
#define EXPORT_SYMBOL_ALIAS(sym,orig) \
EXPORT_CRC_ALIAS(sym) \
EXPORT_CRC_ALIAS(sym) \
const struct kernel_symbol __ksymtab_##sym \
static
const struct kernel_symbol __ksymtab_##sym \
__attribute__((section("__ksymtab"))) = \
__attribute_
used__ __attribute_
_((section("__ksymtab"))) = \
{ (unsigned long)&orig, #sym };
{ (unsigned long)&orig, #sym };
/*
/*
...
...
arch/arm/kernel/entry-common.S
View file @
c931488c
...
@@ -106,15 +106,10 @@ ENTRY(ret_from_fork)
...
@@ -106,15 +106,10 @@ ENTRY(ret_from_fork)
.
endm
.
endm
.
Larm700bug
:
.
Larm700bug
:
ldr
r0
,
[
sp
,
#
S_PSR
]
@
Get
calling
cpsr
sub
lr
,
lr
,
#
4
str
lr
,
[
r8
]
msr
spsr_cxsf
,
r0
ldmia
sp
,
{
r0
-
lr
}^
@
Get
calling
r0
-
lr
ldmia
sp
,
{
r0
-
lr
}^
@
Get
calling
r0
-
lr
mov
r0
,
r0
mov
r0
,
r0
ldr
lr
,
[
sp
,
#
S_PC
]
@
Get
PC
add
sp
,
sp
,
#
S_FRAME_SIZE
add
sp
,
sp
,
#
S_FRAME_SIZE
movs
pc
,
lr
subs
pc
,
lr
,
#
4
#else
#else
.
macro
arm710_bug_check
,
instr
,
temp
.
macro
arm710_bug_check
,
instr
,
temp
.
endm
.
endm
...
...
arch/arm/mach-s3c2410/mach-anubis.c
View file @
c931488c
...
@@ -125,7 +125,7 @@ static int external_map[] = { 2 };
...
@@ -125,7 +125,7 @@ static int external_map[] = { 2 };
static
int
chip0_map
[]
=
{
0
};
static
int
chip0_map
[]
=
{
0
};
static
int
chip1_map
[]
=
{
1
};
static
int
chip1_map
[]
=
{
1
};
struct
mtd_partition
anubis_default_nand_part
[]
=
{
st
atic
st
ruct
mtd_partition
anubis_default_nand_part
[]
=
{
[
0
]
=
{
[
0
]
=
{
.
name
=
"Boot Agent"
,
.
name
=
"Boot Agent"
,
.
size
=
SZ_16K
,
.
size
=
SZ_16K
,
...
...
arch/arm/mach-s3c2410/mach-bast.c
View file @
c931488c
...
@@ -230,7 +230,7 @@ static int chip0_map[] = { 1 };
...
@@ -230,7 +230,7 @@ static int chip0_map[] = { 1 };
static
int
chip1_map
[]
=
{
2
};
static
int
chip1_map
[]
=
{
2
};
static
int
chip2_map
[]
=
{
3
};
static
int
chip2_map
[]
=
{
3
};
struct
mtd_partition
bast_default_nand_part
[]
=
{
st
atic
st
ruct
mtd_partition
bast_default_nand_part
[]
=
{
[
0
]
=
{
[
0
]
=
{
.
name
=
"Boot Agent"
,
.
name
=
"Boot Agent"
,
.
size
=
SZ_16K
,
.
size
=
SZ_16K
,
...
@@ -340,7 +340,7 @@ static struct resource bast_dm9k_resource[] = {
...
@@ -340,7 +340,7 @@ static struct resource bast_dm9k_resource[] = {
* better IO routines can be written and tested
* better IO routines can be written and tested
*/
*/
struct
dm9000_plat_data
bast_dm9k_platdata
=
{
st
atic
st
ruct
dm9000_plat_data
bast_dm9k_platdata
=
{
.
flags
=
DM9000_PLATF_16BITONLY
.
flags
=
DM9000_PLATF_16BITONLY
};
};
...
...
arch/arm/mach-s3c2410/mach-vr1000.c
View file @
c931488c
...
@@ -288,7 +288,7 @@ static struct resource vr1000_dm9k1_resource[] = {
...
@@ -288,7 +288,7 @@ static struct resource vr1000_dm9k1_resource[] = {
* better IO routines can be written and tested
* better IO routines can be written and tested
*/
*/
struct
dm9000_plat_data
vr1000_dm9k_platdata
=
{
st
atic
st
ruct
dm9000_plat_data
vr1000_dm9k_platdata
=
{
.
flags
=
DM9000_PLATF_16BITONLY
,
.
flags
=
DM9000_PLATF_16BITONLY
,
};
};
...
...
arch/arm/mach-s3c2410/s3c2410.c
View file @
c931488c
...
@@ -125,9 +125,6 @@ static struct platform_device *uart_devices[] __initdata = {
...
@@ -125,9 +125,6 @@ static struct platform_device *uart_devices[] __initdata = {
&
s3c_uart2
&
s3c_uart2
};
};
/* store our uart devices for the serial driver console */
struct
platform_device
*
s3c2410_uart_devices
[
3
];
static
int
s3c2410_uart_count
=
0
;
static
int
s3c2410_uart_count
=
0
;
/* uart registration process */
/* uart registration process */
...
...
arch/arm/mach-s3c2410/s3c2440.c
View file @
c931488c
...
@@ -151,7 +151,7 @@ void __init s3c2440_init_uarts(struct s3c2410_uartcfg *cfg, int no)
...
@@ -151,7 +151,7 @@ void __init s3c2440_init_uarts(struct s3c2410_uartcfg *cfg, int no)
#ifdef CONFIG_PM
#ifdef CONFIG_PM
struct
sleep_save
s3c2440_sleep
[]
=
{
st
atic
st
ruct
sleep_save
s3c2440_sleep
[]
=
{
SAVE_ITEM
(
S3C2440_DSC0
),
SAVE_ITEM
(
S3C2440_DSC0
),
SAVE_ITEM
(
S3C2440_DSC1
),
SAVE_ITEM
(
S3C2440_DSC1
),
SAVE_ITEM
(
S3C2440_GPJDAT
),
SAVE_ITEM
(
S3C2440_GPJDAT
),
...
@@ -260,7 +260,7 @@ void __init s3c2440_init_clocks(int xtal)
...
@@ -260,7 +260,7 @@ void __init s3c2440_init_clocks(int xtal)
* as a driver which may support both 2410 and 2440 may try and use it.
* as a driver which may support both 2410 and 2440 may try and use it.
*/
*/
int
__init
s3c2440_core_init
(
void
)
static
int
__init
s3c2440_core_init
(
void
)
{
{
return
sysdev_class_register
(
&
s3c2440_sysclass
);
return
sysdev_class_register
(
&
s3c2440_sysclass
);
}
}
...
...
arch/arm/mach-s3c2410/time.c
View file @
c931488c
...
@@ -38,6 +38,7 @@
...
@@ -38,6 +38,7 @@
#include <asm/hardware/clock.h>
#include <asm/hardware/clock.h>
#include "clock.h"
#include "clock.h"
#include "cpu.h"
static
unsigned
long
timer_startval
;
static
unsigned
long
timer_startval
;
static
unsigned
long
timer_usec_ticks
;
static
unsigned
long
timer_usec_ticks
;
...
...
arch/arm/mm/alignment.c
View file @
c931488c
...
@@ -111,7 +111,7 @@ proc_alignment_read(char *page, char **start, off_t off, int count, int *eof,
...
@@ -111,7 +111,7 @@ proc_alignment_read(char *page, char **start, off_t off, int count, int *eof,
}
}
static
int
proc_alignment_write
(
struct
file
*
file
,
const
char
__user
*
buffer
,
static
int
proc_alignment_write
(
struct
file
*
file
,
const
char
__user
*
buffer
,
unsigned
long
count
,
void
*
data
)
unsigned
long
count
,
void
*
data
)
{
{
char
mode
;
char
mode
;
...
@@ -119,7 +119,7 @@ static int proc_alignment_write(struct file *file, const char __user *buffer,
...
@@ -119,7 +119,7 @@ static int proc_alignment_write(struct file *file, const char __user *buffer,
if
(
get_user
(
mode
,
buffer
))
if
(
get_user
(
mode
,
buffer
))
return
-
EFAULT
;
return
-
EFAULT
;
if
(
mode
>=
'0'
&&
mode
<=
'5'
)
if
(
mode
>=
'0'
&&
mode
<=
'5'
)
ai_usermode
=
mode
-
'0'
;
ai_usermode
=
mode
-
'0'
;
}
}
return
count
;
return
count
;
}
}
...
@@ -262,7 +262,7 @@ union offset_union {
...
@@ -262,7 +262,7 @@ union offset_union {
goto fault; \
goto fault; \
} while (0)
} while (0)
#define put32_unaligned_check(val,addr)
\
#define put32_unaligned_check(val,addr) \
__put32_unaligned_check("strb", val, addr)
__put32_unaligned_check("strb", val, addr)
#define put32t_unaligned_check(val,addr) \
#define put32t_unaligned_check(val,addr) \
...
@@ -306,19 +306,19 @@ do_alignment_ldrhstrh(unsigned long addr, unsigned long instr, struct pt_regs *r
...
@@ -306,19 +306,19 @@ do_alignment_ldrhstrh(unsigned long addr, unsigned long instr, struct pt_regs *r
return
TYPE_LDST
;
return
TYPE_LDST
;
user:
user:
if
(
LDST_L_BIT
(
instr
))
{
if
(
LDST_L_BIT
(
instr
))
{
unsigned
long
val
;
unsigned
long
val
;
get16t_unaligned_check
(
val
,
addr
);
get16t_unaligned_check
(
val
,
addr
);
/* signed half-word? */
/* signed half-word? */
if
(
instr
&
0x40
)
if
(
instr
&
0x40
)
val
=
(
signed
long
)((
signed
short
)
val
);
val
=
(
signed
long
)((
signed
short
)
val
);
regs
->
uregs
[
rd
]
=
val
;
regs
->
uregs
[
rd
]
=
val
;
}
else
}
else
put16t_unaligned_check
(
regs
->
uregs
[
rd
],
addr
);
put16t_unaligned_check
(
regs
->
uregs
[
rd
],
addr
);
return
TYPE_LDST
;
return
TYPE_LDST
;
fault:
fault:
return
TYPE_FAULT
;
return
TYPE_FAULT
;
...
@@ -342,11 +342,11 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
...
@@ -342,11 +342,11 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
unsigned
long
val
;
unsigned
long
val
;
get32_unaligned_check
(
val
,
addr
);
get32_unaligned_check
(
val
,
addr
);
regs
->
uregs
[
rd
]
=
val
;
regs
->
uregs
[
rd
]
=
val
;
get32_unaligned_check
(
val
,
addr
+
4
);
get32_unaligned_check
(
val
,
addr
+
4
);
regs
->
uregs
[
rd
+
1
]
=
val
;
regs
->
uregs
[
rd
+
1
]
=
val
;
}
else
{
}
else
{
put32_unaligned_check
(
regs
->
uregs
[
rd
],
addr
);
put32_unaligned_check
(
regs
->
uregs
[
rd
],
addr
);
put32_unaligned_check
(
regs
->
uregs
[
rd
+
1
],
addr
+
4
);
put32_unaligned_check
(
regs
->
uregs
[
rd
+
1
],
addr
+
4
);
}
}
return
TYPE_LDST
;
return
TYPE_LDST
;
...
@@ -356,11 +356,11 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
...
@@ -356,11 +356,11 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
unsigned
long
val
;
unsigned
long
val
;
get32t_unaligned_check
(
val
,
addr
);
get32t_unaligned_check
(
val
,
addr
);
regs
->
uregs
[
rd
]
=
val
;
regs
->
uregs
[
rd
]
=
val
;
get32t_unaligned_check
(
val
,
addr
+
4
);
get32t_unaligned_check
(
val
,
addr
+
4
);
regs
->
uregs
[
rd
+
1
]
=
val
;
regs
->
uregs
[
rd
+
1
]
=
val
;
}
else
{
}
else
{
put32t_unaligned_check
(
regs
->
uregs
[
rd
],
addr
);
put32t_unaligned_check
(
regs
->
uregs
[
rd
],
addr
);
put32t_unaligned_check
(
regs
->
uregs
[
rd
+
1
],
addr
+
4
);
put32t_unaligned_check
(
regs
->
uregs
[
rd
+
1
],
addr
+
4
);
}
}
return
TYPE_LDST
;
return
TYPE_LDST
;
...
@@ -443,7 +443,7 @@ do_alignment_ldmstm(unsigned long addr, unsigned long instr, struct pt_regs *reg
...
@@ -443,7 +443,7 @@ do_alignment_ldmstm(unsigned long addr, unsigned long instr, struct pt_regs *reg
if
(
LDST_P_EQ_U
(
instr
))
/* U = P */
if
(
LDST_P_EQ_U
(
instr
))
/* U = P */
eaddr
+=
4
;
eaddr
+=
4
;
/*
/*
* For alignment faults on the ARM922T/ARM920T the MMU makes
* For alignment faults on the ARM922T/ARM920T the MMU makes
* the FSR (and hence addr) equal to the updated base address
* the FSR (and hence addr) equal to the updated base address
* of the multiple access rather than the restored value.
* of the multiple access rather than the restored value.
...
@@ -570,7 +570,7 @@ thumb2arm(u16 tinstr)
...
@@ -570,7 +570,7 @@ thumb2arm(u16 tinstr)
/* 6.5.1 Format 3: */
/* 6.5.1 Format 3: */
case
0x4800
>>
11
:
/* 7.1.28 LDR(3) */
case
0x4800
>>
11
:
/* 7.1.28 LDR(3) */
/* NOTE: This case is not technically possible. We're
/* NOTE: This case is not technically possible. We're
*
loading 32-bit memory data via PC relative
* loading 32-bit memory data via PC relative
* addressing mode. So we can and should eliminate
* addressing mode. So we can and should eliminate
* this case. But I'll leave it here for now.
* this case. But I'll leave it here for now.
*/
*/
...
@@ -642,7 +642,7 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
...
@@ -642,7 +642,7 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
if
(
fault
)
{
if
(
fault
)
{
type
=
TYPE_FAULT
;
type
=
TYPE_FAULT
;
goto
bad_or_fault
;
goto
bad_or_fault
;
}
}
if
(
user_mode
(
regs
))
if
(
user_mode
(
regs
))
...
...
arch/arm/nwfpe/fpa11.c
View file @
c931488c
...
@@ -31,11 +31,6 @@
...
@@ -31,11 +31,6 @@
#include <linux/string.h>
#include <linux/string.h>
#include <asm/system.h>
#include <asm/system.h>
/* forward declarations */
unsigned
int
EmulateCPDO
(
const
unsigned
int
);
unsigned
int
EmulateCPDT
(
const
unsigned
int
);
unsigned
int
EmulateCPRT
(
const
unsigned
int
);
/* Reset the FPA11 chip. Called to initialize and reset the emulator. */
/* Reset the FPA11 chip. Called to initialize and reset the emulator. */
static
void
resetFPA11
(
void
)
static
void
resetFPA11
(
void
)
{
{
...
...
arch/arm/nwfpe/fpa11.h
View file @
c931488c
...
@@ -95,4 +95,24 @@ extern int8 SetRoundingMode(const unsigned int);
...
@@ -95,4 +95,24 @@ extern int8 SetRoundingMode(const unsigned int);
extern
int8
SetRoundingPrecision
(
const
unsigned
int
);
extern
int8
SetRoundingPrecision
(
const
unsigned
int
);
extern
void
nwfpe_init_fpa
(
union
fp_state
*
fp
);
extern
void
nwfpe_init_fpa
(
union
fp_state
*
fp
);
extern
unsigned
int
EmulateAll
(
unsigned
int
opcode
);
extern
unsigned
int
EmulateCPDT
(
const
unsigned
int
opcode
);
extern
unsigned
int
EmulateCPDO
(
const
unsigned
int
opcode
);
extern
unsigned
int
EmulateCPRT
(
const
unsigned
int
opcode
);
/* fpa11_cpdt.c */
extern
unsigned
int
PerformLDF
(
const
unsigned
int
opcode
);
extern
unsigned
int
PerformSTF
(
const
unsigned
int
opcode
);
extern
unsigned
int
PerformLFM
(
const
unsigned
int
opcode
);
extern
unsigned
int
PerformSFM
(
const
unsigned
int
opcode
);
/* single_cpdo.c */
extern
unsigned
int
SingleCPDO
(
struct
roundingData
*
roundData
,
const
unsigned
int
opcode
,
FPREG
*
rFd
);
/* double_cpdo.c */
extern
unsigned
int
DoubleCPDO
(
struct
roundingData
*
roundData
,
const
unsigned
int
opcode
,
FPREG
*
rFd
);
#endif
#endif
arch/arm/nwfpe/fpa11_cprt.c
View file @
c931488c
...
@@ -26,12 +26,11 @@
...
@@ -26,12 +26,11 @@
#include "fpa11.inl"
#include "fpa11.inl"
#include "fpmodule.h"
#include "fpmodule.h"
#include "fpmodule.inl"
#include "fpmodule.inl"
#include "softfloat.h"
#ifdef CONFIG_FPE_NWFPE_XP
#ifdef CONFIG_FPE_NWFPE_XP
extern
flag
floatx80_is_nan
(
floatx80
);
extern
flag
floatx80_is_nan
(
floatx80
);
#endif
#endif
extern
flag
float64_is_nan
(
float64
);
extern
flag
float32_is_nan
(
float32
);
unsigned
int
PerformFLT
(
const
unsigned
int
opcode
);
unsigned
int
PerformFLT
(
const
unsigned
int
opcode
);
unsigned
int
PerformFIX
(
const
unsigned
int
opcode
);
unsigned
int
PerformFIX
(
const
unsigned
int
opcode
);
...
...
arch/arm/nwfpe/fpopcode.h
View file @
c931488c
...
@@ -476,4 +476,10 @@ static inline unsigned int getDestinationSize(const unsigned int opcode)
...
@@ -476,4 +476,10 @@ static inline unsigned int getDestinationSize(const unsigned int opcode)
return
(
nRc
);
return
(
nRc
);
}
}
extern
unsigned
int
checkCondition
(
const
unsigned
int
opcode
,
const
unsigned
int
ccodes
);
extern
const
float64
float64Constant
[];
extern
const
float32
float32Constant
[];
#endif
#endif
arch/arm/nwfpe/softfloat.h
View file @
c931488c
...
@@ -265,4 +265,7 @@ static inline flag float64_lt_nocheck(float64 a, float64 b)
...
@@ -265,4 +265,7 @@ static inline flag float64_lt_nocheck(float64 a, float64 b)
return
(
a
!=
b
)
&&
(
aSign
^
(
a
<
b
));
return
(
a
!=
b
)
&&
(
aSign
^
(
a
<
b
));
}
}
extern
flag
float32_is_nan
(
float32
a
);
extern
flag
float64_is_nan
(
float64
a
);
#endif
#endif
drivers/serial/imx.c
View file @
c931488c
...
@@ -73,7 +73,7 @@ struct imx_port {
...
@@ -73,7 +73,7 @@ struct imx_port {
struct
uart_port
port
;
struct
uart_port
port
;
struct
timer_list
timer
;
struct
timer_list
timer
;
unsigned
int
old_status
;
unsigned
int
old_status
;
int
txirq
,
rxirq
;
int
txirq
,
rxirq
,
rtsirq
;
};
};
/*
/*
...
@@ -181,6 +181,22 @@ static void imx_start_tx(struct uart_port *port)
...
@@ -181,6 +181,22 @@ static void imx_start_tx(struct uart_port *port)
imx_transmit_buffer
(
sport
);
imx_transmit_buffer
(
sport
);
}
}
static
irqreturn_t
imx_rtsint
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
imx_port
*
sport
=
(
struct
imx_port
*
)
dev_id
;
unsigned
int
val
=
USR1
((
u32
)
sport
->
port
.
membase
)
&
USR1_RTSS
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
sport
->
port
.
lock
,
flags
);
USR1
((
u32
)
sport
->
port
.
membase
)
=
USR1_RTSD
;
uart_handle_cts_change
(
&
sport
->
port
,
!!
val
);
wake_up_interruptible
(
&
sport
->
port
.
info
->
delta_msr_wait
);
spin_unlock_irqrestore
(
&
sport
->
port
.
lock
,
flags
);
return
IRQ_HANDLED
;
}
static
irqreturn_t
imx_txint
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
imx_txint
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
{
struct
imx_port
*
sport
=
(
struct
imx_port
*
)
dev_id
;
struct
imx_port
*
sport
=
(
struct
imx_port
*
)
dev_id
;
...
@@ -386,15 +402,21 @@ static int imx_startup(struct uart_port *port)
...
@@ -386,15 +402,21 @@ static int imx_startup(struct uart_port *port)
if
(
retval
)
goto
error_out1
;
if
(
retval
)
goto
error_out1
;
retval
=
request_irq
(
sport
->
txirq
,
imx_txint
,
0
,
retval
=
request_irq
(
sport
->
txirq
,
imx_txint
,
0
,
"imx-uart"
,
sport
);
DRIVER_NAME
,
sport
);
if
(
retval
)
goto
error_out2
;
if
(
retval
)
goto
error_out2
;
retval
=
request_irq
(
sport
->
rtsirq
,
imx_rtsint
,
0
,
DRIVER_NAME
,
sport
);
if
(
retval
)
goto
error_out3
;
set_irq_type
(
sport
->
rtsirq
,
IRQT_BOTHEDGE
);
/*
/*
* Finally, clear and enable interrupts
* Finally, clear and enable interrupts
*/
*/
USR1
((
u32
)
sport
->
port
.
membase
)
=
USR1_RTSD
;
UCR1
((
u32
)
sport
->
port
.
membase
)
|=
UCR1
((
u32
)
sport
->
port
.
membase
)
|=
(
UCR1_TXMPTYEN
|
UCR1_RRDYEN
|
UCR1_UARTEN
);
(
UCR1_TXMPTYEN
|
UCR1_RRDYEN
|
UCR1_
RTSDEN
|
UCR1_
UARTEN
);
UCR2
((
u32
)
sport
->
port
.
membase
)
|=
(
UCR2_RXEN
|
UCR2_TXEN
);
UCR2
((
u32
)
sport
->
port
.
membase
)
|=
(
UCR2_RXEN
|
UCR2_TXEN
);
/*
/*
...
@@ -406,6 +428,8 @@ static int imx_startup(struct uart_port *port)
...
@@ -406,6 +428,8 @@ static int imx_startup(struct uart_port *port)
return
0
;
return
0
;
error_out3:
free_irq
(
sport
->
txirq
,
sport
);
error_out2:
error_out2:
free_irq
(
sport
->
rxirq
,
sport
);
free_irq
(
sport
->
rxirq
,
sport
);
error_out1:
error_out1:
...
@@ -424,6 +448,7 @@ static void imx_shutdown(struct uart_port *port)
...
@@ -424,6 +448,7 @@ static void imx_shutdown(struct uart_port *port)
/*
/*
* Free the interrupts
* Free the interrupts
*/
*/
free_irq
(
sport
->
rtsirq
,
sport
);
free_irq
(
sport
->
txirq
,
sport
);
free_irq
(
sport
->
txirq
,
sport
);
free_irq
(
sport
->
rxirq
,
sport
);
free_irq
(
sport
->
rxirq
,
sport
);
...
@@ -432,7 +457,7 @@ static void imx_shutdown(struct uart_port *port)
...
@@ -432,7 +457,7 @@ static void imx_shutdown(struct uart_port *port)
*/
*/
UCR1
((
u32
)
sport
->
port
.
membase
)
&=
UCR1
((
u32
)
sport
->
port
.
membase
)
&=
~
(
UCR1_TXMPTYEN
|
UCR1_RRDYEN
|
UCR1_UARTEN
);
~
(
UCR1_TXMPTYEN
|
UCR1_RRDYEN
|
UCR1_
RTSDEN
|
UCR1_
UARTEN
);
}
}
static
void
static
void
...
@@ -522,7 +547,7 @@ imx_set_termios(struct uart_port *port, struct termios *termios,
...
@@ -522,7 +547,7 @@ imx_set_termios(struct uart_port *port, struct termios *termios,
* disable interrupts and drain transmitter
* disable interrupts and drain transmitter
*/
*/
old_ucr1
=
UCR1
((
u32
)
sport
->
port
.
membase
);
old_ucr1
=
UCR1
((
u32
)
sport
->
port
.
membase
);
UCR1
((
u32
)
sport
->
port
.
membase
)
&=
~
(
UCR1_TXMPTYEN
|
UCR1_RRDYEN
);
UCR1
((
u32
)
sport
->
port
.
membase
)
&=
~
(
UCR1_TXMPTYEN
|
UCR1_RRDYEN
|
UCR1_RTSDEN
);
while
(
!
(
USR2
((
u32
)
sport
->
port
.
membase
)
&
USR2_TXDC
))
while
(
!
(
USR2
((
u32
)
sport
->
port
.
membase
)
&
USR2_TXDC
))
barrier
();
barrier
();
...
@@ -643,6 +668,7 @@ static struct imx_port imx_ports[] = {
...
@@ -643,6 +668,7 @@ static struct imx_port imx_ports[] = {
{
{
.
txirq
=
UART1_MINT_TX
,
.
txirq
=
UART1_MINT_TX
,
.
rxirq
=
UART1_MINT_RX
,
.
rxirq
=
UART1_MINT_RX
,
.
rtsirq
=
UART1_MINT_RTS
,
.
port
=
{
.
port
=
{
.
type
=
PORT_IMX
,
.
type
=
PORT_IMX
,
.
iotype
=
SERIAL_IO_MEM
,
.
iotype
=
SERIAL_IO_MEM
,
...
@@ -658,6 +684,7 @@ static struct imx_port imx_ports[] = {
...
@@ -658,6 +684,7 @@ static struct imx_port imx_ports[] = {
},
{
},
{
.
txirq
=
UART2_MINT_TX
,
.
txirq
=
UART2_MINT_TX
,
.
rxirq
=
UART2_MINT_RX
,
.
rxirq
=
UART2_MINT_RX
,
.
rtsirq
=
UART2_MINT_RTS
,
.
port
=
{
.
port
=
{
.
type
=
PORT_IMX
,
.
type
=
PORT_IMX
,
.
iotype
=
SERIAL_IO_MEM
,
.
iotype
=
SERIAL_IO_MEM
,
...
@@ -737,7 +764,7 @@ imx_console_write(struct console *co, const char *s, unsigned int count)
...
@@ -737,7 +764,7 @@ imx_console_write(struct console *co, const char *s, unsigned int count)
UCR1
((
u32
)
sport
->
port
.
membase
)
=
UCR1
((
u32
)
sport
->
port
.
membase
)
=
(
old_ucr1
|
UCR1_UARTCLKEN
|
UCR1_UARTEN
)
(
old_ucr1
|
UCR1_UARTCLKEN
|
UCR1_UARTEN
)
&
~
(
UCR1_TXMPTYEN
|
UCR1_RRDYEN
);
&
~
(
UCR1_TXMPTYEN
|
UCR1_RRDYEN
|
UCR1_RTSDEN
);
UCR2
((
u32
)
sport
->
port
.
membase
)
=
old_ucr2
|
UCR2_TXEN
;
UCR2
((
u32
)
sport
->
port
.
membase
)
=
old_ucr2
|
UCR2_TXEN
;
/*
/*
...
...
drivers/serial/pxa.c
View file @
c931488c
...
@@ -499,7 +499,7 @@ serial_pxa_set_termios(struct uart_port *port, struct termios *termios,
...
@@ -499,7 +499,7 @@ serial_pxa_set_termios(struct uart_port *port, struct termios *termios,
/*
/*
* Update the per-port timeout.
* Update the per-port timeout.
*/
*/
uart_update_timeout
(
port
,
termios
->
c_cflag
,
quot
);
uart_update_timeout
(
port
,
termios
->
c_cflag
,
baud
);
up
->
port
.
read_status_mask
=
UART_LSR_OE
|
UART_LSR_THRE
|
UART_LSR_DR
;
up
->
port
.
read_status_mask
=
UART_LSR_OE
|
UART_LSR_THRE
|
UART_LSR_DR
;
if
(
termios
->
c_iflag
&
INPCK
)
if
(
termios
->
c_iflag
&
INPCK
)
...
...
drivers/serial/s3c2410.c
View file @
c931488c
...
@@ -1092,8 +1092,8 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
...
@@ -1092,8 +1092,8 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
static
int
probe_index
=
0
;
static
int
probe_index
=
0
;
int
s3c24xx_serial_probe
(
struct
device
*
_dev
,
static
int
s3c24xx_serial_probe
(
struct
device
*
_dev
,
struct
s3c24xx_uart_info
*
info
)
struct
s3c24xx_uart_info
*
info
)
{
{
struct
s3c24xx_uart_port
*
ourport
;
struct
s3c24xx_uart_port
*
ourport
;
struct
platform_device
*
dev
=
to_platform_device
(
_dev
);
struct
platform_device
*
dev
=
to_platform_device
(
_dev
);
...
@@ -1120,7 +1120,7 @@ int s3c24xx_serial_probe(struct device *_dev,
...
@@ -1120,7 +1120,7 @@ int s3c24xx_serial_probe(struct device *_dev,
return
ret
;
return
ret
;
}
}
int
s3c24xx_serial_remove
(
struct
device
*
_dev
)
static
int
s3c24xx_serial_remove
(
struct
device
*
_dev
)
{
{
struct
uart_port
*
port
=
s3c24xx_dev_to_port
(
_dev
);
struct
uart_port
*
port
=
s3c24xx_dev_to_port
(
_dev
);
...
@@ -1134,7 +1134,8 @@ int s3c24xx_serial_remove(struct device *_dev)
...
@@ -1134,7 +1134,8 @@ int s3c24xx_serial_remove(struct device *_dev)
#ifdef CONFIG_PM
#ifdef CONFIG_PM
int
s3c24xx_serial_suspend
(
struct
device
*
dev
,
pm_message_t
state
,
u32
level
)
static
int
s3c24xx_serial_suspend
(
struct
device
*
dev
,
pm_message_t
state
,
u32
level
)
{
{
struct
uart_port
*
port
=
s3c24xx_dev_to_port
(
dev
);
struct
uart_port
*
port
=
s3c24xx_dev_to_port
(
dev
);
...
@@ -1144,7 +1145,7 @@ int s3c24xx_serial_suspend(struct device *dev, pm_message_t state, u32 level)
...
@@ -1144,7 +1145,7 @@ int s3c24xx_serial_suspend(struct device *dev, pm_message_t state, u32 level)
return
0
;
return
0
;
}
}
int
s3c24xx_serial_resume
(
struct
device
*
dev
,
u32
level
)
static
int
s3c24xx_serial_resume
(
struct
device
*
dev
,
u32
level
)
{
{
struct
uart_port
*
port
=
s3c24xx_dev_to_port
(
dev
);
struct
uart_port
*
port
=
s3c24xx_dev_to_port
(
dev
);
struct
s3c24xx_uart_port
*
ourport
=
to_ourport
(
port
);
struct
s3c24xx_uart_port
*
ourport
=
to_ourport
(
port
);
...
@@ -1165,8 +1166,8 @@ int s3c24xx_serial_resume(struct device *dev, u32 level)
...
@@ -1165,8 +1166,8 @@ int s3c24xx_serial_resume(struct device *dev, u32 level)
#define s3c24xx_serial_resume NULL
#define s3c24xx_serial_resume NULL
#endif
#endif
int
s3c24xx_serial_init
(
struct
device_driver
*
drv
,
static
int
s3c24xx_serial_init
(
struct
device_driver
*
drv
,
struct
s3c24xx_uart_info
*
info
)
struct
s3c24xx_uart_info
*
info
)
{
{
dbg
(
"s3c24xx_serial_init(%p,%p)
\n
"
,
drv
,
info
);
dbg
(
"s3c24xx_serial_init(%p,%p)
\n
"
,
drv
,
info
);
return
driver_register
(
drv
);
return
driver_register
(
drv
);
...
...
include/asm-arm/arch-pxa/pxa-regs.h
View file @
c931488c
...
@@ -126,8 +126,8 @@
...
@@ -126,8 +126,8 @@
#define DRCMR12 __REG(0x40000130)
/* Request to Channel Map Register for AC97 audio transmit Request */
#define DRCMR12 __REG(0x40000130)
/* Request to Channel Map Register for AC97 audio transmit Request */
#define DRCMR13 __REG(0x40000134)
/* Request to Channel Map Register for SSP receive Request */
#define DRCMR13 __REG(0x40000134)
/* Request to Channel Map Register for SSP receive Request */
#define DRCMR14 __REG(0x40000138)
/* Request to Channel Map Register for SSP transmit Request */
#define DRCMR14 __REG(0x40000138)
/* Request to Channel Map Register for SSP transmit Request */
#define DRCMR15 __REG(0x4000013c)
/* Re
served
*/
#define DRCMR15 __REG(0x4000013c)
/* Re
quest to Channel Map Register for SSP2 receive Request
*/
#define DRCMR16 __REG(0x40000140)
/* Re
served
*/
#define DRCMR16 __REG(0x40000140)
/* Re
quest to Channel Map Register for SSP2 transmit Request
*/
#define DRCMR17 __REG(0x40000144)
/* Request to Channel Map Register for ICP receive Request */
#define DRCMR17 __REG(0x40000144)
/* Request to Channel Map Register for ICP receive Request */
#define DRCMR18 __REG(0x40000148)
/* Request to Channel Map Register for ICP transmit Request */
#define DRCMR18 __REG(0x40000148)
/* Request to Channel Map Register for ICP transmit Request */
#define DRCMR19 __REG(0x4000014c)
/* Request to Channel Map Register for STUART receive Request */
#define DRCMR19 __REG(0x4000014c)
/* Request to Channel Map Register for STUART receive Request */
...
@@ -151,7 +151,8 @@
...
@@ -151,7 +151,8 @@
#define DRCMR37 __REG(0x40000194)
/* Request to Channel Map Register for USB endpoint 13 Request */
#define DRCMR37 __REG(0x40000194)
/* Request to Channel Map Register for USB endpoint 13 Request */
#define DRCMR38 __REG(0x40000198)
/* Request to Channel Map Register for USB endpoint 14 Request */
#define DRCMR38 __REG(0x40000198)
/* Request to Channel Map Register for USB endpoint 14 Request */
#define DRCMR39 __REG(0x4000019C)
/* Reserved */
#define DRCMR39 __REG(0x4000019C)
/* Reserved */
#define DRCMR66 __REG(0x40001108)
/* Request to Channel Map Register for SSP3 receive Request */
#define DRCMR67 __REG(0x4000110C)
/* Request to Channel Map Register for SSP3 transmit Request */
#define DRCMR68 __REG(0x40001110)
/* Request to Channel Map Register for Camera FIFO 0 Request */
#define DRCMR68 __REG(0x40001110)
/* Request to Channel Map Register for Camera FIFO 0 Request */
#define DRCMR69 __REG(0x40001114)
/* Request to Channel Map Register for Camera FIFO 1 Request */
#define DRCMR69 __REG(0x40001114)
/* Request to Channel Map Register for Camera FIFO 1 Request */
#define DRCMR70 __REG(0x40001118)
/* Request to Channel Map Register for Camera FIFO 2 Request */
#define DRCMR70 __REG(0x40001118)
/* Request to Channel Map Register for Camera FIFO 2 Request */
...
...
include/asm-arm/arch-s3c2410/hardware.h
View file @
c931488c
...
@@ -92,6 +92,13 @@ extern unsigned int s3c2410_gpio_getpin(unsigned int pin);
...
@@ -92,6 +92,13 @@ extern unsigned int s3c2410_gpio_getpin(unsigned int pin);
extern
unsigned
int
s3c2410_modify_misccr
(
unsigned
int
clr
,
unsigned
int
chg
);
extern
unsigned
int
s3c2410_modify_misccr
(
unsigned
int
clr
,
unsigned
int
chg
);
#ifdef CONFIG_CPU_S3C2440
extern
int
s3c2440_set_dsc
(
unsigned
int
pin
,
unsigned
int
value
);
#endif
/* CONFIG_CPU_S3C2440 */
#endif
/* __ASSEMBLY__ */
#endif
/* __ASSEMBLY__ */
#include <asm/sizes.h>
#include <asm/sizes.h>
...
...
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