diff options
author | mux <mux@FreeBSD.org> | 2004-07-16 22:04:29 +0000 |
---|---|---|
committer | mux <mux@FreeBSD.org> | 2004-07-16 22:04:29 +0000 |
commit | 8b8f22c839c9af8d37c6b2dd362183dd1ec6bbcb (patch) | |
tree | 923b7f3c8e29a584fd40eb64049a6af83e7b8725 | |
parent | 8f0acfb8217943f550ec4903b9cdf3c2fc1cb113 (diff) | |
download | FreeBSD-src-8b8f22c839c9af8d37c6b2dd362183dd1ec6bbcb.zip FreeBSD-src-8b8f22c839c9af8d37c6b2dd362183dd1ec6bbcb.tar.gz |
Ignore more strange return values of the test_aux_port() function,
because some notebooks (apparently Compaq, Toshiba and Acer ones)
erroneously return 2 or 3 there.
PR: kern/61482, kern/54188
Submitted by: Ulf Lilleengen <lulf@kerneled.org>,
Victor Balada Diaz <victor@alf.dyndns.ws>
MFC after: 3 days
-rw-r--r-- | sys/dev/atkbdc/psm.c | 16 | ||||
-rw-r--r-- | sys/isa/psm.c | 16 |
2 files changed, 20 insertions, 12 deletions
diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c index 2d30d65..0a1c92d 100644 --- a/sys/dev/atkbdc/psm.c +++ b/sys/dev/atkbdc/psm.c @@ -648,7 +648,9 @@ doinitialize(struct psm_softc *sc, mousemode_t *mode) int i; switch((i = test_aux_port(kbdc))) { - case 1: /* ignore this error */ + case 1: /* ignore these errors */ + case 2: + case 3: case PSM_ACK: if (verbose) log(LOG_DEBUG, "psm%d: strange result for test aux port (%d).\n", @@ -1027,14 +1029,16 @@ psmprobe(device_t dev) * case, we have to continue probing the port even when the controller * passes this test. * - * XXX: some controllers erroneously return the error code 1 when - * it has the perfectly functional aux port. We have to ignore this - * error code. Even if the controller HAS error with the aux port, - * it will be detected later... + * XXX: some controllers erroneously return the error code 1, 2 or 3 + * when it has the perfectly functional aux port. We have to ignore + * this error code. Even if the controller HAS error with the aux + * port, it will be detected later... * XXX: another incompatible controller returns PSM_ACK (0xfa)... */ switch ((i = test_aux_port(sc->kbdc))) { - case 1: /* ignore this error */ + case 1: /* ignore these errors */ + case 2: + case 3: case PSM_ACK: if (verbose) printf("psm%d: strange result for test aux port (%d).\n", diff --git a/sys/isa/psm.c b/sys/isa/psm.c index 2d30d65..0a1c92d 100644 --- a/sys/isa/psm.c +++ b/sys/isa/psm.c @@ -648,7 +648,9 @@ doinitialize(struct psm_softc *sc, mousemode_t *mode) int i; switch((i = test_aux_port(kbdc))) { - case 1: /* ignore this error */ + case 1: /* ignore these errors */ + case 2: + case 3: case PSM_ACK: if (verbose) log(LOG_DEBUG, "psm%d: strange result for test aux port (%d).\n", @@ -1027,14 +1029,16 @@ psmprobe(device_t dev) * case, we have to continue probing the port even when the controller * passes this test. * - * XXX: some controllers erroneously return the error code 1 when - * it has the perfectly functional aux port. We have to ignore this - * error code. Even if the controller HAS error with the aux port, - * it will be detected later... + * XXX: some controllers erroneously return the error code 1, 2 or 3 + * when it has the perfectly functional aux port. We have to ignore + * this error code. Even if the controller HAS error with the aux + * port, it will be detected later... * XXX: another incompatible controller returns PSM_ACK (0xfa)... */ switch ((i = test_aux_port(sc->kbdc))) { - case 1: /* ignore this error */ + case 1: /* ignore these errors */ + case 2: + case 3: case PSM_ACK: if (verbose) printf("psm%d: strange result for test aux port (%d).\n", |