History

Merge tag 'tty-4.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty

Pull serial driver fixes from Greg KH: "Here are some small serial driver fixes for 4.8-rc5. One fixes an oft-reported build issue with the fintek driver, another reverts a patch that was causing problems, one fixes a crash, and some new device ids were added. All of these have been in linux-next for a while" * tag 'tty-4.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: serial: 8250: added acces i/o products quad and octal serial cards serial: 8250_mid: fix divide error bug if baud rate is 0 Revert "tty/serial/8250: use mctrl_gpio helpers" 8250/fintek: rename IRQ_MODE macro

Linus Torvalds committed 10 years ago

Commit 39da9792 parents 70dad49 c8d192410 files · +159 −90Browse files

Unified · Split

10 files
  1. Documentation/devicetree/bindings/serial/8250.txt +0 −19
  2. drivers/tty/serial/8250/8250.h +1 −34
  3. drivers/tty/serial/8250/8250_core.c +0 −9
  4. drivers/tty/serial/8250/8250_fintek.c +2 −2
  5. drivers/tty/serial/8250/8250_mid.c +3 −0
  6. drivers/tty/serial/8250/8250_omap.c +13 −18
  7. drivers/tty/serial/8250/8250_pci.c +139 −0
  8. drivers/tty/serial/8250/8250_port.c +1 −6
  9. drivers/tty/serial/8250/Kconfig +0 −1
  10. include/linux/serial_8250.h +0 −1
