RE: 2.2.15pre14

From: William Lash (welash@xnet.com)
Date: Fri Mar 17 2000 - 19:06:43 EST


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