提交 27266a18 编写于 作者: L Linus Torvalds

Merge master.kernel.org:/home/rmk/linux-2.6-serial

...@@ -439,6 +439,20 @@ static int pci_siig_init(struct pci_dev *dev) ...@@ -439,6 +439,20 @@ static int pci_siig_init(struct pci_dev *dev)
return -ENODEV; return -ENODEV;
} }
static int pci_siig_setup(struct serial_private *priv,
struct pciserial_board *board,
struct uart_port *port, int idx)
{
unsigned int bar = FL_GET_BASE(board->flags) + idx, offset = 0;
if (idx > 3) {
bar = 4;
offset = (idx - 4) * 8;
}
return setup_port(priv, port, bar, offset, 0);
}
/* /*
* Timedia has an explosion of boards, and to avoid the PCI table from * Timedia has an explosion of boards, and to avoid the PCI table from
* growing *huge*, we use this function to collapse some 70 entries * growing *huge*, we use this function to collapse some 70 entries
...@@ -748,7 +762,7 @@ static struct pci_serial_quirk pci_serial_quirks[] = { ...@@ -748,7 +762,7 @@ static struct pci_serial_quirk pci_serial_quirks[] = {
.subvendor = PCI_ANY_ID, .subvendor = PCI_ANY_ID,
.subdevice = PCI_ANY_ID, .subdevice = PCI_ANY_ID,
.init = pci_siig_init, .init = pci_siig_init,
.setup = pci_default_setup, .setup = pci_siig_setup,
}, },
/* /*
* Titan cards * Titan cards
...@@ -2141,6 +2155,15 @@ static struct pci_device_id serial_pci_tbl[] = { ...@@ -2141,6 +2155,15 @@ static struct pci_device_id serial_pci_tbl[] = {
{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_4S_20x_850, { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_4S_20x_850,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
pbn_b0_bt_4_921600 }, pbn_b0_bt_4_921600 },
{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_8S_20x_550,
PCI_ANY_ID, PCI_ANY_ID, 0, 0,
pbn_b0_bt_8_921600 },
{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_8S_20x_650,
PCI_ANY_ID, PCI_ANY_ID, 0, 0,
pbn_b0_bt_8_921600 },
{ PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_8S_20x_850,
PCI_ANY_ID, PCI_ANY_ID, 0, 0,
pbn_b0_bt_8_921600 },
/* /*
* Computone devices submitted by Doug McNash dmcnash@computone.com * Computone devices submitted by Doug McNash dmcnash@computone.com
......
...@@ -98,6 +98,7 @@ config SERIAL_8250_NR_UARTS ...@@ -98,6 +98,7 @@ config SERIAL_8250_NR_UARTS
config SERIAL_8250_RUNTIME_UARTS config SERIAL_8250_RUNTIME_UARTS
int "Number of 8250/16550 serial ports to register at runtime" int "Number of 8250/16550 serial ports to register at runtime"
depends on SERIAL_8250 depends on SERIAL_8250
range 0 SERIAL_8250_NR_UARTS
default "4" default "4"
help help
Set this to the maximum number of serial ports you want Set this to the maximum number of serial ports you want
......
...@@ -2237,7 +2237,7 @@ int uart_add_one_port(struct uart_driver *drv, struct uart_port *port) ...@@ -2237,7 +2237,7 @@ int uart_add_one_port(struct uart_driver *drv, struct uart_port *port)
* If this port is a console, then the spinlock is already * If this port is a console, then the spinlock is already
* initialised. * initialised.
*/ */
if (!uart_console(port)) if (!(uart_console(port) && (port->cons->flags & CON_ENABLED)))
spin_lock_init(&port->lock); spin_lock_init(&port->lock);
uart_configure_port(drv, state, port); uart_configure_port(drv, state, port);
......
...@@ -1670,6 +1670,9 @@ ...@@ -1670,6 +1670,9 @@
#define PCI_DEVICE_ID_SIIG_2S1P_20x_550 0x2060 #define PCI_DEVICE_ID_SIIG_2S1P_20x_550 0x2060
#define PCI_DEVICE_ID_SIIG_2S1P_20x_650 0x2061 #define PCI_DEVICE_ID_SIIG_2S1P_20x_650 0x2061
#define PCI_DEVICE_ID_SIIG_2S1P_20x_850 0x2062 #define PCI_DEVICE_ID_SIIG_2S1P_20x_850 0x2062
#define PCI_DEVICE_ID_SIIG_8S_20x_550 0x2080
#define PCI_DEVICE_ID_SIIG_8S_20x_650 0x2081
#define PCI_DEVICE_ID_SIIG_8S_20x_850 0x2082
#define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050 #define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050
#define PCI_VENDOR_ID_RADISYS 0x1331 #define PCI_VENDOR_ID_RADISYS 0x1331
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册