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
d4ea8ebe
Commit
d4ea8ebe
authored
Jul 23, 2002
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://bk.arm.linux.org.uk:14691
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
82e6c293
1c36ac5d
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
80 additions
and
138 deletions
+80
-138
Documentation/serial/driver
Documentation/serial/driver
+2
-2
drivers/serial/21285.c
drivers/serial/21285.c
+8
-21
drivers/serial/8250.c
drivers/serial/8250.c
+8
-22
drivers/serial/8250.h
drivers/serial/8250.h
+2
-2
drivers/serial/8250_cs.c
drivers/serial/8250_cs.c
+0
-0
drivers/serial/8250_pci.c
drivers/serial/8250_pci.c
+3
-3
drivers/serial/8250_pnp.c
drivers/serial/8250_pnp.c
+3
-3
drivers/serial/Makefile
drivers/serial/Makefile
+13
-13
drivers/serial/amba.c
drivers/serial/amba.c
+7
-16
drivers/serial/anakin.c
drivers/serial/anakin.c
+3
-9
drivers/serial/clps711x.c
drivers/serial/clps711x.c
+7
-21
drivers/serial/core.c
drivers/serial/core.c
+11
-4
drivers/serial/sa1100.c
drivers/serial/sa1100.c
+10
-19
drivers/serial/uart00.c
drivers/serial/uart00.c
+3
-3
No files found.
Documentation/serial/driver
View file @
d4ea8ebe
...
...
@@ -3,7 +3,7 @@
--------------------
$Id: driver,v 1.
9 2002/07/06 16:51:43
rmk Exp $
$Id: driver,v 1.
10 2002/07/22 15:27:30
rmk Exp $
This document is meant as a brief overview of some aspects of the new serial
...
...
@@ -119,7 +119,7 @@ hardware.
tty_stop: 1 if this call is due to the TTY layer issuing a
TTY stop to the driver (equiv to rs_stop).
Locking:
none
.
Locking:
port->lock taken
.
Interrupts: caller dependent.
This call must not sleep
...
...
drivers/serial/
serial_
21285.c
→
drivers/serial/21285.c
View file @
d4ea8ebe
/*
* linux/drivers/char/
serial_
21285.c
* linux/drivers/char/21285.c
*
* Driver for the serial port on the 21285 StrongArm-110 core logic chip.
*
* Based on drivers/char/serial.c
*
* $Id:
serial_21285.c,v 1.32 2002/07/21 08:57:55
rmk Exp $
* $Id:
21285.c,v 1.34 2002/07/22 15:27:32
rmk Exp $
*/
#include <linux/config.h>
#include <linux/module.h>
...
...
@@ -65,7 +65,8 @@ static const char serial21285_name[] = "Footbridge UART";
* int((BAUD_BASE - (baud >> 1)) / baud)
*/
static
void
__serial21285_stop_tx
(
struct
uart_port
*
port
)
static
void
serial21285_stop_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_stop
)
{
if
(
tx_enabled
(
port
))
{
disable_irq
(
IRQ_CONTX
);
...
...
@@ -73,27 +74,13 @@ static void __serial21285_stop_tx(struct uart_port *port)
}
}
static
void
serial21285_stop_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_stop
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
__serial21285_stop_tx
(
port
);
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
}
static
void
serial21285_start_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_start
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
if
(
!
tx_enabled
(
port
))
{
enable_irq
(
IRQ_CONTX
);
tx_enabled
(
port
)
=
1
;
}
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
}
static
void
serial21285_stop_rx
(
struct
uart_port
*
port
)
...
...
@@ -185,7 +172,7 @@ static void serial21285_tx_chars(int irq, void *dev_id, struct pt_regs *regs)
return
;
}
if
(
uart_circ_empty
(
xmit
)
||
uart_tx_stopped
(
port
))
{
__serial21285_stop_tx
(
port
);
serial21285_stop_tx
(
port
,
0
);
return
;
}
...
...
@@ -201,7 +188,7 @@ static void serial21285_tx_chars(int irq, void *dev_id, struct pt_regs *regs)
uart_event
(
port
,
EVT_WRITE_WAKEUP
);
if
(
uart_circ_empty
(
xmit
))
__serial21285_stop_tx
(
port
);
serial21285_stop_tx
(
port
,
0
);
}
static
unsigned
int
serial21285_tx_empty
(
struct
uart_port
*
port
)
...
...
@@ -527,7 +514,7 @@ static int __init serial21285_init(void)
{
int
ret
;
printk
(
KERN_INFO
"Serial: 21285 driver $Revision: 1.3
2
$
\n
"
);
printk
(
KERN_INFO
"Serial: 21285 driver $Revision: 1.3
4
$
\n
"
);
serial21285_setup_ports
();
...
...
@@ -550,4 +537,4 @@ module_exit(serial21285_exit);
EXPORT_NO_SYMBOLS
;
MODULE_LICENSE
(
"GPL"
);
MODULE_DESCRIPTION
(
"Intel Footbridge (21285) serial driver $Revision: 1.3
2
$"
);
MODULE_DESCRIPTION
(
"Intel Footbridge (21285) serial driver $Revision: 1.3
4
$"
);
drivers/serial/
serial_
8250.c
→
drivers/serial/8250.c
View file @
d4ea8ebe
/*
* linux/drivers/char/
serial_
8250.c
* linux/drivers/char/8250.c
*
* Driver for 8250/16550-type serial ports
*
...
...
@@ -12,7 +12,7 @@
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* $Id:
serial_8250.c,v 1.80 2002/07/21 08:57:55
rmk Exp $
* $Id:
8250.c,v 1.84 2002/07/22 15:27:32
rmk Exp $
*
* A note about mapbase / membase
*
...
...
@@ -54,7 +54,7 @@
#endif
#include <linux/serial_core.h>
#include "
serial_
8250.h"
#include "8250.h"
/*
* Configuration:
...
...
@@ -690,7 +690,7 @@ static void autoconfig_irq(struct uart_8250_port *up)
up
->
port
.
irq
=
(
irq
>
0
)
?
irq
:
0
;
}
static
void
__
serial8250_stop_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_stop
)
static
void
serial8250_stop_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_stop
)
{
struct
uart_8250_port
*
up
=
(
struct
uart_8250_port
*
)
port
;
...
...
@@ -704,16 +704,6 @@ static void __serial8250_stop_tx(struct uart_port *port, unsigned int tty_stop)
}
}
static
void
serial8250_stop_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_stop
)
{
struct
uart_8250_port
*
up
=
(
struct
uart_8250_port
*
)
port
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
up
->
port
.
lock
,
flags
);
__serial8250_stop_tx
(
port
,
tty_stop
);
spin_unlock_irqrestore
(
&
up
->
port
.
lock
,
flags
);
}
static
void
serial8250_start_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_start
)
{
struct
uart_8250_port
*
up
=
(
struct
uart_8250_port
*
)
port
;
...
...
@@ -852,7 +842,7 @@ static _INLINE_ void transmit_chars(struct uart_8250_port *up)
return
;
}
if
(
uart_circ_empty
(
xmit
)
||
uart_tx_stopped
(
&
up
->
port
))
{
__
serial8250_stop_tx
(
&
up
->
port
,
0
);
serial8250_stop_tx
(
&
up
->
port
,
0
);
return
;
}
...
...
@@ -871,7 +861,7 @@ static _INLINE_ void transmit_chars(struct uart_8250_port *up)
DEBUG_INTR
(
"THRE..."
);
if
(
uart_circ_empty
(
xmit
))
__
serial8250_stop_tx
(
&
up
->
port
,
0
);
serial8250_stop_tx
(
&
up
->
port
,
0
);
}
static
_INLINE_
void
check_modem_status
(
struct
uart_8250_port
*
up
)
...
...
@@ -1296,8 +1286,6 @@ serial8250_change_speed(struct uart_port *port, unsigned int cflag,
unsigned
char
cval
,
fcr
=
0
;
unsigned
long
flags
;
printk
(
"+++ change_speed port %p cflag %08x quot %d
\n
"
,
port
,
cflag
,
quot
);
switch
(
cflag
&
CSIZE
)
{
case
CS5
:
cval
=
0x00
;
...
...
@@ -1835,7 +1823,6 @@ static int __init serial8250_console_setup(struct console *co, char *options)
if
(
co
->
index
>=
UART_NR
)
co
->
index
=
0
;
port
=
&
serial8250_ports
[
co
->
index
].
port
;
printk
(
"+++ index %d port %p iobase %x
\n
"
,
co
->
index
,
port
,
port
->
iobase
);
/*
* Temporary fix.
...
...
@@ -1844,7 +1831,6 @@ static int __init serial8250_console_setup(struct console *co, char *options)
if
(
options
)
uart_parse_options
(
options
,
&
baud
,
&
parity
,
&
bits
,
&
flow
);
printk
(
"+++ baud %d bits %d parity %c flow %c
\n
"
,
baud
,
parity
,
bits
,
flow
);
return
uart_set_options
(
port
,
co
,
baud
,
parity
,
bits
,
flow
);
}
...
...
@@ -1969,7 +1955,7 @@ static int __init serial8250_init(void)
{
int
ret
,
i
;
printk
(
KERN_INFO
"Serial: 8250/16550 driver $Revision: 1.8
0
$ "
printk
(
KERN_INFO
"Serial: 8250/16550 driver $Revision: 1.8
4
$ "
"IRQ sharing %sabled
\n
"
,
share_irqs
?
"en"
:
"dis"
);
for
(
i
=
0
;
i
<
NR_IRQS
;
i
++
)
...
...
@@ -2001,7 +1987,7 @@ EXPORT_SYMBOL(unregister_serial);
EXPORT_SYMBOL
(
serial8250_get_irq_map
);
MODULE_LICENSE
(
"GPL"
);
MODULE_DESCRIPTION
(
"Generic 8250/16x50 serial driver $Revision: 1.8
0
$"
);
MODULE_DESCRIPTION
(
"Generic 8250/16x50 serial driver $Revision: 1.8
4
$"
);
MODULE_PARM
(
share_irqs
,
"i"
);
MODULE_PARM_DESC
(
share_irqs
,
"Share IRQs with other non-8250/16x50 devices"
...
...
drivers/serial/
serial_
8250.h
→
drivers/serial/8250.h
View file @
d4ea8ebe
/*
* linux/drivers/char/
serial_
8250.h
* linux/drivers/char/8250.h
*
* Driver for 8250/16550-type serial ports
*
...
...
@@ -12,7 +12,7 @@
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* $Id:
serial_8250.h,v 1.7 2002/07/06 16:24:46
rmk Exp $
* $Id:
8250.h,v 1.8 2002/07/21 21:32:30
rmk Exp $
*/
#include <linux/config.h>
...
...
drivers/serial/
serial_
8250_cs.c
→
drivers/serial/8250_cs.c
View file @
d4ea8ebe
File moved
drivers/serial/
serial_
8250_pci.c
→
drivers/serial/8250_pci.c
View file @
d4ea8ebe
/*
* linux/drivers/char/
serial_
8250_pci.c
* linux/drivers/char/8250_pci.c
*
* Probe module for 8250/16550-type PCI serial ports.
*
...
...
@@ -11,7 +11,7 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License.
*
* $Id:
serial_8250_pci.c,v 1.18 2002/03/10 22:32:08
rmk Exp $
* $Id:
8250_pci.c,v 1.19 2002/07/21 21:32:30
rmk Exp $
*/
#include <linux/module.h>
#include <linux/init.h>
...
...
@@ -31,7 +31,7 @@
#include <asm/byteorder.h>
#include <asm/serial.h>
#include "
serial_
8250.h"
#include "8250.h"
#ifndef IS_PCI_REGION_IOPORT
...
...
drivers/serial/
serial_
8250_pnp.c
→
drivers/serial/8250_pnp.c
View file @
d4ea8ebe
/*
* linux/drivers/char/
serial_
8250_pnp.c
* linux/drivers/char/8250_pnp.c
*
* Probe module for 8250/16550-type ISAPNP serial ports.
*
...
...
@@ -11,7 +11,7 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License.
*
* $Id:
serial_8250_pnp.c,v 1.9 2002/02/18 19:20:29
rmk Exp $
* $Id:
8250_pnp.c,v 1.10 2002/07/21 21:32:30
rmk Exp $
*/
#include <linux/module.h>
#include <linux/init.h>
...
...
@@ -26,7 +26,7 @@
#include <asm/byteorder.h>
#include <asm/serial.h>
#include "
serial_
8250.h"
#include "8250.h"
struct
pnpbios_device_id
{
...
...
drivers/serial/Makefile
View file @
d4ea8ebe
#
# Makefile for the kernel serial device drivers.
#
# $Id: Makefile,v 1.
7 2002/07/06 17:16:24
rmk Exp $
# $Id: Makefile,v 1.
8 2002/07/21 21:32:30
rmk Exp $
#
export-objs
:=
serial_core.o serial_
8250.o
export-objs
:=
core.o
8250.o
serial-8250-y
:=
serial-8250-$(CONFIG_PCI)
+=
serial_
8250_pci.o
serial-8250-$(CONFIG_ISAPNP)
+=
serial_
8250_pnp.o
obj-$(CONFIG_SERIAL_CORE)
+=
serial_
core.o
obj-$(CONFIG_SERIAL_21285)
+=
serial_
21285.o
obj-$(CONFIG_SERIAL_8250)
+=
serial_
8250.o
$
(
serial-8250-y
)
obj-$(CONFIG_SERIAL_8250_CS)
+=
serial_
8250_cs.o
obj-$(CONFIG_SERIAL_ANAKIN)
+=
serial_
anakin.o
obj-$(CONFIG_SERIAL_AMBA)
+=
serial_
amba.o
obj-$(CONFIG_SERIAL_CLPS711X)
+=
serial_
clps711x.o
obj-$(CONFIG_SERIAL_SA1100)
+=
s
erial_s
a1100.o
obj-$(CONFIG_SERIAL_UART00)
+=
serial_
uart00.o
serial-8250-$(CONFIG_PCI)
+=
8250_pci.o
serial-8250-$(CONFIG_ISAPNP)
+=
8250_pnp.o
obj-$(CONFIG_SERIAL_CORE)
+=
core.o
obj-$(CONFIG_SERIAL_21285)
+=
21285.o
obj-$(CONFIG_SERIAL_8250)
+=
8250.o
$
(
serial-8250-y
)
obj-$(CONFIG_SERIAL_8250_CS)
+=
8250_cs.o
obj-$(CONFIG_SERIAL_ANAKIN)
+=
anakin.o
obj-$(CONFIG_SERIAL_AMBA)
+=
amba.o
obj-$(CONFIG_SERIAL_CLPS711X)
+=
clps711x.o
obj-$(CONFIG_SERIAL_SA1100)
+=
sa1100.o
obj-$(CONFIG_SERIAL_UART00)
+=
uart00.o
include
$(TOPDIR)/Rules.make
drivers/serial/
serial_
amba.c
→
drivers/serial/amba.c
View file @
d4ea8ebe
/*
* linux/drivers/char/
serial_
amba.c
* linux/drivers/char/amba.c
*
* Driver for AMBA serial ports
*
...
...
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* $Id:
serial_amba.c,v 1.35 2002/07/21 08:57:55
rmk Exp $
* $Id:
amba.c,v 1.37 2002/07/22 15:27:32
rmk Exp $
*
* This is a generic driver for ARM AMBA-type serial ports. They
* have a lot of 16550-like features, but are not register compatable.
...
...
@@ -118,7 +118,7 @@ struct uart_amba_port {
unsigned
int
old_status
;
};
static
void
__ambauart_stop_tx
(
struct
uart_port
*
port
)
static
void
ambauart_stop_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_stop
)
{
unsigned
int
cr
;
...
...
@@ -127,15 +127,6 @@ static void __ambauart_stop_tx(struct uart_port *port)
UART_PUT_CR
(
port
,
cr
);
}
static
void
ambauart_stop_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_stop
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
__ambauart_stop_tx
(
port
);
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
}
static
void
ambauart_start_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_start
)
{
unsigned
int
cr
;
...
...
@@ -261,7 +252,7 @@ static void ambauart_tx_chars(struct uart_port *port)
return
;
}
if
(
uart_circ_empty
(
xmit
)
||
uart_tx_stopped
(
port
))
{
__
ambauart_stop_tx
(
port
);
ambauart_stop_tx
(
port
);
return
;
}
...
...
@@ -278,7 +269,7 @@ static void ambauart_tx_chars(struct uart_port *port)
uart_event
(
port
,
EVT_WRITE_WAKEUP
);
if
(
uart_circ_empty
(
xmit
))
__
ambauart_stop_tx
(
port
);
ambauart_stop_tx
(
port
);
}
static
void
ambauart_modem_status
(
struct
uart_port
*
port
)
...
...
@@ -751,7 +742,7 @@ static int __init ambauart_init(void)
{
int
ret
;
printk
(
KERN_INFO
"Serial: AMBA driver $Revision: 1.3
5
$
\n
"
);
printk
(
KERN_INFO
"Serial: AMBA driver $Revision: 1.3
7
$
\n
"
);
ret
=
uart_register_driver
(
&
amba_reg
);
if
(
ret
==
0
)
{
...
...
@@ -779,5 +770,5 @@ module_exit(ambauart_exit);
EXPORT_NO_SYMBOLS
;
MODULE_AUTHOR
(
"ARM Ltd/Deep Blue Solutions Ltd"
);
MODULE_DESCRIPTION
(
"ARM AMBA serial port driver $Revision: 1.3
5
$"
);
MODULE_DESCRIPTION
(
"ARM AMBA serial port driver $Revision: 1.3
7
$"
);
MODULE_LICENSE
(
"GPL"
);
drivers/serial/
serial_
anakin.c
→
drivers/serial/anakin.c
View file @
d4ea8ebe
/*
* linux/drivers/char/
serial_
anakin.c
* linux/drivers/char/anakin.c
*
* Based on driver for AMBA serial ports, by ARM Limited,
* Deep Blue Solutions Ltd., Linus Torvalds and Theodore Ts'o.
...
...
@@ -19,7 +19,7 @@
* SA_INTERRUPT. Works reliably now. No longer requires
* changes to the serial_core API.
*
* $Id:
serial_anakin.c,v 1.27 2002/07/20 17:10:03
rmk Exp $
* $Id:
anakin.c,v 1.29 2002/07/22 15:27:32
rmk Exp $
*/
#include <linux/config.h>
...
...
@@ -106,10 +106,6 @@ anakin_transmit_x_char(struct uart_port *port)
static
void
anakin_start_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_start
)
{
unsigned
int
flags
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
// is it this... or below
if
(
!
txenable
[
port
->
irq
])
{
txenable
[
port
->
irq
]
=
TXENABLE
;
...
...
@@ -118,8 +114,6 @@ anakin_start_tx(struct uart_port *port, unsigned int tty_start)
anakin_transmit_buffer
(
port
);
}
}
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
}
static
void
...
...
@@ -524,7 +518,7 @@ anakin_init(void)
{
int
ret
;
printk
(
KERN_INFO
"Serial: Anakin driver $Revision: 1.2
7
$
\n
"
);
printk
(
KERN_INFO
"Serial: Anakin driver $Revision: 1.2
9
$
\n
"
);
ret
=
uart_register_driver
(
&
anakin_reg
);
if
(
ret
==
0
)
{
...
...
drivers/serial/
serial_
clps711x.c
→
drivers/serial/clps711x.c
View file @
d4ea8ebe
/*
* linux/drivers/char/
serial_
clps711x.c
* linux/drivers/char/clps711x.c
*
* Driver for CLPS711x serial ports
*
...
...
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* $Id:
serial_clps711x.c,v 1.38 2002/07/21 08:57:55
rmk Exp $
* $Id:
clps711x.c,v 1.40 2002/07/22 15:27:32
rmk Exp $
*
*/
#include <linux/config.h>
...
...
@@ -95,7 +95,7 @@
#define tx_enabled(port) ((port)->unused[0])
static
void
__clps711xuart_stop_tx
(
struct
uart_port
*
port
)
clps711xuart_stop_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_stop
)
{
if
(
tx_enabled
(
port
))
{
disable_irq
(
TX_IRQ
(
port
));
...
...
@@ -103,27 +103,13 @@ __clps711xuart_stop_tx(struct uart_port *port)
}
}
static
void
clps711xuart_stop_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_stop
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
__clps711xuart_stop_tx
(
port
);
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
}
static
void
clps711xuart_start_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_start
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
if
(
!
tx_enabled
(
port
))
{
enable_irq
(
TX_IRQ
(
port
));
tx_enabled
(
port
)
=
1
;
}
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
}
static
void
clps711xuart_stop_rx
(
struct
uart_port
*
port
)
...
...
@@ -224,7 +210,7 @@ static void clps711xuart_int_tx(int irq, void *dev_id, struct pt_regs *regs)
return
;
}
if
(
uart_circ_empty
(
xmit
)
||
uart_tx_stopped
(
port
))
{
__
clps711xuart_stop_tx
(
port
);
clps711xuart_stop_tx
(
port
);
return
;
}
...
...
@@ -241,7 +227,7 @@ static void clps711xuart_int_tx(int irq, void *dev_id, struct pt_regs *regs)
uart_event
(
port
,
EVT_WRITE_WAKEUP
);
if
(
uart_circ_empty
(
xmit
))
__
clps711xuart_stop_tx
(
port
);
clps711xuart_stop_tx
(
port
);
}
static
unsigned
int
clps711xuart_tx_empty
(
struct
uart_port
*
port
)
...
...
@@ -611,7 +597,7 @@ static int __init clps711xuart_init(void)
{
int
ret
,
i
;
printk
(
KERN_INFO
"Serial: CLPS711x driver $Revision: 1.
38
$
\n
"
);
printk
(
KERN_INFO
"Serial: CLPS711x driver $Revision: 1.
40
$
\n
"
);
ret
=
uart_register_driver
(
&
clps711x_reg
);
if
(
ret
)
...
...
@@ -639,5 +625,5 @@ module_exit(clps711xuart_exit);
EXPORT_NO_SYMBOLS
;
MODULE_AUTHOR
(
"Deep Blue Solutions Ltd"
);
MODULE_DESCRIPTION
(
"CLPS-711x generic serial driver $Revision: 1.
38
$"
);
MODULE_DESCRIPTION
(
"CLPS-711x generic serial driver $Revision: 1.
40
$"
);
MODULE_LICENSE
(
"GPL"
);
drivers/serial/
serial_
core.c
→
drivers/serial/core.c
View file @
d4ea8ebe
/*
* linux/drivers/char/
serial_
core.c
* linux/drivers/char/core.c
*
* Driver core for serial ports
*
...
...
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* $Id:
serial_core.c,v 1.89 2002/07/20 18:0
7:32 rmk Exp $
* $Id:
core.c,v 1.91 2002/07/22 15:2
7:32 rmk Exp $
*
*/
#include <linux/config.h>
...
...
@@ -93,8 +93,11 @@ static void uart_stop(struct tty_struct *tty)
{
struct
uart_info
*
info
=
tty
->
driver_data
;
struct
uart_port
*
port
=
info
->
port
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
port
->
ops
->
stop_tx
(
port
,
1
);
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
}
static
void
__uart_start
(
struct
tty_struct
*
tty
)
...
...
@@ -554,13 +557,17 @@ static void uart_send_xchar(struct tty_struct *tty, char ch)
{
struct
uart_info
*
info
=
tty
->
driver_data
;
struct
uart_port
*
port
=
info
->
port
;
unsigned
long
flags
;
if
(
port
->
ops
->
send_xchar
)
port
->
ops
->
send_xchar
(
port
,
ch
);
else
{
port
->
x_char
=
ch
;
if
(
ch
)
if
(
ch
)
{
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
port
->
ops
->
start_tx
(
port
,
0
);
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
}
}
}
...
...
@@ -1935,8 +1942,8 @@ static int uart_pm_set_state(struct uart_state *state, int pm_state, int oldstat
port
->
cons
->
flags
&=
~
CON_ENABLED
;
if
(
running
)
{
ops
->
stop_tx
(
port
,
0
);
spin_lock_irq
(
&
port
->
lock
);
ops
->
stop_tx
(
port
,
0
);
ops
->
set_mctrl
(
port
,
0
);
spin_unlock_irq
(
&
port
->
lock
);
ops
->
stop_rx
(
port
);
...
...
drivers/serial/s
erial_s
a1100.c
→
drivers/serial/sa1100.c
View file @
d4ea8ebe
/*
* linux/drivers/char/s
erial_s
a1100.c
* linux/drivers/char/sa1100.c
*
* Driver for SA11x0 serial ports
*
...
...
@@ -21,7 +21,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* $Id: s
erial_sa1100.c,v 1.41 2002/07/21 08:57:55
rmk Exp $
* $Id: s
a1100.c,v 1.43 2002/07/22 15:27:32
rmk Exp $
*
*/
#include <linux/config.h>
...
...
@@ -155,26 +155,17 @@ static void sa1100_timeout(unsigned long data)
}
}
static
void
__sa1100_stop_tx
(
struct
sa1100_port
*
sport
)
{
u32
utcr3
;
utcr3
=
UART_GET_UTCR3
(
sport
);
UART_PUT_UTCR3
(
sport
,
utcr3
&
~
UTCR3_TIE
);
sport
->
port
.
read_status_mask
&=
~
UTSR0_TO_SM
(
UTSR0_TFS
);
}
/*
* interrupts disabled on entry
*/
static
void
sa1100_stop_tx
(
struct
uart_port
*
port
,
unsigned
int
tty_stop
)
{
struct
sa1100_port
*
sport
=
(
struct
sa1100_port
*
)
port
;
u
nsigned
long
flags
;
u
32
utcr3
;
spin_lock_irqsave
(
&
sport
->
port
.
lock
,
flags
);
__sa1100_stop_tx
(
sport
);
sp
in_unlock_irqrestore
(
&
sport
->
port
.
lock
,
flags
);
utcr3
=
UART_GET_UTCR3
(
sport
);
UART_PUT_UTCR3
(
sport
,
utcr3
&
~
UTCR3_TIE
);
sp
ort
->
port
.
read_status_mask
&=
~
UTSR0_TO_SM
(
UTSR0_TFS
);
}
/*
...
...
@@ -315,7 +306,7 @@ static void sa1100_tx_chars(struct sa1100_port *sport)
sa1100_mctrl_check
(
sport
);
if
(
uart_circ_empty
(
xmit
)
||
uart_tx_stopped
(
&
sport
->
port
))
{
__sa1100_stop_tx
(
sport
);
sa1100_stop_tx
(
&
sport
->
port
,
0
);
return
;
}
...
...
@@ -335,7 +326,7 @@ static void sa1100_tx_chars(struct sa1100_port *sport)
uart_event
(
&
sport
->
port
,
EVT_WRITE_WAKEUP
);
if
(
uart_circ_empty
(
xmit
))
__sa1100_stop_tx
(
sport
);
sa1100_stop_tx
(
&
sport
->
port
,
0
);
}
static
void
sa1100_int
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
...
...
@@ -866,7 +857,7 @@ static int __init sa1100_serial_init(void)
{
int
ret
;
printk
(
KERN_INFO
"Serial: SA11x0 driver $Revision: 1.4
1
$
\n
"
);
printk
(
KERN_INFO
"Serial: SA11x0 driver $Revision: 1.4
3
$
\n
"
);
sa1100_init_ports
();
ret
=
uart_register_driver
(
&
sa1100_reg
);
...
...
@@ -895,5 +886,5 @@ module_exit(sa1100_serial_exit);
EXPORT_NO_SYMBOLS
;
MODULE_AUTHOR
(
"Deep Blue Solutions Ltd"
);
MODULE_DESCRIPTION
(
"SA1100 generic serial port driver $Revision: 1.4
1
$"
);
MODULE_DESCRIPTION
(
"SA1100 generic serial port driver $Revision: 1.4
3
$"
);
MODULE_LICENSE
(
"GPL"
);
drivers/serial/
serial_
uart00.c
→
drivers/serial/uart00.c
View file @
d4ea8ebe
/*
* linux/drivers/char/
serial_
uart00.c
* linux/drivers/char/uart00.c
*
* Driver for UART00 serial ports
*
...
...
@@ -21,7 +21,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* $Id:
serial_uart00.c,v 1.32 2002/07/20 17:10:04
rmk Exp $
* $Id:
uart00.c,v 1.33 2002/07/21 21:32:31
rmk Exp $
*
*/
#include <linux/config.h>
...
...
@@ -755,7 +755,7 @@ static int __init uart00_init(void)
{
int
result
;
printk
(
KERN_INFO
"Serial: UART00 driver $Revision: 1.3
2
$
\n
"
);
printk
(
KERN_INFO
"Serial: UART00 driver $Revision: 1.3
3
$
\n
"
);
printk
(
KERN_WARNING
"serial_uart00:Using temporary major/minor pairs"
" - these WILL change in the future
\n
"
);
...
...
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