serial: 8250_pci: Add support for Pericom PI7C9X795[1248]
Pericom PI7C9X795[1248] are Uno/Dual/Quad/Octal UART devices, this patch enables them, also defines PCI_VENDOR_ID_PERICOM here. Signed-off-by: Adam Lee <adam.lee@canonical.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
736cd79f48
Коммит
89c043a6cb
|
@ -2082,6 +2082,12 @@ pci_wch_ch38x_setup(struct serial_private *priv,
|
||||||
#define PCIE_DEVICE_ID_WCH_CH382_2S1P 0x3250
|
#define PCIE_DEVICE_ID_WCH_CH382_2S1P 0x3250
|
||||||
#define PCIE_DEVICE_ID_WCH_CH384_4S 0x3470
|
#define PCIE_DEVICE_ID_WCH_CH384_4S 0x3470
|
||||||
|
|
||||||
|
#define PCI_VENDOR_ID_PERICOM 0x12D8
|
||||||
|
#define PCI_DEVICE_ID_PERICOM_PI7C9X7951 0x7951
|
||||||
|
#define PCI_DEVICE_ID_PERICOM_PI7C9X7952 0x7952
|
||||||
|
#define PCI_DEVICE_ID_PERICOM_PI7C9X7954 0x7954
|
||||||
|
#define PCI_DEVICE_ID_PERICOM_PI7C9X7958 0x7958
|
||||||
|
|
||||||
/* Unknown vendors/cards - this should not be in linux/pci_ids.h */
|
/* Unknown vendors/cards - this should not be in linux/pci_ids.h */
|
||||||
#define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584
|
#define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584
|
||||||
#define PCI_SUBDEVICE_ID_UNKNOWN_0x1588 0x1588
|
#define PCI_SUBDEVICE_ID_UNKNOWN_0x1588 0x1588
|
||||||
|
@ -2396,27 +2402,12 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
|
||||||
* Pericom
|
* Pericom
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
.vendor = 0x12d8,
|
.vendor = PCI_VENDOR_ID_PERICOM,
|
||||||
.device = 0x7952,
|
.device = PCI_ANY_ID,
|
||||||
.subvendor = PCI_ANY_ID,
|
.subvendor = PCI_ANY_ID,
|
||||||
.subdevice = PCI_ANY_ID,
|
.subdevice = PCI_ANY_ID,
|
||||||
.setup = pci_pericom_setup,
|
.setup = pci_pericom_setup,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
.vendor = 0x12d8,
|
|
||||||
.device = 0x7954,
|
|
||||||
.subvendor = PCI_ANY_ID,
|
|
||||||
.subdevice = PCI_ANY_ID,
|
|
||||||
.setup = pci_pericom_setup,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.vendor = 0x12d8,
|
|
||||||
.device = 0x7958,
|
|
||||||
.subvendor = PCI_ANY_ID,
|
|
||||||
.subdevice = PCI_ANY_ID,
|
|
||||||
.setup = pci_pericom_setup,
|
|
||||||
},
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PLX
|
* PLX
|
||||||
*/
|
*/
|
||||||
|
@ -3121,6 +3112,10 @@ enum pci_board_num_t {
|
||||||
pbn_fintek_8,
|
pbn_fintek_8,
|
||||||
pbn_fintek_12,
|
pbn_fintek_12,
|
||||||
pbn_wch384_4,
|
pbn_wch384_4,
|
||||||
|
pbn_pericom_PI7C9X7951,
|
||||||
|
pbn_pericom_PI7C9X7952,
|
||||||
|
pbn_pericom_PI7C9X7954,
|
||||||
|
pbn_pericom_PI7C9X7958,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -3946,7 +3941,6 @@ static struct pciserial_board pci_boards[] = {
|
||||||
.base_baud = 115200,
|
.base_baud = 115200,
|
||||||
.first_offset = 0x40,
|
.first_offset = 0x40,
|
||||||
},
|
},
|
||||||
|
|
||||||
[pbn_wch384_4] = {
|
[pbn_wch384_4] = {
|
||||||
.flags = FL_BASE0,
|
.flags = FL_BASE0,
|
||||||
.num_ports = 4,
|
.num_ports = 4,
|
||||||
|
@ -3954,6 +3948,33 @@ static struct pciserial_board pci_boards[] = {
|
||||||
.uart_offset = 8,
|
.uart_offset = 8,
|
||||||
.first_offset = 0xC0,
|
.first_offset = 0xC0,
|
||||||
},
|
},
|
||||||
|
/*
|
||||||
|
* Pericom PI7C9X795[1248] Uno/Dual/Quad/Octal UART
|
||||||
|
*/
|
||||||
|
[pbn_pericom_PI7C9X7951] = {
|
||||||
|
.flags = FL_BASE0,
|
||||||
|
.num_ports = 1,
|
||||||
|
.base_baud = 921600,
|
||||||
|
.uart_offset = 0x8,
|
||||||
|
},
|
||||||
|
[pbn_pericom_PI7C9X7952] = {
|
||||||
|
.flags = FL_BASE0,
|
||||||
|
.num_ports = 2,
|
||||||
|
.base_baud = 921600,
|
||||||
|
.uart_offset = 0x8,
|
||||||
|
},
|
||||||
|
[pbn_pericom_PI7C9X7954] = {
|
||||||
|
.flags = FL_BASE0,
|
||||||
|
.num_ports = 4,
|
||||||
|
.base_baud = 921600,
|
||||||
|
.uart_offset = 0x8,
|
||||||
|
},
|
||||||
|
[pbn_pericom_PI7C9X7958] = {
|
||||||
|
.flags = FL_BASE0,
|
||||||
|
.num_ports = 8,
|
||||||
|
.base_baud = 921600,
|
||||||
|
.uart_offset = 0x8,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct pci_device_id blacklist[] = {
|
static const struct pci_device_id blacklist[] = {
|
||||||
|
@ -5218,6 +5239,25 @@ static struct pci_device_id serial_pci_tbl[] = {
|
||||||
PCI_ANY_ID, PCI_ANY_ID,
|
PCI_ANY_ID, PCI_ANY_ID,
|
||||||
0,
|
0,
|
||||||
0, pbn_exar_XR17V8358 },
|
0, pbn_exar_XR17V8358 },
|
||||||
|
/*
|
||||||
|
* Pericom PI7C9X795[1248] Uno/Dual/Quad/Octal UART
|
||||||
|
*/
|
||||||
|
{ PCI_VENDOR_ID_PERICOM, PCI_DEVICE_ID_PERICOM_PI7C9X7951,
|
||||||
|
PCI_ANY_ID, PCI_ANY_ID,
|
||||||
|
0,
|
||||||
|
0, pbn_pericom_PI7C9X7951 },
|
||||||
|
{ PCI_VENDOR_ID_PERICOM, PCI_DEVICE_ID_PERICOM_PI7C9X7952,
|
||||||
|
PCI_ANY_ID, PCI_ANY_ID,
|
||||||
|
0,
|
||||||
|
0, pbn_pericom_PI7C9X7952 },
|
||||||
|
{ PCI_VENDOR_ID_PERICOM, PCI_DEVICE_ID_PERICOM_PI7C9X7954,
|
||||||
|
PCI_ANY_ID, PCI_ANY_ID,
|
||||||
|
0,
|
||||||
|
0, pbn_pericom_PI7C9X7954 },
|
||||||
|
{ PCI_VENDOR_ID_PERICOM, PCI_DEVICE_ID_PERICOM_PI7C9X7958,
|
||||||
|
PCI_ANY_ID, PCI_ANY_ID,
|
||||||
|
0,
|
||||||
|
0, pbn_pericom_PI7C9X7958 },
|
||||||
/*
|
/*
|
||||||
* Topic TP560 Data/Fax/Voice 56k modem (reported by Evan Clarke)
|
* Topic TP560 Data/Fax/Voice 56k modem (reported by Evan Clarke)
|
||||||
*/
|
*/
|
||||||
|
|
Загрузка…
Ссылка в новой задаче