From 79bb63029eb0ea79bdeee5afb9daa176d0bb055b Mon Sep 17 00:00:00 2001 From: jakllsch Date: Sat, 11 Jan 2014 20:17:56 +0000 Subject: Do not take data from the controller in interrupt handler if we are polling. --- sys/dev/ic/pckbc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'sys/dev') diff --git a/sys/dev/ic/pckbc.c b/sys/dev/ic/pckbc.c index 842816b88b4..5a382666ade 100644 --- a/sys/dev/ic/pckbc.c +++ b/sys/dev/ic/pckbc.c @@ -1,4 +1,4 @@ -/* $NetBSD: pckbc.c,v 1.55 2013/09/15 09:21:21 martin Exp $ */ +/* $NetBSD: pckbc.c,v 1.56 2014/01/11 20:17:56 jakllsch Exp $ */ /* * Copyright (c) 2004 Ben Harris. @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: pckbc.c,v 1.55 2013/09/15 09:21:21 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pckbc.c,v 1.56 2014/01/11 20:17:56 jakllsch Exp $"); #include #include @@ -597,12 +597,14 @@ pckbcintr(void *vsc) if (!(stat & KBS_DIB)) break; - served = 1; - slot = (t->t_haveaux && (stat & 0x20)) ? PCKBC_AUX_SLOT : PCKBC_KBD_SLOT; q = t->t_slotdata[slot]; + if (q != NULL && q->polling) + return 0; + + served = 1; KBD_DELAY; data = bus_space_read_1(t->t_iot, t->t_ioh_d, 0); -- cgit