tty: moxa: Add support for CMSPAR
The mode constants are taken from the GPL-2.0+ driver available in the driver section of the Moxa homepage. It is tested on a C320Turbo PCI card per logic analyzer and per a device which requires 9 bit character communication. The vendors driver supports CMSPAR unconditionally, so that all other available firmware versions seems to support mark/space parity modes as well. Signed-off-by: Lars Kanis <kanis@comcard.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
e73be92d82
Коммит
d8dcbdd08c
|
@ -1487,8 +1487,6 @@ static void moxa_set_tty_param(struct tty_struct *tty, struct ktermios *old_term
|
||||||
if (ts->c_iflag & IXANY)
|
if (ts->c_iflag & IXANY)
|
||||||
xany = 1;
|
xany = 1;
|
||||||
|
|
||||||
/* Clear the features we don't support */
|
|
||||||
ts->c_cflag &= ~CMSPAR;
|
|
||||||
MoxaPortFlowCtrl(ch, rts, cts, txflow, rxflow, xany);
|
MoxaPortFlowCtrl(ch, rts, cts, txflow, rxflow, xany);
|
||||||
baud = MoxaPortSetTermio(ch, ts, tty_get_baud_rate(tty));
|
baud = MoxaPortSetTermio(ch, ts, tty_get_baud_rate(tty));
|
||||||
if (baud == -1)
|
if (baud == -1)
|
||||||
|
@ -1781,10 +1779,17 @@ static int MoxaPortSetTermio(struct moxa_port *port, struct ktermios *termio,
|
||||||
mode |= MX_STOP1;
|
mode |= MX_STOP1;
|
||||||
|
|
||||||
if (termio->c_cflag & PARENB) {
|
if (termio->c_cflag & PARENB) {
|
||||||
if (termio->c_cflag & PARODD)
|
if (termio->c_cflag & PARODD) {
|
||||||
mode |= MX_PARODD;
|
if (termio->c_cflag & CMSPAR)
|
||||||
else
|
mode |= MX_PARMARK;
|
||||||
mode |= MX_PAREVEN;
|
else
|
||||||
|
mode |= MX_PARODD;
|
||||||
|
} else {
|
||||||
|
if (termio->c_cflag & CMSPAR)
|
||||||
|
mode |= MX_PARSPACE;
|
||||||
|
else
|
||||||
|
mode |= MX_PAREVEN;
|
||||||
|
}
|
||||||
} else
|
} else
|
||||||
mode |= MX_PARNONE;
|
mode |= MX_PARNONE;
|
||||||
|
|
||||||
|
|
|
@ -301,5 +301,7 @@
|
||||||
#define MX_PARNONE 0x00
|
#define MX_PARNONE 0x00
|
||||||
#define MX_PAREVEN 0x40
|
#define MX_PAREVEN 0x40
|
||||||
#define MX_PARODD 0xC0
|
#define MX_PARODD 0xC0
|
||||||
|
#define MX_PARMARK 0xA0
|
||||||
|
#define MX_PARSPACE 0x20
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Загрузка…
Ссылка в новой задаче