Documentation/devicetree/bindings/serial/8250.txt+0−19
@@ -42,9 +42,6 @@ Optional properties: · 41 unmodified lines
42- auto-flow-control: one way to enable automatic flow control support. The42- auto-flow-control: one way to enable automatic flow control support. The
43 driver is allowed to detect support for the capability even without this43 driver is allowed to detect support for the capability even without this
44 property.44 property.
45- {rts,cts,dtr,dsr,rng,dcd}-gpios: specify a GPIO for RTS/CTS/DTR/DSR/RI/DCD
46 line respectively. It will use specified GPIO instead of the peripheral
47 function pin for the UART feature. If unsure, don't specify this property.
48 45
49Note:46Note:
50* fsl,ns16550:47* fsl,ns16550:
@@ -66,19 +63,3 @@ Example: · 15 unmodified lines
66 interrupts = <10>;63 interrupts = <10>;
67 reg-shift = <2>;64 reg-shift = <2>;
68 };65 };
69
70Example for OMAP UART using GPIO-based modem control signals:
71
72 uart4: serial@49042000 {
73 compatible = "ti,omap3-uart";
74 reg = <0x49042000 0x400>;
75 interrupts = <80>;
76 ti,hwmods = "uart4";
77 clock-frequency = <48000000>;
78 cts-gpios = <&gpio3 5 GPIO_ACTIVE_LOW>;
79 rts-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
80 dtr-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
81 dsr-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
82 dcd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
83 rng-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
84 };
drivers/tty/serial/8250/8250.h+1−34
@@ -15,8 +15,6 @@ · 14 unmodified lines
15#include <linux/serial_reg.h>15#include <linux/serial_reg.h>
16#include <linux/dmaengine.h>16#include <linux/dmaengine.h>
17 17
18#include "../serial_mctrl_gpio.h"
19
20struct uart_8250_dma {18struct uart_8250_dma {
21 int (*tx_dma)(struct uart_8250_port *p);19 int (*tx_dma)(struct uart_8250_port *p);
22 int (*rx_dma)(struct uart_8250_port *p);20 int (*rx_dma)(struct uart_8250_port *p);
@@ -133,43 +131,12 @@ void serial8250_em485_destroy(struct uart_8250_port *p); · 110 unmodified lines
133 131
134static inline void serial8250_out_MCR(struct uart_8250_port *up, int value)132static inline void serial8250_out_MCR(struct uart_8250_port *up, int value)
135{133{
136 int mctrl_gpio = 0;
137
138 serial_out(up, UART_MCR, value);134 serial_out(up, UART_MCR, value);
139
140 if (value & UART_MCR_RTS)
141 mctrl_gpio |= TIOCM_RTS;
142 if (value & UART_MCR_DTR)
143 mctrl_gpio |= TIOCM_DTR;
144
145 mctrl_gpio_set(up->gpios, mctrl_gpio);
146}135}
147 136
148static inline int serial8250_in_MCR(struct uart_8250_port *up)137static inline int serial8250_in_MCR(struct uart_8250_port *up)
149{138{
150 int mctrl, mctrl_gpio = 0;139 return serial_in(up, UART_MCR);
151
152 mctrl = serial_in(up, UART_MCR);
153
154 /* save current MCR values */
155 if (mctrl & UART_MCR_RTS)
156 mctrl_gpio |= TIOCM_RTS;
157 if (mctrl & UART_MCR_DTR)
158 mctrl_gpio |= TIOCM_DTR;
159
160 mctrl_gpio = mctrl_gpio_get_outputs(up->gpios, &mctrl_gpio);
161
162 if (mctrl_gpio & TIOCM_RTS)
163 mctrl |= UART_MCR_RTS;
164 else
165 mctrl &= ~UART_MCR_RTS;
166
167 if (mctrl_gpio & TIOCM_DTR)
168 mctrl |= UART_MCR_DTR;
169 else
170 mctrl &= ~UART_MCR_DTR;
171
172 return mctrl;
173}140}
174 141
175#if defined(__alpha__) && !defined(CONFIG_PCI)142#if defined(__alpha__) && !defined(CONFIG_PCI)
drivers/tty/serial/8250/8250_core.c+0−9
@@ -974,8 +974,6 @@ int serial8250_register_8250_port(struct uart_8250_port *up) · 973 unmodified lines
974 974
975 uart = serial8250_find_match_or_unused(&up->port);975 uart = serial8250_find_match_or_unused(&up->port);
976 if (uart && uart->port.type != PORT_8250_CIR) {976 if (uart && uart->port.type != PORT_8250_CIR) {
977 struct mctrl_gpios *gpios;
978
979 if (uart->port.dev)977 if (uart->port.dev)
980 uart_remove_one_port(&serial8250_reg, &uart->port);978 uart_remove_one_port(&serial8250_reg, &uart->port);
981 979
@@ -1013,13 +1011,6 @@ int serial8250_register_8250_port(struct uart_8250_port *up) · 31 unmodified lines
1013 if (up->port.flags & UPF_FIXED_TYPE)1011 if (up->port.flags & UPF_FIXED_TYPE)
1014 uart->port.type = up->port.type;1012 uart->port.type = up->port.type;
1015 1013
1016 gpios = mctrl_gpio_init(&uart->port, 0);
1017 if (IS_ERR(gpios)) {
1018 if (PTR_ERR(gpios) != -ENOSYS)
1019 return PTR_ERR(gpios);
1020 } else
1021 uart->gpios = gpios;
1022
1023 serial8250_set_defaults(uart);1014 serial8250_set_defaults(uart);
1024 1015
1025 /* Possibly override default I/O functions. */1016 /* Possibly override default I/O functions. */
drivers/tty/serial/8250/8250_fintek.c+2−2
@@ -31,7 +31,7 @@ · 30 unmodified lines
31#define IO_ADDR2 0x6031#define IO_ADDR2 0x60
32#define LDN 0x732#define LDN 0x7
33 33
34#define IRQ_MODE 0x7034#define FINTEK_IRQ_MODE 0x70
35#define IRQ_SHARE BIT(4)35#define IRQ_SHARE BIT(4)
36#define IRQ_MODE_MASK (BIT(6) | BIT(5))36#define IRQ_MODE_MASK (BIT(6) | BIT(5))
37#define IRQ_LEVEL_LOW 037#define IRQ_LEVEL_LOW 0
@@ -195,7 +195,7 @@ static int fintek_8250_set_irq_mode(struct fintek_8250 *pdata, bool level_mode) · 157 unmodified lines
195 outb(LDN, pdata->base_port + ADDR_PORT);195 outb(LDN, pdata->base_port + ADDR_PORT);
196 outb(pdata->index, pdata->base_port + DATA_PORT);196 outb(pdata->index, pdata->base_port + DATA_PORT);
197 197
198 outb(IRQ_MODE, pdata->base_port + ADDR_PORT);198 outb(FINTEK_IRQ_MODE, pdata->base_port + ADDR_PORT);
199 tmp = inb(pdata->base_port + DATA_PORT);199 tmp = inb(pdata->base_port + DATA_PORT);
200 200
201 tmp &= ~IRQ_MODE_MASK;201 tmp &= ~IRQ_MODE_MASK;
drivers/tty/serial/8250/8250_mid.c+3−0
@@ -168,6 +168,9 @@ static void mid8250_set_termios(struct uart_port *p, · 167 unmodified lines
168 unsigned long w = BIT(24) - 1;168 unsigned long w = BIT(24) - 1;
169 unsigned long mul, div;169 unsigned long mul, div;
170 170
171 /* Gracefully handle the B0 case: fall back to B9600 */
172 fuart = fuart ? fuart : 9600 * 16;
173
171 if (mid->board->freq < fuart) {174 if (mid->board->freq < fuart) {
172 /* Find prescaler value that satisfies Fuart < Fref */175 /* Find prescaler value that satisfies Fuart < Fref */
173 if (mid->board->freq > baud)176 if (mid->board->freq > baud)
drivers/tty/serial/8250/8250_omap.c+13−18
@@ -134,21 +134,18 @@ static void omap8250_set_mctrl(struct uart_port *port, unsigned int mctrl) · 133 unmodified lines
134 134
135 serial8250_do_set_mctrl(port, mctrl);135 serial8250_do_set_mctrl(port, mctrl);
136 136
137 if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(up->gpios,137 /*
138 UART_GPIO_RTS))) {138 * Turn off autoRTS if RTS is lowered and restore autoRTS setting
139 /*139 * if RTS is raised
140 * Turn off autoRTS if RTS is lowered and restore autoRTS140 */
141 * setting if RTS is raised141 lcr = serial_in(up, UART_LCR);
142 */142 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
143 lcr = serial_in(up, UART_LCR);143 if ((mctrl & TIOCM_RTS) && (port->status & UPSTAT_AUTORTS))
144 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);144 priv->efr |= UART_EFR_RTS;
145 if ((mctrl & TIOCM_RTS) && (port->status & UPSTAT_AUTORTS))145 else
146 priv->efr |= UART_EFR_RTS;146 priv->efr &= ~UART_EFR_RTS;
147 else147 serial_out(up, UART_EFR, priv->efr);
148 priv->efr &= ~UART_EFR_RTS;148 serial_out(up, UART_LCR, lcr);
149 serial_out(up, UART_EFR, priv->efr);
150 serial_out(up, UART_LCR, lcr);
151 }
152}149}
153 150
154/*151/*
@@ -449,9 +446,7 @@ static void omap_8250_set_termios(struct uart_port *port, · 294 unmodified lines
449 priv->efr = 0;446 priv->efr = 0;
450 up->port.status &= ~(UPSTAT_AUTOCTS | UPSTAT_AUTORTS | UPSTAT_AUTOXOFF);447 up->port.status &= ~(UPSTAT_AUTOCTS | UPSTAT_AUTORTS | UPSTAT_AUTOXOFF);
451 448
452 if (termios->c_cflag & CRTSCTS && up->port.flags & UPF_HARD_FLOW449 if (termios->c_cflag & CRTSCTS && up->port.flags & UPF_HARD_FLOW) {
453 && IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(up->gpios,
454 UART_GPIO_RTS))) {
455 /* Enable AUTOCTS (autoRTS is enabled when RTS is raised) */450 /* Enable AUTOCTS (autoRTS is enabled when RTS is raised) */
456 up->port.status |= UPSTAT_AUTOCTS | UPSTAT_AUTORTS;451 up->port.status |= UPSTAT_AUTOCTS | UPSTAT_AUTORTS;
457 priv->efr |= UART_EFR_CTS;452 priv->efr |= UART_EFR_CTS;
drivers/tty/serial/8250/8250_pci.c+139−0
@@ -1950,6 +1950,43 @@ pci_wch_ch38x_setup(struct serial_private *priv, · 1949 unmodified lines
1950#define PCI_DEVICE_ID_PERICOM_PI7C9X7954 0x79541950#define PCI_DEVICE_ID_PERICOM_PI7C9X7954 0x7954
1951#define PCI_DEVICE_ID_PERICOM_PI7C9X7958 0x79581951#define PCI_DEVICE_ID_PERICOM_PI7C9X7958 0x7958
1952 1952
1953#define PCI_VENDOR_ID_ACCESIO 0x494f
1954#define PCI_DEVICE_ID_ACCESIO_PCIE_COM_2SDB 0x1051
1955#define PCI_DEVICE_ID_ACCESIO_MPCIE_COM_2S 0x1053
1956#define PCI_DEVICE_ID_ACCESIO_PCIE_COM_4SDB 0x105C
1957#define PCI_DEVICE_ID_ACCESIO_MPCIE_COM_4S 0x105E
1958#define PCI_DEVICE_ID_ACCESIO_PCIE_COM232_2DB 0x1091
1959#define PCI_DEVICE_ID_ACCESIO_MPCIE_COM232_2 0x1093
1960#define PCI_DEVICE_ID_ACCESIO_PCIE_COM232_4DB 0x1099
1961#define PCI_DEVICE_ID_ACCESIO_MPCIE_COM232_4 0x109B
1962#define PCI_DEVICE_ID_ACCESIO_PCIE_COM_2SMDB 0x10D1
1963#define PCI_DEVICE_ID_ACCESIO_MPCIE_COM_2SM 0x10D3
1964#define PCI_DEVICE_ID_ACCESIO_PCIE_COM_4SMDB 0x10DA
1965#define PCI_DEVICE_ID_ACCESIO_MPCIE_COM_4SM 0x10DC
1966#define PCI_DEVICE_ID_ACCESIO_MPCIE_ICM485_1 0x1108
1967#define PCI_DEVICE_ID_ACCESIO_MPCIE_ICM422_2 0x1110
1968#define PCI_DEVICE_ID_ACCESIO_MPCIE_ICM485_2 0x1111
1969#define PCI_DEVICE_ID_ACCESIO_MPCIE_ICM422_4 0x1118
1970#define PCI_DEVICE_ID_ACCESIO_MPCIE_ICM485_4 0x1119
1971#define PCI_DEVICE_ID_ACCESIO_PCIE_ICM_2S 0x1152
1972#define PCI_DEVICE_ID_ACCESIO_PCIE_ICM_4S 0x115A
1973#define PCI_DEVICE_ID_ACCESIO_PCIE_ICM232_2 0x1190
1974#define PCI_DEVICE_ID_ACCESIO_MPCIE_ICM232_2 0x1191
1975#define PCI_DEVICE_ID_ACCESIO_PCIE_ICM232_4 0x1198
1976#define PCI_DEVICE_ID_ACCESIO_MPCIE_ICM232_4 0x1199
1977#define PCI_DEVICE_ID_ACCESIO_PCIE_ICM_2SM 0x11D0
1978#define PCI_DEVICE_ID_ACCESIO_PCIE_COM422_4 0x105A
1979#define PCI_DEVICE_ID_ACCESIO_PCIE_COM485_4 0x105B
1980#define PCI_DEVICE_ID_ACCESIO_PCIE_COM422_8 0x106A
1981#define PCI_DEVICE_ID_ACCESIO_PCIE_COM485_8 0x106B
1982#define PCI_DEVICE_ID_ACCESIO_PCIE_COM232_4 0x1098
1983#define PCI_DEVICE_ID_ACCESIO_PCIE_COM232_8 0x10A9
1984#define PCI_DEVICE_ID_ACCESIO_PCIE_COM_4SM 0x10D9
1985#define PCI_DEVICE_ID_ACCESIO_PCIE_COM_8SM 0x10E9
1986#define PCI_DEVICE_ID_ACCESIO_PCIE_ICM_4SM 0x11D8
1987
1988
1989
1953/* Unknown vendors/cards - this should not be in linux/pci_ids.h */1990/* Unknown vendors/cards - this should not be in linux/pci_ids.h */
1954#define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x15841991#define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584
1955#define PCI_SUBDEVICE_ID_UNKNOWN_0x1588 0x15881992#define PCI_SUBDEVICE_ID_UNKNOWN_0x1588 0x1588
@@ -5112,6 +5149,108 @@ static struct pci_device_id serial_pci_tbl[] = { · 3156 unmodified lines
5112 PCI_ANY_ID, PCI_ANY_ID,5149 PCI_ANY_ID, PCI_ANY_ID,
5113 0,5150 0,
5114 0, pbn_pericom_PI7C9X7958 },5151 0, pbn_pericom_PI7C9X7958 },
5152 /*
5153 * ACCES I/O Products quad
5154 */
5155 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM_2SDB,
5156 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5157 pbn_pericom_PI7C9X7954 },
5158 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_MPCIE_COM_2S,
5159 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5160 pbn_pericom_PI7C9X7954 },
5161 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM_4SDB,
5162 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5163 pbn_pericom_PI7C9X7954 },
5164 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_MPCIE_COM_4S,
5165 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5166 pbn_pericom_PI7C9X7954 },
5167 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM232_2DB,
5168 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5169 pbn_pericom_PI7C9X7954 },
5170 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_MPCIE_COM232_2,
5171 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5172 pbn_pericom_PI7C9X7954 },
5173 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM232_4DB,
5174 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5175 pbn_pericom_PI7C9X7954 },
5176 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_MPCIE_COM232_4,
5177 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5178 pbn_pericom_PI7C9X7954 },
5179 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM_2SMDB,
5180 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5181 pbn_pericom_PI7C9X7954 },
5182 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_MPCIE_COM_2SM,
5183 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5184 pbn_pericom_PI7C9X7954 },
5185 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM_4SMDB,
5186 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5187 pbn_pericom_PI7C9X7954 },
5188 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_MPCIE_COM_4SM,
5189 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5190 pbn_pericom_PI7C9X7954 },
5191 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_MPCIE_ICM485_1,
5192 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5193 pbn_pericom_PI7C9X7954 },
5194 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_MPCIE_ICM422_2,
5195 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5196 pbn_pericom_PI7C9X7954 },
5197 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_MPCIE_ICM485_2,
5198 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5199 pbn_pericom_PI7C9X7954 },
5200 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_MPCIE_ICM422_4,
5201 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5202 pbn_pericom_PI7C9X7954 },
5203 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_MPCIE_ICM485_4,
5204 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5205 pbn_pericom_PI7C9X7954 },
5206 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_ICM_2S,
5207 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5208 pbn_pericom_PI7C9X7954 },
5209 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_ICM_4S,
5210 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5211 pbn_pericom_PI7C9X7954 },
5212 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_ICM232_2,
5213 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5214 pbn_pericom_PI7C9X7954 },
5215 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_MPCIE_ICM232_2,
5216 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5217 pbn_pericom_PI7C9X7954 },
5218 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_ICM232_4,
5219 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5220 pbn_pericom_PI7C9X7954 },
5221 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_MPCIE_ICM232_4,
5222 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5223 pbn_pericom_PI7C9X7954 },
5224 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_ICM_2SM,
5225 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5226 pbn_pericom_PI7C9X7954 },
5227 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM422_4,
5228 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5229 pbn_pericom_PI7C9X7958 },
5230 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM485_4,
5231 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5232 pbn_pericom_PI7C9X7958 },
5233 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM422_8,
5234 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5235 pbn_pericom_PI7C9X7958 },
5236 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM485_8,
5237 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5238 pbn_pericom_PI7C9X7958 },
5239 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM232_4,
5240 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5241 pbn_pericom_PI7C9X7958 },
5242 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM232_8,
5243 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5244 pbn_pericom_PI7C9X7958 },
5245 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM_4SM,
5246 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5247 pbn_pericom_PI7C9X7958 },
5248 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_COM_8SM,
5249 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5250 pbn_pericom_PI7C9X7958 },
5251 { PCI_VENDOR_ID_ACCESIO, PCI_DEVICE_ID_ACCESIO_PCIE_ICM_4SM,
5252 PCI_ANY_ID, PCI_ANY_ID, 0, 0,
5253 pbn_pericom_PI7C9X7958 },
5115 /*5254 /*
5116 * Topic TP560 Data/Fax/Voice 56k modem (reported by Evan Clarke)5255 * Topic TP560 Data/Fax/Voice 56k modem (reported by Evan Clarke)
5117 */5256 */
drivers/tty/serial/8250/8250_port.c+1−6
@@ -1618,8 +1618,6 @@ static void serial8250_disable_ms(struct uart_port *port) · 1617 unmodified lines
1618 if (up->bugs & UART_BUG_NOMSR)1618 if (up->bugs & UART_BUG_NOMSR)
1619 return;1619 return;
1620 1620
1621 mctrl_gpio_disable_ms(up->gpios);
1622
1623 up->ier &= ~UART_IER_MSI;1621 up->ier &= ~UART_IER_MSI;
1624 serial_port_out(port, UART_IER, up->ier);1622 serial_port_out(port, UART_IER, up->ier);
1625}1623}
@@ -1632,8 +1630,6 @@ static void serial8250_enable_ms(struct uart_port *port) · 6 unmodified lines
1632 if (up->bugs & UART_BUG_NOMSR)1630 if (up->bugs & UART_BUG_NOMSR)
1633 return;1631 return;
1634 1632
1635 mctrl_gpio_enable_ms(up->gpios);
1636
1637 up->ier |= UART_IER_MSI;1633 up->ier |= UART_IER_MSI;
1638 1634
1639 serial8250_rpm_get(up);1635 serial8250_rpm_get(up);
@@ -1917,8 +1913,7 @@ unsigned int serial8250_do_get_mctrl(struct uart_port *port) · 277 unmodified lines
1917 ret |= TIOCM_DSR;1913 ret |= TIOCM_DSR;
1918 if (status & UART_MSR_CTS)1914 if (status & UART_MSR_CTS)
1919 ret |= TIOCM_CTS;1915 ret |= TIOCM_CTS;
1920 1916 return ret;
1921 return mctrl_gpio_get(up->gpios, &ret);
1922}1917}
1923EXPORT_SYMBOL_GPL(serial8250_do_get_mctrl);1918EXPORT_SYMBOL_GPL(serial8250_do_get_mctrl);
1924 1919
drivers/tty/serial/8250/Kconfig+0−1
@@ -6,7 +6,6 @@ · 5 unmodified lines
6config SERIAL_82506config SERIAL_8250
7 tristate "8250/16550 and compatible serial support"7 tristate "8250/16550 and compatible serial support"
8 select SERIAL_CORE8 select SERIAL_CORE
9 select SERIAL_MCTRL_GPIO if GPIOLIB
10 ---help---9 ---help---
11 This selects whether you want to include the driver for the standard10 This selects whether you want to include the driver for the standard
12 serial ports. The standard answer is Y. People who might say N11 serial ports. The standard answer is Y. People who might say N
include/linux/serial_8250.h+0−1
@@ -111,7 +111,6 @@ struct uart_8250_port { · 110 unmodified lines
111 * if no_console_suspend111 * if no_console_suspend
112 */112 */
113 unsigned char probe;113 unsigned char probe;
114 struct mctrl_gpios *gpios;
115#define UART_PROBE_RSA (1 << 0)114#define UART_PROBE_RSA (1 << 0)
116 115
117 /*116 /*