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
0cd3455f
Commit
0cd3455f
authored
Jul 28, 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
fd4588d0
29363ba0
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
128 additions
and
186 deletions
+128
-186
Documentation/serial/driver
Documentation/serial/driver
+5
-4
drivers/serial/21285.c
drivers/serial/21285.c
+4
-18
drivers/serial/8250.c
drivers/serial/8250.c
+9
-26
drivers/serial/8250_pci.c
drivers/serial/8250_pci.c
+79
-13
drivers/serial/amba.c
drivers/serial/amba.c
+3
-24
drivers/serial/anakin.c
drivers/serial/anakin.c
+2
-21
drivers/serial/clps711x.c
drivers/serial/clps711x.c
+3
-18
drivers/serial/core.c
drivers/serial/core.c
+5
-19
drivers/serial/sa1100.c
drivers/serial/sa1100.c
+7
-22
drivers/serial/uart00.c
drivers/serial/uart00.c
+2
-17
include/linux/pci_ids.h
include/linux/pci_ids.h
+9
-4
No files found.
Documentation/serial/driver
View file @
0cd3455f
...
...
@@ -138,15 +138,16 @@ hardware.
Stop receiving characters; the port is in the process of
being closed.
Locking:
none
.
Interrupts:
caller dependent
.
Locking:
port->lock taken
.
Interrupts:
locally disabled
.
This call must not sleep
enable_ms(port)
Enable the modem status interrupts.
Locking: none.
Interrupts: caller dependent.
Locking: port->lock taken.
Interrupts: locally disabled.
This call must not sleep
break_ctl(port,ctl)
Control the transmission of a break signal. If ctl is
...
...
drivers/serial/21285.c
View file @
0cd3455f
...
...
@@ -5,29 +5,19 @@
*
* Based on drivers/char/serial.c
*
* $Id: 21285.c,v 1.3
4 2002/07/22 15:27:32
rmk Exp $
* $Id: 21285.c,v 1.3
7 2002/07/28 10:03:27
rmk Exp $
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/serial.h>
#include <linux/major.h>
#include <linux/ptrace.h>
#include <linux/ioport.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/console.h>
#include <linux/serial_core.h>
#include <linux/serial.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/uaccess.h>
#include <asm/hardware/dec21285.h>
#include <asm/hardware.h>
...
...
@@ -85,14 +75,10 @@ serial21285_start_tx(struct uart_port *port, unsigned int tty_start)
static
void
serial21285_stop_rx
(
struct
uart_port
*
port
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
if
(
rx_enabled
(
port
))
{
disable_irq
(
IRQ_CONRX
);
rx_enabled
(
port
)
=
0
;
}
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
}
static
void
serial21285_enable_ms
(
struct
uart_port
*
port
)
...
...
@@ -514,7 +500,7 @@ static int __init serial21285_init(void)
{
int
ret
;
printk
(
KERN_INFO
"Serial: 21285 driver $Revision: 1.3
4
$
\n
"
);
printk
(
KERN_INFO
"Serial: 21285 driver $Revision: 1.3
7
$
\n
"
);
serial21285_setup_ports
();
...
...
@@ -537,4 +523,4 @@ module_exit(serial21285_exit);
EXPORT_NO_SYMBOLS
;
MODULE_LICENSE
(
"GPL"
);
MODULE_DESCRIPTION
(
"Intel Footbridge (21285) serial driver $Revision: 1.3
4
$"
);
MODULE_DESCRIPTION
(
"Intel Footbridge (21285) serial driver $Revision: 1.3
7
$"
);
drivers/serial/8250.c
View file @
0cd3455f
...
...
@@ -12,7 +12,7 @@
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* $Id: 8250.c,v 1.
84 2002/07/22 15:27:32
rmk Exp $
* $Id: 8250.c,v 1.
90 2002/07/28 10:03:27
rmk Exp $
*
* A note about mapbase / membase
*
...
...
@@ -25,29 +25,17 @@
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/compiler.h>
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/major.h>
#include <linux/slab.h>
#include <linux/ptrace.h>
#include <linux/ioport.h>
#include <linux/init.h>
#include <linux/serial.h>
#include <linux/console.h>
#include <linux/sysrq.h>
#include <linux/serial_reg.h>
#include <linux/serialP.h>
#include <linux/delay.h>
#include <linux/kmod.h>
#include <asm/system.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/uaccess.h>
#include <asm/bitops.h>
#if defined(CONFIG_SERIAL_8250_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
#define SUPPORT_SYSRQ
...
...
@@ -724,24 +712,18 @@ static void serial8250_start_tx(struct uart_port *port, unsigned int tty_start)
static
void
serial8250_stop_rx
(
struct
uart_port
*
port
)
{
struct
uart_8250_port
*
up
=
(
struct
uart_8250_port
*
)
port
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
up
->
port
.
lock
,
flags
);
up
->
ier
&=
~
UART_IER_RLSI
;
up
->
port
.
read_status_mask
&=
~
UART_LSR_DR
;
serial_out
(
up
,
UART_IER
,
up
->
ier
);
spin_unlock_irqrestore
(
&
up
->
port
.
lock
,
flags
);
}
static
void
serial8250_enable_ms
(
struct
uart_port
*
port
)
{
struct
uart_8250_port
*
up
=
(
struct
uart_8250_port
*
)
port
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
up
->
port
.
lock
,
flags
);
up
->
ier
|=
UART_IER_MSI
;
serial_out
(
up
,
UART_IER
,
up
->
ier
);
spin_unlock_irqrestore
(
&
up
->
port
.
lock
,
flags
);
}
static
_INLINE_
void
...
...
@@ -1363,6 +1345,12 @@ serial8250_change_speed(struct uart_port *port, unsigned int cflag,
if
((
cflag
&
CREAD
)
==
0
)
up
->
port
.
ignore_status_mask
|=
UART_LSR_DR
;
/*
* Ok, we're now changing the port state. Do it with
* interrupts disabled.
*/
spin_lock_irqsave
(
&
up
->
port
.
lock
,
flags
);
/*
* CTS flow control flag and modem status interrupts
*/
...
...
@@ -1370,11 +1358,6 @@ serial8250_change_speed(struct uart_port *port, unsigned int cflag,
if
(
UART_ENABLE_MS
(
&
up
->
port
,
cflag
))
up
->
ier
|=
UART_IER_MSI
;
/*
* Ok, we're now changing the port state. Do it with
* interrupts disabled.
*/
spin_lock_irqsave
(
&
up
->
port
.
lock
,
flags
);
serial_out
(
up
,
UART_IER
,
up
->
ier
);
if
(
uart_config
[
up
->
port
.
type
].
flags
&
UART_STARTECH
)
{
...
...
@@ -1956,7 +1939,7 @@ static int __init serial8250_init(void)
{
int
ret
,
i
;
printk
(
KERN_INFO
"Serial: 8250/16550 driver $Revision: 1.
84
$ "
printk
(
KERN_INFO
"Serial: 8250/16550 driver $Revision: 1.
90
$ "
"IRQ sharing %sabled
\n
"
,
share_irqs
?
"en"
:
"dis"
);
for
(
i
=
0
;
i
<
NR_IRQS
;
i
++
)
...
...
@@ -1988,7 +1971,7 @@ EXPORT_SYMBOL(unregister_serial);
EXPORT_SYMBOL
(
serial8250_get_irq_map
);
MODULE_LICENSE
(
"GPL"
);
MODULE_DESCRIPTION
(
"Generic 8250/16x50 serial driver $Revision: 1.
84
$"
);
MODULE_DESCRIPTION
(
"Generic 8250/16x50 serial driver $Revision: 1.
90
$"
);
MODULE_PARM
(
share_irqs
,
"i"
);
MODULE_PARM_DESC
(
share_irqs
,
"Share IRQs with other non-8250/16x50 devices"
...
...
drivers/serial/8250_pci.c
View file @
0cd3455f
...
...
@@ -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: 8250_pci.c,v 1.
19 2002/07/21 21:32:30
rmk Exp $
* $Id: 8250_pci.c,v 1.
24 2002/07/29 14:39:56
rmk Exp $
*/
#include <linux/module.h>
#include <linux/init.h>
...
...
@@ -30,6 +30,7 @@
#include <asm/bitops.h>
#include <asm/byteorder.h>
#include <asm/serial.h>
#include <asm/io.h>
#include "8250.h"
...
...
@@ -137,7 +138,29 @@ get_pci_port(struct pci_dev *dev, struct pci_board *board,
offset
=
8
*
(
idx
-
2
);
}
}
/* HP's Diva chip puts the 4th/5th serial port further out, and
* some serial ports are supposed to be hidden on certain models.
*/
if
(
dev
->
vendor
==
PCI_VENDOR_ID_HP
&&
dev
->
device
==
PCI_DEVICE_ID_HP_DIVA
)
{
switch
(
dev
->
subsystem_device
)
{
case
PCI_DEVICE_ID_HP_DIVA_MAESTRO
:
if
(
idx
==
3
)
idx
++
;
break
;
case
PCI_DEVICE_ID_HP_DIVA_EVEREST
:
if
(
idx
>
0
)
idx
++
;
if
(
idx
>
2
)
idx
++
;
break
;
}
if
(
idx
>
2
)
{
offset
=
0x18
;
}
}
port
=
pci_resource_start
(
dev
,
base_idx
)
+
offset
;
if
((
board
->
flags
&
SPCI_FL_BASE_TABLE
)
==
0
)
...
...
@@ -379,6 +402,41 @@ pci_timedia_fn(struct pci_dev *dev, struct pci_board *board, int enable)
return
0
;
}
/*
* HP's Remote Management Console. The Diva chip came in several
* different versions. N-class, L2000 and A500 have two Diva chips, each
* with 3 UARTs (the third UART on the second chip is unused). Superdome
* and Keystone have one Diva chip with 3 UARTs. Some later machines have
* one Diva chip, but it has been expanded to 5 UARTs.
*/
static
int
__devinit
pci_hp_diva
(
struct
pci_dev
*
dev
,
struct
pci_board
*
board
,
int
enable
)
{
if
(
!
enable
)
return
0
;
switch
(
dev
->
subsystem_device
)
{
case
PCI_DEVICE_ID_HP_DIVA_TOSCA1
:
case
PCI_DEVICE_ID_HP_DIVA_HALFDOME
:
case
PCI_DEVICE_ID_HP_DIVA_KEYSTONE
:
case
PCI_DEVICE_ID_HP_DIVA_EVEREST
:
board
->
num_ports
=
3
;
break
;
case
PCI_DEVICE_ID_HP_DIVA_TOSCA2
:
board
->
num_ports
=
2
;
break
;
case
PCI_DEVICE_ID_HP_DIVA_MAESTRO
:
board
->
num_ports
=
4
;
break
;
case
PCI_DEVICE_ID_HP_DIVA_POWERBAR
:
board
->
num_ports
=
1
;
break
;
}
return
0
;
}
static
int
__devinit
pci_xircom_fn
(
struct
pci_dev
*
dev
,
struct
pci_board
*
board
,
int
enable
)
{
...
...
@@ -423,6 +481,7 @@ enum pci_board_num_t {
pbn_b1_4_1382400
,
pbn_b1_8_1382400
,
pbn_b2_1_115200
,
pbn_b2_8_115200
,
pbn_b2_4_460800
,
pbn_b2_8_460800
,
...
...
@@ -443,6 +502,7 @@ enum pci_board_num_t {
pbn_timedia
,
pbn_intel_i960
,
pbn_sgi_ioc3
,
pbn_hp_diva
,
pbn_nec_nile4
,
pbn_dci_pccom4
,
...
...
@@ -501,6 +561,7 @@ static struct pci_board pci_boards[] __devinitdata = {
{
SPCI_FL_BASE1
,
4
,
1382400
},
/* pbn_b1_4_1382400 */
{
SPCI_FL_BASE1
,
8
,
1382400
},
/* pbn_b1_8_1382400 */
{
SPCI_FL_BASE2
,
1
,
115200
},
/* pbn_b2_1_115200 */
{
SPCI_FL_BASE2
,
8
,
115200
},
/* pbn_b2_8_115200 */
{
SPCI_FL_BASE2
,
4
,
460800
},
/* pbn_b2_4_460800 */
{
SPCI_FL_BASE2
,
8
,
460800
},
/* pbn_b2_8_460800 */
...
...
@@ -531,6 +592,7 @@ static struct pci_board pci_boards[] __devinitdata = {
8
<<
2
,
2
,
pci_inteli960ni_fn
,
0x10000
},
{
SPCI_FL_BASE0
|
SPCI_FL_IRQRESOURCE
,
/* pbn_sgi_ioc3 */
1
,
458333
,
0
,
0
,
0
,
0x20178
},
{
SPCI_FL_BASE0
,
5
,
115200
,
8
,
0
,
pci_hp_diva
,
0
},
/* pbn_hp_diva */
/*
* NEC Vrc-5074 (Nile 4) builtin UART.
...
...
@@ -636,9 +698,10 @@ static int __devinit pci_init_one(struct pci_dev *dev, const struct pci_device_i
return
rc
;
if
(
ent
->
driver_data
==
pbn_default
&&
serial_pci_guess_board
(
dev
,
board
))
serial_pci_guess_board
(
dev
,
board
))
{
pci_disable_device
(
dev
);
return
-
ENODEV
;
else
if
(
serial_pci_guess_board
(
dev
,
&
tmp
)
==
0
)
{
}
else
if
(
serial_pci_guess_board
(
dev
,
&
tmp
)
==
0
)
{
printk
(
KERN_INFO
"Redundant entry in serial pci_table. "
"Please send the output of
\n
"
"lspci -vv, this message (%d,%d,%d,%d)
\n
"
...
...
@@ -652,8 +715,10 @@ static int __devinit pci_init_one(struct pci_dev *dev, const struct pci_device_i
priv
=
kmalloc
(
sizeof
(
struct
serial_private
)
+
sizeof
(
unsigned
int
)
*
board
->
num_ports
,
GFP_KERNEL
);
if
(
!
priv
)
if
(
!
priv
)
{
pci_disable_device
(
dev
);
return
-
ENOMEM
;
}
/*
* Run the initialization function, if any
...
...
@@ -661,6 +726,7 @@ static int __devinit pci_init_one(struct pci_dev *dev, const struct pci_device_i
if
(
board
->
init_fn
)
{
rc
=
board
->
init_fn
(
dev
,
board
,
1
);
if
(
rc
!=
0
)
{
pci_disable_device
(
dev
);
kfree
(
priv
);
return
rc
;
}
...
...
@@ -1074,6 +1140,14 @@ static struct pci_device_id serial_pci_tbl[] __devinitdata = {
0xFF00
,
0
,
0
,
0
,
pbn_sgi_ioc3
},
/* HP Diva card */
{
PCI_VENDOR_ID_HP
,
PCI_DEVICE_ID_HP_DIVA
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
pbn_hp_diva
},
{
PCI_VENDOR_ID_HP
,
PCI_DEVICE_ID_HP_DIVA_AUX
,
PCI_ANY_ID
,
PCI_ANY_ID
,
0
,
0
,
pbn_b2_1_115200
},
/*
* NEC Vrc-5074 (Nile 4) builtin UART.
*/
...
...
@@ -1103,14 +1177,6 @@ static struct pci_device_id serial_pci_tbl[] __devinitdata = {
{
0
,
}
};
#ifndef __devexit_p
#if defined(MODULE) || defined(CONFIG_HOTPLUG)
#define __devexit_p(x) x
#else
#define __devexit_p(x) NULL
#endif
#endif
static
struct
pci_driver
serial_pci_driver
=
{
.
name
=
"serial"
,
.
probe
=
pci_init_one
,
...
...
drivers/serial/amba.c
View file @
0cd3455f
...
...
@@ -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: amba.c,v 1.
37 2002/07/22 15:27:32
rmk Exp $
* $Id: amba.c,v 1.
41 2002/07/28 10:03:27
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.
...
...
@@ -33,30 +33,15 @@
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/major.h>
#include <linux/string.h>
#include <linux/fcntl.h>
#include <linux/ptrace.h>
#include <linux/ioport.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/circ_buf.h>
#include <linux/serial.h>
#include <linux/console.h>
#include <linux/sysrq.h>
#include <asm/system.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/uaccess.h>
#include <asm/bitops.h>
#if defined(CONFIG_SERIAL_AMBA_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
#define SUPPORT_SYSRQ
...
...
@@ -138,26 +123,20 @@ static void ambauart_start_tx(struct uart_port *port, unsigned int tty_start)
static
void
ambauart_stop_rx
(
struct
uart_port
*
port
)
{
unsigned
long
flags
;
unsigned
int
cr
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
cr
=
UART_GET_CR
(
port
);
cr
&=
~
(
AMBA_UARTCR_RIE
|
AMBA_UARTCR_RTIE
);
UART_PUT_CR
(
port
,
cr
);
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
}
static
void
ambauart_enable_ms
(
struct
uart_port
*
port
)
{
unsigned
long
flags
;
unsigned
int
cr
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
cr
=
UART_GET_CR
(
port
);
cr
|=
AMBA_UARTCR_MSIE
;
UART_PUT_CR
(
port
,
cr
);
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
}
static
void
...
...
@@ -742,7 +721,7 @@ static int __init ambauart_init(void)
{
int
ret
;
printk
(
KERN_INFO
"Serial: AMBA driver $Revision: 1.
37
$
\n
"
);
printk
(
KERN_INFO
"Serial: AMBA driver $Revision: 1.
41
$
\n
"
);
ret
=
uart_register_driver
(
&
amba_reg
);
if
(
ret
==
0
)
{
...
...
@@ -770,5 +749,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.
37
$"
);
MODULE_DESCRIPTION
(
"ARM AMBA serial port driver $Revision: 1.
41
$"
);
MODULE_LICENSE
(
"GPL"
);
drivers/serial/anakin.c
View file @
0cd3455f
...
...
@@ -19,35 +19,20 @@
* SA_INTERRUPT. Works reliably now. No longer requires
* changes to the serial_core API.
*
* $Id: anakin.c,v 1.
29 2002/07/22 15:27:32
rmk Exp $
* $Id: anakin.c,v 1.
32 2002/07/28 10:03:27
rmk Exp $
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/major.h>
#include <linux/string.h>
#include <linux/fcntl.h>
#include <linux/ptrace.h>
#include <linux/ioport.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/circ_buf.h>
#include <linux/serial.h>
#include <linux/console.h>
#include <linux/sysrq.h>
#include <asm/system.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/uaccess.h>
#include <asm/bitops.h>
#include <linux/serial_core.h>
...
...
@@ -119,13 +104,9 @@ anakin_start_tx(struct uart_port *port, unsigned int tty_start)
static
void
anakin_stop_rx
(
struct
uart_port
*
port
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
while
(
anakin_in
(
port
,
0x10
)
&
RXRELEASE
)
anakin_in
(
port
,
0x14
);
anakin_out
(
port
,
0x18
,
anakin_in
(
port
,
0x18
)
|
BLOCKRX
);
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
}
static
void
...
...
@@ -518,7 +499,7 @@ anakin_init(void)
{
int
ret
;
printk
(
KERN_INFO
"Serial: Anakin driver $Revision: 1.
29
$
\n
"
);
printk
(
KERN_INFO
"Serial: Anakin driver $Revision: 1.
32
$
\n
"
);
ret
=
uart_register_driver
(
&
anakin_reg
);
if
(
ret
==
0
)
{
...
...
drivers/serial/clps711x.c
View file @
0cd3455f
...
...
@@ -22,37 +22,22 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* $Id: clps711x.c,v 1.4
0 2002/07/22 15:27:32
rmk Exp $
* $Id: clps711x.c,v 1.4
2 2002/07/28 10:03:28
rmk Exp $
*
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/major.h>
#include <linux/string.h>
#include <linux/fcntl.h>
#include <linux/ptrace.h>
#include <linux/ioport.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/circ_buf.h>
#include <linux/serial.h>
#include <linux/console.h>
#include <linux/sysrq.h>
#include <linux/spinlock.h>
#include <asm/bitops.h>
#include <asm/hardware.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/system.h>
#include <asm/uaccess.h>
#if defined(CONFIG_SERIAL_CLPS711X_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
#define SUPPORT_SYSRQ
...
...
@@ -597,7 +582,7 @@ static int __init clps711xuart_init(void)
{
int
ret
,
i
;
printk
(
KERN_INFO
"Serial: CLPS711x driver $Revision: 1.4
0
$
\n
"
);
printk
(
KERN_INFO
"Serial: CLPS711x driver $Revision: 1.4
2
$
\n
"
);
ret
=
uart_register_driver
(
&
clps711x_reg
);
if
(
ret
)
...
...
@@ -625,5 +610,5 @@ module_exit(clps711xuart_exit);
EXPORT_NO_SYMBOLS
;
MODULE_AUTHOR
(
"Deep Blue Solutions Ltd"
);
MODULE_DESCRIPTION
(
"CLPS-711x generic serial driver $Revision: 1.4
0
$"
);
MODULE_DESCRIPTION
(
"CLPS-711x generic serial driver $Revision: 1.4
2
$"
);
MODULE_LICENSE
(
"GPL"
);
drivers/serial/core.c
View file @
0cd3455f
...
...
@@ -22,38 +22,22 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* $Id: core.c,v 1.
91 2002/07/22 15:27:32
rmk Exp $
* $Id: core.c,v 1.
100 2002/07/28 10:03:28
rmk Exp $
*
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/major.h>
#include <linux/string.h>
#include <linux/fcntl.h>
#include <linux/ptrace.h>
#include <linux/ioport.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/circ_buf.h>
#include <linux/console.h>
#include <linux/sysrq.h>
#include <linux/pm.h>
#include <linux/serial_core.h>
#include <linux/smp_lock.h>
#include <linux/serial.h>
/* for serial_state and serial_icounter_struct */
#include <asm/system.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/uaccess.h>
#include <asm/bitops.h>
#undef DEBUG
#ifdef DEBUG
...
...
@@ -931,12 +915,12 @@ uart_wait_modem_status(struct uart_info *info, unsigned long arg)
*/
spin_lock_irq
(
&
port
->
lock
);
memcpy
(
&
cprev
,
&
port
->
icount
,
sizeof
(
struct
uart_icount
));
spin_unlock_irq
(
&
port
->
lock
);
/*
* Force modem status interrupts on
*/
port
->
ops
->
enable_ms
(
port
);
spin_unlock_irq
(
&
port
->
lock
);
add_wait_queue
(
&
info
->
delta_msr_wait
,
&
wait
);
for
(;;)
{
...
...
@@ -1200,7 +1184,9 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
* disable the receive line status interrupts.
*/
if
(
info
->
flags
&
UIF_INITIALIZED
)
{
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
port
->
ops
->
stop_rx
(
port
);
spin_unlock_irqrestore
(
&
port
->
lock
,
flags
);
/*
* Before we drop DTR, make sure the UART transmitter
* has completely drained; this is especially
...
...
@@ -1948,8 +1934,8 @@ static int uart_pm_set_state(struct uart_state *state, int pm_state, int oldstat
spin_lock_irq
(
&
port
->
lock
);
ops
->
stop_tx
(
port
,
0
);
ops
->
set_mctrl
(
port
,
0
);
spin_unlock_irq
(
&
port
->
lock
);
ops
->
stop_rx
(
port
);
spin_unlock_irq
(
&
port
->
lock
);
ops
->
shutdown
(
port
);
}
if
(
ops
->
pm
)
...
...
drivers/serial/sa1100.c
View file @
0cd3455f
...
...
@@ -21,35 +21,20 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* $Id: sa1100.c,v 1.
43 2002/07/22 15:27:32
rmk Exp $
* $Id: sa1100.c,v 1.
50 2002/07/29 14:41:04
rmk Exp $
*
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/major.h>
#include <linux/string.h>
#include <linux/fcntl.h>
#include <linux/ptrace.h>
#include <linux/ioport.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/circ_buf.h>
#include <linux/serial.h>
#include <linux/console.h>
#include <linux/sysrq.h>
#include <asm/system.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/uaccess.h>
#include <asm/bitops.h>
#include <asm/hardware.h>
#include <asm/mach/serial_sa1100.h>
...
...
@@ -190,13 +175,10 @@ static void sa1100_start_tx(struct uart_port *port, unsigned int tty_start)
static
void
sa1100_stop_rx
(
struct
uart_port
*
port
)
{
struct
sa1100_port
*
sport
=
(
struct
sa1100_port
*
)
port
;
unsigned
long
flags
;
u32
utcr3
;
spin_lock_irqsave
(
&
sport
->
port
.
lock
,
flags
);
utcr3
=
UART_GET_UTCR3
(
sport
);
UART_PUT_UTCR3
(
sport
,
utcr3
&
~
UTCR3_RIE
);
spin_unlock_irqrestore
(
&
sport
->
port
.
lock
,
flags
);
}
/*
...
...
@@ -426,7 +408,9 @@ static int sa1100_startup(struct uart_port *port)
/*
* Enable modem status interrupts
*/
spin_lock_irq
(
&
sport
->
port
.
lock
);
sa1100_enable_ms
(
&
sport
->
port
);
spin_unlock_irq
(
&
sport
->
port
.
lock
);
return
0
;
}
...
...
@@ -527,10 +511,11 @@ sa1100_change_speed(struct uart_port *port, unsigned int cflag,
UART_PUT_UTSR0
(
sport
,
-
1
);
UART_PUT_UTCR3
(
sport
,
old_utcr3
);
spin_unlock_irqrestore
(
&
sport
->
port
.
lock
,
flags
);
if
(
UART_ENABLE_MS
(
&
sport
->
port
,
cflag
))
sa1100_enable_ms
(
&
sport
->
port
);
spin_unlock_irqrestore
(
&
sport
->
port
.
lock
,
flags
);
}
static
const
char
*
sa1100_type
(
struct
uart_port
*
port
)
...
...
@@ -857,7 +842,7 @@ static int __init sa1100_serial_init(void)
{
int
ret
;
printk
(
KERN_INFO
"Serial: SA11x0 driver $Revision: 1.
43
$
\n
"
);
printk
(
KERN_INFO
"Serial: SA11x0 driver $Revision: 1.
50
$
\n
"
);
sa1100_init_ports
();
ret
=
uart_register_driver
(
&
sa1100_reg
);
...
...
@@ -886,5 +871,5 @@ module_exit(sa1100_serial_exit);
EXPORT_NO_SYMBOLS
;
MODULE_AUTHOR
(
"Deep Blue Solutions Ltd"
);
MODULE_DESCRIPTION
(
"SA1100 generic serial port driver $Revision: 1.
43
$"
);
MODULE_DESCRIPTION
(
"SA1100 generic serial port driver $Revision: 1.
50
$"
);
MODULE_LICENSE
(
"GPL"
);
drivers/serial/uart00.c
View file @
0cd3455f
...
...
@@ -21,36 +21,21 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* $Id: uart00.c,v 1.3
3 2002/07/21 21:32:31
rmk Exp $
* $Id: uart00.c,v 1.3
5 2002/07/28 10:03:28
rmk Exp $
*
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/major.h>
#include <linux/string.h>
#include <linux/fcntl.h>
#include <linux/ptrace.h>
#include <linux/ioport.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/circ_buf.h>
#include <linux/serial.h>
#include <linux/console.h>
#include <linux/sysrq.h>
#include <linux/pld/pld_hotswap.h>
#include <asm/system.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/uaccess.h>
#include <asm/bitops.h>
#include <asm/sizes.h>
#if defined(CONFIG_SERIAL_UART00_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
...
...
@@ -755,7 +740,7 @@ static int __init uart00_init(void)
{
int
result
;
printk
(
KERN_INFO
"Serial: UART00 driver $Revision: 1.3
3
$
\n
"
);
printk
(
KERN_INFO
"Serial: UART00 driver $Revision: 1.3
5
$
\n
"
);
printk
(
KERN_WARNING
"serial_uart00:Using temporary major/minor pairs"
" - these WILL change in the future
\n
"
);
...
...
include/linux/pci_ids.h
View file @
0cd3455f
...
...
@@ -506,13 +506,18 @@
#define PCI_DEVICE_ID_HP_TACHLITE 0x1029
#define PCI_DEVICE_ID_HP_J2585A 0x1030
#define PCI_DEVICE_ID_HP_J2585B 0x1031
#define PCI_DEVICE_ID_HP_SAS 0x1048
#define PCI_DEVICE_ID_HP_DIVA1 0x1049
#define PCI_DEVICE_ID_HP_DIVA2 0x104A
#define PCI_DEVICE_ID_HP_SP2_0 0x104B
#define PCI_DEVICE_ID_HP_DIVA 0x1048
#define PCI_DEVICE_ID_HP_DIVA_TOSCA1 0x1049
#define PCI_DEVICE_ID_HP_DIVA_TOSCA2 0x104A
#define PCI_DEVICE_ID_HP_DIVA_MAESTRO 0x104B
#define PCI_DEVICE_ID_HP_DIVA_HALFDOME 0x1223
#define PCI_DEVICE_ID_HP_DIVA_KEYSTONE 0x1226
#define PCI_DEVICE_ID_HP_DIVA_POWERBAR 0x1227
#define PCI_DEVICE_ID_HP_ZX1_SBA 0x1229
#define PCI_DEVICE_ID_HP_ZX1_IOC 0x122a
#define PCI_DEVICE_ID_HP_ZX1_LBA 0x122e
#define PCI_DEVICE_ID_HP_DIVA_EVEREST 0x1282
#define PCI_DEVICE_ID_HP_DIVA_AUX 0x1290
#define PCI_VENDOR_ID_PCTECH 0x1042
#define PCI_DEVICE_ID_PCTECH_RZ1000 0x1000
...
...
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