diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/serial_probe/serial.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/serial_probe/serial.c b/tools/serial_probe/serial.c index ef575d6c3..14b315817 100644 --- a/tools/serial_probe/serial.c +++ b/tools/serial_probe/serial.c @@ -997,6 +997,11 @@ struct device *serialProbe(enum deviceClass probeClass, int probeFlags, maj = major(sb.st_rdev); if (maj != 4 && (maj < 136 || maj > 143)) { if (ioctl (fd, TIOCLINUX, &twelve) < 0) { + #ifdef __powerpc__ + // we could have gotten an error for another reason - like EINVAL + // skipping ttyS0 on PPC - which is where most modems reside + if (errno == ENOTTY) { + #endif if (ioctl (fd, TIOCGSERIAL, &si) >= 0) { if (si.line > 0) { console = 1 << si.line; @@ -1004,6 +1009,9 @@ struct device *serialProbe(enum deviceClass probeClass, int probeFlags, console = 0; } } else console = 0; + #ifdef __powerpc__ + } + #endif } } close(fd); |