Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
768cbfbc
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
768cbfbc
编写于
5月 16, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Automatic merge of master.kernel.org:/home/rmk/linux-2.6-serial.git
上级
2a4a7e02
05ab3014
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
41 addition
and
110 deletion
+41
-110
drivers/serial/21285.c
drivers/serial/21285.c
+2
-12
drivers/serial/8250.c
drivers/serial/8250.c
+3
-12
drivers/serial/amba-pl010.c
drivers/serial/amba-pl010.c
+2
-12
drivers/serial/amba-pl011.c
drivers/serial/amba-pl011.c
+2
-12
drivers/serial/clps711x.c
drivers/serial/clps711x.c
+1
-4
drivers/serial/pxa.c
drivers/serial/pxa.c
+4
-12
drivers/serial/s3c2410.c
drivers/serial/s3c2410.c
+1
-14
drivers/serial/sa1100.c
drivers/serial/sa1100.c
+1
-4
drivers/serial/serial_lh7a40x.c
drivers/serial/serial_lh7a40x.c
+1
-12
drivers/serial/serial_txx9.c
drivers/serial/serial_txx9.c
+3
-12
drivers/serial/vr41xx_siu.c
drivers/serial/vr41xx_siu.c
+2
-4
include/linux/serial_core.h
include/linux/serial_core.h
+19
-0
未找到文件。
drivers/serial/21285.c
浏览文件 @
768cbfbc
...
@@ -126,18 +126,8 @@ static irqreturn_t serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *r
...
@@ -126,18 +126,8 @@ static irqreturn_t serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *r
flag
=
TTY_FRAME
;
flag
=
TTY_FRAME
;
}
}
if
((
rxs
&
port
->
ignore_status_mask
)
==
0
)
{
uart_insert_char
(
port
,
rxs
,
RXSTAT_OVERRUN
,
ch
,
flag
);
tty_insert_flip_char
(
tty
,
ch
,
flag
);
}
if
((
rxs
&
RXSTAT_OVERRUN
)
&&
tty
->
flip
.
count
<
TTY_FLIPBUF_SIZE
)
{
/*
* Overrun is special, since it's reported
* immediately, and doesn't affect the current
* character.
*/
tty_insert_flip_char
(
tty
,
0
,
TTY_OVERRUN
);
}
status
=
*
CSR_UARTFLG
;
status
=
*
CSR_UARTFLG
;
}
}
tty_flip_buffer_push
(
tty
);
tty_flip_buffer_push
(
tty
);
...
...
drivers/serial/8250.c
浏览文件 @
768cbfbc
...
@@ -1122,18 +1122,9 @@ receive_chars(struct uart_8250_port *up, int *status, struct pt_regs *regs)
...
@@ -1122,18 +1122,9 @@ receive_chars(struct uart_8250_port *up, int *status, struct pt_regs *regs)
}
}
if
(
uart_handle_sysrq_char
(
&
up
->
port
,
ch
,
regs
))
if
(
uart_handle_sysrq_char
(
&
up
->
port
,
ch
,
regs
))
goto
ignore_char
;
goto
ignore_char
;
if
((
lsr
&
up
->
port
.
ignore_status_mask
)
==
0
)
{
tty_insert_flip_char
(
tty
,
ch
,
flag
);
uart_insert_char
(
&
up
->
port
,
lsr
,
UART_LSR_OE
,
ch
,
flag
);
}
if
((
lsr
&
UART_LSR_OE
)
&&
tty
->
flip
.
count
<
TTY_FLIPBUF_SIZE
)
{
/*
* Overrun is special, since it's reported
* immediately, and doesn't affect the current
* character.
*/
tty_insert_flip_char
(
tty
,
0
,
TTY_OVERRUN
);
}
ignore_char:
ignore_char:
lsr
=
serial_inp
(
up
,
UART_LSR
);
lsr
=
serial_inp
(
up
,
UART_LSR
);
}
while
((
lsr
&
UART_LSR_DR
)
&&
(
max_count
--
>
0
));
}
while
((
lsr
&
UART_LSR_DR
)
&&
(
max_count
--
>
0
));
...
...
drivers/serial/amba-pl010.c
浏览文件 @
768cbfbc
...
@@ -198,18 +198,8 @@ pl010_rx_chars(struct uart_port *port)
...
@@ -198,18 +198,8 @@ pl010_rx_chars(struct uart_port *port)
if
(
uart_handle_sysrq_char
(
port
,
ch
,
regs
))
if
(
uart_handle_sysrq_char
(
port
,
ch
,
regs
))
goto
ignore_char
;
goto
ignore_char
;
if
((
rsr
&
port
->
ignore_status_mask
)
==
0
)
{
uart_insert_char
(
port
,
rsr
,
UART01x_RSR_OE
,
ch
,
flag
);
tty_insert_flip_char
(
tty
,
ch
,
flag
);
}
if
((
rsr
&
UART01x_RSR_OE
)
&&
tty
->
flip
.
count
<
TTY_FLIPBUF_SIZE
)
{
/*
* Overrun is special, since it's reported
* immediately, and doesn't affect the current
* character
*/
tty_insert_flip_char
(
tty
,
0
,
TTY_OVERRUN
);
}
ignore_char:
ignore_char:
status
=
UART_GET_FR
(
port
);
status
=
UART_GET_FR
(
port
);
}
}
...
...
drivers/serial/amba-pl011.c
浏览文件 @
768cbfbc
...
@@ -163,18 +163,8 @@ pl011_rx_chars(struct uart_amba_port *uap)
...
@@ -163,18 +163,8 @@ pl011_rx_chars(struct uart_amba_port *uap)
if
(
uart_handle_sysrq_char
(
&
uap
->
port
,
ch
,
regs
))
if
(
uart_handle_sysrq_char
(
&
uap
->
port
,
ch
,
regs
))
goto
ignore_char
;
goto
ignore_char
;
if
((
rsr
&
uap
->
port
.
ignore_status_mask
)
==
0
)
{
uart_insert_char
(
&
uap
->
port
,
rsr
,
UART01x_RSR_OE
,
ch
,
flag
);
tty_insert_flip_char
(
tty
,
ch
,
flag
);
}
if
((
rsr
&
UART01x_RSR_OE
)
&&
tty
->
flip
.
count
<
TTY_FLIPBUF_SIZE
)
{
/*
* Overrun is special, since it's reported
* immediately, and doesn't affect the current
* character
*/
tty_insert_flip_char
(
tty
,
0
,
TTY_OVERRUN
);
}
ignore_char:
ignore_char:
status
=
readw
(
uap
->
port
.
membase
+
UART01x_FR
);
status
=
readw
(
uap
->
port
.
membase
+
UART01x_FR
);
}
}
...
...
drivers/serial/clps711x.c
浏览文件 @
768cbfbc
...
@@ -143,10 +143,7 @@ static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id, struct pt_regs *re
...
@@ -143,10 +143,7 @@ static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id, struct pt_regs *re
* CHECK: does overrun affect the current character?
* CHECK: does overrun affect the current character?
* ASSUMPTION: it does not.
* ASSUMPTION: it does not.
*/
*/
if
((
ch
&
port
->
ignore_status_mask
&
~
RXSTAT_OVERRUN
)
==
0
)
uart_insert_char
(
port
,
ch
,
UARTDR_OVERR
,
ch
,
flg
);
tty_insert_flip_char
(
tty
,
ch
,
flg
);
if
((
ch
&
~
port
->
ignore_status_mask
&
RXSTAT_OVERRUN
)
==
0
)
tty_insert_flip_char
(
tty
,
0
,
TTY_OVERRUN
);
ignore_char:
ignore_char:
status
=
clps_readl
(
SYSFLG
(
port
));
status
=
clps_readl
(
SYSFLG
(
port
));
...
...
drivers/serial/pxa.c
浏览文件 @
768cbfbc
...
@@ -161,20 +161,12 @@ receive_chars(struct uart_pxa_port *up, int *status, struct pt_regs *regs)
...
@@ -161,20 +161,12 @@ receive_chars(struct uart_pxa_port *up, int *status, struct pt_regs *regs)
else
if
(
*
status
&
UART_LSR_FE
)
else
if
(
*
status
&
UART_LSR_FE
)
flag
=
TTY_FRAME
;
flag
=
TTY_FRAME
;
}
}
if
(
uart_handle_sysrq_char
(
&
up
->
port
,
ch
,
regs
))
if
(
uart_handle_sysrq_char
(
&
up
->
port
,
ch
,
regs
))
goto
ignore_char
;
goto
ignore_char
;
if
((
*
status
&
up
->
port
.
ignore_status_mask
)
==
0
)
{
tty_insert_flip_char
(
tty
,
ch
,
flag
);
uart_insert_char
(
&
up
->
port
,
*
status
,
UART_LSR_OE
,
ch
,
flag
);
}
if
((
*
status
&
UART_LSR_OE
)
&&
tty
->
flip
.
count
<
TTY_FLIPBUF_SIZE
)
{
/*
* Overrun is special, since it's reported
* immediately, and doesn't affect the current
* character.
*/
tty_insert_flip_char
(
tty
,
0
,
TTY_OVERRUN
);
}
ignore_char:
ignore_char:
*
status
=
serial_in
(
up
,
UART_LSR
);
*
status
=
serial_in
(
up
,
UART_LSR
);
}
while
((
*
status
&
UART_LSR_DR
)
&&
(
max_count
--
>
0
));
}
while
((
*
status
&
UART_LSR_DR
)
&&
(
max_count
--
>
0
));
...
...
drivers/serial/s3c2410.c
浏览文件 @
768cbfbc
...
@@ -394,20 +394,7 @@ s3c24xx_serial_rx_chars(int irq, void *dev_id, struct pt_regs *regs)
...
@@ -394,20 +394,7 @@ s3c24xx_serial_rx_chars(int irq, void *dev_id, struct pt_regs *regs)
if
(
uart_handle_sysrq_char
(
port
,
ch
,
regs
))
if
(
uart_handle_sysrq_char
(
port
,
ch
,
regs
))
goto
ignore_char
;
goto
ignore_char
;
if
((
uerstat
&
port
->
ignore_status_mask
)
==
0
)
{
uart_insert_char
(
port
,
uerstat
,
S3C2410_UERSTAT_OVERRUN
,
ch
,
flag
);
tty_insert_flip_char
(
tty
,
ch
,
flag
);
}
if
((
uerstat
&
S3C2410_UERSTAT_OVERRUN
)
&&
tty
->
flip
.
count
<
TTY_FLIPBUF_SIZE
)
{
/*
* Overrun is special, since it's reported
* immediately, and doesn't affect the current
* character.
*/
tty_insert_flip_char
(
tty
,
0
,
TTY_OVERRUN
);
}
ignore_char:
ignore_char:
continue
;
continue
;
...
...
drivers/serial/sa1100.c
浏览文件 @
768cbfbc
...
@@ -237,10 +237,7 @@ sa1100_rx_chars(struct sa1100_port *sport, struct pt_regs *regs)
...
@@ -237,10 +237,7 @@ sa1100_rx_chars(struct sa1100_port *sport, struct pt_regs *regs)
if
(
uart_handle_sysrq_char
(
&
sport
->
port
,
ch
,
regs
))
if
(
uart_handle_sysrq_char
(
&
sport
->
port
,
ch
,
regs
))
goto
ignore_char
;
goto
ignore_char
;
if
((
status
&
port
->
ignore_status_mask
&
~
UTSR1_TO_SM
(
UTSR1_ROR
))
==
0
)
uart_insert_char
(
&
sport
->
port
,
status
,
UTSR1_TO_SM
(
UTSR1_ROR
),
ch
,
flg
);
tty_insert_flip_char
(
tty
,
ch
,
flg
);
if
(
status
&
~
port
->
ignore_status_mask
&
UTSR1_TO_SM
(
UTSR1_ROR
))
tty_insert_flip_char
(
tty
,
0
,
TTY_OVERRUN
);
ignore_char:
ignore_char:
status
=
UTSR1_TO_SM
(
UART_GET_UTSR1
(
sport
))
|
status
=
UTSR1_TO_SM
(
UART_GET_UTSR1
(
sport
))
|
...
...
drivers/serial/serial_lh7a40x.c
浏览文件 @
768cbfbc
...
@@ -190,18 +190,7 @@ lh7a40xuart_rx_chars (struct uart_port* port)
...
@@ -190,18 +190,7 @@ lh7a40xuart_rx_chars (struct uart_port* port)
if
(
uart_handle_sysrq_char
(
port
,
(
unsigned
char
)
data
,
regs
))
if
(
uart_handle_sysrq_char
(
port
,
(
unsigned
char
)
data
,
regs
))
continue
;
continue
;
if
((
data
&
port
->
ignore_status_mask
)
==
0
)
{
uart_insert_char
(
port
,
data
,
RxOverrunError
,
data
,
flag
);
tty_insert_flip_char
(
tty
,
data
,
flag
);
}
if
((
data
&
RxOverrunError
)
&&
tty
->
flip
.
count
<
TTY_FLIPBUF_SIZE
)
{
/*
* Overrun is special, since it's reported
* immediately, and doesn't affect the current
* character
*/
tty_insert_flip_char
(
tty
,
0
,
TTY_OVERRUN
);
}
}
}
tty_flip_buffer_push
(
tty
);
tty_flip_buffer_push
(
tty
);
return
;
return
;
...
...
drivers/serial/serial_txx9.c
浏览文件 @
768cbfbc
...
@@ -350,18 +350,9 @@ receive_chars(struct uart_txx9_port *up, unsigned int *status, struct pt_regs *r
...
@@ -350,18 +350,9 @@ receive_chars(struct uart_txx9_port *up, unsigned int *status, struct pt_regs *r
}
}
if
(
uart_handle_sysrq_char
(
&
up
->
port
,
ch
,
regs
))
if
(
uart_handle_sysrq_char
(
&
up
->
port
,
ch
,
regs
))
goto
ignore_char
;
goto
ignore_char
;
if
((
disr
&
up
->
port
.
ignore_status_mask
)
==
0
)
{
tty_insert_flip_char
(
tty
,
ch
,
flag
);
uart_insert_char
(
&
up
->
port
,
disr
,
TXX9_SIDISR_UOER
,
ch
,
flag
);
}
if
((
disr
&
TXX9_SIDISR_UOER
)
&&
tty
->
flip
.
count
<
TTY_FLIPBUF_SIZE
)
{
/*
* Overrun is special, since it's reported
* immediately, and doesn't affect the current
* character.
*/
tty_insert_flip_char
(
tty
,
0
,
TTY_OVERRUN
);
}
ignore_char:
ignore_char:
disr
=
sio_in
(
up
,
TXX9_SIDISR
);
disr
=
sio_in
(
up
,
TXX9_SIDISR
);
}
while
(
!
(
disr
&
TXX9_SIDISR_UVALID
)
&&
(
max_count
--
>
0
));
}
while
(
!
(
disr
&
TXX9_SIDISR_UVALID
)
&&
(
max_count
--
>
0
));
...
...
drivers/serial/vr41xx_siu.c
浏览文件 @
768cbfbc
...
@@ -412,10 +412,8 @@ static inline void receive_chars(struct uart_port *port, uint8_t *status,
...
@@ -412,10 +412,8 @@ static inline void receive_chars(struct uart_port *port, uint8_t *status,
if
(
uart_handle_sysrq_char
(
port
,
ch
,
regs
))
if
(
uart_handle_sysrq_char
(
port
,
ch
,
regs
))
goto
ignore_char
;
goto
ignore_char
;
if
((
lsr
&
port
->
ignore_status_mask
)
==
0
)
tty_insert_flip_char
(
tty
,
ch
,
flag
);
uart_insert_char
(
port
,
lsr
,
UART_LSR_OE
,
ch
,
flag
);
if
((
lsr
&
UART_LSR_OE
)
&&
(
tty
->
flip
.
count
<
TTY_FLIPBUF_SIZE
))
tty_insert_flip_char
(
tty
,
0
,
TTY_OVERRUN
);
ignore_char:
ignore_char:
lsr
=
siu_read
(
port
,
UART_LSR
);
lsr
=
siu_read
(
port
,
UART_LSR
);
...
...
include/linux/serial_core.h
浏览文件 @
768cbfbc
...
@@ -479,6 +479,25 @@ uart_handle_cts_change(struct uart_port *port, unsigned int status)
...
@@ -479,6 +479,25 @@ uart_handle_cts_change(struct uart_port *port, unsigned int status)
}
}
}
}
#include <linux/tty_flip.h>
static
inline
void
uart_insert_char
(
struct
uart_port
*
port
,
unsigned
int
status
,
unsigned
int
overrun
,
unsigned
int
ch
,
unsigned
int
flag
)
{
struct
tty_struct
*
tty
=
port
->
info
->
tty
;
if
((
status
&
port
->
ignore_status_mask
&
~
overrun
)
==
0
)
tty_insert_flip_char
(
tty
,
ch
,
flag
);
/*
* Overrun is special. Since it's reported immediately,
* it doesn't affect the current character.
*/
if
(
status
&
~
port
->
ignore_status_mask
&
overrun
)
tty_insert_flip_char
(
tty
,
0
,
TTY_OVERRUN
);
}
/*
/*
* UART_ENABLE_MS - determine if port should enable modem status irqs
* UART_ENABLE_MS - determine if port should enable modem status irqs
*/
*/
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录