Corrected bug caused by "The first round of I/O space pointers separation." patch.
authorppisa <ppisa>
Fri, 30 Jan 2009 19:32:45 +0000 (19:32 +0000)
committerppisa <ppisa>
Fri, 30 Jan 2009 19:32:45 +0000 (19:32 +0000)
The can_{in,out}{lw} has been mapped to the byte size operations.
The corrected version has been tested on KVASER PCIcan-Q card.

lincan/include/can_sysdep.h

index 2123ba7..77f9d8a 100644 (file)
    #define can_ulong2ioptr(addr)   ((unsigned long)(addr))
    #define can_inb(ioaddr) inb(ioaddr)
    #define can_outb(data,ioaddr) outb(data,ioaddr)
-   #define can_inw(ioaddr) inb(ioaddr)
-   #define can_outw(data,ioaddr) outb(data,ioaddr)
-   #define can_inl(ioaddr) inb(ioaddr)
-   #define can_outl(data,ioaddr) outb(data,ioaddr)
+   #define can_inw(ioaddr) inw(ioaddr)
+   #define can_outw(data,ioaddr) outw(data,ioaddr)
+   #define can_inl(ioaddr) inl(ioaddr)
+   #define can_outl(data,ioaddr) outl(data,ioaddr)
 #else /* >=2.6.9 */
    typedef void __iomem * can_ioptr_t;
    #define can_ioptr2ulong(ioaddr) ((unsigned long __force)(ioaddr))
    #define can_ulong2ioptr(addr)   ((can_ioptr_t)(addr))
    #define can_inb(ioaddr) inb(can_ioptr2ulong(ioaddr))
    #define can_outb(data,ioaddr) outb(data,can_ioptr2ulong(ioaddr))
-   #define can_inw(ioaddr) inb(can_ioptr2ulong(ioaddr))
-   #define can_outw(data,ioaddr) outb(data,can_ioptr2ulong(ioaddr))
-   #define can_inl(ioaddr) inb(can_ioptr2ulong(ioaddr))
-   #define can_outl(data,ioaddr) outb(data,can_ioptr2ulong(ioaddr))
+   #define can_inw(ioaddr) inw(can_ioptr2ulong(ioaddr))
+   #define can_outw(data,ioaddr) outw(data,can_ioptr2ulong(ioaddr))
+   #define can_inl(ioaddr) inl(can_ioptr2ulong(ioaddr))
+   #define can_outl(data,ioaddr) outl(data,can_ioptr2ulong(ioaddr))
 #endif
 
 #define can_readb  readb