Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
7f729ccf
K
Kernel
项目概览
openeuler
/
Kernel
接近 2 年 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
7f729ccf
编写于
11月 13, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge master.kernel.org:/home/rmk/linux-2.6-serial
上级
cbc74951
ee31b337
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
82 addition
and
65 deletion
+82
-65
drivers/serial/8250.c
drivers/serial/8250.c
+4
-1
drivers/serial/8250_pnp.c
drivers/serial/8250_pnp.c
+2
-0
drivers/serial/dz.c
drivers/serial/dz.c
+24
-24
drivers/serial/mpc52xx_uart.c
drivers/serial/mpc52xx_uart.c
+2
-2
drivers/serial/sa1100.c
drivers/serial/sa1100.c
+1
-3
drivers/serial/serial_core.c
drivers/serial/serial_core.c
+49
-35
未找到文件。
drivers/serial/8250.c
浏览文件 @
7f729ccf
...
@@ -999,6 +999,9 @@ static void autoconfig(struct uart_8250_port *up, unsigned int probeflags)
...
@@ -999,6 +999,9 @@ static void autoconfig(struct uart_8250_port *up, unsigned int probeflags)
serial_outp
(
up
,
UART_MCR
,
save_mcr
);
serial_outp
(
up
,
UART_MCR
,
save_mcr
);
serial8250_clear_fifos
(
up
);
serial8250_clear_fifos
(
up
);
(
void
)
serial_in
(
up
,
UART_RX
);
(
void
)
serial_in
(
up
,
UART_RX
);
if
(
up
->
capabilities
&
UART_CAP_UUE
)
serial_outp
(
up
,
UART_IER
,
UART_IER_UUE
);
else
serial_outp
(
up
,
UART_IER
,
0
);
serial_outp
(
up
,
UART_IER
,
0
);
out:
out:
...
...
drivers/serial/8250_pnp.c
浏览文件 @
7f729ccf
...
@@ -323,6 +323,8 @@ static const struct pnp_device_id pnp_dev_table[] = {
...
@@ -323,6 +323,8 @@ static const struct pnp_device_id pnp_dev_table[] = {
{
"USR9180"
,
0
},
{
"USR9180"
,
0
},
/* U.S. Robotics 56K Voice INT PnP*/
/* U.S. Robotics 56K Voice INT PnP*/
{
"USR9190"
,
0
},
{
"USR9190"
,
0
},
/* HP Compaq Tablet PC tc1100 Wacom tablet */
{
"WACF005"
,
0
},
/* Rockwell's (PORALiNK) 33600 INT PNP */
/* Rockwell's (PORALiNK) 33600 INT PNP */
{
"WCI0003"
,
0
},
{
"WCI0003"
,
0
},
/* Unkown PnP modems */
/* Unkown PnP modems */
...
...
drivers/serial/dz.c
浏览文件 @
7f729ccf
...
@@ -645,9 +645,9 @@ static void __init dz_init_ports(void)
...
@@ -645,9 +645,9 @@ static void __init dz_init_ports(void)
if
(
mips_machtype
==
MACH_DS23100
||
if
(
mips_machtype
==
MACH_DS23100
||
mips_machtype
==
MACH_DS5100
)
mips_machtype
==
MACH_DS5100
)
base
=
(
unsigned
long
)
KN01_DZ11_BASE
;
base
=
CKSEG1ADDR
(
KN01_SLOT_BASE
+
KN01_DZ11
)
;
else
else
base
=
(
unsigned
long
)
KN02_DZ11_BASE
;
base
=
CKSEG1ADDR
(
KN02_SLOT_BASE
+
KN02_DZ11
)
;
for
(
i
=
0
,
dport
=
dz_ports
;
i
<
DZ_NB_PORT
;
i
++
,
dport
++
)
{
for
(
i
=
0
,
dport
=
dz_ports
;
i
<
DZ_NB_PORT
;
i
++
,
dport
++
)
{
spin_lock_init
(
&
dport
->
port
.
lock
);
spin_lock_init
(
&
dport
->
port
.
lock
);
...
...
drivers/serial/mpc52xx_uart.c
浏览文件 @
7f729ccf
...
@@ -725,7 +725,7 @@ mpc52xx_uart_probe(struct platform_device *dev)
...
@@ -725,7 +725,7 @@ mpc52xx_uart_probe(struct platform_device *dev)
int
i
,
idx
,
ret
;
int
i
,
idx
,
ret
;
/* Check validity & presence */
/* Check validity & presence */
idx
=
p
dev
->
id
;
idx
=
dev
->
id
;
if
(
idx
<
0
||
idx
>=
MPC52xx_PSC_MAXNUM
)
if
(
idx
<
0
||
idx
>=
MPC52xx_PSC_MAXNUM
)
return
-
EINVAL
;
return
-
EINVAL
;
...
@@ -748,7 +748,7 @@ mpc52xx_uart_probe(struct platform_device *dev)
...
@@ -748,7 +748,7 @@ mpc52xx_uart_probe(struct platform_device *dev)
port
->
ops
=
&
mpc52xx_uart_ops
;
port
->
ops
=
&
mpc52xx_uart_ops
;
/* Search for IRQ and mapbase */
/* Search for IRQ and mapbase */
for
(
i
=
0
;
i
<
p
dev
->
num_resources
;
i
++
,
res
++
)
{
for
(
i
=
0
;
i
<
dev
->
num_resources
;
i
++
,
res
++
)
{
if
(
res
->
flags
&
IORESOURCE_MEM
)
if
(
res
->
flags
&
IORESOURCE_MEM
)
port
->
mapbase
=
res
->
start
;
port
->
mapbase
=
res
->
start
;
else
if
(
res
->
flags
&
IORESOURCE_IRQ
)
else
if
(
res
->
flags
&
IORESOURCE_IRQ
)
...
...
drivers/serial/sa1100.c
浏览文件 @
7f729ccf
...
@@ -156,7 +156,7 @@ static void sa1100_stop_tx(struct uart_port *port)
...
@@ -156,7 +156,7 @@ static void sa1100_stop_tx(struct uart_port *port)
}
}
/*
/*
*
interrupts may not be disabled on entry
*
port locked and interrupts disabled
*/
*/
static
void
sa1100_start_tx
(
struct
uart_port
*
port
)
static
void
sa1100_start_tx
(
struct
uart_port
*
port
)
{
{
...
@@ -164,11 +164,9 @@ static void sa1100_start_tx(struct uart_port *port)
...
@@ -164,11 +164,9 @@ static void sa1100_start_tx(struct uart_port *port)
unsigned
long
flags
;
unsigned
long
flags
;
u32
utcr3
;
u32
utcr3
;
spin_lock_irqsave
(
&
sport
->
port
.
lock
,
flags
);
utcr3
=
UART_GET_UTCR3
(
sport
);
utcr3
=
UART_GET_UTCR3
(
sport
);
sport
->
port
.
read_status_mask
|=
UTSR0_TO_SM
(
UTSR0_TFS
);
sport
->
port
.
read_status_mask
|=
UTSR0_TO_SM
(
UTSR0_TFS
);
UART_PUT_UTCR3
(
sport
,
utcr3
|
UTCR3_TIE
);
UART_PUT_UTCR3
(
sport
,
utcr3
|
UTCR3_TIE
);
spin_unlock_irqrestore
(
&
sport
->
port
.
lock
,
flags
);
}
}
/*
/*
...
...
drivers/serial/serial_core.c
浏览文件 @
7f729ccf
...
@@ -209,8 +209,14 @@ static void uart_shutdown(struct uart_state *state)
...
@@ -209,8 +209,14 @@ static void uart_shutdown(struct uart_state *state)
struct
uart_info
*
info
=
state
->
info
;
struct
uart_info
*
info
=
state
->
info
;
struct
uart_port
*
port
=
state
->
port
;
struct
uart_port
*
port
=
state
->
port
;
if
(
!
(
info
->
flags
&
UIF_INITIALIZED
))
/*
return
;
* Set the TTY IO error marker
*/
if
(
info
->
tty
)
set_bit
(
TTY_IO_ERROR
,
&
info
->
tty
->
flags
);
if
(
info
->
flags
&
UIF_INITIALIZED
)
{
info
->
flags
&=
~
UIF_INITIALIZED
;
/*
/*
* Turn off DTR and RTS early.
* Turn off DTR and RTS early.
...
@@ -236,6 +242,12 @@ static void uart_shutdown(struct uart_state *state)
...
@@ -236,6 +242,12 @@ static void uart_shutdown(struct uart_state *state)
* Ensure that the IRQ handler isn't running on another CPU.
* Ensure that the IRQ handler isn't running on another CPU.
*/
*/
synchronize_irq
(
port
->
irq
);
synchronize_irq
(
port
->
irq
);
}
/*
* kill off our tasklet
*/
tasklet_kill
(
&
info
->
tlet
);
/*
/*
* Free the transmit buffer page.
* Free the transmit buffer page.
...
@@ -244,15 +256,6 @@ static void uart_shutdown(struct uart_state *state)
...
@@ -244,15 +256,6 @@ static void uart_shutdown(struct uart_state *state)
free_page
((
unsigned
long
)
info
->
xmit
.
buf
);
free_page
((
unsigned
long
)
info
->
xmit
.
buf
);
info
->
xmit
.
buf
=
NULL
;
info
->
xmit
.
buf
=
NULL
;
}
}
/*
* kill off our tasklet
*/
tasklet_kill
(
&
info
->
tlet
);
if
(
info
->
tty
)
set_bit
(
TTY_IO_ERROR
,
&
info
->
tty
->
flags
);
info
->
flags
&=
~
UIF_INITIALIZED
;
}
}
/**
/**
...
@@ -1928,14 +1931,25 @@ int uart_resume_port(struct uart_driver *drv, struct uart_port *port)
...
@@ -1928,14 +1931,25 @@ int uart_resume_port(struct uart_driver *drv, struct uart_port *port)
if
(
state
->
info
&&
state
->
info
->
flags
&
UIF_INITIALIZED
)
{
if
(
state
->
info
&&
state
->
info
->
flags
&
UIF_INITIALIZED
)
{
struct
uart_ops
*
ops
=
port
->
ops
;
struct
uart_ops
*
ops
=
port
->
ops
;
int
ret
;
ops
->
set_mctrl
(
port
,
0
);
ops
->
set_mctrl
(
port
,
0
);
ops
->
startup
(
port
);
ret
=
ops
->
startup
(
port
);
if
(
ret
==
0
)
{
uart_change_speed
(
state
,
NULL
);
uart_change_speed
(
state
,
NULL
);
spin_lock_irq
(
&
port
->
lock
);
spin_lock_irq
(
&
port
->
lock
);
ops
->
set_mctrl
(
port
,
port
->
mctrl
);
ops
->
set_mctrl
(
port
,
port
->
mctrl
);
ops
->
start_tx
(
port
);
ops
->
start_tx
(
port
);
spin_unlock_irq
(
&
port
->
lock
);
spin_unlock_irq
(
&
port
->
lock
);
}
else
{
/*
* Failed to resume - maybe hardware went away?
* Clear the "initialized" flag so we won't try
* to call the low level drivers shutdown method.
*/
state
->
info
->
flags
&=
~
UIF_INITIALIZED
;
uart_shutdown
(
state
);
}
}
}
up
(
&
state
->
sem
);
up
(
&
state
->
sem
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录