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
0b35ff23
Commit
0b35ff23
authored
Jun 29, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/home/rmk/linux-2.6-serial
parents
92dd7ca0
026d02a2
Changes
30
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
82 additions
and
572 deletions
+82
-572
Documentation/serial/driver
Documentation/serial/driver
+2
-2
arch/parisc/configs/712_defconfig
arch/parisc/configs/712_defconfig
+1
-1
arch/parisc/configs/a500_defconfig
arch/parisc/configs/a500_defconfig
+1
-1
arch/parisc/configs/b180_defconfig
arch/parisc/configs/b180_defconfig
+1
-1
arch/parisc/configs/c3000_defconfig
arch/parisc/configs/c3000_defconfig
+1
-1
arch/parisc/defconfig
arch/parisc/defconfig
+1
-1
drivers/serial/8250.c
drivers/serial/8250.c
+17
-16
drivers/serial/Kconfig
drivers/serial/Kconfig
+1
-1
drivers/serial/au1x00_uart.c
drivers/serial/au1x00_uart.c
+0
-3
drivers/serial/ip22zilog.c
drivers/serial/ip22zilog.c
+7
-6
drivers/serial/mpsc.c
drivers/serial/mpsc.c
+0
-3
drivers/serial/pmac_zilog.c
drivers/serial/pmac_zilog.c
+2
-2
drivers/serial/pxa.c
drivers/serial/pxa.c
+0
-3
drivers/serial/serial_core.c
drivers/serial/serial_core.c
+27
-1
drivers/serial/serial_txx9.c
drivers/serial/serial_txx9.c
+0
-3
drivers/serial/sunsab.c
drivers/serial/sunsab.c
+1
-6
drivers/serial/sunsu.c
drivers/serial/sunsu.c
+0
-3
drivers/serial/sunzilog.c
drivers/serial/sunzilog.c
+7
-6
include/asm-alpha/serial.h
include/asm-alpha/serial.h
+1
-46
include/asm-arm26/serial.h
include/asm-arm26/serial.h
+2
-20
include/asm-i386/serial.h
include/asm-i386/serial.h
+1
-101
include/asm-m68k/serial.h
include/asm-m68k/serial.h
+1
-46
include/asm-mips/serial.h
include/asm-mips/serial.h
+0
-84
include/asm-parisc/serial.h
include/asm-parisc/serial.h
+1
-15
include/asm-ppc/pc_serial.h
include/asm-ppc/pc_serial.h
+1
-85
include/asm-sh/bigsur/serial.h
include/asm-sh/bigsur/serial.h
+1
-4
include/asm-sh/ec3104/serial.h
include/asm-sh/ec3104/serial.h
+1
-3
include/asm-sh/serial.h
include/asm-sh/serial.h
+2
-4
include/asm-sh64/serial.h
include/asm-sh64/serial.h
+1
-3
include/asm-x86_64/serial.h
include/asm-x86_64/serial.h
+1
-101
No files found.
Documentation/serial/driver
View file @
0b35ff23
...
@@ -107,8 +107,8 @@ hardware.
...
@@ -107,8 +107,8 @@ hardware.
indicate that the signal is permanently active. If RI is
indicate that the signal is permanently active. If RI is
not available, the signal should not be indicated as active.
not available, the signal should not be indicated as active.
Locking:
none
.
Locking:
port->lock taken
.
Interrupts:
caller dependent
.
Interrupts:
locally disabled
.
This call must not sleep
This call must not sleep
stop_tx(port,tty_stop)
stop_tx(port,tty_stop)
...
...
arch/parisc/configs/712_defconfig
View file @
0b35ff23
...
@@ -506,7 +506,7 @@ CONFIG_HW_CONSOLE=y
...
@@ -506,7 +506,7 @@ CONFIG_HW_CONSOLE=y
#
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=
8
CONFIG_SERIAL_8250_NR_UARTS=
17
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
...
...
arch/parisc/configs/a500_defconfig
View file @
0b35ff23
...
@@ -662,7 +662,7 @@ CONFIG_HW_CONSOLE=y
...
@@ -662,7 +662,7 @@ CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_CS=m
CONFIG_SERIAL_8250_CS=m
CONFIG_SERIAL_8250_NR_UARTS=
8
CONFIG_SERIAL_8250_NR_UARTS=
17
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
...
...
arch/parisc/configs/b180_defconfig
View file @
0b35ff23
...
@@ -514,7 +514,7 @@ CONFIG_HW_CONSOLE=y
...
@@ -514,7 +514,7 @@ CONFIG_HW_CONSOLE=y
#
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=
4
CONFIG_SERIAL_8250_NR_UARTS=
13
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
...
...
arch/parisc/configs/c3000_defconfig
View file @
0b35ff23
...
@@ -661,7 +661,7 @@ CONFIG_HW_CONSOLE=y
...
@@ -661,7 +661,7 @@ CONFIG_HW_CONSOLE=y
#
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=
4
CONFIG_SERIAL_8250_NR_UARTS=
13
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
...
...
arch/parisc/defconfig
View file @
0b35ff23
...
@@ -517,7 +517,7 @@ CONFIG_HW_CONSOLE=y
...
@@ -517,7 +517,7 @@ CONFIG_HW_CONSOLE=y
#
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=
4
CONFIG_SERIAL_8250_NR_UARTS=
13
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
...
...
drivers/serial/8250.c
View file @
0b35ff23
...
@@ -105,7 +105,7 @@ static struct old_serial_port old_serial_port[] = {
...
@@ -105,7 +105,7 @@ static struct old_serial_port old_serial_port[] = {
SERIAL_PORT_DFNS
/* defined in asm/serial.h */
SERIAL_PORT_DFNS
/* defined in asm/serial.h */
};
};
#define UART_NR
(ARRAY_SIZE(old_serial_port) + CONFIG_SERIAL_8250_NR_UARTS)
#define UART_NR
CONFIG_SERIAL_8250_NR_UARTS
#ifdef CONFIG_SERIAL_8250_RSA
#ifdef CONFIG_SERIAL_8250_RSA
...
@@ -993,21 +993,24 @@ static void autoconfig_irq(struct uart_8250_port *up)
...
@@ -993,21 +993,24 @@ static void autoconfig_irq(struct uart_8250_port *up)
up
->
port
.
irq
=
(
irq
>
0
)
?
irq
:
0
;
up
->
port
.
irq
=
(
irq
>
0
)
?
irq
:
0
;
}
}
static
inline
void
__stop_tx
(
struct
uart_8250_port
*
p
)
{
if
(
p
->
ier
&
UART_IER_THRI
)
{
p
->
ier
&=
~
UART_IER_THRI
;
serial_out
(
p
,
UART_IER
,
p
->
ier
);
}
}
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
;
struct
uart_8250_port
*
up
=
(
struct
uart_8250_port
*
)
port
;
if
(
up
->
ier
&
UART_IER_THRI
)
{
__stop_tx
(
up
);
up
->
ier
&=
~
UART_IER_THRI
;
serial_out
(
up
,
UART_IER
,
up
->
ier
);
}
/*
/*
* We only do this from uart_stop - if we run out of
* We really want to stop the transmitter from sending.
* characters to send, we don't want to prevent the
* FIFO from emptying.
*/
*/
if
(
up
->
port
.
type
==
PORT_16C950
&&
tty_stop
)
{
if
(
up
->
port
.
type
==
PORT_16C950
)
{
up
->
acr
|=
UART_ACR_TXDIS
;
up
->
acr
|=
UART_ACR_TXDIS
;
serial_icr_write
(
up
,
UART_ACR
,
up
->
acr
);
serial_icr_write
(
up
,
UART_ACR
,
up
->
acr
);
}
}
...
@@ -1031,10 +1034,11 @@ static void serial8250_start_tx(struct uart_port *port, unsigned int tty_start)
...
@@ -1031,10 +1034,11 @@ static void serial8250_start_tx(struct uart_port *port, unsigned int tty_start)
transmit_chars
(
up
);
transmit_chars
(
up
);
}
}
}
}
/*
/*
*
We only do this from uart_start
*
Re-enable the transmitter if we disabled it.
*/
*/
if
(
tty_start
&&
up
->
port
.
type
==
PORT_16C950
)
{
if
(
up
->
port
.
type
==
PORT_16C950
&&
up
->
acr
&
UART_ACR_TXDIS
)
{
up
->
acr
&=
~
UART_ACR_TXDIS
;
up
->
acr
&=
~
UART_ACR_TXDIS
;
serial_icr_write
(
up
,
UART_ACR
,
up
->
acr
);
serial_icr_write
(
up
,
UART_ACR
,
up
->
acr
);
}
}
...
@@ -1155,7 +1159,7 @@ static _INLINE_ void transmit_chars(struct uart_8250_port *up)
...
@@ -1155,7 +1159,7 @@ static _INLINE_ void transmit_chars(struct uart_8250_port *up)
return
;
return
;
}
}
if
(
uart_circ_empty
(
xmit
)
||
uart_tx_stopped
(
&
up
->
port
))
{
if
(
uart_circ_empty
(
xmit
)
||
uart_tx_stopped
(
&
up
->
port
))
{
serial8250_stop_tx
(
&
up
->
port
,
0
);
__stop_tx
(
up
);
return
;
return
;
}
}
...
@@ -1174,7 +1178,7 @@ static _INLINE_ void transmit_chars(struct uart_8250_port *up)
...
@@ -1174,7 +1178,7 @@ static _INLINE_ void transmit_chars(struct uart_8250_port *up)
DEBUG_INTR
(
"THRE..."
);
DEBUG_INTR
(
"THRE..."
);
if
(
uart_circ_empty
(
xmit
))
if
(
uart_circ_empty
(
xmit
))
serial8250_stop_tx
(
&
up
->
port
,
0
);
__stop_tx
(
up
);
}
}
static
_INLINE_
void
check_modem_status
(
struct
uart_8250_port
*
up
)
static
_INLINE_
void
check_modem_status
(
struct
uart_8250_port
*
up
)
...
@@ -1376,13 +1380,10 @@ static unsigned int serial8250_tx_empty(struct uart_port *port)
...
@@ -1376,13 +1380,10 @@ static unsigned int serial8250_tx_empty(struct uart_port *port)
static
unsigned
int
serial8250_get_mctrl
(
struct
uart_port
*
port
)
static
unsigned
int
serial8250_get_mctrl
(
struct
uart_port
*
port
)
{
{
struct
uart_8250_port
*
up
=
(
struct
uart_8250_port
*
)
port
;
struct
uart_8250_port
*
up
=
(
struct
uart_8250_port
*
)
port
;
unsigned
long
flags
;
unsigned
char
status
;
unsigned
char
status
;
unsigned
int
ret
;
unsigned
int
ret
;
spin_lock_irqsave
(
&
up
->
port
.
lock
,
flags
);
status
=
serial_in
(
up
,
UART_MSR
);
status
=
serial_in
(
up
,
UART_MSR
);
spin_unlock_irqrestore
(
&
up
->
port
.
lock
,
flags
);
ret
=
0
;
ret
=
0
;
if
(
status
&
UART_MSR_DCD
)
if
(
status
&
UART_MSR_DCD
)
...
...
drivers/serial/Kconfig
View file @
0b35ff23
...
@@ -86,7 +86,7 @@ config SERIAL_8250_ACPI
...
@@ -86,7 +86,7 @@ config SERIAL_8250_ACPI
namespace, say Y here. If unsure, say N.
namespace, say Y here. If unsure, say N.
config SERIAL_8250_NR_UARTS
config SERIAL_8250_NR_UARTS
int "Maximum number of
non-legacy
8250/16550 serial ports"
int "Maximum number of 8250/16550 serial ports"
depends on SERIAL_8250
depends on SERIAL_8250
default "4"
default "4"
help
help
...
...
drivers/serial/au1x00_uart.c
View file @
0b35ff23
...
@@ -556,13 +556,10 @@ static unsigned int serial8250_tx_empty(struct uart_port *port)
...
@@ -556,13 +556,10 @@ static unsigned int serial8250_tx_empty(struct uart_port *port)
static
unsigned
int
serial8250_get_mctrl
(
struct
uart_port
*
port
)
static
unsigned
int
serial8250_get_mctrl
(
struct
uart_port
*
port
)
{
{
struct
uart_8250_port
*
up
=
(
struct
uart_8250_port
*
)
port
;
struct
uart_8250_port
*
up
=
(
struct
uart_8250_port
*
)
port
;
unsigned
long
flags
;
unsigned
char
status
;
unsigned
char
status
;
unsigned
int
ret
;
unsigned
int
ret
;
spin_lock_irqsave
(
&
up
->
port
.
lock
,
flags
);
status
=
serial_in
(
up
,
UART_MSR
);
status
=
serial_in
(
up
,
UART_MSR
);
spin_unlock_irqrestore
(
&
up
->
port
.
lock
,
flags
);
ret
=
0
;
ret
=
0
;
if
(
status
&
UART_MSR_DCD
)
if
(
status
&
UART_MSR_DCD
)
...
...
drivers/serial/ip22zilog.c
View file @
0b35ff23
...
@@ -518,27 +518,28 @@ static irqreturn_t ip22zilog_interrupt(int irq, void *dev_id, struct pt_regs *re
...
@@ -518,27 +518,28 @@ static irqreturn_t ip22zilog_interrupt(int irq, void *dev_id, struct pt_regs *re
static
__inline__
unsigned
char
ip22zilog_read_channel_status
(
struct
uart_port
*
port
)
static
__inline__
unsigned
char
ip22zilog_read_channel_status
(
struct
uart_port
*
port
)
{
{
struct
zilog_channel
*
channel
;
struct
zilog_channel
*
channel
;
unsigned
long
flags
;
unsigned
char
status
;
unsigned
char
status
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
channel
=
ZILOG_CHANNEL_FROM_PORT
(
port
);
channel
=
ZILOG_CHANNEL_FROM_PORT
(
port
);
status
=
readb
(
&
channel
->
control
);
status
=
readb
(
&
channel
->
control
);
ZSDELAY
();
ZSDELAY
();
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
return
status
;
return
status
;
}
}
/* The port lock is not held. */
/* The port lock is not held. */
static
unsigned
int
ip22zilog_tx_empty
(
struct
uart_port
*
port
)
static
unsigned
int
ip22zilog_tx_empty
(
struct
uart_port
*
port
)
{
{
unsigned
long
flags
;
unsigned
char
status
;
unsigned
char
status
;
unsigned
int
ret
;
unsigned
int
ret
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
status
=
ip22zilog_read_channel_status
(
port
);
status
=
ip22zilog_read_channel_status
(
port
);
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
if
(
status
&
Tx_BUF_EMP
)
if
(
status
&
Tx_BUF_EMP
)
ret
=
TIOCSER_TEMT
;
ret
=
TIOCSER_TEMT
;
else
else
...
@@ -547,7 +548,7 @@ static unsigned int ip22zilog_tx_empty(struct uart_port *port)
...
@@ -547,7 +548,7 @@ static unsigned int ip22zilog_tx_empty(struct uart_port *port)
return
ret
;
return
ret
;
}
}
/* The port lock is
not hel
d. */
/* The port lock is
held and interrupts are disable
d. */
static
unsigned
int
ip22zilog_get_mctrl
(
struct
uart_port
*
port
)
static
unsigned
int
ip22zilog_get_mctrl
(
struct
uart_port
*
port
)
{
{
unsigned
char
status
;
unsigned
char
status
;
...
...
drivers/serial/mpsc.c
View file @
0b35ff23
...
@@ -1058,12 +1058,9 @@ mpsc_get_mctrl(struct uart_port *port)
...
@@ -1058,12 +1058,9 @@ mpsc_get_mctrl(struct uart_port *port)
{
{
struct
mpsc_port_info
*
pi
=
(
struct
mpsc_port_info
*
)
port
;
struct
mpsc_port_info
*
pi
=
(
struct
mpsc_port_info
*
)
port
;
u32
mflags
,
status
;
u32
mflags
,
status
;
ulong
iflags
;
spin_lock_irqsave
(
&
pi
->
port
.
lock
,
iflags
);
status
=
(
pi
->
mirror_regs
)
?
pi
->
MPSC_CHR_10_m
:
status
=
(
pi
->
mirror_regs
)
?
pi
->
MPSC_CHR_10_m
:
readl
(
pi
->
mpsc_base
+
MPSC_CHR_10
);
readl
(
pi
->
mpsc_base
+
MPSC_CHR_10
);
spin_unlock_irqrestore
(
&
pi
->
port
.
lock
,
iflags
);
mflags
=
0
;
mflags
=
0
;
if
(
status
&
0x1
)
if
(
status
&
0x1
)
...
...
drivers/serial/pmac_zilog.c
View file @
0b35ff23
...
@@ -604,7 +604,7 @@ static void pmz_set_mctrl(struct uart_port *port, unsigned int mctrl)
...
@@ -604,7 +604,7 @@ static void pmz_set_mctrl(struct uart_port *port, unsigned int mctrl)
/*
/*
* Get Modem Control bits (only the input ones, the core will
* Get Modem Control bits (only the input ones, the core will
* or that with a cached value of the control ones)
* or that with a cached value of the control ones)
* The port lock is
not hel
d.
* The port lock is
held and interrupts are disable
d.
*/
*/
static
unsigned
int
pmz_get_mctrl
(
struct
uart_port
*
port
)
static
unsigned
int
pmz_get_mctrl
(
struct
uart_port
*
port
)
{
{
...
@@ -615,7 +615,7 @@ static unsigned int pmz_get_mctrl(struct uart_port *port)
...
@@ -615,7 +615,7 @@ static unsigned int pmz_get_mctrl(struct uart_port *port)
if
(
ZS_IS_ASLEEP
(
uap
)
||
uap
->
node
==
NULL
)
if
(
ZS_IS_ASLEEP
(
uap
)
||
uap
->
node
==
NULL
)
return
0
;
return
0
;
status
=
pmz_peek_status
(
to_pmz
(
port
)
);
status
=
read_zsreg
(
uap
,
R0
);
ret
=
0
;
ret
=
0
;
if
(
status
&
DCD
)
if
(
status
&
DCD
)
...
...
drivers/serial/pxa.c
View file @
0b35ff23
...
@@ -274,14 +274,11 @@ static unsigned int serial_pxa_tx_empty(struct uart_port *port)
...
@@ -274,14 +274,11 @@ static unsigned int serial_pxa_tx_empty(struct uart_port *port)
static
unsigned
int
serial_pxa_get_mctrl
(
struct
uart_port
*
port
)
static
unsigned
int
serial_pxa_get_mctrl
(
struct
uart_port
*
port
)
{
{
struct
uart_pxa_port
*
up
=
(
struct
uart_pxa_port
*
)
port
;
struct
uart_pxa_port
*
up
=
(
struct
uart_pxa_port
*
)
port
;
unsigned
long
flags
;
unsigned
char
status
;
unsigned
char
status
;
unsigned
int
ret
;
unsigned
int
ret
;
return
TIOCM_CTS
|
TIOCM_DSR
|
TIOCM_CAR
;
return
TIOCM_CTS
|
TIOCM_DSR
|
TIOCM_CAR
;
spin_lock_irqsave
(
&
up
->
port
.
lock
,
flags
);
status
=
serial_in
(
up
,
UART_MSR
);
status
=
serial_in
(
up
,
UART_MSR
);
spin_unlock_irqrestore
(
&
up
->
port
.
lock
,
flags
);
ret
=
0
;
ret
=
0
;
if
(
status
&
UART_MSR_DCD
)
if
(
status
&
UART_MSR_DCD
)
...
...
drivers/serial/serial_core.c
View file @
0b35ff23
...
@@ -182,6 +182,13 @@ static int uart_startup(struct uart_state *state, int init_hw)
...
@@ -182,6 +182,13 @@ static int uart_startup(struct uart_state *state, int init_hw)
uart_set_mctrl
(
port
,
TIOCM_RTS
|
TIOCM_DTR
);
uart_set_mctrl
(
port
,
TIOCM_RTS
|
TIOCM_DTR
);
}
}
if
(
info
->
flags
&
UIF_CTS_FLOW
)
{
spin_lock_irq
(
&
port
->
lock
);
if
(
!
(
port
->
ops
->
get_mctrl
(
port
)
&
TIOCM_CTS
))
info
->
tty
->
hw_stopped
=
1
;
spin_unlock_irq
(
&
port
->
lock
);
}
info
->
flags
|=
UIF_INITIALIZED
;
info
->
flags
|=
UIF_INITIALIZED
;
clear_bit
(
TTY_IO_ERROR
,
&
info
->
tty
->
flags
);
clear_bit
(
TTY_IO_ERROR
,
&
info
->
tty
->
flags
);
...
@@ -828,7 +835,10 @@ static int uart_tiocmget(struct tty_struct *tty, struct file *file)
...
@@ -828,7 +835,10 @@ static int uart_tiocmget(struct tty_struct *tty, struct file *file)
if
((
!
file
||
!
tty_hung_up_p
(
file
))
&&
if
((
!
file
||
!
tty_hung_up_p
(
file
))
&&
!
(
tty
->
flags
&
(
1
<<
TTY_IO_ERROR
)))
{
!
(
tty
->
flags
&
(
1
<<
TTY_IO_ERROR
)))
{
result
=
port
->
mctrl
;
result
=
port
->
mctrl
;
spin_lock_irq
(
&
port
->
lock
);
result
|=
port
->
ops
->
get_mctrl
(
port
);
result
|=
port
->
ops
->
get_mctrl
(
port
);
spin_unlock_irq
(
&
port
->
lock
);
}
}
up
(
&
state
->
sem
);
up
(
&
state
->
sem
);
...
@@ -1131,6 +1141,16 @@ static void uart_set_termios(struct tty_struct *tty, struct termios *old_termios
...
@@ -1131,6 +1141,16 @@ static void uart_set_termios(struct tty_struct *tty, struct termios *old_termios
spin_unlock_irqrestore
(
&
state
->
port
->
lock
,
flags
);
spin_unlock_irqrestore
(
&
state
->
port
->
lock
,
flags
);
}
}
/* Handle turning on CRTSCTS */
if
(
!
(
old_termios
->
c_cflag
&
CRTSCTS
)
&&
(
cflag
&
CRTSCTS
))
{
spin_lock_irqsave
(
&
state
->
port
->
lock
,
flags
);
if
(
!
(
state
->
port
->
ops
->
get_mctrl
(
state
->
port
)
&
TIOCM_CTS
))
{
tty
->
hw_stopped
=
1
;
state
->
port
->
ops
->
stop_tx
(
state
->
port
,
0
);
}
spin_unlock_irqrestore
(
&
state
->
port
->
lock
,
flags
);
}
#if 0
#if 0
/*
/*
* No need to wake up processes in open wait, since they
* No need to wake up processes in open wait, since they
...
@@ -1369,6 +1389,7 @@ uart_block_til_ready(struct file *filp, struct uart_state *state)
...
@@ -1369,6 +1389,7 @@ uart_block_til_ready(struct file *filp, struct uart_state *state)
DECLARE_WAITQUEUE
(
wait
,
current
);
DECLARE_WAITQUEUE
(
wait
,
current
);
struct
uart_info
*
info
=
state
->
info
;
struct
uart_info
*
info
=
state
->
info
;
struct
uart_port
*
port
=
state
->
port
;
struct
uart_port
*
port
=
state
->
port
;
unsigned
int
mctrl
;
info
->
blocked_open
++
;
info
->
blocked_open
++
;
state
->
count
--
;
state
->
count
--
;
...
@@ -1416,7 +1437,10 @@ uart_block_til_ready(struct file *filp, struct uart_state *state)
...
@@ -1416,7 +1437,10 @@ uart_block_til_ready(struct file *filp, struct uart_state *state)
* and wait for the carrier to indicate that the
* and wait for the carrier to indicate that the
* modem is ready for us.
* modem is ready for us.
*/
*/
if
(
port
->
ops
->
get_mctrl
(
port
)
&
TIOCM_CAR
)
spin_lock_irq
(
&
port
->
lock
);
mctrl
=
port
->
ops
->
get_mctrl
(
port
);
spin_unlock_irq
(
&
port
->
lock
);
if
(
mctrl
&
TIOCM_CAR
)
break
;
break
;
up
(
&
state
->
sem
);
up
(
&
state
->
sem
);
...
@@ -1618,7 +1642,9 @@ static int uart_line_info(char *buf, struct uart_driver *drv, int i)
...
@@ -1618,7 +1642,9 @@ static int uart_line_info(char *buf, struct uart_driver *drv, int i)
if
(
capable
(
CAP_SYS_ADMIN
))
if
(
capable
(
CAP_SYS_ADMIN
))
{
{
spin_lock_irq
(
&
port
->
lock
);
status
=
port
->
ops
->
get_mctrl
(
port
);
status
=
port
->
ops
->
get_mctrl
(
port
);
spin_unlock_irq
(
&
port
->
lock
);
ret
+=
sprintf
(
buf
+
ret
,
" tx:%d rx:%d"
,
ret
+=
sprintf
(
buf
+
ret
,
" tx:%d rx:%d"
,
port
->
icount
.
tx
,
port
->
icount
.
rx
);
port
->
icount
.
tx
,
port
->
icount
.
rx
);
...
...
drivers/serial/serial_txx9.c
View file @
0b35ff23
...
@@ -442,13 +442,10 @@ static unsigned int serial_txx9_tx_empty(struct uart_port *port)
...
@@ -442,13 +442,10 @@ static unsigned int serial_txx9_tx_empty(struct uart_port *port)
static
unsigned
int
serial_txx9_get_mctrl
(
struct
uart_port
*
port
)
static
unsigned
int
serial_txx9_get_mctrl
(
struct
uart_port
*
port
)
{
{
struct
uart_txx9_port
*
up
=
(
struct
uart_txx9_port
*
)
port
;
struct
uart_txx9_port
*
up
=
(
struct
uart_txx9_port
*
)
port
;
unsigned
long
flags
;
unsigned
int
ret
;
unsigned
int
ret
;
spin_lock_irqsave
(
&
up
->
port
.
lock
,
flags
);
ret
=
((
sio_in
(
up
,
TXX9_SIFLCR
)
&
TXX9_SIFLCR_RTSSC
)
?
0
:
TIOCM_RTS
)
ret
=
((
sio_in
(
up
,
TXX9_SIFLCR
)
&
TXX9_SIFLCR_RTSSC
)
?
0
:
TIOCM_RTS
)
|
((
sio_in
(
up
,
TXX9_SICISR
)
&
TXX9_SICISR_CTSS
)
?
0
:
TIOCM_CTS
);
|
((
sio_in
(
up
,
TXX9_SICISR
)
&
TXX9_SICISR_CTSS
)
?
0
:
TIOCM_CTS
);
spin_unlock_irqrestore
(
&
up
->
port
.
lock
,
flags
);
return
ret
;
return
ret
;
}
}
...
...
drivers/serial/sunsab.c
View file @
0b35ff23
...
@@ -426,18 +426,15 @@ static void sunsab_set_mctrl(struct uart_port *port, unsigned int mctrl)
...
@@ -426,18 +426,15 @@ static void sunsab_set_mctrl(struct uart_port *port, unsigned int mctrl)
sunsab_tx_idle
(
up
);
sunsab_tx_idle
(
up
);
}
}
/* port->lock is
not hel
d. */
/* port->lock is
held by caller and interrupts are disable
d. */
static
unsigned
int
sunsab_get_mctrl
(
struct
uart_port
*
port
)
static
unsigned
int
sunsab_get_mctrl
(
struct
uart_port
*
port
)
{
{
struct
uart_sunsab_port
*
up
=
(
struct
uart_sunsab_port
*
)
port
;
struct
uart_sunsab_port
*
up
=
(
struct
uart_sunsab_port
*
)
port
;
unsigned
long
flags
;
unsigned
char
val
;
unsigned
char
val
;
unsigned
int
result
;
unsigned
int
result
;
result
=
0
;
result
=
0
;
spin_lock_irqsave
(
&
up
->
port
.
lock
,
flags
);
val
=
readb
(
&
up
->
regs
->
r
.
pvr
);
val
=
readb
(
&
up
->
regs
->
r
.
pvr
);
result
|=
(
val
&
up
->
pvr_dsr_bit
)
?
0
:
TIOCM_DSR
;
result
|=
(
val
&
up
->
pvr_dsr_bit
)
?
0
:
TIOCM_DSR
;
...
@@ -447,8 +444,6 @@ static unsigned int sunsab_get_mctrl(struct uart_port *port)
...
@@ -447,8 +444,6 @@ static unsigned int sunsab_get_mctrl(struct uart_port *port)
val
=
readb
(
&
up
->
regs
->
r
.
star
);
val
=
readb
(
&
up
->
regs
->
r
.
star
);
result
|=
(
val
&
SAB82532_STAR_CTS
)
?
TIOCM_CTS
:
0
;
result
|=
(
val
&
SAB82532_STAR_CTS
)
?
TIOCM_CTS
:
0
;
spin_unlock_irqrestore
(
&
up
->
port
.
lock
,
flags
);
return
result
;
return
result
;
}
}
...
...
drivers/serial/sunsu.c
View file @
0b35ff23
...
@@ -572,13 +572,10 @@ static unsigned int sunsu_tx_empty(struct uart_port *port)
...
@@ -572,13 +572,10 @@ static unsigned int sunsu_tx_empty(struct uart_port *port)
static
unsigned
int
sunsu_get_mctrl
(
struct
uart_port
*
port
)
static
unsigned
int
sunsu_get_mctrl
(
struct
uart_port
*
port
)
{
{
struct
uart_sunsu_port
*
up
=
(
struct
uart_sunsu_port
*
)
port
;
struct
uart_sunsu_port
*
up
=
(
struct
uart_sunsu_port
*
)
port
;
unsigned
long
flags
;
unsigned
char
status
;
unsigned
char
status
;
unsigned
int
ret
;
unsigned
int
ret
;
spin_lock_irqsave
(
&
up
->
port
.
lock
,
flags
);
status
=
serial_in
(
up
,
UART_MSR
);
status
=
serial_in
(
up
,
UART_MSR
);
spin_unlock_irqrestore
(
&
up
->
port
.
lock
,
flags
);
ret
=
0
;
ret
=
0
;
if
(
status
&
UART_MSR_DCD
)
if
(
status
&
UART_MSR_DCD
)
...
...
drivers/serial/sunzilog.c
View file @
0b35ff23
...
@@ -610,27 +610,28 @@ static irqreturn_t sunzilog_interrupt(int irq, void *dev_id, struct pt_regs *reg
...
@@ -610,27 +610,28 @@ static irqreturn_t sunzilog_interrupt(int irq, void *dev_id, struct pt_regs *reg
static
__inline__
unsigned
char
sunzilog_read_channel_status
(
struct
uart_port
*
port
)
static
__inline__
unsigned
char
sunzilog_read_channel_status
(
struct
uart_port
*
port
)
{
{
struct
zilog_channel
__iomem
*
channel
;
struct
zilog_channel
__iomem
*
channel
;
unsigned
long
flags
;
unsigned
char
status
;
unsigned
char
status
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
channel
=
ZILOG_CHANNEL_FROM_PORT
(
port
);
channel
=
ZILOG_CHANNEL_FROM_PORT
(
port
);
status
=
sbus_readb
(
&
channel
->
control
);
status
=
sbus_readb
(
&
channel
->
control
);
ZSDELAY
();
ZSDELAY
();
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
return
status
;
return
status
;
}
}
/* The port lock is not held. */
/* The port lock is not held. */
static
unsigned
int
sunzilog_tx_empty
(
struct
uart_port
*
port
)
static
unsigned
int
sunzilog_tx_empty
(
struct
uart_port
*
port
)
{
{
unsigned
long
flags
;
unsigned
char
status
;
unsigned
char
status
;
unsigned
int
ret
;
unsigned
int
ret
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
status
=
sunzilog_read_channel_status
(
port
);
status
=
sunzilog_read_channel_status
(
port
);
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
if
(
status
&
Tx_BUF_EMP
)
if
(
status
&
Tx_BUF_EMP
)
ret
=
TIOCSER_TEMT
;
ret
=
TIOCSER_TEMT
;
else
else
...
@@ -639,7 +640,7 @@ static unsigned int sunzilog_tx_empty(struct uart_port *port)
...
@@ -639,7 +640,7 @@ static unsigned int sunzilog_tx_empty(struct uart_port *port)
return
ret
;
return
ret
;
}
}
/* The port lock is
not hel
d. */
/* The port lock is
held and interrupts are disable
d. */
static
unsigned
int
sunzilog_get_mctrl
(
struct
uart_port
*
port
)
static
unsigned
int
sunzilog_get_mctrl
(
struct
uart_port
*
port
)
{
{
unsigned
char
status
;
unsigned
char
status
;
...
...
include/asm-alpha/serial.h
View file @
0b35ff23
...
@@ -22,54 +22,9 @@
...
@@ -22,54 +22,9 @@
#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
#endif
#endif
#ifdef CONFIG_SERIAL_MANY_PORTS
#define SERIAL_PORT_DFNS \
#define FOURPORT_FLAGS ASYNC_FOURPORT
#define ACCENT_FLAGS 0
#define BOCA_FLAGS 0
#endif
#define STD_SERIAL_PORT_DEFNS \
/* UART CLK PORT IRQ FLAGS */
\
/* UART CLK PORT IRQ FLAGS */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS },
/* ttyS1 */
\
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS },
/* ttyS1 */
\
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },
/* ttyS2 */
\
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },
/* ttyS2 */
\
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },
/* ttyS3 */
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },
/* ttyS3 */
#ifdef CONFIG_SERIAL_MANY_PORTS
#define EXTRA_SERIAL_PORT_DEFNS \
{ 0, BASE_BAUD, 0x1A0, 9, FOURPORT_FLAGS },
/* ttyS4 */
\
{ 0, BASE_BAUD, 0x1A8, 9, FOURPORT_FLAGS },
/* ttyS5 */
\
{ 0, BASE_BAUD, 0x1B0, 9, FOURPORT_FLAGS },
/* ttyS6 */
\
{ 0, BASE_BAUD, 0x1B8, 9, FOURPORT_FLAGS },
/* ttyS7 */
\
{ 0, BASE_BAUD, 0x2A0, 5, FOURPORT_FLAGS },
/* ttyS8 */
\
{ 0, BASE_BAUD, 0x2A8, 5, FOURPORT_FLAGS },
/* ttyS9 */
\
{ 0, BASE_BAUD, 0x2B0, 5, FOURPORT_FLAGS },
/* ttyS10 */
\
{ 0, BASE_BAUD, 0x2B8, 5, FOURPORT_FLAGS },
/* ttyS11 */
\
{ 0, BASE_BAUD, 0x330, 4, ACCENT_FLAGS },
/* ttyS12 */
\
{ 0, BASE_BAUD, 0x338, 4, ACCENT_FLAGS },
/* ttyS13 */
\
{ 0, BASE_BAUD, 0x000, 0, 0 },
/* ttyS14 (spare) */
\
{ 0, BASE_BAUD, 0x000, 0, 0 },
/* ttyS15 (spare) */
\
{ 0, BASE_BAUD, 0x100, 12, BOCA_FLAGS },
/* ttyS16 */
\
{ 0, BASE_BAUD, 0x108, 12, BOCA_FLAGS },
/* ttyS17 */
\
{ 0, BASE_BAUD, 0x110, 12, BOCA_FLAGS },
/* ttyS18 */
\
{ 0, BASE_BAUD, 0x118, 12, BOCA_FLAGS },
/* ttyS19 */
\
{ 0, BASE_BAUD, 0x120, 12, BOCA_FLAGS },
/* ttyS20 */
\
{ 0, BASE_BAUD, 0x128, 12, BOCA_FLAGS },
/* ttyS21 */
\
{ 0, BASE_BAUD, 0x130, 12, BOCA_FLAGS },
/* ttyS22 */
\
{ 0, BASE_BAUD, 0x138, 12, BOCA_FLAGS },
/* ttyS23 */
\
{ 0, BASE_BAUD, 0x140, 12, BOCA_FLAGS },
/* ttyS24 */
\
{ 0, BASE_BAUD, 0x148, 12, BOCA_FLAGS },
/* ttyS25 */
\
{ 0, BASE_BAUD, 0x150, 12, BOCA_FLAGS },
/* ttyS26 */
\
{ 0, BASE_BAUD, 0x158, 12, BOCA_FLAGS },
/* ttyS27 */
\
{ 0, BASE_BAUD, 0x160, 12, BOCA_FLAGS },
/* ttyS28 */
\
{ 0, BASE_BAUD, 0x168, 12, BOCA_FLAGS },
/* ttyS29 */
\
{ 0, BASE_BAUD, 0x170, 12, BOCA_FLAGS },
/* ttyS30 */
\
{ 0, BASE_BAUD, 0x178, 12, BOCA_FLAGS },
/* ttyS31 */
#else
#define EXTRA_SERIAL_PORT_DEFNS
#endif
#define SERIAL_PORT_DFNS \
STD_SERIAL_PORT_DEFNS \
EXTRA_SERIAL_PORT_DEFNS
include/asm-arm26/serial.h
View file @
0b35ff23
...
@@ -30,34 +30,16 @@
...
@@ -30,34 +30,16 @@
#if defined(CONFIG_ARCH_A5K)
#if defined(CONFIG_ARCH_A5K)
/* UART CLK PORT IRQ FLAGS */
/* UART CLK PORT IRQ FLAGS */
#define S
TD_SERIAL_PORT_DEFNS
\
#define S
ERIAL_PORT_DFNS
\
{ 0, BASE_BAUD, 0x3F8, 10, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x3F8, 10, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x2F8, 10, STD_COM_FLAGS },
/* ttyS1 */
{ 0, BASE_BAUD, 0x2F8, 10, STD_COM_FLAGS },
/* ttyS1 */
#else
#else
#define S
TD_SERIAL_PORT_DEFNS
\
#define S
ERIAL_PORT_DFNS
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS1 */
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS1 */
#endif
#endif
#define EXTRA_SERIAL_PORT_DEFNS \
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS2 */
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS3 */
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS4 */
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS5 */
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS6 */
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS7 */
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS8 */
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS9 */
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS10 */
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS11 */
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS12 */
\
{ 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS },
/* ttyS13 */
#define SERIAL_PORT_DFNS \
STD_SERIAL_PORT_DEFNS \
EXTRA_SERIAL_PORT_DEFNS
#endif
#endif
include/asm-i386/serial.h
View file @
0b35ff23
...
@@ -22,109 +22,9 @@
...
@@ -22,109 +22,9 @@
#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
#endif
#endif
#ifdef CONFIG_SERIAL_MANY_PORTS
#define SERIAL_PORT_DFNS \
#define FOURPORT_FLAGS ASYNC_FOURPORT
#define ACCENT_FLAGS 0
#define BOCA_FLAGS 0
#define HUB6_FLAGS 0
#endif
#define MCA_COM_FLAGS (STD_COM_FLAGS|ASYNC_BOOT_ONLYMCA)
/*
* The following define the access methods for the HUB6 card. All
* access is through two ports for all 24 possible chips. The card is
* selected through the high 2 bits, the port on that card with the
* "middle" 3 bits, and the register on that port with the bottom
* 3 bits.
*
* While the access port and interrupt is configurable, the default
* port locations are 0x302 for the port control register, and 0x303
* for the data read/write register. Normally, the interrupt is at irq3
* but can be anything from 3 to 7 inclusive. Note that using 3 will
* require disabling com2.
*/
#define C_P(card,port) (((card)<<6|(port)<<3) + 1)
#define STD_SERIAL_PORT_DEFNS \
/* UART CLK PORT IRQ FLAGS */
\
/* UART CLK PORT IRQ FLAGS */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS },
/* ttyS1 */
\
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS },
/* ttyS1 */
\
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },
/* ttyS2 */
\
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },
/* ttyS2 */
\
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },
/* ttyS3 */
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },
/* ttyS3 */
#ifdef CONFIG_SERIAL_MANY_PORTS
#define EXTRA_SERIAL_PORT_DEFNS \
{ 0, BASE_BAUD, 0x1A0, 9, FOURPORT_FLAGS },
/* ttyS4 */
\
{ 0, BASE_BAUD, 0x1A8, 9, FOURPORT_FLAGS },
/* ttyS5 */
\
{ 0, BASE_BAUD, 0x1B0, 9, FOURPORT_FLAGS },
/* ttyS6 */
\
{ 0, BASE_BAUD, 0x1B8, 9, FOURPORT_FLAGS },
/* ttyS7 */
\
{ 0, BASE_BAUD, 0x2A0, 5, FOURPORT_FLAGS },
/* ttyS8 */
\
{ 0, BASE_BAUD, 0x2A8, 5, FOURPORT_FLAGS },
/* ttyS9 */
\
{ 0, BASE_BAUD, 0x2B0, 5, FOURPORT_FLAGS },
/* ttyS10 */
\
{ 0, BASE_BAUD, 0x2B8, 5, FOURPORT_FLAGS },
/* ttyS11 */
\
{ 0, BASE_BAUD, 0x330, 4, ACCENT_FLAGS },
/* ttyS12 */
\
{ 0, BASE_BAUD, 0x338, 4, ACCENT_FLAGS },
/* ttyS13 */
\
{ 0, BASE_BAUD, 0x000, 0, 0 },
/* ttyS14 (spare) */
\
{ 0, BASE_BAUD, 0x000, 0, 0 },
/* ttyS15 (spare) */
\
{ 0, BASE_BAUD, 0x100, 12, BOCA_FLAGS },
/* ttyS16 */
\
{ 0, BASE_BAUD, 0x108, 12, BOCA_FLAGS },
/* ttyS17 */
\
{ 0, BASE_BAUD, 0x110, 12, BOCA_FLAGS },
/* ttyS18 */
\
{ 0, BASE_BAUD, 0x118, 12, BOCA_FLAGS },
/* ttyS19 */
\
{ 0, BASE_BAUD, 0x120, 12, BOCA_FLAGS },
/* ttyS20 */
\
{ 0, BASE_BAUD, 0x128, 12, BOCA_FLAGS },
/* ttyS21 */
\
{ 0, BASE_BAUD, 0x130, 12, BOCA_FLAGS },
/* ttyS22 */
\
{ 0, BASE_BAUD, 0x138, 12, BOCA_FLAGS },
/* ttyS23 */
\
{ 0, BASE_BAUD, 0x140, 12, BOCA_FLAGS },
/* ttyS24 */
\
{ 0, BASE_BAUD, 0x148, 12, BOCA_FLAGS },
/* ttyS25 */
\
{ 0, BASE_BAUD, 0x150, 12, BOCA_FLAGS },
/* ttyS26 */
\
{ 0, BASE_BAUD, 0x158, 12, BOCA_FLAGS },
/* ttyS27 */
\
{ 0, BASE_BAUD, 0x160, 12, BOCA_FLAGS },
/* ttyS28 */
\
{ 0, BASE_BAUD, 0x168, 12, BOCA_FLAGS },
/* ttyS29 */
\
{ 0, BASE_BAUD, 0x170, 12, BOCA_FLAGS },
/* ttyS30 */
\
{ 0, BASE_BAUD, 0x178, 12, BOCA_FLAGS },
/* ttyS31 */
#else
#define EXTRA_SERIAL_PORT_DEFNS
#endif
/* You can have up to four HUB6's in the system, but I've only
* included two cards here for a total of twelve ports.
*/
#if (defined(CONFIG_HUB6) && defined(CONFIG_SERIAL_MANY_PORTS))
#define HUB6_SERIAL_PORT_DFNS \
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,0) },
/* ttyS32 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,1) },
/* ttyS33 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,2) },
/* ttyS34 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,3) },
/* ttyS35 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,4) },
/* ttyS36 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,5) },
/* ttyS37 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,0) },
/* ttyS38 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,1) },
/* ttyS39 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,2) },
/* ttyS40 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,3) },
/* ttyS41 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,4) },
/* ttyS42 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,5) },
/* ttyS43 */
#else
#define HUB6_SERIAL_PORT_DFNS
#endif
#ifdef CONFIG_MCA
#define MCA_SERIAL_PORT_DFNS \
{ 0, BASE_BAUD, 0x3220, 3, MCA_COM_FLAGS }, \
{ 0, BASE_BAUD, 0x3228, 3, MCA_COM_FLAGS }, \
{ 0, BASE_BAUD, 0x4220, 3, MCA_COM_FLAGS }, \
{ 0, BASE_BAUD, 0x4228, 3, MCA_COM_FLAGS }, \
{ 0, BASE_BAUD, 0x5220, 3, MCA_COM_FLAGS }, \
{ 0, BASE_BAUD, 0x5228, 3, MCA_COM_FLAGS },
#else
#define MCA_SERIAL_PORT_DFNS
#endif
#define SERIAL_PORT_DFNS \
STD_SERIAL_PORT_DEFNS \
EXTRA_SERIAL_PORT_DEFNS \
HUB6_SERIAL_PORT_DFNS \
MCA_SERIAL_PORT_DFNS
include/asm-m68k/serial.h
View file @
0b35ff23
...
@@ -26,54 +26,9 @@
...
@@ -26,54 +26,9 @@
#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
#endif
#endif
#ifdef CONFIG_SERIAL_MANY_PORTS
#define SERIAL_PORT_DFNS \
#define FOURPORT_FLAGS ASYNC_FOURPORT
#define ACCENT_FLAGS 0
#define BOCA_FLAGS 0
#endif
#define STD_SERIAL_PORT_DEFNS \
/* UART CLK PORT IRQ FLAGS */
\
/* UART CLK PORT IRQ FLAGS */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS },
/* ttyS1 */
\
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS },
/* ttyS1 */
\
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },
/* ttyS2 */
\
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },
/* ttyS2 */
\
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },
/* ttyS3 */
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },
/* ttyS3 */
#ifdef CONFIG_SERIAL_MANY_PORTS
#define EXTRA_SERIAL_PORT_DEFNS \
{ 0, BASE_BAUD, 0x1A0, 9, FOURPORT_FLAGS },
/* ttyS4 */
\
{ 0, BASE_BAUD, 0x1A8, 9, FOURPORT_FLAGS },
/* ttyS5 */
\
{ 0, BASE_BAUD, 0x1B0, 9, FOURPORT_FLAGS },
/* ttyS6 */
\
{ 0, BASE_BAUD, 0x1B8, 9, FOURPORT_FLAGS },
/* ttyS7 */
\
{ 0, BASE_BAUD, 0x2A0, 5, FOURPORT_FLAGS },
/* ttyS8 */
\
{ 0, BASE_BAUD, 0x2A8, 5, FOURPORT_FLAGS },
/* ttyS9 */
\
{ 0, BASE_BAUD, 0x2B0, 5, FOURPORT_FLAGS },
/* ttyS10 */
\
{ 0, BASE_BAUD, 0x2B8, 5, FOURPORT_FLAGS },
/* ttyS11 */
\
{ 0, BASE_BAUD, 0x330, 4, ACCENT_FLAGS },
/* ttyS12 */
\
{ 0, BASE_BAUD, 0x338, 4, ACCENT_FLAGS },
/* ttyS13 */
\
{ 0, BASE_BAUD, 0x000, 0, 0 },
/* ttyS14 (spare) */
\
{ 0, BASE_BAUD, 0x000, 0, 0 },
/* ttyS15 (spare) */
\
{ 0, BASE_BAUD, 0x100, 12, BOCA_FLAGS },
/* ttyS16 */
\
{ 0, BASE_BAUD, 0x108, 12, BOCA_FLAGS },
/* ttyS17 */
\
{ 0, BASE_BAUD, 0x110, 12, BOCA_FLAGS },
/* ttyS18 */
\
{ 0, BASE_BAUD, 0x118, 12, BOCA_FLAGS },
/* ttyS19 */
\
{ 0, BASE_BAUD, 0x120, 12, BOCA_FLAGS },
/* ttyS20 */
\
{ 0, BASE_BAUD, 0x128, 12, BOCA_FLAGS },
/* ttyS21 */
\
{ 0, BASE_BAUD, 0x130, 12, BOCA_FLAGS },
/* ttyS22 */
\
{ 0, BASE_BAUD, 0x138, 12, BOCA_FLAGS },
/* ttyS23 */
\
{ 0, BASE_BAUD, 0x140, 12, BOCA_FLAGS },
/* ttyS24 */
\
{ 0, BASE_BAUD, 0x148, 12, BOCA_FLAGS },
/* ttyS25 */
\
{ 0, BASE_BAUD, 0x150, 12, BOCA_FLAGS },
/* ttyS26 */
\
{ 0, BASE_BAUD, 0x158, 12, BOCA_FLAGS },
/* ttyS27 */
\
{ 0, BASE_BAUD, 0x160, 12, BOCA_FLAGS },
/* ttyS28 */
\
{ 0, BASE_BAUD, 0x168, 12, BOCA_FLAGS },
/* ttyS29 */
\
{ 0, BASE_BAUD, 0x170, 12, BOCA_FLAGS },
/* ttyS30 */
\
{ 0, BASE_BAUD, 0x178, 12, BOCA_FLAGS },
/* ttyS31 */
#else
#define EXTRA_SERIAL_PORT_DEFNS
#endif
#define SERIAL_PORT_DFNS \
STD_SERIAL_PORT_DEFNS \
EXTRA_SERIAL_PORT_DEFNS
include/asm-mips/serial.h
View file @
0b35ff23
...
@@ -29,32 +29,6 @@
...
@@ -29,32 +29,6 @@
#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
#endif
#endif
#ifdef CONFIG_SERIAL_MANY_PORTS
#define FOURPORT_FLAGS ASYNC_FOURPORT
#define ACCENT_FLAGS 0
#define BOCA_FLAGS 0
#define HUB6_FLAGS 0
#define RS_TABLE_SIZE 64
#else
#define RS_TABLE_SIZE
#endif
/*
* The following define the access methods for the HUB6 card. All
* access is through two ports for all 24 possible chips. The card is
* selected through the high 2 bits, the port on that card with the
* "middle" 3 bits, and the register on that port with the bottom
* 3 bits.
*
* While the access port and interrupt is configurable, the default
* port locations are 0x302 for the port control register, and 0x303
* for the data read/write register. Normally, the interrupt is at irq3
* but can be anything from 3 to 7 inclusive. Note that using 3 will
* require disabling com2.
*/
#define C_P(card,port) (((card)<<6|(port)<<3) + 1)
#ifdef CONFIG_MACH_JAZZ
#ifdef CONFIG_MACH_JAZZ
#include <asm/jazz.h>
#include <asm/jazz.h>
...
@@ -240,66 +214,10 @@
...
@@ -240,66 +214,10 @@
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },
/* ttyS2 */
\
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },
/* ttyS2 */
\
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },
/* ttyS3 */
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },
/* ttyS3 */
#ifdef CONFIG_SERIAL_MANY_PORTS
#define EXTRA_SERIAL_PORT_DEFNS \
{ 0, BASE_BAUD, 0x1A0, 9, FOURPORT_FLAGS },
/* ttyS4 */
\
{ 0, BASE_BAUD, 0x1A8, 9, FOURPORT_FLAGS },
/* ttyS5 */
\
{ 0, BASE_BAUD, 0x1B0, 9, FOURPORT_FLAGS },
/* ttyS6 */
\
{ 0, BASE_BAUD, 0x1B8, 9, FOURPORT_FLAGS },
/* ttyS7 */
\
{ 0, BASE_BAUD, 0x2A0, 5, FOURPORT_FLAGS },
/* ttyS8 */
\
{ 0, BASE_BAUD, 0x2A8, 5, FOURPORT_FLAGS },
/* ttyS9 */
\
{ 0, BASE_BAUD, 0x2B0, 5, FOURPORT_FLAGS },
/* ttyS10 */
\
{ 0, BASE_BAUD, 0x2B8, 5, FOURPORT_FLAGS },
/* ttyS11 */
\
{ 0, BASE_BAUD, 0x330, 4, ACCENT_FLAGS },
/* ttyS12 */
\
{ 0, BASE_BAUD, 0x338, 4, ACCENT_FLAGS },
/* ttyS13 */
\
{ 0, BASE_BAUD, 0x000, 0, 0 },
/* ttyS14 (spare) */
\
{ 0, BASE_BAUD, 0x000, 0, 0 },
/* ttyS15 (spare) */
\
{ 0, BASE_BAUD, 0x100, 12, BOCA_FLAGS },
/* ttyS16 */
\
{ 0, BASE_BAUD, 0x108, 12, BOCA_FLAGS },
/* ttyS17 */
\
{ 0, BASE_BAUD, 0x110, 12, BOCA_FLAGS },
/* ttyS18 */
\
{ 0, BASE_BAUD, 0x118, 12, BOCA_FLAGS },
/* ttyS19 */
\
{ 0, BASE_BAUD, 0x120, 12, BOCA_FLAGS },
/* ttyS20 */
\
{ 0, BASE_BAUD, 0x128, 12, BOCA_FLAGS },
/* ttyS21 */
\
{ 0, BASE_BAUD, 0x130, 12, BOCA_FLAGS },
/* ttyS22 */
\
{ 0, BASE_BAUD, 0x138, 12, BOCA_FLAGS },
/* ttyS23 */
\
{ 0, BASE_BAUD, 0x140, 12, BOCA_FLAGS },
/* ttyS24 */
\
{ 0, BASE_BAUD, 0x148, 12, BOCA_FLAGS },
/* ttyS25 */
\
{ 0, BASE_BAUD, 0x150, 12, BOCA_FLAGS },
/* ttyS26 */
\
{ 0, BASE_BAUD, 0x158, 12, BOCA_FLAGS },
/* ttyS27 */
\
{ 0, BASE_BAUD, 0x160, 12, BOCA_FLAGS },
/* ttyS28 */
\
{ 0, BASE_BAUD, 0x168, 12, BOCA_FLAGS },
/* ttyS29 */
\
{ 0, BASE_BAUD, 0x170, 12, BOCA_FLAGS },
/* ttyS30 */
\
{ 0, BASE_BAUD, 0x178, 12, BOCA_FLAGS },
/* ttyS31 */
#else
/* CONFIG_SERIAL_MANY_PORTS */
#define EXTRA_SERIAL_PORT_DEFNS
#endif
/* CONFIG_SERIAL_MANY_PORTS */
#else
/* CONFIG_HAVE_STD_PC_SERIAL_PORTS */
#else
/* CONFIG_HAVE_STD_PC_SERIAL_PORTS */
#define STD_SERIAL_PORT_DEFNS
#define STD_SERIAL_PORT_DEFNS
#define EXTRA_SERIAL_PORT_DEFNS
#endif
/* CONFIG_HAVE_STD_PC_SERIAL_PORTS */
#endif
/* CONFIG_HAVE_STD_PC_SERIAL_PORTS */
/* You can have up to four HUB6's in the system, but I've only
* included two cards here for a total of twelve ports.
*/
#if (defined(CONFIG_HUB6) && defined(CONFIG_SERIAL_MANY_PORTS))
#define HUB6_SERIAL_PORT_DFNS \
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,0) },
/* ttyS32 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,1) },
/* ttyS33 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,2) },
/* ttyS34 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,3) },
/* ttyS35 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,4) },
/* ttyS36 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,5) },
/* ttyS37 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,0) },
/* ttyS38 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,1) },
/* ttyS39 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,2) },
/* ttyS40 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,3) },
/* ttyS41 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,4) },
/* ttyS42 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,5) },
/* ttyS43 */
#else
#define HUB6_SERIAL_PORT_DFNS
#endif
#ifdef CONFIG_MOMENCO_JAGUAR_ATX
#ifdef CONFIG_MOMENCO_JAGUAR_ATX
/* Ordinary NS16552 duart with a 20MHz crystal. */
/* Ordinary NS16552 duart with a 20MHz crystal. */
#define JAGUAR_ATX_UART_CLK 20000000
#define JAGUAR_ATX_UART_CLK 20000000
...
@@ -427,8 +345,6 @@
...
@@ -427,8 +345,6 @@
COBALT_SERIAL_PORT_DEFNS \
COBALT_SERIAL_PORT_DEFNS \
DDB5477_SERIAL_PORT_DEFNS \
DDB5477_SERIAL_PORT_DEFNS \
EV96100_SERIAL_PORT_DEFNS \
EV96100_SERIAL_PORT_DEFNS \
EXTRA_SERIAL_PORT_DEFNS \
HUB6_SERIAL_PORT_DFNS \
IP32_SERIAL_PORT_DEFNS \
IP32_SERIAL_PORT_DEFNS \
ITE_SERIAL_PORT_DEFNS \
ITE_SERIAL_PORT_DEFNS \
IVR_SERIAL_PORT_DEFNS \
IVR_SERIAL_PORT_DEFNS \
...
...
include/asm-parisc/serial.h
View file @
0b35ff23
...
@@ -19,18 +19,4 @@
...
@@ -19,18 +19,4 @@
* A500 w/ PCI serial cards: 5 + 4 * card ~= 17
* A500 w/ PCI serial cards: 5 + 4 * card ~= 17
*/
*/
#define STD_SERIAL_PORT_DEFNS \
#define SERIAL_PORT_DFNS
{ 0, },
/* ttyS0 */
\
{ 0, },
/* ttyS1 */
\
{ 0, },
/* ttyS2 */
\
{ 0, },
/* ttyS3 */
\
{ 0, },
/* ttyS4 */
\
{ 0, },
/* ttyS5 */
\
{ 0, },
/* ttyS6 */
\
{ 0, },
/* ttyS7 */
\
{ 0, },
/* ttyS8 */
#define SERIAL_PORT_DFNS \
STD_SERIAL_PORT_DEFNS
include/asm-ppc/pc_serial.h
View file @
0b35ff23
...
@@ -35,93 +35,9 @@
...
@@ -35,93 +35,9 @@
#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
#endif
#endif
#ifdef CONFIG_SERIAL_MANY_PORTS
#define SERIAL_PORT_DFNS \
#define FOURPORT_FLAGS ASYNC_FOURPORT
#define ACCENT_FLAGS 0
#define BOCA_FLAGS 0
#define HUB6_FLAGS 0
#endif
/*
* The following define the access methods for the HUB6 card. All
* access is through two ports for all 24 possible chips. The card is
* selected through the high 2 bits, the port on that card with the
* "middle" 3 bits, and the register on that port with the bottom
* 3 bits.
*
* While the access port and interrupt is configurable, the default
* port locations are 0x302 for the port control register, and 0x303
* for the data read/write register. Normally, the interrupt is at irq3
* but can be anything from 3 to 7 inclusive. Note that using 3 will
* require disabling com2.
*/
#define C_P(card,port) (((card)<<6|(port)<<3) + 1)
#define STD_SERIAL_PORT_DEFNS \
/* UART CLK PORT IRQ FLAGS */
\
/* UART CLK PORT IRQ FLAGS */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS },
/* ttyS1 */
\
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS },
/* ttyS1 */
\
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },
/* ttyS2 */
\
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },
/* ttyS2 */
\
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },
/* ttyS3 */
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },
/* ttyS3 */
#ifdef CONFIG_SERIAL_MANY_PORTS
#define EXTRA_SERIAL_PORT_DEFNS \
{ 0, BASE_BAUD, 0x1A0, 9, FOURPORT_FLAGS },
/* ttyS4 */
\
{ 0, BASE_BAUD, 0x1A8, 9, FOURPORT_FLAGS },
/* ttyS5 */
\
{ 0, BASE_BAUD, 0x1B0, 9, FOURPORT_FLAGS },
/* ttyS6 */
\
{ 0, BASE_BAUD, 0x1B8, 9, FOURPORT_FLAGS },
/* ttyS7 */
\
{ 0, BASE_BAUD, 0x2A0, 5, FOURPORT_FLAGS },
/* ttyS8 */
\
{ 0, BASE_BAUD, 0x2A8, 5, FOURPORT_FLAGS },
/* ttyS9 */
\
{ 0, BASE_BAUD, 0x2B0, 5, FOURPORT_FLAGS },
/* ttyS10 */
\
{ 0, BASE_BAUD, 0x2B8, 5, FOURPORT_FLAGS },
/* ttyS11 */
\
{ 0, BASE_BAUD, 0x330, 4, ACCENT_FLAGS },
/* ttyS12 */
\
{ 0, BASE_BAUD, 0x338, 4, ACCENT_FLAGS },
/* ttyS13 */
\
{ 0, BASE_BAUD, 0x000, 0, 0 },
/* ttyS14 (spare) */
\
{ 0, BASE_BAUD, 0x000, 0, 0 },
/* ttyS15 (spare) */
\
{ 0, BASE_BAUD, 0x100, 12, BOCA_FLAGS },
/* ttyS16 */
\
{ 0, BASE_BAUD, 0x108, 12, BOCA_FLAGS },
/* ttyS17 */
\
{ 0, BASE_BAUD, 0x110, 12, BOCA_FLAGS },
/* ttyS18 */
\
{ 0, BASE_BAUD, 0x118, 12, BOCA_FLAGS },
/* ttyS19 */
\
{ 0, BASE_BAUD, 0x120, 12, BOCA_FLAGS },
/* ttyS20 */
\
{ 0, BASE_BAUD, 0x128, 12, BOCA_FLAGS },
/* ttyS21 */
\
{ 0, BASE_BAUD, 0x130, 12, BOCA_FLAGS },
/* ttyS22 */
\
{ 0, BASE_BAUD, 0x138, 12, BOCA_FLAGS },
/* ttyS23 */
\
{ 0, BASE_BAUD, 0x140, 12, BOCA_FLAGS },
/* ttyS24 */
\
{ 0, BASE_BAUD, 0x148, 12, BOCA_FLAGS },
/* ttyS25 */
\
{ 0, BASE_BAUD, 0x150, 12, BOCA_FLAGS },
/* ttyS26 */
\
{ 0, BASE_BAUD, 0x158, 12, BOCA_FLAGS },
/* ttyS27 */
\
{ 0, BASE_BAUD, 0x160, 12, BOCA_FLAGS },
/* ttyS28 */
\
{ 0, BASE_BAUD, 0x168, 12, BOCA_FLAGS },
/* ttyS29 */
\
{ 0, BASE_BAUD, 0x170, 12, BOCA_FLAGS },
/* ttyS30 */
\
{ 0, BASE_BAUD, 0x178, 12, BOCA_FLAGS },
/* ttyS31 */
#else
#define EXTRA_SERIAL_PORT_DEFNS
#endif
/* You can have up to four HUB6's in the system, but I've only
* included two cards here for a total of twelve ports.
*/
#if (defined(CONFIG_HUB6) && defined(CONFIG_SERIAL_MANY_PORTS))
#define HUB6_SERIAL_PORT_DFNS \
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,0) },
/* ttyS32 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,1) },
/* ttyS33 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,2) },
/* ttyS34 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,3) },
/* ttyS35 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,4) },
/* ttyS36 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,5) },
/* ttyS37 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,0) },
/* ttyS38 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,1) },
/* ttyS39 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,2) },
/* ttyS40 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,3) },
/* ttyS41 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,4) },
/* ttyS42 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,5) },
/* ttyS43 */
#else
#define HUB6_SERIAL_PORT_DFNS
#endif
#define SERIAL_PORT_DFNS \
STD_SERIAL_PORT_DEFNS \
EXTRA_SERIAL_PORT_DEFNS \
HUB6_SERIAL_PORT_DFNS
include/asm-sh/bigsur/serial.h
View file @
0b35ff23
...
@@ -14,13 +14,10 @@
...
@@ -14,13 +14,10 @@
#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
#define S
TD_SERIAL_PORT_DE
FNS \
#define S
ERIAL_PORT_D
FNS \
/* UART CLK PORT IRQ FLAGS */
\
/* UART CLK PORT IRQ FLAGS */
\
{ 0, BASE_BAUD, 0x3F8, HD64465_IRQ_UART, STD_COM_FLAGS }
/* ttyS0 */
{ 0, BASE_BAUD, 0x3F8, HD64465_IRQ_UART, STD_COM_FLAGS }
/* ttyS0 */
#define SERIAL_PORT_DFNS STD_SERIAL_PORT_DEFNS
/* XXX: This should be moved ino irq.h */
/* XXX: This should be moved ino irq.h */
#define irq_cannonicalize(x) (x)
#define irq_cannonicalize(x) (x)
...
...
include/asm-sh/ec3104/serial.h
View file @
0b35ff23
...
@@ -10,13 +10,11 @@
...
@@ -10,13 +10,11 @@
* it's got the keyboard controller behind it so we can't really use it
* it's got the keyboard controller behind it so we can't really use it
* (without moving the keyboard driver to userspace, which doesn't sound
* (without moving the keyboard driver to userspace, which doesn't sound
* like a very good idea) */
* like a very good idea) */
#define S
TD_SERIAL_PORT_DE
FNS \
#define S
ERIAL_PORT_D
FNS \
/* UART CLK PORT IRQ FLAGS */
\
/* UART CLK PORT IRQ FLAGS */
\
{ 0, BASE_BAUD, 0x11C00, EC3104_IRQBASE+7, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x11C00, EC3104_IRQBASE+7, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x12000, EC3104_IRQBASE+8, STD_COM_FLAGS },
/* ttyS1 */
\
{ 0, BASE_BAUD, 0x12000, EC3104_IRQBASE+8, STD_COM_FLAGS },
/* ttyS1 */
\
{ 0, BASE_BAUD, 0x12400, EC3104_IRQBASE+9, STD_COM_FLAGS },
/* ttyS2 */
{ 0, BASE_BAUD, 0x12400, EC3104_IRQBASE+9, STD_COM_FLAGS },
/* ttyS2 */
#define SERIAL_PORT_DFNS STD_SERIAL_PORT_DEFNS
/* XXX: This should be moved ino irq.h */
/* XXX: This should be moved ino irq.h */
#define irq_cannonicalize(x) (x)
#define irq_cannonicalize(x) (x)
include/asm-sh/serial.h
View file @
0b35ff23
...
@@ -29,20 +29,18 @@
...
@@ -29,20 +29,18 @@
#ifdef CONFIG_HD64465
#ifdef CONFIG_HD64465
#include <asm/hd64465.h>
#include <asm/hd64465.h>
#define S
TD_SERIAL_PORT_DE
FNS \
#define S
ERIAL_PORT_D
FNS \
/* UART CLK PORT IRQ FLAGS */
\
/* UART CLK PORT IRQ FLAGS */
\
{ 0, BASE_BAUD, 0x3F8, HD64465_IRQ_UART, STD_COM_FLAGS }
/* ttyS0 */
{ 0, BASE_BAUD, 0x3F8, HD64465_IRQ_UART, STD_COM_FLAGS }
/* ttyS0 */
#else
#else
#define S
TD_SERIAL_PORT_DE
FNS \
#define S
ERIAL_PORT_D
FNS \
/* UART CLK PORT IRQ FLAGS */
\
/* UART CLK PORT IRQ FLAGS */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }
/* ttyS1 */
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }
/* ttyS1 */
#endif
#endif
#define SERIAL_PORT_DFNS STD_SERIAL_PORT_DEFNS
#endif
#endif
#endif
/* _ASM_SERIAL_H */
#endif
/* _ASM_SERIAL_H */
include/asm-sh64/serial.h
View file @
0b35ff23
...
@@ -20,13 +20,11 @@
...
@@ -20,13 +20,11 @@
#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
#define S
TD_SERIAL_PORT_DE
FNS \
#define S
ERIAL_PORT_D
FNS \
/* UART CLK PORT IRQ FLAGS */
\
/* UART CLK PORT IRQ FLAGS */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }
/* ttyS1 */
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }
/* ttyS1 */
#define SERIAL_PORT_DFNS STD_SERIAL_PORT_DEFNS
/* XXX: This should be moved ino irq.h */
/* XXX: This should be moved ino irq.h */
#define irq_cannonicalize(x) (x)
#define irq_cannonicalize(x) (x)
...
...
include/asm-x86_64/serial.h
View file @
0b35ff23
...
@@ -22,109 +22,9 @@
...
@@ -22,109 +22,9 @@
#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
#endif
#endif
#ifdef CONFIG_SERIAL_MANY_PORTS
#define SERIAL_PORT_DFNS \
#define FOURPORT_FLAGS ASYNC_FOURPORT
#define ACCENT_FLAGS 0
#define BOCA_FLAGS 0
#define HUB6_FLAGS 0
#endif
#define MCA_COM_FLAGS (STD_COM_FLAGS|ASYNC_BOOT_ONLYMCA)
/*
* The following define the access methods for the HUB6 card. All
* access is through two ports for all 24 possible chips. The card is
* selected through the high 2 bits, the port on that card with the
* "middle" 3 bits, and the register on that port with the bottom
* 3 bits.
*
* While the access port and interrupt is configurable, the default
* port locations are 0x302 for the port control register, and 0x303
* for the data read/write register. Normally, the interrupt is at irq3
* but can be anything from 3 to 7 inclusive. Note that using 3 will
* require disabling com2.
*/
#define C_P(card,port) (((card)<<6|(port)<<3) + 1)
#define STD_SERIAL_PORT_DEFNS \
/* UART CLK PORT IRQ FLAGS */
\
/* UART CLK PORT IRQ FLAGS */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS },
/* ttyS0 */
\
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS },
/* ttyS1 */
\
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS },
/* ttyS1 */
\
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },
/* ttyS2 */
\
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS },
/* ttyS2 */
\
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },
/* ttyS3 */
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS },
/* ttyS3 */
#ifdef CONFIG_SERIAL_MANY_PORTS
#define EXTRA_SERIAL_PORT_DEFNS \
{ 0, BASE_BAUD, 0x1A0, 9, FOURPORT_FLAGS },
/* ttyS4 */
\
{ 0, BASE_BAUD, 0x1A8, 9, FOURPORT_FLAGS },
/* ttyS5 */
\
{ 0, BASE_BAUD, 0x1B0, 9, FOURPORT_FLAGS },
/* ttyS6 */
\
{ 0, BASE_BAUD, 0x1B8, 9, FOURPORT_FLAGS },
/* ttyS7 */
\
{ 0, BASE_BAUD, 0x2A0, 5, FOURPORT_FLAGS },
/* ttyS8 */
\
{ 0, BASE_BAUD, 0x2A8, 5, FOURPORT_FLAGS },
/* ttyS9 */
\
{ 0, BASE_BAUD, 0x2B0, 5, FOURPORT_FLAGS },
/* ttyS10 */
\
{ 0, BASE_BAUD, 0x2B8, 5, FOURPORT_FLAGS },
/* ttyS11 */
\
{ 0, BASE_BAUD, 0x330, 4, ACCENT_FLAGS },
/* ttyS12 */
\
{ 0, BASE_BAUD, 0x338, 4, ACCENT_FLAGS },
/* ttyS13 */
\
{ 0, BASE_BAUD, 0x000, 0, 0 },
/* ttyS14 (spare) */
\
{ 0, BASE_BAUD, 0x000, 0, 0 },
/* ttyS15 (spare) */
\
{ 0, BASE_BAUD, 0x100, 12, BOCA_FLAGS },
/* ttyS16 */
\
{ 0, BASE_BAUD, 0x108, 12, BOCA_FLAGS },
/* ttyS17 */
\
{ 0, BASE_BAUD, 0x110, 12, BOCA_FLAGS },
/* ttyS18 */
\
{ 0, BASE_BAUD, 0x118, 12, BOCA_FLAGS },
/* ttyS19 */
\
{ 0, BASE_BAUD, 0x120, 12, BOCA_FLAGS },
/* ttyS20 */
\
{ 0, BASE_BAUD, 0x128, 12, BOCA_FLAGS },
/* ttyS21 */
\
{ 0, BASE_BAUD, 0x130, 12, BOCA_FLAGS },
/* ttyS22 */
\
{ 0, BASE_BAUD, 0x138, 12, BOCA_FLAGS },
/* ttyS23 */
\
{ 0, BASE_BAUD, 0x140, 12, BOCA_FLAGS },
/* ttyS24 */
\
{ 0, BASE_BAUD, 0x148, 12, BOCA_FLAGS },
/* ttyS25 */
\
{ 0, BASE_BAUD, 0x150, 12, BOCA_FLAGS },
/* ttyS26 */
\
{ 0, BASE_BAUD, 0x158, 12, BOCA_FLAGS },
/* ttyS27 */
\
{ 0, BASE_BAUD, 0x160, 12, BOCA_FLAGS },
/* ttyS28 */
\
{ 0, BASE_BAUD, 0x168, 12, BOCA_FLAGS },
/* ttyS29 */
\
{ 0, BASE_BAUD, 0x170, 12, BOCA_FLAGS },
/* ttyS30 */
\
{ 0, BASE_BAUD, 0x178, 12, BOCA_FLAGS },
/* ttyS31 */
#else
#define EXTRA_SERIAL_PORT_DEFNS
#endif
/* You can have up to four HUB6's in the system, but I've only
* included two cards here for a total of twelve ports.
*/
#if (defined(CONFIG_HUB6) && defined(CONFIG_SERIAL_MANY_PORTS))
#define HUB6_SERIAL_PORT_DFNS \
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,0) },
/* ttyS32 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,1) },
/* ttyS33 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,2) },
/* ttyS34 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,3) },
/* ttyS35 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,4) },
/* ttyS36 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(0,5) },
/* ttyS37 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,0) },
/* ttyS38 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,1) },
/* ttyS39 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,2) },
/* ttyS40 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,3) },
/* ttyS41 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,4) },
/* ttyS42 */
\
{ 0, BASE_BAUD, 0x302, 3, HUB6_FLAGS, C_P(1,5) },
/* ttyS43 */
#else
#define HUB6_SERIAL_PORT_DFNS
#endif
#ifdef CONFIG_MCA
#define MCA_SERIAL_PORT_DFNS \
{ 0, BASE_BAUD, 0x3220, 3, MCA_COM_FLAGS }, \
{ 0, BASE_BAUD, 0x3228, 3, MCA_COM_FLAGS }, \
{ 0, BASE_BAUD, 0x4220, 3, MCA_COM_FLAGS }, \
{ 0, BASE_BAUD, 0x4228, 3, MCA_COM_FLAGS }, \
{ 0, BASE_BAUD, 0x5220, 3, MCA_COM_FLAGS }, \
{ 0, BASE_BAUD, 0x5228, 3, MCA_COM_FLAGS },
#else
#define MCA_SERIAL_PORT_DFNS
#endif
#define SERIAL_PORT_DFNS \
STD_SERIAL_PORT_DEFNS \
EXTRA_SERIAL_PORT_DEFNS \
HUB6_SERIAL_PORT_DFNS \
MCA_SERIAL_PORT_DFNS
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