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 <tilman@imap.cc>
This commit is contained in:
parent
b5225af344
commit
5687494ae0
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue