8250_pci: Fix kernel panic when pch_uart is disabled
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: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Родитель
a4a77b1af8
Коммит
64d91cfaad
|
@ -1591,51 +1591,61 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
|
||||||
.vendor = PCI_VENDOR_ID_INTEL,
|
.vendor = PCI_VENDOR_ID_INTEL,
|
||||||
.device = 0x8811,
|
.device = 0x8811,
|
||||||
.init = pci_eg20t_init,
|
.init = pci_eg20t_init,
|
||||||
|
.setup = pci_default_setup,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.vendor = PCI_VENDOR_ID_INTEL,
|
.vendor = PCI_VENDOR_ID_INTEL,
|
||||||
.device = 0x8812,
|
.device = 0x8812,
|
||||||
.init = pci_eg20t_init,
|
.init = pci_eg20t_init,
|
||||||
|
.setup = pci_default_setup,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.vendor = PCI_VENDOR_ID_INTEL,
|
.vendor = PCI_VENDOR_ID_INTEL,
|
||||||
.device = 0x8813,
|
.device = 0x8813,
|
||||||
.init = pci_eg20t_init,
|
.init = pci_eg20t_init,
|
||||||
|
.setup = pci_default_setup,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.vendor = PCI_VENDOR_ID_INTEL,
|
.vendor = PCI_VENDOR_ID_INTEL,
|
||||||
.device = 0x8814,
|
.device = 0x8814,
|
||||||
.init = pci_eg20t_init,
|
.init = pci_eg20t_init,
|
||||||
|
.setup = pci_default_setup,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.vendor = 0x10DB,
|
.vendor = 0x10DB,
|
||||||
.device = 0x8027,
|
.device = 0x8027,
|
||||||
.init = pci_eg20t_init,
|
.init = pci_eg20t_init,
|
||||||
|
.setup = pci_default_setup,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.vendor = 0x10DB,
|
.vendor = 0x10DB,
|
||||||
.device = 0x8028,
|
.device = 0x8028,
|
||||||
.init = pci_eg20t_init,
|
.init = pci_eg20t_init,
|
||||||
|
.setup = pci_default_setup,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.vendor = 0x10DB,
|
.vendor = 0x10DB,
|
||||||
.device = 0x8029,
|
.device = 0x8029,
|
||||||
.init = pci_eg20t_init,
|
.init = pci_eg20t_init,
|
||||||
|
.setup = pci_default_setup,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.vendor = 0x10DB,
|
.vendor = 0x10DB,
|
||||||
.device = 0x800C,
|
.device = 0x800C,
|
||||||
.init = pci_eg20t_init,
|
.init = pci_eg20t_init,
|
||||||
|
.setup = pci_default_setup,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.vendor = 0x10DB,
|
.vendor = 0x10DB,
|
||||||
.device = 0x800D,
|
.device = 0x800D,
|
||||||
.init = pci_eg20t_init,
|
.init = pci_eg20t_init,
|
||||||
|
.setup = pci_default_setup,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.vendor = 0x10DB,
|
.vendor = 0x10DB,
|
||||||
.device = 0x800D,
|
.device = 0x800D,
|
||||||
.init = pci_eg20t_init,
|
.init = pci_eg20t_init,
|
||||||
|
.setup = pci_default_setup,
|
||||||
},
|
},
|
||||||
/*
|
/*
|
||||||
* Cronyx Omega PCI (PLX-chip based)
|
* Cronyx Omega PCI (PLX-chip based)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче