emx: Fix "Missing Interrupt Following ICR read" errata
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 7 Jul 2012 05:24:52 +0000 (13:24 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 7 Jul 2012 05:50:11 +0000 (13:50 +0800)
commit4cb541ae0641a5658d7c5d6054559dd37c45ed42
tree46e78a913f02b273c3e5185d3cccd57674c441b4
parent677d7b996f4c34fc6a3e2b0a1e87d7fe611d5d42
emx: Fix "Missing Interrupt Following ICR read" errata

IMS should be set to 0 before reading ICR.  It should be noted that
once IMS is 0, ICR.INT_ASSERTED will not be set, which is not mentioned
in the datasheet.

This errata exists on 82571, 82572, 82573, 82574 and 82583, while 82583
is not covered by emx(4).  And the fix is needed only if the legacy
interrupt is used and the interrupt line is shared with other devices.

hw.emxX.irq.unshared tunable is added to give a hint to the driver that
the legacy interrupt is not shared with other devices.
sys/dev/netif/emx/if_emx.c
sys/dev/netif/emx/if_emx.h