diff options
Diffstat (limited to 'sys/dev/syscons')
-rw-r--r-- | sys/dev/syscons/syscons.c | 15 | ||||
-rw-r--r-- | sys/dev/syscons/syscons.h | 3 |
2 files changed, 10 insertions, 8 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index 38fe1fc..ad4e35a 100644 --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.179 1996/10/15 20:27:07 sos Exp $ + * $Id: syscons.c,v 1.180 1996/10/18 18:51:36 sos Exp $ */ #include "sc.h" @@ -324,9 +324,7 @@ scprobe(struct isa_device *dev) gotres: if (retries < 0) { printf("scprobe: keyboard won't accept RESET command\n"); -#ifdef SC_KBD_PROBE_WORKS - return (0); -#endif + goto fail; } else { i = 10; /* At most 10 retries. */ gotack: @@ -339,9 +337,7 @@ gotack: goto gotack; if (val != KB_RESET_DONE) { printf("scprobe: keyboard RESET failed (result = 0x%02x)\n", val); -#ifdef SC_KBD_PROBE_WORKS - return (0); -#endif + goto fail; } } #ifdef XT_KEYBOARD @@ -351,7 +347,12 @@ gotack: outb(KB_DATA, 1); kbd_wait(); #endif /* XT_KEYBOARD */ + + succeed: return (IO_KBDSIZE); + + fail: + return ((dev->id_flags & DETECT_KBD) ? 0 : IO_KBDSIZE); } #if NAPM > 0 diff --git a/sys/dev/syscons/syscons.h b/sys/dev/syscons/syscons.h index 100200f..2a724f4 100644 --- a/sys/dev/syscons/syscons.h +++ b/sys/dev/syscons/syscons.h @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.h,v 1.21 1996/09/30 23:00:58 sos Exp $ + * $Id: syscons.h,v 1.22 1996/10/18 18:51:37 sos Exp $ */ #ifndef _I386_ISA_SYSCONS_H_ @@ -69,6 +69,7 @@ #define VISUAL_BELL 0x00001 #define BLINK_CURSOR 0x00002 #define CHAR_CURSOR 0x00004 +#define DETECT_KBD 0x00008 /* attribute flags */ #define NORMAL_ATTR 0x00 |