summaryrefslogtreecommitdiff
path: root/sys/dev/pci
diff options
context:
space:
mode:
authorDamien Bergamini <damien@cvs.openbsd.org>2010-01-09 12:53:33 +0000
committerDamien Bergamini <damien@cvs.openbsd.org>2010-01-09 12:53:33 +0000
commite5c39d873f91aad77d17c09225a6e683f9ecdad6 (patch)
tree8391c8e61094199ff942e842b4d9d693ffcfe1cd /sys/dev/pci
parent1b253600a654ecbe35bb1fa8a3085a3ffffd0d08 (diff)
workaround for a HW bug (does not affect 4965AGN) that may sporadically
affect latency under some rare circumstances. from a similar commit to iwlwifi.
Diffstat (limited to 'sys/dev/pci')
-rw-r--r--sys/dev/pci/if_iwn.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/dev/pci/if_iwn.c b/sys/dev/pci/if_iwn.c
index ff74ab75ecf..9425ec31c91 100644
--- a/sys/dev/pci/if_iwn.c
+++ b/sys/dev/pci/if_iwn.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwn.c,v 1.78 2009/11/08 11:54:48 damien Exp $ */
+/* $OpenBSD: if_iwn.c,v 1.79 2010/01/09 12:53:32 damien Exp $ */
/*-
* Copyright (c) 2007-2009 Damien Bergamini <damien.bergamini@free.fr>
@@ -2525,8 +2525,10 @@ iwn_intr(void *arg)
sc->ict_cur = (sc->ict_cur + 1) % IWN_ICT_COUNT;
}
tmp = letoh32(tmp);
- if (tmp == 0xffffffff)
- tmp = 0; /* Shouldn't happen. */
+ if (tmp == 0xffffffff) /* Shouldn't happen. */
+ tmp = 0;
+ else if (tmp & 0xc0000) /* Workaround a HW bug. */
+ tmp |= 0x8000;
r1 = (tmp & 0xff00) << 16 | (tmp & 0xff);
r2 = 0; /* Unused. */
} else {