|
@@ -1032,8 +1032,15 @@ static int pci_oxsemi_tornado_init(struct pci_dev *dev)
|
|
|
return number_uarts;
|
|
|
}
|
|
|
|
|
|
-static int
|
|
|
-pci_default_setup(struct serial_private *priv,
|
|
|
+static int pci_asix_setup(struct serial_private *priv,
|
|
|
+ const struct pciserial_board *board,
|
|
|
+ struct uart_8250_port *port, int idx)
|
|
|
+{
|
|
|
+ port->bugs |= UART_BUG_PARITY;
|
|
|
+ return pci_default_setup(priv, board, port, idx);
|
|
|
+}
|
|
|
+
|
|
|
+static int pci_default_setup(struct serial_private *priv,
|
|
|
const struct pciserial_board *board,
|
|
|
struct uart_8250_port *port, int idx)
|
|
|
{
|
|
@@ -1187,6 +1194,7 @@ pci_xr17c154_setup(struct serial_private *priv,
|
|
|
#define PCIE_DEVICE_ID_NEO_2_OX_IBM 0x00F6
|
|
|
#define PCI_DEVICE_ID_PLX_CRONYX_OMEGA 0xc001
|
|
|
#define PCI_DEVICE_ID_INTEL_PATSBURG_KT 0x1d3d
|
|
|
+#define PCI_VENDOR_ID_ASIX 0x9710
|
|
|
|
|
|
/* Unknown vendors/cards - this should not be in linux/pci_ids.h */
|
|
|
#define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584
|
|
@@ -1726,7 +1734,17 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
|
|
|
.subvendor = PCI_ANY_ID,
|
|
|
.subdevice = PCI_ANY_ID,
|
|
|
.setup = pci_omegapci_setup,
|
|
|
- },
|
|
|
+ },
|
|
|
+ /*
|
|
|
+ * ASIX devices with FIFO bug
|
|
|
+ */
|
|
|
+ {
|
|
|
+ .vendor = PCI_VENDOR_ID_ASIX,
|
|
|
+ .device = PCI_ANY_ID,
|
|
|
+ .subvendor = PCI_ANY_ID,
|
|
|
+ .subdevice = PCI_ANY_ID,
|
|
|
+ .setup = pci_asix_setup,
|
|
|
+ },
|
|
|
/*
|
|
|
* Default "match everything" terminator entry
|
|
|
*/
|