diff options
author | Gene Cumm <gene.cumm@gmail.com> | 2014-07-13 11:18:50 -0400 |
---|---|---|
committer | Gene Cumm <gene.cumm@gmail.com> | 2014-07-13 11:18:50 -0400 |
commit | 3741886cb700e1017d70f1753f013fa10f4d9272 (patch) | |
tree | 15c75823c48e9c0fb704908c4089471a679e9a69 | |
parent | 2c7470256db3a31866e540a9460b47558890e7b0 (diff) | |
download | syslinux-3741886cb700e1017d70f1753f013fa10f4d9272.tar.gz syslinux-3741886cb700e1017d70f1753f013fa10f4d9272.tar.xz syslinux-3741886cb700e1017d70f1753f013fa10f4d9272.zip |
PXE ISR: Force polling on select hardware WORKAROUND
Like 2fe3a7bd, certain Dell machines (OptiPlex 990) state interrupts
should work but effectively don't. Force polling.
Reported-by: Alexander Perlis <aperlis@math.lsu.edu>
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
-rw-r--r-- | core/fs/pxe/isr.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/core/fs/pxe/isr.c b/core/fs/pxe/isr.c index d0a0bf90..ddaadf90 100644 --- a/core/fs/pxe/isr.c +++ b/core/fs/pxe/isr.c @@ -266,11 +266,10 @@ void pxe_start_isr(void) dprintf("pxe_start_isr: trying poll by model\n"); int hwad = ((int)MAC[0] << 16) + ((int)MAC[1] << 8) + MAC[2]; dprintf("pxe_start_isr: got %06x %04x\n", hwad, pxe_undi_iface.ServiceFlags); - if (hwad == 0x000023ae) { - if (pxe_undi_iface.ServiceFlags == 0xdc1b) { + if ((hwad == 0x000023ae) && (pxe_undi_iface.ServiceFlags == 0xdc1b) || + (hwad == 0x00180373) && (pxe_undi_iface.ServiceFlags == 0xdc1b)) { asm volatile("orb $1,%0" : "+m" (pxe_need_poll)); dprintf("pxe_start_isr: forcing pxe_need_poll by model\n"); - } } } } |