From: Tilman Schmidt Date: Thu, 9 Jul 2015 13:22:32 +0000 (+0200) Subject: ldattach: always set line speed and format for N_GIGASET_M101 X-Git-Tag: v2.27-rc1~89 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5687494ae00dfc7233b1aeac76a7c84d5108074e;p=thirdparty%2Futil-linux.git ldattach: always set line speed and format for N_GIGASET_M101 The Gigaset M101 exhibits particularly awkward and confusing behaviour when the serial line speed isn't set to what the device expects: Configuration mode detects the used speed and works anyway, but data mode silently fails. Troubleshooting this is enormously time-consuming. Spare the users this trouble by setting the line speed and format to these devices' factory default values as long as the command line doesn't say otherwise. Signed-off-by: Tilman Schmidt --- diff --git a/sys-utils/ldattach.c b/sys-utils/ldattach.c index 5317d22d81..9c1235d679 100644 --- a/sys-utils/ldattach.c +++ b/sys-utils/ldattach.c @@ -365,6 +365,15 @@ int main(int argc, char **argv) if (ldisc < 0) ldisc = strtos32_or_err(argv[optind], _("invalid line discipline argument")); + /* ldisc specific option settings */ + if (ldisc == N_GIGASET_M101) { + /* device specific defaults for line speed and data format */ + if (speed == 0) speed = 115200; + if (bits == '-') bits = '8'; + if (parity == '-') parity = 'n'; + if (stop == '-') stop = '1'; + } + /* open device */ dev = argv[optind + 1]; if ((tty_fd = open(dev, O_RDWR | O_NOCTTY)) < 0) @@ -447,12 +456,13 @@ int main(int argc, char **argv) } } - /* Attach the line discpline. */ + /* Attach the line discipline. */ if (ioctl(tty_fd, TIOCSETD, &ldisc) < 0) err(EXIT_FAILURE, _("cannot set line discipline")); dbg("line discipline set to %d", ldisc); + /* ldisc specific post-attach actions */ if (ldisc == N_GSM0710) gsm0710_set_conf(tty_fd);