diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/serial/8250_pci.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c index 0e21f583690e..5da61ebbac88 100644 --- a/drivers/serial/8250_pci.c +++ b/drivers/serial/8250_pci.c | |||
@@ -226,8 +226,10 @@ static int __devinit pci_plx9050_init(struct pci_dev *dev) | |||
226 | } | 226 | } |
227 | 227 | ||
228 | irq_config = 0x41; | 228 | irq_config = 0x41; |
229 | if (dev->vendor == PCI_VENDOR_ID_PANACOM) | 229 | if (dev->vendor == PCI_VENDOR_ID_PANACOM || |
230 | dev->subsystem_vendor == PCI_SUBVENDOR_ID_EXSYS) { | ||
230 | irq_config = 0x43; | 231 | irq_config = 0x43; |
232 | } | ||
231 | if ((dev->vendor == PCI_VENDOR_ID_PLX) && | 233 | if ((dev->vendor == PCI_VENDOR_ID_PLX) && |
232 | (dev->device == PCI_DEVICE_ID_PLX_ROMULUS)) { | 234 | (dev->device == PCI_DEVICE_ID_PLX_ROMULUS)) { |
233 | /* | 235 | /* |
@@ -664,6 +666,15 @@ static struct pci_serial_quirk pci_serial_quirks[] = { | |||
664 | { | 666 | { |
665 | .vendor = PCI_VENDOR_ID_PLX, | 667 | .vendor = PCI_VENDOR_ID_PLX, |
666 | .device = PCI_DEVICE_ID_PLX_9050, | 668 | .device = PCI_DEVICE_ID_PLX_9050, |
669 | .subvendor = PCI_SUBVENDOR_ID_EXSYS, | ||
670 | .subdevice = PCI_SUBDEVICE_ID_EXSYS_4055, | ||
671 | .init = pci_plx9050_init, | ||
672 | .setup = pci_default_setup, | ||
673 | .exit = __devexit_p(pci_plx9050_exit), | ||
674 | }, | ||
675 | { | ||
676 | .vendor = PCI_VENDOR_ID_PLX, | ||
677 | .device = PCI_DEVICE_ID_PLX_9050, | ||
667 | .subvendor = PCI_SUBVENDOR_ID_KEYSPAN, | 678 | .subvendor = PCI_SUBVENDOR_ID_KEYSPAN, |
668 | .subdevice = PCI_SUBDEVICE_ID_KEYSPAN_SX2, | 679 | .subdevice = PCI_SUBDEVICE_ID_KEYSPAN_SX2, |
669 | .init = pci_plx9050_init, | 680 | .init = pci_plx9050_init, |
@@ -927,6 +938,7 @@ enum pci_board_num_t { | |||
927 | pbn_panacom, | 938 | pbn_panacom, |
928 | pbn_panacom2, | 939 | pbn_panacom2, |
929 | pbn_panacom4, | 940 | pbn_panacom4, |
941 | pbn_exsys_4055, | ||
930 | pbn_plx_romulus, | 942 | pbn_plx_romulus, |
931 | pbn_oxsemi, | 943 | pbn_oxsemi, |
932 | pbn_intel_i960, | 944 | pbn_intel_i960, |
@@ -1292,6 +1304,13 @@ static struct pciserial_board pci_boards[] __devinitdata = { | |||
1292 | .reg_shift = 7, | 1304 | .reg_shift = 7, |
1293 | }, | 1305 | }, |
1294 | 1306 | ||
1307 | [pbn_exsys_4055] = { | ||
1308 | .flags = FL_BASE2, | ||
1309 | .num_ports = 4, | ||
1310 | .base_baud = 115200, | ||
1311 | .uart_offset = 8, | ||
1312 | }, | ||
1313 | |||
1295 | /* I think this entry is broken - the first_offset looks wrong --rmk */ | 1314 | /* I think this entry is broken - the first_offset looks wrong --rmk */ |
1296 | [pbn_plx_romulus] = { | 1315 | [pbn_plx_romulus] = { |
1297 | .flags = FL_BASE2, | 1316 | .flags = FL_BASE2, |
@@ -1853,6 +1872,10 @@ static struct pci_device_id serial_pci_tbl[] = { | |||
1853 | PCI_SUBVENDOR_ID_CHASE_PCIRAS, | 1872 | PCI_SUBVENDOR_ID_CHASE_PCIRAS, |
1854 | PCI_SUBDEVICE_ID_CHASE_PCIRAS8, 0, 0, | 1873 | PCI_SUBDEVICE_ID_CHASE_PCIRAS8, 0, 0, |
1855 | pbn_b2_8_460800 }, | 1874 | pbn_b2_8_460800 }, |
1875 | { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050, | ||
1876 | PCI_SUBVENDOR_ID_EXSYS, | ||
1877 | PCI_SUBDEVICE_ID_EXSYS_4055, 0, 0, | ||
1878 | pbn_exsys_4055 }, | ||
1856 | /* | 1879 | /* |
1857 | * Megawolf Romulus PCI Serial Card, from Mike Hudson | 1880 | * Megawolf Romulus PCI Serial Card, from Mike Hudson |
1858 | * (Exoray@isys.ca) | 1881 | * (Exoray@isys.ca) |