summaryrefslogtreecommitdiffstats
path: root/tools/serial_probe/serial.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/serial_probe/serial.c')
-rw-r--r--tools/serial_probe/serial.c8
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);