Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
[linux-2.6-block.git] / drivers / tty / serial / 8250 / 8250_pci.c
index 85a2eb986ffe86690ec724bcb9d32229b736da1e..beb9d71cd47ae499cc6e9bc585f8affe16d1d8ad 100644 (file)
@@ -1361,9 +1361,6 @@ ce4100_serial_setup(struct serial_private *priv,
 #define BYT_PRV_CLK_N_VAL_SHIFT                16
 #define BYT_PRV_CLK_UPDATE             (1 << 31)
 
-#define BYT_GENERAL_REG                        0x808
-#define BYT_GENERAL_DIS_RTS_N_OVERRIDE (1 << 3)
-
 #define BYT_TX_OVF_INT                 0x820
 #define BYT_TX_OVF_INT_MASK            (1 << 1)
 
@@ -1418,16 +1415,6 @@ byt_set_termios(struct uart_port *p, struct ktermios *termios,
        reg |= BYT_PRV_CLK_EN | BYT_PRV_CLK_UPDATE;
        writel(reg, p->membase + BYT_PRV_CLK);
 
-       /*
-        * If auto-handshake mechanism is not enabled,
-        * disable rts_n override
-        */
-       reg = readl(p->membase + BYT_GENERAL_REG);
-       reg &= ~BYT_GENERAL_DIS_RTS_N_OVERRIDE;
-       if (termios->c_cflag & CRTSCTS)
-               reg |= BYT_GENERAL_DIS_RTS_N_OVERRIDE;
-       writel(reg, p->membase + BYT_GENERAL_REG);
-
        serial8250_do_set_termios(p, termios, old);
 }
 
@@ -1822,6 +1809,7 @@ pci_wch_ch353_setup(struct serial_private *priv,
 #define PCI_DEVICE_ID_COMMTECH_4222PCIE        0x0022
 #define PCI_DEVICE_ID_BROADCOM_TRUMANAGE 0x160a
 #define PCI_DEVICE_ID_AMCC_ADDIDATA_APCI7800 0x818e
+#define PCI_DEVICE_ID_INTEL_QRK_UART   0x0936
 
 #define PCI_VENDOR_ID_SUNIX            0x1fd4
 #define PCI_DEVICE_ID_SUNIX_1999       0x1999
@@ -1932,6 +1920,13 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
                .subdevice      = PCI_ANY_ID,
                .setup          = byt_serial_setup,
        },
+       {
+               .vendor         = PCI_VENDOR_ID_INTEL,
+               .device         = PCI_DEVICE_ID_INTEL_QRK_UART,
+               .subvendor      = PCI_ANY_ID,
+               .subdevice      = PCI_ANY_ID,
+               .setup          = pci_default_setup,
+       },
        {
                .vendor         = PCI_VENDOR_ID_INTEL,
                .device         = PCI_DEVICE_ID_INTEL_BSW_UART1,
@@ -2788,6 +2783,7 @@ enum pci_board_num_t {
        pbn_ADDIDATA_PCIe_8_3906250,
        pbn_ce4100_1_115200,
        pbn_byt,
+       pbn_qrk,
        pbn_omegapci,
        pbn_NETMOS9900_2s_115200,
        pbn_brcm_trumanage,
@@ -3538,6 +3534,12 @@ static struct pciserial_board pci_boards[] = {
                .uart_offset    = 0x80,
                .reg_shift      = 2,
        },
+       [pbn_qrk] = {
+               .flags          = FL_BASE0,
+               .num_ports      = 1,
+               .base_baud      = 2764800,
+               .reg_shift      = 2,
+       },
        [pbn_omegapci] = {
                .flags          = FL_BASE0,
                .num_ports      = 8,
@@ -5247,6 +5249,12 @@ static struct pci_device_id serial_pci_tbl[] = {
                PCI_CLASS_COMMUNICATION_SERIAL << 8, 0xff0000,
                pbn_byt },
 
+       /*
+        * Intel Quark x1000
+        */
+       {       PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_QRK_UART,
+               PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+               pbn_qrk },
        /*
         * Cronyx Omega PCI
         */