diff options
author | Damien Bergamini <damien@cvs.openbsd.org> | 2010-01-09 12:53:33 +0000 |
---|---|---|
committer | Damien Bergamini <damien@cvs.openbsd.org> | 2010-01-09 12:53:33 +0000 |
commit | e5c39d873f91aad77d17c09225a6e683f9ecdad6 (patch) | |
tree | 8391c8e61094199ff942e842b4d9d693ffcfe1cd /sys/dev/pci | |
parent | 1b253600a654ecbe35bb1fa8a3085a3ffffd0d08 (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.c | 8 |
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 { |