Author: stefanct Date: Mon Jan 4 04:05:06 2016 New Revision: 1906 URL: http://flashrom.org/trac/flashrom/changeset/1906
Log: serprog: ignore failures when setting serial port options.
There is no good reason to abort earlier just because some options did not stick. This should improve compatibility without negative effects. If communication is affected by the missing flag(s) then we abort later anyway.
Signed-off-by: Stefan Tauner stefan.tauner@alumni.tuwien.ac.at Acked-by: Urja Rannikko urjaman@gmail.com
Modified: trunk/serial.c
Modified: trunk/serial.c ============================================================================== --- trunk/serial.c Mon Jan 4 04:04:36 2016 (r1905) +++ trunk/serial.c Mon Jan 4 04:05:06 2016 (r1906) @@ -209,12 +209,25 @@ if (observed.c_cflag != wanted.c_cflag || observed.c_lflag != wanted.c_lflag || observed.c_iflag != wanted.c_iflag || - observed.c_oflag != wanted.c_oflag || - cfgetispeed(&observed) != cfgetispeed(&wanted)) { - msg_perr("%s: Some requested options did not stick.\n", __func__); - return 1; + observed.c_oflag != wanted.c_oflag) { + msg_pwarn("Some requested serial options did not stick, continuing anyway.\n"); + msg_pdbg(" observed wanted\n" + "c_cflag: 0x%08lX 0x%08lX\n" + "c_lflag: 0x%08lX 0x%08lX\n" + "c_iflag: 0x%08lX 0x%08lX\n" + "c_oflag: 0x%08lX 0x%08lX\n", + (long)observed.c_cflag, (long)wanted.c_cflag, + (long)observed.c_lflag, (long)wanted.c_lflag, + (long)observed.c_iflag, (long)wanted.c_iflag, + (long)observed.c_oflag, (long)wanted.c_oflag + ); + } + if (cfgetispeed(&observed) != cfgetispeed(&wanted) || + cfgetospeed(&observed) != cfgetospeed(&wanted)) { + msg_pwarn("Could not set baud rates exactly.\n"); + msg_pdbg("Actual baud flags are: ispeed: 0x%08lX, ospeed: 0x%08lX\n", + (long)cfgetispeed(&observed), (long)cfgetospeed(&observed)); } - msg_pdbg("Baud rate is %d now.\n", entry->baud); #endif return 0; }