We won't set XON/XOFF by default and we won't allow setting RTS/CTS via a property. The serial port by default starts with no flow control configured. --- src/mm-port-serial.c | 34 ++++++---------------------------- src/mm-port-serial.h | 1 - 2 files changed, 6 insertions(+), 29 deletions(-)
diff --git a/src/mm-port-serial.c b/src/mm-port-serial.c index e55f9062..04ab17fe 100644 --- a/src/mm-port-serial.c +++ b/src/mm-port-serial.c @@ -56,7 +56,6 @@ enum { PROP_SEND_DELAY, PROP_FD, PROP_SPEW_CONTROL, - PROP_RTS_CTS, PROP_FLASH_OK, LAST_PROP @@ -97,7 +96,6 @@ struct _MMPortSerialPrivate { guint stopbits; guint64 send_delay; gboolean spew_control; - gboolean rts_cts; gboolean flash_ok; guint queue_id; @@ -433,21 +431,19 @@ real_config_fd (MMPortSerial *self, int fd, GError **error) errno); } - stbuf.c_iflag &= ~(IGNCR | ICRNL | IUCLC | INPCK | IXON | IXANY ); + stbuf.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | PARENB | PARODD | CRTSCTS); + stbuf.c_iflag &= ~(IGNCR | ICRNL | IUCLC | INPCK | IXON | IXOFF | IXANY ); stbuf.c_oflag &= ~(OPOST | OLCUC | OCRNL | ONLCR | ONLRET); stbuf.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHONL); stbuf.c_cc[VMIN] = 1; stbuf.c_cc[VTIME] = 0; stbuf.c_cc[VEOF] = 1; - /* Use software handshaking and ignore parity/framing errors */ - stbuf.c_iflag |= (IXON | IXOFF | IXANY | IGNPAR); + /* Ignore parity/framing errors */ + stbuf.c_iflag |= IGNPAR; - /* Set up port speed and serial attributes; also ignore modem control - * lines since most drivers don't implement RTS/CTS anyway. - */ - stbuf.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | PARENB | CRTSCTS); - stbuf.c_cflag |= (bits | CREAD | 0 | parity | stopbits | CLOCAL); + /* Set up port speed and serial attributes and enable receiver in local mode */ + stbuf.c_cflag |= (bits | parity | stopbits | CLOCAL | CREAD); errno = 0; if (cfsetispeed (&stbuf, speed) != 0) { @@ -1621,10 +1617,6 @@ set_speed (MMPortSerial *self, speed_t speed, GError **error) cfsetospeed (&options, speed); options.c_cflag |= (CLOCAL | CREAD); - /* Configure flow control as well here */ - if (self->priv->rts_cts) - options.c_cflag |= (CRTSCTS); - return internal_tcsetattr (self, self->priv->fd, &options, error); } @@ -1928,9 +1920,6 @@ set_property (GObject *object, case PROP_SPEW_CONTROL: self->priv->spew_control = g_value_get_boolean (value); break; - case PROP_RTS_CTS: - self->priv->rts_cts = g_value_get_boolean (value); - break; case PROP_FLASH_OK: self->priv->flash_ok = g_value_get_boolean (value); break; @@ -1970,9 +1959,6 @@ get_property (GObject *object, case PROP_SPEW_CONTROL: g_value_set_boolean (value, self->priv->spew_control); break; - case PROP_RTS_CTS: - g_value_set_boolean (value, self->priv->rts_cts); - break; case PROP_FLASH_OK: g_value_set_boolean (value, self->priv->flash_ok); break; @@ -2081,14 +2067,6 @@ mm_port_serial_class_init (MMPortSerialClass *klass) G_PARAM_READWRITE)); g_object_class_install_property - (object_class, PROP_RTS_CTS, - g_param_spec_boolean (MM_PORT_SERIAL_RTS_CTS, - "RTSCTS", - "Enable RTS/CTS flow control", - FALSE, - G_PARAM_READWRITE)); - - g_object_class_install_property (object_class, PROP_FLASH_OK, g_param_spec_boolean (MM_PORT_SERIAL_FLASH_OK, "FlashOk", diff --git a/src/mm-port-serial.h b/src/mm-port-serial.h index 223b9ce1..0514e360 100644 --- a/src/mm-port-serial.h +++ b/src/mm-port-serial.h @@ -36,7 +36,6 @@ #define MM_PORT_SERIAL_PARITY "parity" #define MM_PORT_SERIAL_STOPBITS "stopbits" #define MM_PORT_SERIAL_SEND_DELAY "send-delay" -#define MM_PORT_SERIAL_RTS_CTS "rts-cts" #define MM_PORT_SERIAL_FD "fd" /* Construct-only */ #define MM_PORT_SERIAL_SPEW_CONTROL "spew-control" /* Construct-only */ #define MM_PORT_SERIAL_FLASH_OK "flash-ok" /* Construct-only */ -- 2.12.0 _______________________________________________ ModemManager-devel mailing list ModemManager-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel