diff options
author | Tomoya MORINAGA <tomoya-linux@dsn.lapis-semi.com> | 2011-10-07 00:39:49 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-04-22 19:21:44 -0400 |
commit | da980f0d81f788bb0c6ebad031f6eaabf93f47ab (patch) | |
tree | 950da4dffe357e27e9458e531006588420af5282 | |
parent | 9e2c07dbbbc2d24dae3a33c75d1c8ac41c5a6bd2 (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.c | 10 |
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) |