aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomoya MORINAGA <tomoya-linux@dsn.lapis-semi.com>2011-10-07 00:39:49 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-04-22 19:21:44 -0400
commitda980f0d81f788bb0c6ebad031f6eaabf93f47ab (patch)
tree950da4dffe357e27e9458e531006588420af5282
parent9e2c07dbbbc2d24dae3a33c75d1c8ac41c5a6bd2 (diff)
8250_pci: Fix kernel panic when pch_uart is disabled
commit 64d91cfaade2155ad048fe3b65238a052e29dde4 upstream. Currently, ".setup" function is not set. As a result, when detecting our IOH's uart device without pch_uart, kernel panic occurs at the following of pciserial_init_ports(). for (i = 0; i < nr_ports; i++) { if (quirk->setup(priv, board, &serial_port, i)) break; So, this patch adds the ".setup" function. We can use pci_default_setup because our IOH's uart is compatible with 16550. Signed-off-by: Tomoya MORINAGA <tomoya-linux@dsn.lapis-semi.com> Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/tty/serial/8250_pci.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/tty/serial/8250_pci.c b/drivers/tty/serial/8250_pci.c
index ff48fdb5c0b..21098ed9963 100644
--- a/drivers/tty/serial/8250_pci.c
+++ b/drivers/tty/serial/8250_pci.c
@@ -1459,51 +1459,61 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
1459 .vendor = PCI_VENDOR_ID_INTEL, 1459 .vendor = PCI_VENDOR_ID_INTEL,
1460 .device = 0x8811, 1460 .device = 0x8811,
1461 .init = pci_eg20t_init, 1461 .init = pci_eg20t_init,
1462 .setup = pci_default_setup,
1462 }, 1463 },
1463 { 1464 {
1464 .vendor = PCI_VENDOR_ID_INTEL, 1465 .vendor = PCI_VENDOR_ID_INTEL,
1465 .device = 0x8812, 1466 .device = 0x8812,
1466 .init = pci_eg20t_init, 1467 .init = pci_eg20t_init,
1468 .setup = pci_default_setup,
1467 }, 1469 },
1468 { 1470 {
1469 .vendor = PCI_VENDOR_ID_INTEL, 1471 .vendor = PCI_VENDOR_ID_INTEL,
1470 .device = 0x8813, 1472 .device = 0x8813,
1471 .init = pci_eg20t_init, 1473 .init = pci_eg20t_init,
1474 .setup = pci_default_setup,
1472 }, 1475 },
1473 { 1476 {
1474 .vendor = PCI_VENDOR_ID_INTEL, 1477 .vendor = PCI_VENDOR_ID_INTEL,
1475 .device = 0x8814, 1478 .device = 0x8814,
1476 .init = pci_eg20t_init, 1479 .init = pci_eg20t_init,
1480 .setup = pci_default_setup,
1477 }, 1481 },
1478 { 1482 {
1479 .vendor = 0x10DB, 1483 .vendor = 0x10DB,
1480 .device = 0x8027, 1484 .device = 0x8027,
1481 .init = pci_eg20t_init, 1485 .init = pci_eg20t_init,
1486 .setup = pci_default_setup,
1482 }, 1487 },
1483 { 1488 {
1484 .vendor = 0x10DB, 1489 .vendor = 0x10DB,
1485 .device = 0x8028, 1490 .device = 0x8028,
1486 .init = pci_eg20t_init, 1491 .init = pci_eg20t_init,
1492 .setup = pci_default_setup,
1487 }, 1493 },
1488 { 1494 {
1489 .vendor = 0x10DB, 1495 .vendor = 0x10DB,
1490 .device = 0x8029, 1496 .device = 0x8029,
1491 .init = pci_eg20t_init, 1497 .init = pci_eg20t_init,
1498 .setup = pci_default_setup,
1492 }, 1499 },
1493 { 1500 {
1494 .vendor = 0x10DB, 1501 .vendor = 0x10DB,
1495 .device = 0x800C, 1502 .device = 0x800C,
1496 .init = pci_eg20t_init, 1503 .init = pci_eg20t_init,
1504 .setup = pci_default_setup,
1497 }, 1505 },
1498 { 1506 {
1499 .vendor = 0x10DB, 1507 .vendor = 0x10DB,
1500 .device = 0x800D, 1508 .device = 0x800D,
1501 .init = pci_eg20t_init, 1509 .init = pci_eg20t_init,
1510 .setup = pci_default_setup,
1502 }, 1511 },
1503 { 1512 {
1504 .vendor = 0x10DB, 1513 .vendor = 0x10DB,
1505 .device = 0x800D, 1514 .device = 0x800D,
1506 .init = pci_eg20t_init, 1515 .init = pci_eg20t_init,
1516 .setup = pci_default_setup,
1507 }, 1517 },
1508 /* 1518 /*
1509 * Cronyx Omega PCI (PLX-chip based) 1519 * Cronyx Omega PCI (PLX-chip based)