diff options
Diffstat (limited to 'tools/serial_probe/serial.c')
| -rw-r--r-- | tools/serial_probe/serial.c | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/tools/serial_probe/serial.c b/tools/serial_probe/serial.c index 9ae3924c3..5159c3dae 100644 --- a/tools/serial_probe/serial.c +++ b/tools/serial_probe/serial.c @@ -663,7 +663,6 @@ static int parse_pnp_string( unsigned char *pnp_id_string, int pnp_len, unsigned char *endfield; unsigned char *temppos; unsigned char *pnp_string; - unsigned char end_char; int no_more_extensions=0; int stage; @@ -719,7 +718,6 @@ static int parse_pnp_string( unsigned char *pnp_id_string, int pnp_len, /* setup end character we are looking for based on the start character */ if (start == p2) { pnp_id->xlate_6bit = 1; - end_char = EndPnP2; /* we need to xlate data in PnP fields */ /* remember to skip the revision fields (bytes 1 and 2 after start) */ temppos=start; @@ -734,7 +732,6 @@ static int parse_pnp_string( unsigned char *pnp_id_string, int pnp_len, } } else { pnp_id->xlate_6bit = 0; - end_char = EndPnP1; } /* move everything before the start of the PnP block */ @@ -881,7 +878,6 @@ struct device *serialProbe(enum deviceClass probeClass, int probeFlags, int fd; int temp; int pnp_strlen; - int devicetype=-1; unsigned char pnp_string[100]; char port[20]; struct termios origattr; @@ -918,19 +914,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; } else { console = 0; - #ifdef __powerpc__ - } - #endif } } else console = 0; } @@ -986,14 +974,14 @@ struct device *serialProbe(enum deviceClass probeClass, int probeFlags, /* try twiddling RS232 control lines and see if it talks to us */ - devicetype=-1; pnp_strlen = 0; if (attempt_pnp_retrieve( fd, pnp_string, &pnp_strlen, sizeof(pnp_string) - 1 ) == PNP_COM_FATAL) goto endprobe; /* see if we found any PnP signature */ - if (pnp_strlen != 0) { + if (pnp_strlen != 0 && (pnp_strlen != 1 || pnp_string[0] != 'M')) { + /* fill in the PnP com structure */ if (parse_pnp_string( pnp_string, pnp_strlen, &pnp_id )<0) { DEBUG("Got PNP data back, but failed to parse. Aborting\n"); |
