You might try patching the FlashPoint.c file and adding delays to some of the macros.
I was having problems with this card, and doing so has helped me. Here is what I
used:
--- orig.FlashPoint.c Sat Oct 2 23:48:26 1999
+++ FlashPoint.c Sat Oct 2 21:41:39 1999
@@ -28,12 +28,12 @@
#undef BUSTYPE_PCI
-#define OS_InPortByte(port) inb(port)
-#define OS_InPortWord(port) inw(port)
-#define OS_InPortLong(port) inl(port)
-#define OS_OutPortByte(port, value) outb(value, port)
-#define OS_OutPortWord(port, value) outw(value, port)
-#define OS_OutPortLong(port, value) outl(value, port)
+#define OS_InPortByte(port) (udelay(1),inb(port))
+#define OS_InPortWord(port) (udelay(1),inw(port))
+#define OS_InPortLong(port) (udelay(1),inl(port))
+#define OS_OutPortByte(port, value) (udelay(1),outb(value, port))
+#define OS_OutPortWord(port, value) (udelay(1),outw(value, port))
+#define OS_OutPortLong(port, value) (udelay(1),outl(value, port))
#define OS_Lock(x)
#define OS_UnLock(x)
I actually think that this problem may be a symptom of a code error
in the FlashPoint (BusLogic) driver that was pointed out by someone
running a code inspector on the kernel sources. It pointed at this
line:
while ((hp_int = RDW_HARPOON((ioport+hp_intstat)) & default_intena) |
bm_status)
{
I am actually not concerned about what it complained about (the use of the
| instead of || but the strange parenthesis in RDW_HARPOON((ioport+hp_intstat))
I am beginning to think that this should be (hp_int = RDW_HARPOON(ioport+hp_intstat))
I keep meaning to try this, but haven't gotten around to it yet.
Bill
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Thu Mar 23 2000 - 21:00:24 EST