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
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