]> rtime.felk.cvut.cz Git - lincan.git/commitdiff
The first round of I/O space pointers separation.
authorppisa <ppisa>
Mon, 1 Jan 2007 23:52:54 +0000 (23:52 +0000)
committerppisa <ppisa>
Mon, 1 Jan 2007 23:52:54 +0000 (23:52 +0000)
The new 2.6.x Linux kernels separates I/O space
addresses from kernel and user space ones.
They are defined as (void __iomem *).
To follow this rule and suppress some warnings
LinCAN defines type can_ioptr_t now which allows
to keep code compatible between 2.4.x and 2.6.x kernels.
These changes exposes more other inconsistencies
in some boards support code which should be corrected
one by one later.

The code requires testing and checking on more hardware.

60 files changed:
lincan/include/aim104.h
lincan/include/c_can.h
lincan/include/can_sysdep.h
lincan/include/cc_can104.h
lincan/include/eb8245.h
lincan/include/gensja1000io.h
lincan/include/hms30c7202_can.h
lincan/include/ipci165.h
lincan/include/kthread.h
lincan/include/m437.h
lincan/include/main.h
lincan/include/msmcan.h
lincan/include/ns_dev_can.h
lincan/include/nsi.h
lincan/include/nsi_canpci.h
lincan/include/oscar.h
lincan/include/pc-i03.h
lincan/include/pcan_dongle.h
lincan/include/pccan.h
lincan/include/pcccan.h
lincan/include/pcm3680.h
lincan/include/pikronisa.h
lincan/include/pip.h
lincan/include/smartcan.h
lincan/include/ssv.h
lincan/include/template.h
lincan/include/tscan1.h
lincan/src/adlink7841.c
lincan/src/aim104.c
lincan/src/bfadcan.c
lincan/src/cc_can104.c
lincan/src/eb8245.c
lincan/src/ems_cpcpci.c
lincan/src/gensja1000io.c
lincan/src/hms30c7202_can.c
lincan/src/i82527.c
lincan/src/ipci165.c
lincan/src/kthread.c
lincan/src/kv_pcican.c
lincan/src/m437.c
lincan/src/msmcan.c
lincan/src/ns_dev_can.c
lincan/src/nsi.c
lincan/src/nsi_canpci.c
lincan/src/oscar.c
lincan/src/pc_i03.c
lincan/src/pcan_dongle.c
lincan/src/pccan.c
lincan/src/pcccan.c
lincan/src/pcm3680.c
lincan/src/pikronisa.c
lincan/src/pimx1.c
lincan/src/pip.c
lincan/src/proc.c
lincan/src/setup.c
lincan/src/smartcan.c
lincan/src/ssv.c
lincan/src/template.c
lincan/src/tscan1.c
lincan/src/unican.c

index 0426441da6383abc921deeab0760c3f0217b64db..f65074ca77e5d248700191cde69a647e2f60dc96 100644 (file)
@@ -13,7 +13,7 @@ int aim104_reset(struct candevice_t *candev);
 int aim104_init_hw_data(struct candevice_t *candev);
 int aim104_init_chip_data(struct candevice_t *candev, int chipnr);
 int aim104_init_obj_data(struct canchip_t *chip, int objnr);
-void aim104_write_register(unsigned data, unsigned long address);
-unsigned aim104_read_register(unsigned long address);
+void aim104_write_register(unsigned data, can_ioptr_t address);
+unsigned aim104_read_register(can_ioptr_t address);
 int aim104_program_irq(struct candevice_t *candev);
 
index f5d9d10bfa045e79487501ab0d7887cd3ada439f..5a189b30a39f61edbb2fc4144cc6a5ae7ea884d9 100644 (file)
@@ -14,7 +14,7 @@
  */
 extern inline void c_can_write_reg_w(const struct canchip_t *pchip, u16 data, unsigned reg)
 {
-       u32 address = pchip->chip_base_addr + reg;
+       can_ioptr_t address = pchip->chip_base_addr + reg;
     #ifndef CONFIG_OC_LINCAN_DYNAMICIO
        writew(data,address);
     #else /*CONFIG_OC_LINCAN_DYNAMICIO*/
@@ -24,7 +24,7 @@ extern inline void c_can_write_reg_w(const struct canchip_t *pchip, u16 data, un
 
 extern inline u16 c_can_read_reg_w(const struct canchip_t *pchip, unsigned reg)
 {
-       u32 address = pchip->chip_base_addr + reg;
+       can_ioptr_t address = pchip->chip_base_addr + reg;
     #ifndef CONFIG_OC_LINCAN_DYNAMICIO
        return readw(address);
     #else /*CONFIG_OC_LINCAN_DYNAMICIO*/
index f4d66a76683a36a8232c0a760415af74e5e7d43b..019f985198e63bf188858dc5fc900a8593238d22 100644 (file)
   #define del_timer_sync del_timer
 #endif /* <2.4.0 */
 
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9))
+   typedef unsigned long can_ioptr_t;
+   #define can_ioptr2ulong(ioaddr) ((unsigned long)(ioaddr))
+   #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)
+#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))
+#endif
+
+#define can_readb  readb
+#define can_writeb writeb
+#define can_readw  readw
+#define can_writew writew
+#define can_readl  readl
+#define can_writel writel
+
+#define can_ioport2ioptr can_ulong2ioptr
+
 #ifdef __HAVE_ARCH_CMPXCHG
   #define CAN_HAVE_ARCH_CMPXCHG
 #endif
index 722746a8deccc7bab2749cf963a9051191167860..b3e5b1006e632eef38d7cd8550a4a47295e5c268 100644 (file)
@@ -13,7 +13,7 @@ int cc104_reset(struct candevice_t *candev);
 int cc104_init_hw_data(struct candevice_t *candev);
 int cc104_init_chip_data(struct candevice_t *candev, int chipnr);
 int cc104_init_obj_data(struct canchip_t *chip, int objnr);
-void cc104_write_register(unsigned data, unsigned long address);
-unsigned cc104_read_register(unsigned long address);
+void cc104_write_register(unsigned data, can_ioptr_t address);
+unsigned cc104_read_register(can_ioptr_t address);
 int cc104_program_irq(struct candevice_t *candev);
 
index f076f38946cc2414659c954f433da63fa3ceeffe..ccb17dc7a904c1cb51e2e62f28b3cf9bca327ee5 100644 (file)
@@ -17,5 +17,5 @@ int eb8245_init_hw_data(struct candevice_t *candev);
 int eb8245_init_chip_data(struct candevice_t *candev, int chipnr);
 int eb8245_init_obj_data(struct canchip_t *chip, int objnr);
 int eb8245_program_irq(struct candevice_t *candev);
-void eb8245_write_register(unsigned data, unsigned long address);
-unsigned eb8245_read_register(unsigned long address);
+void eb8245_write_register(unsigned data, can_ioptr_t address);
+unsigned eb8245_read_register(can_ioptr_t address);
index 78245dc48b998e70ae889cae3e3bee4f667415a9..947992cd9e61c35d6b87ba4330204872d5b79b4d 100644 (file)
@@ -17,6 +17,6 @@ int gensja1000io_init_hw_data(struct candevice_t *candev);
 int gensja1000io_init_chip_data(struct candevice_t *candev, int chipnr);
 int gensja1000io_init_obj_data(struct canchip_t *chip, int objnr);
 int gensja1000io_program_irq(struct candevice_t *candev);
-void gensja1000io_write_register(unsigned data, unsigned long address);
-unsigned gensja1000io_read_register(unsigned long address);
+void gensja1000io_write_register(unsigned data, can_ioptr_t address);
+unsigned gensja1000io_read_register(can_ioptr_t address);
 
index 9b4704e6bc54d3b7b90ebc878096e32baddf1bf3..520f0ecce1400ceee4dad57abc87a84627d2a1fc 100644 (file)
@@ -17,8 +17,8 @@ int hms30c7202_init_chip_data(struct candevice_t *candev, int chipnr);
 int hms30c7202_request_io(struct candevice_t *candev);\r
 int hms30c7202_release_io(struct candevice_t *candev);\r
 int hms30c7202_reset(  struct candevice_t *candev);\r
-void hms30c7202_write_register(unsigned data, unsigned long address);\r
-unsigned hms30c7202_read_register(unsigned long address);\r
+void hms30c7202_write_register(unsigned data, can_ioptr_t address);\r
+unsigned hms30c7202_read_register(can_ioptr_t address);\r
 \r
 \r
 \r
index 7f504841506aa232689e6290cb6af6536b1f9eb2..4a3f3546ba2a596d6285f806277fa506e9d273d1 100644 (file)
@@ -6,6 +6,7 @@
  * Version lincan-0.3  17 Jun 2004
  */ 
 
+#include "../include/can_sysdep.h"
 #include "../include/kthread.h"
 
 /* PCI device identification */
 
 /* BCI queue info */
 struct bci_queue_t {
-  int           idx;                       /* points to the active record in buffer */
-  unsigned long addr;                      /* start address of the message queue    */
+  int         idx;                         /* points to the active record in buffer */
+  can_ioptr_t addr;                        /* start address of the message queue    */
 };
 
 /* ipci165 chip data */
index 2d3ee563ad950e56b6397965397745f3783f384a..2c570b05ba0a2a570be30f7bae3705cfb82290a7 100644 (file)
@@ -1,7 +1,9 @@
 #ifndef _KTHREAD_H
 #define _KTHREAD_H
-#include <linux/config.h>
 #include <linux/version.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17))
+#include <linux/config.h>
+#endif
 
 #include <linux/kernel.h>
 #include <linux/sched.h>
index 351e3a3cf95186481c2648d0d5c8f9ce87b86e8c..f8a317f517655b1f0fdc31df31e79017d010e1db 100644 (file)
@@ -15,7 +15,7 @@ int m437_reset(struct candevice_t *candev);
 int m437_init_hw_data(struct candevice_t *candev);
 int m437_init_chip_data(struct candevice_t *candev, int chipnr);
 int m437_init_obj_data(struct canchip_t *chip, int objnr);
-void m437_write_register(unsigned data, unsigned long address);
-unsigned m437_read_register(unsigned long address);
+void m437_write_register(unsigned data, can_ioptr_t address);
+unsigned m437_read_register(can_ioptr_t address);
 int m437_program_irq(struct candevice_t *candev);
 int m437_register(struct hwspecops_t *hwspecops);
index fa98bb235aeaf71f7159e89c481f62aaf16f70b0..5e7ed396cbc0f4e8abce0020c1e702ba739c839b 100644 (file)
@@ -75,7 +75,8 @@ struct candevice_t {
        int candev_idx;                 /* board index in canhardware_t.candevice[] */
        unsigned long io_addr;          /* IO/physical MEM address */
        unsigned long res_addr;         /* optional reset register port */
-       unsigned long dev_base_addr;    /* CPU translated IO/virtual MEM address */
+       can_ioptr_t dev_base_addr;      /* CPU translated IO/virtual MEM address */
+       can_ioptr_t aux_base_addr;      /* CPU translated IO/virtual MEM address */
        unsigned int flags;
        int nr_all_chips;
        int nr_82527_chips;
@@ -154,13 +155,13 @@ struct canchip_t {
        char *chip_type;
        int chip_idx;   /* chip index in candevice_t.chip[] */
        int chip_irq;
-       unsigned long chip_base_addr;
+       can_ioptr_t chip_base_addr;
        unsigned int flags;
        long clock; /* Chip clock in Hz */
        long baudrate;
 
-       void (*write_register)(unsigned data,unsigned long address);
-       unsigned (*read_register)(unsigned long address);
+       void (*write_register)(unsigned data, can_ioptr_t address);
+       unsigned (*read_register)(can_ioptr_t address);
        
        void *chip_data;
        
@@ -214,7 +215,7 @@ struct canchip_t {
  *              that reuse same object for TX
  */
 struct msgobj_t {
-       unsigned long obj_base_addr;
+       can_ioptr_t obj_base_addr;
        unsigned int minor;     /* associated device minor number  */
        unsigned int object;    /* object number in canchip_t +1 for debug printk */
        unsigned long obj_flags; 
@@ -298,8 +299,8 @@ struct hwspecops_t {
        int (*init_chip_data)(struct candevice_t *candev, int chipnr);
        int (*init_obj_data)(struct canchip_t *chip, int objnr);
        int (*program_irq)(struct candevice_t *candev);
-       void (*write_register)(unsigned data,unsigned long address);
-       unsigned (*read_register)(unsigned long address);
+       void (*write_register)(unsigned data, can_ioptr_t address);
+       unsigned (*read_register)(can_ioptr_t address);
 };
 
 /**
@@ -393,43 +394,43 @@ extern struct mem_addr *mem_head;
 
 
 #if defined(CONFIG_OC_LINCAN_PORTIO_ONLY)
-extern inline void can_write_reg(const struct canchip_t *chip, unsigned char data, unsigned address)
+extern inline void can_write_reg(const struct canchip_t *chip, unsigned char data, unsigned reg_offs)
 {
-       outb(data, chip->chip_base_addr+address);
+       can_outb(data, chip->chip_base_addr+reg_offs);
 }
-extern inline unsigned can_read_reg(const struct canchip_t *chip, unsigned address)
+extern inline unsigned can_read_reg(const struct canchip_t *chip, unsigned reg_offs)
 {
-       return inb(chip->chip_base_addr+address);
+       return can_inb(chip->chip_base_addr+reg_offs);
 }
 extern inline void canobj_write_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
-                               unsigned char data, unsigned address)
+                               unsigned char data, unsigned reg_offs)
 {
-       outb(data, obj->obj_base_addr+address);
+       can_outb(data, obj->obj_base_addr+reg_offs);
 }
 extern inline unsigned canobj_read_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
-                               unsigned address)
+                               unsigned reg_offs)
 {
-       return inb(obj->obj_base_addr+address);
+       return can_inb(obj->obj_base_addr+reg_offs);
 }
 
 #elif defined(CONFIG_OC_LINCAN_MEMIO_ONLY)
-extern inline void can_write_reg(const struct canchip_t *chip, unsigned char data, unsigned address)
+extern inline void can_write_reg(const struct canchip_t *chip, unsigned char data, unsigned reg_offs)
 {
-       writeb(data, chip->chip_base_addr+address);
+       can_writeb(data, chip->chip_base_addr+reg_offs);
 }
-extern inline unsigned can_read_reg(const struct canchip_t *chip, unsigned address)
+extern inline unsigned can_read_reg(const struct canchip_t *chip, unsigned reg_offs)
 {
-       return readb(chip->chip_base_addr+address);
+       return can_readb(chip->chip_base_addr+reg_offs);
 }
 extern inline void canobj_write_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
-                               unsigned char data, unsigned address)
+                               unsigned char data, unsigned reg_offs)
 {
-       writeb(data, obj->obj_base_addr+address);
+       can_writeb(data, obj->obj_base_addr+reg_offs);
 }
 extern inline unsigned canobj_read_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
-                               unsigned address)
+                               unsigned reg_offs)
 {
-       return readb(obj->obj_base_addr+address);
+       return can_readb(obj->obj_base_addr+reg_offs);
 }
 
 #else /*CONFIG_OC_LINCAN_DYNAMICIO*/
@@ -437,42 +438,42 @@ extern inline unsigned canobj_read_reg(const struct canchip_t *chip, const struc
 #define CONFIG_OC_LINCAN_DYNAMICIO
 #endif
 
-/* Inline function to write to the hardware registers. The argument address is 
- * relative to the memory map of the chip and not the absolute memory address.
+/* Inline function to write to the hardware registers. The argument reg_offs is 
+ * relative to the memory map of the chip and not the absolute memory reg_offs.
  */
-extern inline void can_write_reg(const struct canchip_t *chip, unsigned char data, unsigned address)
+extern inline void can_write_reg(const struct canchip_t *chip, unsigned char data, unsigned reg_offs)
 {
-       unsigned long address_to_write;
-       address_to_write = chip->chip_base_addr+address;
+       can_ioptr_t address_to_write;
+       address_to_write = chip->chip_base_addr+reg_offs;
        chip->write_register(data, address_to_write);
 }
 
-extern inline unsigned can_read_reg(const struct canchip_t *chip, unsigned address)
+extern inline unsigned can_read_reg(const struct canchip_t *chip, unsigned reg_offs)
 {
-       unsigned long address_to_read;
-       address_to_read = chip->chip_base_addr+address;
+       can_ioptr_t address_to_read;
+       address_to_read = chip->chip_base_addr+reg_offs;
        return chip->read_register(address_to_read);
 }
 
 extern inline void canobj_write_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
-                               unsigned char data, unsigned address)
+                               unsigned char data, unsigned reg_offs)
 {
-       unsigned long address_to_write;
-       address_to_write = obj->obj_base_addr+address;
+       can_ioptr_t address_to_write;
+       address_to_write = obj->obj_base_addr+reg_offs;
        chip->write_register(data, address_to_write);
 }
 
 extern inline unsigned canobj_read_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
-                               unsigned address)
+                               unsigned reg_offs)
 {
-       unsigned long address_to_read;
-       address_to_read = obj->obj_base_addr+address;
+       can_ioptr_t address_to_read;
+       address_to_read = obj->obj_base_addr+reg_offs;
        return chip->read_register(address_to_read);
 }
 
 #endif /*CONFIG_OC_LINCAN_DYNAMICIO*/
 
-int can_base_addr_fixup(struct candevice_t *candev, unsigned long new_base);
+int can_base_addr_fixup(struct candevice_t *candev, can_ioptr_t new_base);
 int can_request_io_region(unsigned long start, unsigned long n, const char *name);
 void can_release_io_region(unsigned long start, unsigned long n);
 int can_request_mem_region(unsigned long start, unsigned long n, const char *name);
index 9f5b3872d382a6058b0e2df1ff4f580cd2a7d5ca..5364809dd36aeb15161b3d45aec9bc5a44800e0c 100644 (file)
@@ -13,7 +13,7 @@ int msmcan_reset(struct candevice_t *candev);
 int msmcan_init_hw_data(struct candevice_t *candev);
 int msmcan_init_chip_data(struct candevice_t *candev, int chipnr);
 int msmcan_init_obj_data(struct canchip_t *chip, int objnr);
-void msmcan_write_register(unsigned data, unsigned long address);
-unsigned msmcan_read_register(unsigned long address);
+void msmcan_write_register(unsigned data, can_ioptr_t address);
+unsigned msmcan_read_register(can_ioptr_t address);
 int msmcan_program_irq(struct candevice_t *candev);
 
index 79be115e191dda59dd1fe5a65590dc20981bdc62..2e928d28342fe9c087a922288a1a1eeaa8107d07 100644 (file)
@@ -20,8 +20,8 @@ int ns_dev_init_chip_data(struct candevice_t *candev, int chipnr);
 int ns_dev_request_io(struct candevice_t *candev);
 int ns_dev_release_io(struct candevice_t *candev);
 int ns_dev_reset(struct candevice_t *candev);
-void ns_dev_write_register(unsigned data, unsigned long address);
-unsigned ns_dev_read_register(unsigned long address);
+void ns_dev_write_register(unsigned data, can_ioptr_t address);
+unsigned ns_dev_read_register(can_ioptr_t address);
 
 int ns_dev_init_obj_data(struct canchip_t *chip, int objnr);
 int ns_dev_program_irq(struct candevice_t *candev);
index c48e4ef443edec97778855438780814275305c2c..45cf660a6bf85aa18b81b12462fb469635806f3b 100644 (file)
@@ -13,7 +13,7 @@ int nsi_reset(struct candevice_t *candev);
 int nsi_init_hw_data(struct candevice_t *candev);
 int nsi_init_chip_data(struct candevice_t *candev, int chipnr);
 int nsi_init_obj_data(struct canchip_t *chip, int objnr);
-void nsi_write_register(unsigned data, unsigned long address);
-unsigned nsi_read_register(unsigned long address);
+void nsi_write_register(unsigned data, can_ioptr_t address);
+unsigned nsi_read_register(can_ioptr_t address);
 int nsi_program_irq(struct candevice_t *candev);
 
index d59f927aeab9cb2d838bbc990cdba6be3bd2dad8..f268172d682cacaa481f8066ff65add3c67594a2 100644 (file)
@@ -13,7 +13,7 @@ int nsi_canpci_reset(struct candevice_t *candev);
 int nsi_canpci_init_hw_data(struct candevice_t *candev);
 int nsi_canpci_init_chip_data(struct candevice_t *candev, int chipnr);
 int nsi_canpci_init_obj_data(struct canchip_t *chip, int objnr);
-void nsi_canpci_write_register(unsigned data, unsigned long address);
-unsigned nsi_canpci_read_register(unsigned long address);
+void nsi_canpci_write_register(unsigned data, can_ioptr_t address);
+unsigned nsi_canpci_read_register(can_ioptr_t address);
 int nsi_canpci_program_irq(struct candevice_t *candev);
 
index 50cca0c32f0061954d54c4623773be679594f9e2..95600176313a184d663364cf80548325b2f46d4d 100644 (file)
@@ -13,7 +13,7 @@ int oscar_reset(struct candevice_t *candev);
 int oscar_init_hw_data(struct candevice_t *candev);
 int oscar_init_chip_data(struct candevice_t *candev, int chipnr);
 int oscar_init_obj_data(struct canchip_t *chip, int objnr);
-void oscar_write_register(unsigned data, unsigned long address);
-unsigned oscar_read_register(unsigned long address);
+void oscar_write_register(unsigned data, can_ioptr_t address);
+unsigned oscar_read_register(can_ioptr_t address);
 int oscar_program_irq(struct candevice_t *candev);
 
index 0e8ec4f3272a29631b2bfc9872bc5cb87d01be22..589e04233308238049c91dea832b2d37faa96a92 100644 (file)
@@ -13,7 +13,7 @@ int pci03_reset(struct candevice_t *candev);
 int pci03_init_hw_data(struct candevice_t *candev);
 int pci03_init_chip_data(struct candevice_t *candev, int chipnr);
 int pci03_init_obj_data(struct canchip_t *chip, int objnr);
-void pci03_write_register(unsigned data, unsigned long address);
-unsigned pci03_read_register(unsigned long address);
+void pci03_write_register(unsigned data, can_ioptr_t address);
+unsigned pci03_read_register(can_ioptr_t address);
 int pci03_program_irq(struct candevice_t *candev);
 
index ca5a14daef4d375e53276fda7f75b485e979715f..b9c07ebda4f8027e1d15a64e64f0cadd40b5f6b3 100644 (file)
@@ -96,8 +96,8 @@ int pcan_dongle_reset(struct candevice_t *candev);
 int pcan_dongle_init_hw_data(struct candevice_t *candev);
 int pcan_dongle_init_chip_data(struct candevice_t *candev, int chipnr);
 int pcan_dongle_init_obj_data(struct canchip_t *chip, int objnr);
-void pcan_dongle_write_register(unsigned data, unsigned long address);
-unsigned pcan_dongle_read_register(unsigned long address);
+void pcan_dongle_write_register(unsigned data, can_ioptr_t address);
+unsigned pcan_dongle_read_register(can_ioptr_t address);
 int pcan_dongle_program_irq(struct candevice_t *candev);
 
 #endif // __PCAN_DONGLE_H__
index 918e7cdf1b1f30d25bb372a448e9cf0a28f2b44c..35006c92ce556325ae65058e519189c1d27dc05d 100644 (file)
@@ -19,8 +19,8 @@ int pccanq_reset(struct candevice_t *candev);
 int pccan_init_hw_data(struct candevice_t *candev);
 int pccan_init_chip_data(struct candevice_t *candev, int chipnr);
 int pccan_init_obj_data(struct canchip_t *chip, int objnr);
-void pccan_write_register(unsigned data, unsigned long address);
-unsigned pccan_read_register(unsigned long address);
+void pccan_write_register(unsigned data, can_ioptr_t address);
+unsigned pccan_read_register(can_ioptr_t address);
 int pccan_program_irq(struct candevice_t *candev);
 
 
index 50039c1e0a4c6045113a25b69a1578485ee422e1..183186ba71274281fac83e6d221a5b94c6bb4f8d 100644 (file)
@@ -13,7 +13,7 @@ int pcccan_reset(struct candevice_t *candev);
 int pcccan_init_hw_data(struct candevice_t *candev);
 int pcccan_init_chip_data(struct candevice_t *candev, int chipnr);
 int pcccan_init_obj_data(struct canchip_t *chip, int objnr);
-void pcccan_write_register(unsigned data, unsigned long address);
-unsigned pcccan_read_register(unsigned long address);
+void pcccan_write_register(unsigned data, can_ioptr_t address);
+unsigned pcccan_read_register(can_ioptr_t address);
 int pcccan_program_irq(struct candevice_t *candev);
 
index d97cbd2f37317a74394f26a0c0d1527ff5c7cfcc..45b665c90981e065eb99a9f3551123b4afb7a6a2 100644 (file)
@@ -13,7 +13,7 @@ int pcm3680_reset(struct candevice_t *candev);
 int pcm3680_init_hw_data(struct candevice_t *candev);
 int pcm3680_init_chip_data(struct candevice_t *candev, int chipnr);
 int pcm3680_init_obj_data(struct canchip_t *chip, int objnr);
-void pcm3680_write_register(unsigned data, unsigned long address);
-unsigned pcm3680_read_register(unsigned long address);
+void pcm3680_write_register(unsigned data, can_ioptr_t address);
+unsigned pcm3680_read_register(can_ioptr_t address);
 int pcm3680_program_irq(struct candevice_t *candev);
 
index a6ba3998a147084e322ee781b68df54de02e8484..292c46e35591f606f9b5a6f18ae1b3d960e56c87 100644 (file)
@@ -17,6 +17,6 @@ int pikronisa_init_hw_data(struct candevice_t *candev);
 int pikronisa_init_chip_data(struct candevice_t *candev, int chipnr);
 int pikronisa_init_obj_data(struct canchip_t *chip, int objnr);
 int pikronisa_program_irq(struct candevice_t *candev);
-void pikronisa_write_register(unsigned data, unsigned long address);
-unsigned pikronisa_read_register(unsigned long address);
+void pikronisa_write_register(unsigned data, can_ioptr_t address);
+unsigned pikronisa_read_register(can_ioptr_t address);
 
index 5feddfe5ae937d46c5a65bafa8655e0f00d2b007..93dcefaa32cabb54d30fa0c289d372cd2689c2cf 100644 (file)
@@ -15,7 +15,7 @@ int pip_reset(struct candevice_t *candev);
 int pip_init_hw_data(struct candevice_t *candev);
 int pip_init_chip_data(struct candevice_t *candev, int chipnr);
 int pip_init_obj_data(struct canchip_t *chip, int objnr);
-void pip_write_register(unsigned data, unsigned long address);
-unsigned pip_read_register(unsigned long address);
+void pip_write_register(unsigned data, can_ioptr_t address);
+unsigned pip_read_register(can_ioptr_t address);
 int pip_program_irq(struct candevice_t *candev);
 
index 58c0d422e4ddc6b56b7158fc15fbcd0229b979a0..11887be0ee25bf228a8889d960a7396f2af2eeaa 100644 (file)
@@ -13,6 +13,6 @@ int smartcan_reset(struct candevice_t *candev);
 int smartcan_init_hw_data(struct candevice_t *candev);
 int smartcan_init_chip_data(struct candevice_t *candev, int chipnr);
 int smartcan_init_obj_data(struct canchip_t *chip, int objnr);
-void smartcan_write_register(unsigned data, unsigned long address);
-unsigned smartcan_read_register(unsigned long address);
+void smartcan_write_register(unsigned data, can_ioptr_t address);
+unsigned smartcan_read_register(can_ioptr_t address);
 
index 63957821e381020bac3ee71d6853a1b6f7a5190b..2bab005c0bfc8763b04850a738f0d701edab5737 100644 (file)
@@ -11,7 +11,7 @@ int ssv_reset(struct candevice_t *candev);
 int ssv_init_hw_data(struct candevice_t *candev);
 int ssv_init_chip_data(struct candevice_t *candev, int chipnr);
 int ssv_init_obj_data(struct canchip_t *chip, int objnr);
-void ssv_write_register(unsigned data, unsigned long address);
-unsigned ssv_read_register(unsigned long address);
+void ssv_write_register(unsigned data, can_ioptr_t address);
+unsigned ssv_read_register(can_ioptr_t address);
 int ssv_program_irq(struct candevice_t *candev);
 
index 88f162c6f0e568bdda3d85727423ebf5a2ed5125..3963dc3788a9d9f3b950797c63b1c68d232ec963 100644 (file)
@@ -13,7 +13,7 @@ int template_reset(struct candevice_t *candev);
 int template_init_hw_data(struct candevice_t *candev);
 int template_init_chip_data(struct candevice_t *candev, int chipnr);
 int template_init_obj_data(struct canchip_t *chip, int objnr);
-void template_write_register(unsigned data, unsigned long address);
-unsigned template_read_register(unsigned long address);
+void template_write_register(unsigned data, can_ioptr_t address);
+unsigned template_read_register(can_ioptr_t address);
 int template_program_irq(struct candevice_t *candev);
 
index 97efdb653d276ea7264508a1683c8be5fc2dbe4d..427b387f88d7bedb0ae917cf8b6f4127425b45a9 100644 (file)
@@ -58,8 +58,8 @@ int tscan1_reset(struct candevice_t *candev);
 int tscan1_init_hw_data(struct candevice_t *candev);
 int tscan1_init_chip_data(struct candevice_t *candev, int chipnr);
 int tscan1_init_obj_data(struct canchip_t *chip, int objnr);
-void tscan1_write_register(unsigned data, unsigned long address);
-unsigned tscan1_read_register(unsigned long address);
+void tscan1_write_register(unsigned data, can_ioptr_t address);
+unsigned tscan1_read_register(can_ioptr_t address);
 int tscan1_program_irq(struct candevice_t *candev);
 
 unsigned long tscan1_getmappedaddr(unsigned long address);
index 59107d4d1425e81b9761a449591ccd9d06dcb9f0..248f480381e5003a483a78cb878048fc4756f057 100644 (file)
@@ -95,14 +95,14 @@ int adlink7841_release_io(struct candevice_t *candev)
 }
 
 
-void adlink7841_write_register(unsigned data, unsigned long address)
+void adlink7841_write_register(unsigned data, can_ioptr_t address)
 {
-       outb(data,address); 
+       can_outb(data,address); 
 }
 
-unsigned adlink7841_read_register(unsigned long address)
+unsigned adlink7841_read_register(can_ioptr_t address)
 {
-       return inb(address);
+       return can_inb(address);
 }
 
 int adlink7841_reset(struct candevice_t *candev)
@@ -194,7 +194,7 @@ int adlink7841_init_chip_data(struct candevice_t *candev, int chipnr)
 
        sja1000p_fill_chipspecops(candev->chip[chipnr]);
        candev->chip[chipnr]->chip_base_addr=
-                       candev->io_addr+chipnr*ADLINK7841_BYTES_PER_CIRCUIT;
+                       can_ioport2ioptr(candev->io_addr+chipnr*ADLINK7841_BYTES_PER_CIRCUIT);
        candev->chip[chipnr]->flags = 0;
        candev->chip[chipnr]->int_cpu_reg = 0;
        candev->chip[chipnr]->int_clk_reg = 0;
index 485186bdaee82071157df9f96ac404bdc7dbd4fb..015a7930397a06a7fba60acf3e8b1069fe80f9af 100644 (file)
@@ -161,7 +161,7 @@ int aim104_init_hw_data(struct candevice_t *candev)
 int aim104_init_chip_data(struct candevice_t *candev, int chipnr)
 {
        sja1000_fill_chipspecops(candev->chip[chipnr]);
-       candev->chip[chipnr]->chip_base_addr=candev->io_addr;
+       candev->chip[chipnr]->chip_base_addr=can_ioport2ioptr(candev->io_addr);
        candev->chip[chipnr]->clock = 16000000;
        candev->chip[chipnr]->flags = 0;
        candev->chip[chipnr]->sja_cdr_reg = 0x08;
@@ -223,9 +223,9 @@ int aim104_program_irq(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/template.c
  */
-void aim104_write_register(unsigned data, unsigned long address)
+void aim104_write_register(unsigned data, can_ioptr_t address)
 {
-       outb(data,address);
+       can_outb(data,address);
 }
 
 /**
@@ -238,9 +238,9 @@ void aim104_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/template.c
  */
-unsigned aim104_read_register(unsigned long address)
+unsigned aim104_read_register(can_ioptr_t address)
 {
-       return inb(address);
+       return can_inb(address);
 }
 
 /* !!! Don't change this function !!! */
index f04fe9fd69f666942f0058030c76fb40ae597f34..75294ec464142f6ef738bc19e1d6d1565472f07f 100644 (file)
@@ -41,8 +41,8 @@ static CAN_DEFINE_SPINLOCK(bfadcan_win_lock);
 #define IO_RANGE 0x100
 #endif
 
-unsigned bfadcan_read_register(unsigned long address);
-void bfadcan_write_register(unsigned data, unsigned long address);
+unsigned bfadcan_read_register(can_ioptr_t address);
+void bfadcan_write_register(unsigned data, can_ioptr_t address);
 
 
 /**
@@ -195,18 +195,18 @@ int bfadcan_init_chip_data(struct candevice_t *candev, int chipnr)
 {
        unsigned int id1, id2;
        sja1000p_fill_chipspecops(candev->chip[chipnr]);
-       candev->chip[chipnr]->chip_base_addr=candev->io_addr;
+       candev->chip[chipnr]->chip_base_addr=can_ioport2ioptr(candev->io_addr);
        if(candev->chip[chipnr]->clock<=0)
                candev->chip[chipnr]->clock = CAN_BFAD_CLOCKFREQ;
        candev->chip[chipnr]->sja_cdr_reg = sjaCDR_CBP | sjaCDR_CLK_OFF;
        candev->chip[chipnr]->sja_ocr_reg = sjaOCR_MODE_NORMAL | sjaOCR_TX0_LH;
-       id1 = inb(0xe284);
-       id2 = inb(0xe285);
+       id1 = can_inb(0xe284);
+       id2 = can_inb(0xe285);
 
 
        CANMSG("can driver ver lincan-0.3, at %04lx, CPLD v%d.%d.%d.%d\n",
-                                       candev->chip[chipnr]->chip_base_addr,
-                                                       id1>>4, id1&0x0f, id2>>4, id2&0x0f);
+                       can_ioptr2ulong(candev->chip[chipnr]->chip_base_addr),
+                       id1>>4, id1&0x0f, id2>>4, id2&0x0f);
 
 
        return 0;
@@ -264,16 +264,16 @@ int bfadcan_program_irq(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/bfadcan.c
  */
-void bfadcan_write_register(unsigned data, unsigned long address)
+void bfadcan_write_register(unsigned data, can_ioptr_t address)
 {
 #ifdef WINDOWED_ACCESS
        can_spin_irqflags_t flags;
        can_spin_lock_irqsave(&bfadcan_win_lock,flags);
-       outb(address&0x00ff,0x200);
-       outb(data, 0x201);
+       can_outb(can_ioptr2ulong(address)&0x00ff,0x200);
+       can_outb(data, 0x201);
        can_spin_unlock_irqrestore(&bfadcan_win_lock,flags);
 #else
-       outb(data,address);
+       can_outb(data,address);
 #endif
 }
 
@@ -287,18 +287,18 @@ void bfadcan_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/bfadcan.c
  */
-unsigned bfadcan_read_register(unsigned long address)
+unsigned bfadcan_read_register(can_ioptr_t address)
 {
 #ifdef WINDOWED_ACCESS
        can_spin_irqflags_t flags;
        int ret;
        can_spin_lock_irqsave(&bfadcan_win_lock,flags);
-       outb(address&0x00ff,0x200);
-       ret = inb(0x201);
+       can_outb(can_ioptr2ulong(address)&0x00ff,0x200);
+       ret = can_inb(0x201);
        can_spin_unlock_irqrestore(&bfadcan_win_lock,flags);
        return ret;
 #else
-       return inb(address);
+       return can_inb(address);
 #endif
 }
 
index 2dafc3de921fa466134b8cd3c7d60fcc3f4a4742..15819a3441696d3e1fc40c5f9e77859ecb0c31ef 100644 (file)
@@ -140,7 +140,7 @@ int cc104_init_hw_data(struct candevice_t *candev)
 int cc104_init_chip_data(struct candevice_t *candev, int chipnr)
 {
        sja1000_fill_chipspecops(candev->chip[chipnr]);
-       candev->chip[chipnr]->chip_base_addr=candev->io_addr;
+       candev->chip[chipnr]->chip_base_addr=can_ioport2ioptr(candev->io_addr);
        candev->chip[chipnr]->clock = 16000000;
        candev->chip[chipnr]->flags = 0;
        candev->chip[chipnr]->sja_cdr_reg = sjaCDR_CBP | sjaCDR_CLK_OFF;
@@ -202,9 +202,9 @@ int cc104_program_irq(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/template.c
  */
-void cc104_write_register(unsigned data, unsigned long address)
+void cc104_write_register(unsigned data, can_ioptr_t address)
 {
-       outb(data,address);
+       can_outb(data,address);
 }
 
 /**
@@ -217,9 +217,9 @@ void cc104_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/template.c
  */
-unsigned cc104_read_register(unsigned long address)
+unsigned cc104_read_register(can_ioptr_t address)
 {
-       return inb(address);
+       return can_inb(address);
 }
 
 /* !!! Don't change this function !!! */
index b87130509457eebf725368d90d153c21f3a62da4..ff1f1c5887552c44402e4c7a0238794065314e1f 100644 (file)
  */
 int eb8245_request_io(struct candevice_t *candev)
 {
-        int remap_addr;
+        can_ioptr_t remap_addr;
        
        if (!can_request_mem_region(candev->io_addr,IO_RANGE,DEVICE_NAME " - eb8245")) {
                CANMSG("Unable to request IO-memory: 0x%lx\n",candev->io_addr);
                return -ENODEV;
        }
-       if ( !( remap_addr = (long) ioremap( candev->io_addr, IO_RANGE ) ) ) {
+       if ( !( remap_addr = ioremap( candev->io_addr, IO_RANGE ) ) ) {
                CANMSG("Unable to access I/O memory at: 0x%lx\n", candev->io_addr);
                can_release_mem_region(candev->io_addr,IO_RANGE);
                return -ENODEV;
@@ -241,11 +241,11 @@ int eb8245_program_irq(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/eb8245.c
  */
-void eb8245_write_register(unsigned data, unsigned long address)
+void eb8245_write_register(unsigned data, can_ioptr_t address)
 {
        /*DEBUGMSG("eb8245_write_register: addr=0x%lx data=0x%x",
                address,data);*/
-       writeb(data,address);
+       can_writeb(data,address);
 }
 
 /**
@@ -258,9 +258,9 @@ void eb8245_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/eb8245.c
  */
-unsigned eb8245_read_register(unsigned long address)
+unsigned eb8245_read_register(can_ioptr_t address)
 {
-       return readb(address);
+       return can_readb(address);
 }
 
 /* !!! Don't change this function !!! */
index d20e2816696ca0ce089275ef87e1c99a33f22e49..ffbf76aeb2ac5e5738a5df2614b91a069a18ae79 100644 (file)
@@ -71,13 +71,13 @@ The board configuration is probably following:
 void ems_cpcpci_disconnect_irq(struct candevice_t *candev)
 {
        /* Disable interrupts from card */
-       writel(0, candev->dev_base_addr + PITA2_ICR);
+       can_writel(0, candev->aux_base_addr + PITA2_ICR);
 }
 
 void ems_cpcpci_connect_irq(struct candevice_t *candev)
 {
        /* Enable interrupts from card */
-       writel(PITA2_ICR_INT0_En, candev->dev_base_addr + PITA2_ICR);
+       can_writel(PITA2_ICR_INT0_En, candev->aux_base_addr + PITA2_ICR);
 }
 
 
@@ -103,20 +103,21 @@ int ems_cpcpci_request_io(struct candevice_t *candev)
     #endif /*(LINUX_VERSION_CODE > KERNEL_VERSION(2,4,21))*/
 
        pita2_addr=pci_resource_start(candev->sysdevptr.pcidev,0);
-       if (!(candev->dev_base_addr = (long) ioremap(pita2_addr, 
+       if (!(candev->aux_base_addr = ioremap(pita2_addr, 
              pci_resource_len(candev->sysdevptr.pcidev,0)))) {
                CANMSG("Unable to access I/O memory at: 0x%lx\n", pita2_addr);
                goto error_ioremap_pita2;
        }
 
        io_addr=pci_resource_start(candev->sysdevptr.pcidev,1);;
-       if (!(candev->io_addr = (long) ioremap(io_addr,
+       if (!(candev->dev_base_addr = ioremap(io_addr,
              pci_resource_len(candev->sysdevptr.pcidev,1)))) {
                CANMSG("Unable to access I/O memory at: 0x%lx\n", io_addr);
                goto error_ioremap_io;
        }
 
-       candev->res_addr=candev->io_addr;
+       candev->io_addr=io_addr;
+       candev->res_addr=pita2_addr;
        
        /* 
         * this is redundant with chip initialization, but remap address 
@@ -125,21 +126,21 @@ int ems_cpcpci_request_io(struct candevice_t *candev)
        for(i=0;i<candev->nr_all_chips;i++) {
                struct canchip_t *chip=candev->chip[i];
                if(!chip) continue;
-               chip->chip_base_addr = candev->io_addr+
+               chip->chip_base_addr = candev->dev_base_addr+
                        0x400 + i*EMS_CPCPCI_BYTES_PER_CIRCUIT;
                if(!chip->msgobj[0]) continue;
                chip->msgobj[0]->obj_base_addr=chip->chip_base_addr;
        }
 
        /* Configure PITA-2 parallel interface */
-       writel(PITA2_MISC_CONFIG, candev->dev_base_addr + PITA2_MISC);
+       can_writel(PITA2_MISC_CONFIG, candev->aux_base_addr + PITA2_MISC);
 
        ems_cpcpci_disconnect_irq(candev);
 
        return 0;
 
     error_ioremap_io:
-       iounmap((void*)candev->dev_base_addr);
+       iounmap(candev->aux_base_addr);
     error_ioremap_pita2:
     #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,21))
        pci_release_region(candev->sysdevptr.pcidev, 1);
@@ -156,8 +157,8 @@ int ems_cpcpci_release_io(struct candevice_t *candev)
 {
        ems_cpcpci_disconnect_irq(candev);
 
-       iounmap((void*)candev->io_addr);
-       iounmap((void*)candev->dev_base_addr);
+       iounmap(candev->dev_base_addr);
+       iounmap(candev->aux_base_addr);
     #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,21))
        pci_release_region(candev->sysdevptr.pcidev, 1);
        pci_release_region(candev->sysdevptr.pcidev, 0);
@@ -169,18 +170,18 @@ int ems_cpcpci_release_io(struct candevice_t *candev)
 }
 
 
-void ems_cpcpci_write_register(unsigned data, unsigned long address)
+void ems_cpcpci_write_register(unsigned data, can_ioptr_t address)
 {
-       address += ((address&(EMS_CPCPCI_BYTES_PER_CIRCUIT-1))
-                           *(EMS_CPCPCI_BYTES_PER_REG-1));
-       writeb(data,address); 
+       address += ((can_ioptr2ulong(address)&(EMS_CPCPCI_BYTES_PER_CIRCUIT-1))
+                                            *(EMS_CPCPCI_BYTES_PER_REG-1));
+       can_writeb(data,address); 
 }
 
-unsigned ems_cpcpci_read_register(unsigned long address)
+unsigned ems_cpcpci_read_register(can_ioptr_t address)
 {
-       address += ((address&(EMS_CPCPCI_BYTES_PER_CIRCUIT-1))
-                           *(EMS_CPCPCI_BYTES_PER_REG-1));
-       return readb(address);
+       address += ((can_ioptr2ulong(address)&(EMS_CPCPCI_BYTES_PER_CIRCUIT-1))
+                                            *(EMS_CPCPCI_BYTES_PER_REG-1));
+       return can_readb(address);
 }
 
 int ems_cpcpci_irq_handler(int irq, struct canchip_t *chip)
@@ -191,12 +192,12 @@ int ems_cpcpci_irq_handler(int irq, struct canchip_t *chip)
        unsigned long icr;
        int test_irq_again;
 
-       icr=readl(candev->dev_base_addr + PITA2_ICR);
+       icr=can_readl(candev->aux_base_addr + PITA2_ICR);
        if(!(icr & PITA2_ICR_INT0)) return CANCHIP_IRQ_NONE;
        
        /* correct way to handle interrupts from all chips connected to the one PITA-2 */
        do {
-               writel(PITA2_ICR_INT0_En | PITA2_ICR_INT0, candev->dev_base_addr + PITA2_ICR);
+               can_writel(PITA2_ICR_INT0_En | PITA2_ICR_INT0, candev->aux_base_addr + PITA2_ICR);
                test_irq_again=0;
                for(i=0;i<candev->nr_all_chips;i++){
                        chip=candev->chip[i];
@@ -205,7 +206,7 @@ int ems_cpcpci_irq_handler(int irq, struct canchip_t *chip)
                        if(sja1000p_irq_handler(irq, chip))
                                test_irq_again=1;
                }
-               icr=readl(candev->dev_base_addr + PITA2_ICR);
+               icr=can_readl(candev->aux_base_addr + PITA2_ICR);
        } while((icr & PITA2_ICR_INT0)||test_irq_again);
        return CANCHIP_IRQ_HANDLED;
 }
@@ -282,9 +283,9 @@ int ems_cpcpci_init_hw_data(struct candevice_t *candev)
        if(ems_cpcpci_request_io(candev)<0)
                return -ENODEV;
 
-       /*** candev->dev_base_addr=pci_resource_start(pcidev,0); ***/
+       /*** candev->aux_base_addr=pci_resource_start(pcidev,0); ***/
        /* some control registers */
-       /*** candev->io_addr=pci_resource_start(pcidev,1); ***/
+       /*** candev->dev_base_addr=pci_resource_start(pcidev,1); ***/
        /* 0 more EMS control registers
          * 0x400 the first SJA1000
          * 0x600 the second SJA1000
@@ -295,9 +296,9 @@ int ems_cpcpci_init_hw_data(struct candevice_t *candev)
        
        for(l=0,i=0;i<4;i++){
                l<<=8;
-               l|=readb(candev->io_addr + i*4);
+               l|=can_readb(candev->dev_base_addr + i*4);
        }
-       i=readb(candev->io_addr + i*5);
+       i=can_readb(candev->dev_base_addr + i*5);
        
        CANMSG("EMS CPC-PCI check value %04lx, ID %d\n", l, i);
        
@@ -328,7 +329,7 @@ int ems_cpcpci_init_chip_data(struct candevice_t *candev, int chipnr)
 
        candev->chip[chipnr]->chip_irq=candev->sysdevptr.pcidev->irq;
 
-       candev->chip[chipnr]->chip_base_addr = candev->io_addr+
+       candev->chip[chipnr]->chip_base_addr = candev->dev_base_addr+
                        0x400 + chipnr*EMS_CPCPCI_BYTES_PER_CIRCUIT;
        candev->chip[chipnr]->flags = 0;
        candev->chip[chipnr]->int_cpu_reg = 0;
index 9c1a00ec93663fe5c859478b80e0f920c27ffee3..8dcf9fb15c3c311cbccfb483ecbe6ccd74b4a7ca 100644 (file)
@@ -170,7 +170,7 @@ int gensja1000io_init_chip_data(struct candevice_t *candev, int chipnr)
        /*sja1000_fill_chipspecops(candev->chip[chipnr]);*/
        sja1000p_fill_chipspecops(candev->chip[chipnr]);
 
-       candev->chip[chipnr]->chip_base_addr=candev->io_addr;
+       candev->chip[chipnr]->chip_base_addr=can_ioport2ioptr(candev->io_addr);
        if(candev->chip[chipnr]->clock<=0)
        candev->chip[chipnr]->clock = 16000000;
        candev->chip[chipnr]->int_clk_reg = 0x0;
@@ -232,11 +232,11 @@ int gensja1000io_program_irq(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/gensja1000io.c
  */
-void gensja1000io_write_register(unsigned data, unsigned long address)
+void gensja1000io_write_register(unsigned data, can_ioptr_t address)
 {
        /*DEBUGMSG("gensja1000io_write_register: addr=0x%lx data=0x%x",
                address,data);*/
-       outb(data,address);
+       can_outb(data,address);
 }
 
 /**
@@ -249,9 +249,9 @@ void gensja1000io_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/gensja1000io.c
  */
-unsigned gensja1000io_read_register(unsigned long address)
+unsigned gensja1000io_read_register(can_ioptr_t address)
 {
-       return inb(address);
+       return can_inb(address);
 }
 
 /* !!! Don't change this function !!! */
index 1a18904a1cf1192f8ba542fd8b31243f3f6ebf46..ff12573448fc124b0a16659e1e02d8c262b4c77b 100644 (file)
@@ -47,7 +47,7 @@ int hms30c7202_request_io(struct candevice_t *candev)
                (unsigned long)candev->io_addr );
        }
        
-       if (!( candev->dev_base_addr = (long)ioremap( candev->io_addr, IO_RANGE ))) {
+       if (!( candev->dev_base_addr = ioremap( candev->io_addr, IO_RANGE ))) {
                DEBUGMSG( "Failed to map IO-memory: 0x%lx - 0x%lx, mapped to 0x%lx\n",
                        (unsigned long)candev->io_addr,
                        (unsigned long)candev->io_addr + IO_RANGE - 1,
@@ -121,7 +121,7 @@ int hms30c7202_release_io(struct candevice_t *candev)
        candev->chip[0]->chipspecops->stop_chip(candev->chip[0]);
        
        // release I/O memory mapping
-       iounmap((void*)candev->dev_base_addr);
+       iounmap(candev->dev_base_addr);
        
        // Release the memory region
        can_release_mem_region(candev->io_addr, IO_RANGE);
@@ -193,16 +193,16 @@ int hms30c7202_init_hw_data(struct candevice_t *candev)
 /*( struct canchip_t *pchip, u16 chip_nr, u16 startminor, u32 baseaddr, u8 irq )*/
 {
        //      u32 intCntrVAddr = 0;
-       u32 gpioVAddr = 0;
+       can_ioptr_t gpioVAddr = 0;
        u32 tempReg = 0;
        u32 baseaddr=candev->io_addr;
        
-       //      if ( (!( intCntrVAddr = (u32)ioremap( 0x80024000, 0xCD ) ))
-       //              & (! ( gpioVAddr = (u32)ioremap( 0x80023000, 0xAD ) ))) {
+       //      if ( (!( intCntrVAddr = ioremap( 0x80024000, 0xCD ) ))
+       //              & (! ( gpioVAddr = ioremap( 0x80023000, 0xAD ) ))) {
        //              DEBUGMSG("Failed to map Int and GPIO memory\n");
        //              return -EIO;
        //      }
-       if ( ! ( gpioVAddr = (u32)ioremap( 0x80023000, 0xAD ) )) {
+       if ( ! ( gpioVAddr = ioremap( 0x80023000, 0xAD ) )) {
                DEBUGMSG("Failed to map GPIO memory\n");
                return -EIO;
        } else {
@@ -218,48 +218,48 @@ int hms30c7202_init_hw_data(struct candevice_t *candev)
        }
        
        if (baseaddr == 0x8002f000) {
-               //              tempReg = readl(intCntrVAddr);
+               //              tempReg = can_readl(intCntrVAddr);
                //              DEBUGMSG("Read Interrupt Enable Register : 0x%.4lx\n",(long)tempReg);
                //              DEBUGMSG("Trying to activate CAN0 Interrupt (Bit 18)\n");
-               //              writel((tempReg | (1<<18)), intCntrVAddr);
-               //              tempReg = readl(intCntrVAddr);
+               //              can_writel((tempReg | (1<<18)), intCntrVAddr);
+               //              tempReg = can_readl(intCntrVAddr);
                //              DEBUGMSG("Read changed Interrupt Enable Register : 0x%.4lx\n",(long)tempReg);
-               tempReg = readl(gpioVAddr + 0x5C);
+               tempReg = can_readl(gpioVAddr + 0x5C);
                DEBUGMSG("Read GPIO-C Enable Register : 0x%.4lx\n",(long)tempReg);
                DEBUGMSG("Trying to activate CAN0 (Bit 1 = 0 for CANTx0, Bit 2 = 0 for CANRx0,)\n");
-               writel(tempReg & ~0x6, gpioVAddr + 0x5C);
-               tempReg = readl(gpioVAddr + 0x5C);
+               can_writel(tempReg & ~0x6, gpioVAddr + 0x5C);
+               tempReg = can_readl(gpioVAddr + 0x5C);
                DEBUGMSG("Read changed GPIO-C Enable Register : 0x%.4lx\n",(long)tempReg);
-               tempReg = readl(gpioVAddr + 0x44);
+               tempReg = can_readl(gpioVAddr + 0x44);
                DEBUGMSG("Read GPIO-C Direction Register : 0x%.4lx\n",(long)tempReg);
                DEBUGMSG("Trying to set CAN0 directions (Bit 1 = 0 for CANTx0 as OUT, Bit 2 = 1 for CANRx0 as IN,)\n");
-               writel((tempReg & ~0x2) | 0x4, gpioVAddr + 0x44);
-               tempReg = readl(gpioVAddr + 0x44);
+               can_writel((tempReg & ~0x2) | 0x4, gpioVAddr + 0x44);
+               tempReg = can_readl(gpioVAddr + 0x44);
                DEBUGMSG("Read changed GPIO-C Direction Register : 0x%.4lx\n",(long)tempReg);
        }
        else if (baseaddr == 0x80030000) {
-               //              tempReg = readl(intCntrVAddr);
-               //              writel((tempReg | (1<<19)), intCntrVAddr);
-               tempReg = readl(gpioVAddr + 0x9C);
+               //              tempReg = can_readl(intCntrVAddr);
+               //              can_writel((tempReg | (1<<19)), intCntrVAddr);
+               tempReg = can_readl(gpioVAddr + 0x9C);
                DEBUGMSG("Read GPIO-E Enable Register : 0x%.8lx\n",(long)tempReg);
                DEBUGMSG("Trying to activate CAN1 (Bit 22 = 0 for CANRx1, Bit 23 = 0 for CANTx1,)\n");
-               writel(tempReg & 0xFF3FFFFF, gpioVAddr + 0x9C);
-               tempReg = readl(gpioVAddr + 0x9C);
+               can_writel(tempReg & 0xFF3FFFFF, gpioVAddr + 0x9C);
+               tempReg = can_readl(gpioVAddr + 0x9C);
                DEBUGMSG("Read changed GPIO-E Enable Register : 0x%.8lx\n",(long)tempReg);
-               tempReg = readl(gpioVAddr + 0x84);
+               tempReg = can_readl(gpioVAddr + 0x84);
                DEBUGMSG("Read GPIO-E Direction Register : 0x%.8lx\n",(long)tempReg);
                DEBUGMSG("Trying to set CAN1 directions (Bit 22 = 1 for CANRx1 as IN, Bit 23 = 0 for CANTx1 as OUT,)\n");
-               writel((tempReg & ~(1<<23)) | 1<<22, gpioVAddr + 0x84);
-               tempReg = readl(gpioVAddr + 0x84);
+               can_writel((tempReg & ~(1<<23)) | 1<<22, gpioVAddr + 0x84);
+               tempReg = can_readl(gpioVAddr + 0x84);
                DEBUGMSG("Read changed GPIO-E Direction Register : 0x%.8lx\n",(long)tempReg);
        }
 
        //DEBUGMSG("Current Interrupt Status Register (ISR): 0x%4.4lx\n",
-       //                      (long)readl(intCntrVAddr + 4));
+       //                      (long)can_readl(intCntrVAddr + 4));
        //DEBUGMSG("Current Interrupt ID: %d\n",
-       //                      (int)(readl(intCntrVAddr + 0x90) & 0xF));
+       //                      (int)(can_readl(intCntrVAddr + 0x90) & 0xF));
        //      iounmap( (void*)intCntrVAddr);
-       iounmap( (void*)gpioVAddr );
+       iounmap( gpioVAddr );
        //      DEBUGMSG( "Unmapped Interrupt Controller IO-memory: 0x%lx\n",
        //            (unsigned long)intCntrVAddr);
        DEBUGMSG( "Unmapped GPIO IO-memory: 0x%lx\n",
@@ -352,17 +352,18 @@ int hms30c7202_init_obj_data(struct canchip_t *chip, int objnr)
  * File: src/template.c
  */
 
-void hms30c7202_write_register(unsigned data, unsigned long address)
+void hms30c7202_write_register(unsigned data, can_ioptr_t address)
 {
+       unsigned long addr=can_ioptr2ulong(address);
        int i;
        //unsigned long usecs = 1;
 
-       address = ((address & C_CAN_REGOFFS_MASK) << 1) |
-                 (address & ~C_CAN_REGOFFS_MASK);
+       address = can_ulong2ioptr(((addr & C_CAN_REGOFFS_MASK) << 1) |
+                                 (addr & ~C_CAN_REGOFFS_MASK));
        
        //DEBUGMSG("Trying to write 0x%u16x to address 0x%lx\n",data,address);
        
-       writew(data,address);
+       can_writew(data,address);
        //udelay( usecs );
        for (i=0; i<5; i++);
 }
@@ -378,19 +379,20 @@ void hms30c7202_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/template.c
  */
-unsigned hms30c7202_read_register(unsigned long address)
+unsigned hms30c7202_read_register(can_ioptr_t address)
 {
+       unsigned long addr=can_ioptr2ulong(address);
        u16 value, i;
        
-       address = ((address & C_CAN_REGOFFS_MASK) << 1) |
-                 (address & ~C_CAN_REGOFFS_MASK);
+       address = can_ulong2ioptr(((addr & C_CAN_REGOFFS_MASK) << 1) |
+                                 (addr & ~C_CAN_REGOFFS_MASK));
 
        //DEBUGMSG("Trying to read from address 0x%lx :",address);
        
-       value = readw(address);
+       value = can_readw(address);
        //udelay( usecs );
        for (i=0;i<5;i++);
-       value = readw(address);
+       value = can_readw(address);
                //udelay( usecs );
        for (i=0;i<5;i++);
        
index 58aa048ae79f938792b2dfeb2d9d77ff3ea858c8..9210ac4dba57c2e7e88d29db272a60bb12be49f1 100644 (file)
@@ -596,7 +596,8 @@ void i82527_irq_update_filter(struct canchip_t *chip, struct msgobj_t *obj)
 
                i82527_pre_read_config(chip, obj);
 
-               CANMSG("i82527_irq_update_filter: obj at 0x%08lx\n",obj->obj_base_addr);
+               CANMSG("i82527_irq_update_filter: obj at 0x%08lx\n",
+                       can_ioptr2ulong(obj->obj_base_addr));
        }
 }
 
index 02b0d02b205adf4ac553be05ac71d3447549b17f..097523164e5bca6efb54458f3581716c569cdb50 100644 (file)
@@ -62,9 +62,9 @@ static void ipci165_delay(long msdelay)
  */
 void ipci165_generate_irq(struct candevice_t *candev)
 {
-  unsigned long crm_addr = candev->io_addr;
-  writeb(readb(crm_addr + CRM_UCR) & 0xFB, crm_addr + CRM_UCR);
-  writeb(readb(crm_addr + CRM_UCR) | 0x04, crm_addr + CRM_UCR);
+  can_ioptr_t crm_addr = candev->aux_base_addr;
+  can_writeb(can_readb(crm_addr + CRM_UCR) & 0xFB, crm_addr + CRM_UCR);
+  can_writeb(can_readb(crm_addr + CRM_UCR) | 0x04, crm_addr + CRM_UCR);
 }
 
 /**
@@ -79,7 +79,7 @@ void ipci165_generate_irq(struct candevice_t *candev)
  */
 int bci_command(struct candevice_t *candev, char cmd, int size, char *data)
 {
-  unsigned long dpram_addr = candev->dev_base_addr;
+  can_ioptr_t dpram_addr = candev->dev_base_addr;
 
   DEBUGMSG ("ipci165_bci_command\n");
 
@@ -93,7 +93,7 @@ int bci_command(struct candevice_t *candev, char cmd, int size, char *data)
   can_spin_lock(&candev->device_lock);
 
   // check command buffer status
-  if (readb(dpram_addr + OF_BCI_SYNC) != 0)
+  if (can_readb(dpram_addr + OF_BCI_SYNC) != 0)
   {
     /* something went wrong ... */
     can_spin_unlock(&candev->device_lock);
@@ -102,12 +102,12 @@ int bci_command(struct candevice_t *candev, char cmd, int size, char *data)
   }
 
   // prepare command
-  writeb(cmd, dpram_addr + OF_BCI_CMD);
-  writeb(size + 1, dpram_addr + OF_BCI_NUM);
+  can_writeb(cmd, dpram_addr + OF_BCI_CMD);
+  can_writeb(size + 1, dpram_addr + OF_BCI_NUM);
   memcpy_toio(dpram_addr + OF_BCI_DATA, data, size);
 
   // set flag for firmware
-  writeb(1, dpram_addr + OF_BCI_SYNC);
+  can_writeb(1, dpram_addr + OF_BCI_SYNC);
 
   // generate interrupt to microcontroller
   ipci165_generate_irq (candev);
@@ -127,14 +127,14 @@ int bci_command(struct candevice_t *candev, char cmd, int size, char *data)
  */
 int bci_response(struct candevice_t *candev, char cmd, int *size, char *data)
 {
-  unsigned long dpram_addr = candev->dev_base_addr;
+  can_ioptr_t dpram_addr = candev->dev_base_addr;
   char tmp;
   int delay;
 
   DEBUGMSG ("ipci165_bci_response\n");
 
   delay = 1000;
-  while (readb(dpram_addr + OF_BCI_SYNC) != 2)
+  while (can_readb(dpram_addr + OF_BCI_SYNC) != 2)
   {
     /* wait 1 ms */
     /*    ipci165_delay(1); */
@@ -150,13 +150,13 @@ int bci_response(struct candevice_t *candev, char cmd, int *size, char *data)
   }
 
   /* we will not copy the command filed, so decrement the size by 1 */
-  tmp = readb(dpram_addr + OF_BCI_NUM) - 1;
+  tmp = can_readb(dpram_addr + OF_BCI_NUM) - 1;
   if (*size > tmp) *size = tmp;
 
-  if (readb(dpram_addr + OF_BCI_CMD) != cmd)
+  if (can_readb(dpram_addr + OF_BCI_CMD) != cmd)
   {
     /* release the buffer */
-    writeb(0, dpram_addr + OF_BCI_SYNC);
+    can_writeb(0, dpram_addr + OF_BCI_SYNC);
     /* unlock the access */
     can_spin_unlock(&candev->device_lock);
 
@@ -166,7 +166,7 @@ int bci_response(struct candevice_t *candev, char cmd, int *size, char *data)
   memcpy_fromio(data, dpram_addr + OF_BCI_DATA, *size);
 
   /* release the buffer */
-  writeb(0, dpram_addr + OF_BCI_SYNC);
+  can_writeb(0, dpram_addr + OF_BCI_SYNC);
   /* unlock the access */
   can_spin_unlock(&candev->device_lock);
   return 0;
@@ -206,8 +206,8 @@ int ipci165_restart_can(struct canchip_t *chip)
 
   for (i = 0; i< BCI_QUEUE_SIZE; i++)
   {
-    writeb(BCI_MSG_STATUS_FREE, chip_data->rx_queue.addr + msg_ofs);
-    writeb(BCI_MSG_STATUS_FREE, chip_data->tx_queue.addr + msg_ofs);
+    can_writeb(BCI_MSG_STATUS_FREE, chip_data->rx_queue.addr + msg_ofs);
+    can_writeb(BCI_MSG_STATUS_FREE, chip_data->tx_queue.addr + msg_ofs);
     msg_ofs += BCI_MSG_SIZE;
   }
 
@@ -314,7 +314,7 @@ long ipci165_qfull_latency(struct msgobj_t *obj)
  */
 int ipci165_connect_irq(struct candevice_t *candev)
 {
-  unsigned long crm_addr = candev->io_addr;
+  can_ioptr_t crm_addr = candev->aux_base_addr;
   unsigned char icr;
   DEBUGMSG ("ipci165_connect_irq\n");
 
@@ -327,9 +327,9 @@ int ipci165_connect_irq(struct candevice_t *candev)
     return -ENODEV;
 
   // Enable interrupt to PC
-  writeb(readb(crm_addr + CRM_ICR) | 0x40, crm_addr + CRM_ICR);
+  can_writeb(can_readb(crm_addr + CRM_ICR) | 0x40, crm_addr + CRM_ICR);
   udelay (100);
-  icr = readb(crm_addr + CRM_ICR);
+  icr = can_readb(crm_addr + CRM_ICR);
   return 0;
 }
 
@@ -342,14 +342,14 @@ int ipci165_connect_irq(struct candevice_t *candev)
  */
 void ipci165_disconnect_irq(struct candevice_t *candev)
 {
-  unsigned long crm_addr = candev->io_addr;
+  can_ioptr_t crm_addr = candev->aux_base_addr;
   unsigned char icr;
   DEBUGMSG ("ipci165_disconnect_irq\n");
 
   // Enable interrupt to PC
-  writeb(readb(crm_addr + CRM_ICR) & ~0x40, crm_addr + CRM_ICR);
+  can_writeb(can_readb(crm_addr + CRM_ICR) & ~0x40, crm_addr + CRM_ICR);
   udelay (100);
-  icr = readb(crm_addr + CRM_ICR);
+  icr = can_readb(crm_addr + CRM_ICR);
   /* deinstall interrupt routine */
   free_irq(candev->sysdevptr.pcidev->irq, candev);
 }
@@ -607,8 +607,8 @@ void ipci165_irq_read_handler(struct canchip_t *chip, struct msgobj_t *obj)
 {
   struct ipci165_chip_t *chip_data = (struct ipci165_chip_t *)chip->chip_data;
   struct bci_queue_t *queue = &(chip_data)->rx_queue;
-  unsigned long       queue_addr = queue->addr;
-  unsigned long       msg_addr   = queue_addr + queue->idx * BCI_MSG_SIZE;
+  can_ioptr_t         queue_addr = queue->addr;
+  can_ioptr_t         msg_addr   = queue_addr + queue->idx * BCI_MSG_SIZE;
 
   int len;
   unsigned char frame_info;
@@ -620,18 +620,18 @@ void ipci165_irq_read_handler(struct canchip_t *chip, struct msgobj_t *obj)
 
   do {
     dump_mem(msg_addr, BCI_MSG_SIZE);
-    if (readb(msg_addr + BCI_MSG_TYPE) == BCI_MSG_TYPE_CAN)
+    if (can_readb(msg_addr + BCI_MSG_TYPE) == BCI_MSG_TYPE_CAN)
     {
 #if 0
-      printk("ST(0)=%x, ST(1)=%x\n",readw(chip->chip_base_addr+OF_CAN1_STATUS),
-             readw(chip->chip_base_addr+OF_CAN2_STATUS));
+      printk("ST(0)=%x, ST(1)=%x\n",can_readw(chip->chip_base_addr+OF_CAN1_STATUS),
+             can_readw(chip->chip_base_addr+OF_CAN2_STATUS));
       for (tmp16 = 0 ; tmp16 < BCI_QUEUE_SIZE ; tmp16 ++)
-        printk ("MSG_ST(%i)=%x\n",tmp16,readb(chip->chip_base_addr + OF_CH2_TX_QUEUE + tmp16*BCI_MSG_SIZE + BCI_MSG_STATUS));
+        printk ("MSG_ST(%i)=%x\n",tmp16,can_readb(chip->chip_base_addr + OF_CH2_TX_QUEUE + tmp16*BCI_MSG_SIZE + BCI_MSG_STATUS));
       /* this is a can message */
       DEBUGMSG ("ipci165_irq_read_handler[%i]: message in buffer\n",chip->chip_idx);
 #endif
 
-      frame_info = readb(msg_addr + BCI_MSG_FRAME);
+      frame_info = can_readb(msg_addr + BCI_MSG_FRAME);
       len =  frame_info & 0x0f;
       if(len > CAN_MSG_LENGTH) len = CAN_MSG_LENGTH;
       obj->rx_msg.length = len;
@@ -639,8 +639,8 @@ void ipci165_irq_read_handler(struct canchip_t *chip, struct msgobj_t *obj)
       obj->rx_msg.cob    = 0;
       obj->rx_msg.timestamp.tv_sec = 0;
       obj->rx_msg.timestamp.tv_usec = 
-          BCI_TIMESTAMP_RES * readl(msg_addr + BCI_MSG_TIMESTAMP);
-      /*  BCI_TIMESTAMP_RES * le32_to_cpu(readl(msg_addr + BCI_MSG_TIMESTAMP)); */
+          BCI_TIMESTAMP_RES * can_readl(msg_addr + BCI_MSG_TIMESTAMP);
+      /*  BCI_TIMESTAMP_RES * le32_to_cpu(can_readl(msg_addr + BCI_MSG_TIMESTAMP)); */
 
       /* fill CAN message timestamp */
       /* can_filltimestamp(&obj->rx_msg.timestamp); */
@@ -650,7 +650,7 @@ void ipci165_irq_read_handler(struct canchip_t *chip, struct msgobj_t *obj)
         /* extended frame - 29 bit identifier */
         obj->rx_msg.flags |= MSG_EXT;
         /* the ID is stored in motorola format (big endian), left justified  */
-        /* obj->rx_msg.id = be32_to_cpu(readl(msg_addr + BCI_MSG_ID) >> 3); */
+        /* obj->rx_msg.id = be32_to_cpu(can_readl(msg_addr + BCI_MSG_ID) >> 3); */
         memcpy_fromio(&tmp32, msg_addr + BCI_MSG_ID, 4);
         obj->rx_msg.id = be32_to_cpu(tmp32 >> 3);
         if (len > 0)
@@ -659,7 +659,7 @@ void ipci165_irq_read_handler(struct canchip_t *chip, struct msgobj_t *obj)
       {
         /* standard frame - 11 bit identifier */
         /* the ID is stored in motorola format (big endian), left justified */
-        /* obj->rx_msg.id = be16_to_cpu(readw(msg_addr + BCI_MSG_ID) >> 5); */
+        /* obj->rx_msg.id = be16_to_cpu(can_readw(msg_addr + BCI_MSG_ID) >> 5); */
         memcpy_fromio(&tmp16, msg_addr + BCI_MSG_ID, 2);
         obj->rx_msg.id = be16_to_cpu(tmp16 >> 5);
         if (len > 0)
@@ -670,7 +670,7 @@ void ipci165_irq_read_handler(struct canchip_t *chip, struct msgobj_t *obj)
     else
     {
       /* this is a status message */
-      status = readw(msg_addr + BCI_MSG_CAN_STATUS);
+      status = can_readw(msg_addr + BCI_MSG_CAN_STATUS);
       DEBUGMSG ("ipci165_irq_read_handler[%i]: CAN status=%04x\n",chip->chip_idx, status);
 
       /* wake up the reset thread if the CAN is in bus off */
@@ -693,10 +693,10 @@ void ipci165_irq_read_handler(struct canchip_t *chip, struct msgobj_t *obj)
     /* update pointer */
     queue->idx = (queue->idx + 1) % BCI_QUEUE_SIZE;
     /* release the buffer */
-    writeb(BCI_MSG_STATUS_FREE, msg_addr + BCI_MSG_STATUS);
+    can_writeb(BCI_MSG_STATUS_FREE, msg_addr + BCI_MSG_STATUS);
     msg_addr = queue_addr + queue->idx * BCI_MSG_SIZE;
 
-  } while (readb(msg_addr + BCI_MSG_STATUS) == BCI_MSG_STATUS_FULL);
+  } while (can_readb(msg_addr + BCI_MSG_STATUS) == BCI_MSG_STATUS_FULL);
 
 }
 
@@ -713,8 +713,8 @@ void ipci165_irq_write_handler(struct canchip_t *chip, struct msgobj_t *obj)
 {
   struct ipci165_chip_t *chip_data = ((struct ipci165_chip_t *)chip->chip_data);
   struct bci_queue_t *queue      = &chip_data->tx_queue;
-  unsigned long       queue_addr = queue->addr;
-  unsigned long       msg_addr   = queue_addr + queue->idx * BCI_MSG_SIZE;
+  can_ioptr_t         queue_addr = queue->addr;
+  can_ioptr_t         msg_addr   = queue_addr + queue->idx * BCI_MSG_SIZE;
   struct canque_slot_t *tx_slot;
 
   int len;
@@ -727,7 +727,7 @@ void ipci165_irq_write_handler(struct canchip_t *chip, struct msgobj_t *obj)
   while ((canque_test_outslot(obj->qends, &obj->tx_qedge, &obj->tx_slot) >=0))
   {
     if (test_bit(CHIP_FLAG_RESET,&chip_data->flags) ||
-        (readb(msg_addr + BCI_MSG_STATUS) == BCI_MSG_STATUS_FULL))
+        (can_readb(msg_addr + BCI_MSG_STATUS) == BCI_MSG_STATUS_FULL))
     {
       canque_again_outslot(obj->qends, obj->tx_qedge, obj->tx_slot);
 
@@ -757,9 +757,9 @@ void ipci165_irq_write_handler(struct canchip_t *chip, struct msgobj_t *obj)
         ((tx_slot->msg.flags & MSG_RTR) ? BCI_MSG_FRAME_RTR : 0) |
         ((tx_slot->msg.flags & MSG_EXT) ? BCI_MSG_FRAME_EXT : 0);
 
-    writeb(BCI_MSG_SIZE - 2, msg_addr + BCI_MSG_NUM);
-    writeb(BCI_MSG_TYPE_CAN, msg_addr + BCI_MSG_TYPE);
-    writeb(frame_info, msg_addr + BCI_MSG_FRAME);
+    can_writeb(BCI_MSG_SIZE - 2, msg_addr + BCI_MSG_NUM);
+    can_writeb(BCI_MSG_TYPE_CAN, msg_addr + BCI_MSG_TYPE);
+    can_writeb(frame_info, msg_addr + BCI_MSG_FRAME);
     if (frame_info & BCI_MSG_FRAME_EXT)
     {
       /* extended frame - 29 bit identifier */
@@ -783,7 +783,7 @@ void ipci165_irq_write_handler(struct canchip_t *chip, struct msgobj_t *obj)
     /* update pointer */
     queue->idx = (queue->idx + 1) % BCI_QUEUE_SIZE;
     /* mark the buffer as full */
-    writeb(BCI_MSG_STATUS_FULL, msg_addr + BCI_MSG_STATUS);
+    can_writeb(BCI_MSG_STATUS_FULL, msg_addr + BCI_MSG_STATUS);
     /* wake up the controller */
     ipci165_generate_irq(chip->hostdevice);
 
@@ -848,12 +848,12 @@ void ipci165_irq_chip_handler(struct canchip_t *chip)
 
   /* check receive queue for messages */
   queue = &chip_data->rx_queue;
-  if (readb(queue->addr + queue->idx * BCI_MSG_SIZE + BCI_MSG_STATUS)
+  if (can_readb(queue->addr + queue->idx * BCI_MSG_SIZE + BCI_MSG_STATUS)
       == BCI_MSG_STATUS_FULL)
     ipci165_irq_read_handler(chip, obj);
 
   queue = &chip_data->tx_queue;
-/*  if (readb(queue->addr + queue->idx * BCI_MSG_SIZE + BCI_MSG_STATUS)
+/*  if (can_readb(queue->addr + queue->idx * BCI_MSG_SIZE + BCI_MSG_STATUS)
   == BCI_MSG_STATUS_FREE) */
   {
     can_msgobj_set_fl(obj,TX_REQUEST);
@@ -884,8 +884,8 @@ can_irqreturn_t ipci165_irq_handler(CAN_IRQ_HANDLER_ARGS(irq_number, dev_id))
   int retval;
   struct candevice_t *candev = (struct candevice_t *)dev_id;
 
-  unsigned long crm_addr   = candev->io_addr;
-  unsigned long ucr1_addr  = crm_addr + CRM_UCR + 1;
+  can_ioptr_t crm_addr   = candev->aux_base_addr;
+  can_ioptr_t ucr1_addr  = crm_addr + CRM_UCR + 1;
   struct canchip_t *chip;
   unsigned char icr;
   int i;
@@ -893,15 +893,15 @@ can_irqreturn_t ipci165_irq_handler(CAN_IRQ_HANDLER_ARGS(irq_number, dev_id))
   /* DEBUGMSG ("ipci165_irq_handler\n"); */
 
   /* read interrupt control register (byte 0) */
-  icr = readb(crm_addr + CRM_ICR);
+  icr = can_readb(crm_addr + CRM_ICR);
 
   if ((icr & 0x44) == 0x44)
   {
     DEBUGMSG ("ipci165_irq_handler: pending interrupt\n");
 
     /* confirm pending interrupt */
-    writeb(readb(ucr1_addr) | 0x01,  ucr1_addr);
-    writeb(readb(ucr1_addr) & ~0x01, ucr1_addr);
+    can_writeb(can_readb(ucr1_addr) | 0x01,  ucr1_addr);
+    can_writeb(can_readb(ucr1_addr) & ~0x01, ucr1_addr);
 
     /* call interrupt handler for every channel */
     for (i=0 ; i < candev->nr_all_chips ; i++)
@@ -1005,9 +1005,9 @@ int ipci165_release_chip(struct canchip_t *chip)
  */
 int ipci165_request_io(struct candevice_t *candev)
 {
-  unsigned long dpram_addr;
-  unsigned long crm_addr;
-  unsigned long fix_addr;
+  unsigned long dpram_addr; /* physical address before remap for this function */
+  unsigned long crm_addr;   /* physical address before remap for this function */
+  unsigned long fix_addr;   /* physical address before remap for this function */
   int i,j;
 
   DEBUGMSG ("ipci165_request_io\n");
@@ -1029,18 +1029,18 @@ int ipci165_request_io(struct candevice_t *candev)
     {
       CANMSG ("This card was not fixed!\n");
 
-      if (candev->io_addr == 0)
+      if (candev->aux_base_addr == NULL)
       {
         CANMSG ("You have to specify IO address parameter!\n");
         return -EINVAL;
       }
       CANMSG ("Using specified IO address value for the memory [0x%lx]\n",
-              candev->io_addr);
+              can_ioptr2ulong(candev->aux_base_addr));
     }
     else
     {
       CANMSG ("Fixed card. Using of 3 region [0x%lx]\n", fix_addr);
-      candev->io_addr = fix_addr;
+      candev->aux_base_addr = fix_addr;
     }
 
     pci_write_config_dword (candev->sysdevptr.pcidev,
@@ -1058,17 +1058,16 @@ int ipci165_request_io(struct candevice_t *candev)
   {
 #endif /*(LINUX_VERSION_CODE > KERNEL_VERSION(2,4,21))*/
 
-      if ((candev->dev_base_addr = (long) ioremap(dpram_addr, 
+      if ((candev->dev_base_addr = ioremap(dpram_addr, 
            pci_resource_len(candev->sysdevptr.pcidev,2))))
       {
         DEBUGMSG ("ipci165_request_io: dpram remapped to 0x%lx\n", candev->dev_base_addr);
 
-        if ((candev->io_addr = (long) ioremap(crm_addr, 
+        if ((candev->aux_base_addr = ioremap(crm_addr, 
              pci_resource_len(candev->sysdevptr.pcidev,0))))
         {
-          DEBUGMSG ("ipci165_request_io: crm remapped to 0x%lx\n", candev->io_addr);
+          DEBUGMSG ("ipci165_request_io: crm remapped to 0x%lx\n", can_ioptr2ulong(candev->aux_base_addr));
           /* all resources has been allocated */
-          candev->res_addr=candev->io_addr;
 
           /* Because of my mapping, I cannot use the
              can_base_addr_fixup(candev, remap_addr) to remap the addresses */
@@ -1082,10 +1081,10 @@ int ipci165_request_io(struct candevice_t *candev)
           return 0;
 
         } else CANMSG("Unable to remap memory at: 0x%lx\n", crm_addr);
-        iounmap((void*)candev->io_addr);
+        iounmap(candev->aux_base_addr);
 
       } else CANMSG("Unable to remap memory at: 0x%lx\n", dpram_addr);
-      iounmap((void*)candev->dev_base_addr);
+      iounmap(candev->dev_base_addr);
 
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,21))
       pci_release_region(candev->sysdevptr.pcidev, 0);
@@ -1126,8 +1125,8 @@ int ipci165_release_io(struct candevice_t *candev)
   }
 #endif
 
-  iounmap((void*)candev->io_addr);
-  iounmap((void*)candev->dev_base_addr);
+  iounmap(candev->aux_base_addr);
+  iounmap(candev->dev_base_addr);
 
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,21))
   pci_release_region(candev->sysdevptr.pcidev, 2);
@@ -1148,7 +1147,7 @@ int ipci165_release_io(struct candevice_t *candev)
  */
 int ipci165_download_fw(struct candevice_t *candev)
 {
-  unsigned long dpram_addr = candev->dev_base_addr;
+  can_ioptr_t dpram_addr = candev->dev_base_addr;
   char board_name[BOARD_NAME_LEN+1];
   char hw_version[HW_VERSION_LEN+1];
   char mode[MODE_LEN+1];
@@ -1189,13 +1188,13 @@ int ipci165_download_fw(struct candevice_t *candev)
   while (fwArray->len)
   {
     /* fill buffer */
-    writeb(LD_CMD_DOWNLOAD, dpram_addr + OF_LD_CMD);
-    writeb(fwArray->len, dpram_addr + OF_LD_NUM);
-    writeb(0, dpram_addr + OF_LD_NUM + 1);
+    can_writeb(LD_CMD_DOWNLOAD, dpram_addr + OF_LD_CMD);
+    can_writeb(fwArray->len, dpram_addr + OF_LD_NUM);
+    can_writeb(0, dpram_addr + OF_LD_NUM + 1);
 
-    writel(fwArray->addr, dpram_addr + OF_LD_ADDRESS);
-    /*    writel already performes the cpu_to_le32 conversion by itself   */
-    /*    writel(cpu_to_le32(fwArray->addr), dpram_addr + OF_LD_ADDRESS); */
+    can_writel(fwArray->addr, dpram_addr + OF_LD_ADDRESS);
+    /*    can_writel already performes the cpu_to_le32 conversion by itself   */
+    /*    can_writel(cpu_to_le32(fwArray->addr), dpram_addr + OF_LD_ADDRESS); */
 
     memcpy_toio(dpram_addr + OF_LD_DATA, fwArray->a_data, fwArray->len);
 
@@ -1203,14 +1202,14 @@ int ipci165_download_fw(struct candevice_t *candev)
     dump_mem((void *)(dpram_addr + OF_LD_SYNC), fwArray->len + 8);
 #endif
     /* buffer is prepared, set flag for loader */
-    writeb(1, dpram_addr + OF_LD_SYNC);
+    can_writeb(1, dpram_addr + OF_LD_SYNC);
 
     /* update pointer */
     fwArray++;
 
     /* wait for the loader */
     attempt = 1000;
-    while (readb(dpram_addr + OF_LD_SYNC) != 0)
+    while (can_readb(dpram_addr + OF_LD_SYNC) != 0)
     {
       udelay(100);
       if (--attempt == 0)
@@ -1224,8 +1223,8 @@ int ipci165_download_fw(struct candevice_t *candev)
   CANMSG ("Firmware downladed successfully\n");
 
   /* start the FW */
-  writeb(LD_CMD_START_FW, dpram_addr + OF_LD_CMD);
-  writeb(1, dpram_addr + OF_LD_SYNC);
+  can_writeb(LD_CMD_START_FW, dpram_addr + OF_LD_CMD);
+  can_writeb(1, dpram_addr + OF_LD_SYNC);
   ipci165_delay (500);
 
   return 0;
@@ -1240,7 +1239,7 @@ int ipci165_download_fw(struct candevice_t *candev)
  */
 int ipci165_reset(struct candevice_t *candev)
 {
-  unsigned long crm_addr = candev->io_addr;
+  can_ioptr_t crm_addr = candev->aux_base_addr;
   unsigned long test_data;
   char buffer[BCI_CMD_MAX_LEN];
   int i, size, chips;
@@ -1251,10 +1250,10 @@ int ipci165_reset(struct candevice_t *candev)
   DEBUGMSG ("ipci165_reset: hardware reset\n");
 
   /* reset the HW */
-  ucr = readb(crm_addr + CRM_UCR + 3);
-  writeb(ucr | 0x40, crm_addr + CRM_UCR + 3);
+  ucr = can_readb(crm_addr + CRM_UCR + 3);
+  can_writeb(ucr | 0x40, crm_addr + CRM_UCR + 3);
   udelay(100);
-  writeb(ucr & ~0x40, crm_addr + CRM_UCR + 3);
+  can_writeb(ucr & ~0x40, crm_addr + CRM_UCR + 3);
 
   /* wait a little bit */
   ipci165_delay(200);
index 4e574a9e9c42af9f2d3cebd94490f00792ef785c..e8e94c47185a3f4bc6a85a64e01edc05fd8b618d 100644 (file)
@@ -1,5 +1,7 @@
-#include <linux/config.h>
 #include <linux/version.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17))
+#include <linux/config.h>
+#endif
 
 #if defined(MODVERSIONS)
 #include <linux/modversions.h>
index a3d200089b09fe37ae29b229ba4e602d223fc1b5..e01a9eb4ca0ad5b3a0964ea68f14387aa01b3c7b 100644 (file)
@@ -56,18 +56,18 @@ void kv_pcican_disconnect_irq(struct candevice_t *candev)
 {
        unsigned long tmp;
        /* Disable interrupts from card */
-       tmp = inl(candev->dev_base_addr + S5920_INTCSR);
+       tmp = can_inl(candev->dev_base_addr + S5920_INTCSR);
        tmp &= ~INTCSR_ADDON_INTENABLE_M;
-       outl(tmp, candev->dev_base_addr + S5920_INTCSR);
+       can_outl(tmp, candev->dev_base_addr + S5920_INTCSR);
 }
 
 void kv_pcican_connect_irq(struct candevice_t *candev)
 {
        unsigned long tmp;
        /* Enable interrupts from card */
-       tmp = inl(candev->dev_base_addr + S5920_INTCSR);
+       tmp = can_inl(candev->dev_base_addr + S5920_INTCSR);
        tmp |= INTCSR_ADDON_INTENABLE_M;
-       outl(tmp, candev->dev_base_addr + S5920_INTCSR);
+       can_outl(tmp, candev->dev_base_addr + S5920_INTCSR);
 }
 
 
@@ -121,14 +121,14 @@ int kv_pcican_release_io(struct candevice_t *candev)
 }
 
 
-void kv_pcican_write_register(unsigned data, unsigned long address)
+void kv_pcican_write_register(unsigned data, can_ioptr_t address)
 {
-       outb(data,address); 
+       can_outb(data,address); 
 }
 
-unsigned kv_pcican_read_register(unsigned long address)
+unsigned kv_pcican_read_register(can_ioptr_t address)
 {
-       return inb(address);
+       return can_inb(address);
 }
 
 int kv_pcican_reset(struct candevice_t *candev)
@@ -140,7 +140,7 @@ int kv_pcican_reset(struct candevice_t *candev)
        DEBUGMSG("Resetting kv_pcican hardware ...\n");
 
        /* Assert PTADR# - we're in passive mode so the other bits are not important */
-       outl(0x80808080L, candev->dev_base_addr + S5920_PTCR);
+       can_outl(0x80808080L, candev->dev_base_addr + S5920_PTCR);
 
        kv_pcican_disconnect_irq(candev);
 
index c67b3dd689638f4657daa707d67199d12b0d7206..d90db12e3077c07534b23f4ce71cbf725f2adeee 100644 (file)
@@ -36,8 +36,6 @@
 #define IO_RANGE 0x100
 
 
-static long base = 0L; 
-
 /**
  * m437_request_io: - reserve io or memory range for can board
  * @candev: pointer to candevice/board which asks for io. Field @io_addr
@@ -60,7 +58,7 @@ int m437_request_io(struct candevice_t *candev)
                return -ENODEV;
        }
 
-       if ( !( base = (long) ioremap( candev->io_addr, IO_RANGE ) ) ) {
+       if ( !( candev->dev_base_addr = ioremap( candev->io_addr, IO_RANGE ) ) ) {
                CANMSG("Unable to access I/O memory at: 0x%lx\n", candev->io_addr);
                can_release_mem_region(candev->io_addr,IO_RANGE);
                return -ENODEV;
@@ -87,7 +85,7 @@ int m437_release_io(struct candevice_t *candev)
        unsigned i;
        
         /* disable IRQ generation */
-        m437_write_register(iCTL_CCE, iCTL);
+        m437_write_register(iCTL_CCE, candev->dev_base_addr+iCTL);
 
        /* clear all message objects */
        for (i=1; i<=15; i++) {
@@ -96,21 +94,21 @@ int m437_release_io(struct candevice_t *candev)
                                RXIE_RES | 
                                TXIE_RES | 
                                MVAL_RES, 
-                               i*0x10+iMSGCTL0);
+                               candev->dev_base_addr+i*0x10+iMSGCTL0);
                m437_write_register(
                                NEWD_RES | 
                                MLST_RES | 
                                CPUU_RES | 
                                TXRQ_RES | 
                                RMPD_RES, 
-                               i*0x10+iMSGCTL1);
+                               candev->dev_base_addr+i*0x10+iMSGCTL1);
        }
        
        /* power down i82527 */
-       m437_write_register(iCPU_PWD, iCPU);
+       m437_write_register(iCPU_PWD, candev->dev_base_addr+iCPU);
        
        /* release I/O memory mapping */
-       iounmap((void*)base);
+       iounmap(candev->dev_base_addr);
 
        can_release_mem_region(candev->io_addr,IO_RANGE);
 
@@ -198,7 +196,7 @@ int m437_init_hw_data(struct candevice_t *candev)
 int m437_init_chip_data(struct candevice_t *candev, int chipnr)
 {
        i82527_fill_chipspecops(candev->chip[chipnr]);
-       candev->chip[chipnr]->chip_base_addr=candev->io_addr;
+       candev->chip[chipnr]->chip_base_addr=candev->dev_base_addr;
        candev->chip[chipnr]->clock = 16000000;
        candev->chip[chipnr]->int_cpu_reg = iCPU_DSC | iCPU_CEN;
        candev->chip[chipnr]->int_clk_reg = 
@@ -260,9 +258,9 @@ int m437_program_irq(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/m437.c
  */
-void m437_write_register(unsigned data, unsigned long address)
+void m437_write_register(unsigned data, can_ioptr_t address)
 {
-       writeb(data,base+address);
+       can_writeb(data,address);
 }
 
 /**
@@ -275,9 +273,9 @@ void m437_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/m437.c
  */
-unsigned m437_read_register(unsigned long address)
+unsigned m437_read_register(can_ioptr_t address)
 {
-       return readb(base+address);
+       return can_readb(address);
 }
 
 /* !!! Don't change this function !!! */
index 9851b5ff5fb34a85443e89c076f06292f4861ac8..b6ebbae70cd52f55f1e1b1f4ccfc191cb397953f 100644 (file)
@@ -61,7 +61,7 @@ int msmcan_reset(struct candevice_t *candev)
        DEBUGMSG("Resetting msmcan hardware ...\n");
        /* we don't use template_write_register because we don't use the two first
           registers of the card but the third in order to make a hard reset */
-       /* outb (1, msmcan_base + candev->res_addr); */
+       /* can_outb (1, msmcan_base + candev->res_addr); */
 
 
        /* terrible MSMCAN reset design - best to comment out */
@@ -128,7 +128,7 @@ int msmcan_init_chip_data(struct candevice_t *candev, int chipnr)
        i82527_fill_chipspecops(candev->chip[chipnr]);
        /* device uses indexed access */
        candev->chip[chipnr]->chip_base_addr=
-           candev->io_addr << 16;
+           can_ioport2ioptr(candev->io_addr << 16);
        candev->chip[chipnr]->clock = 16000000;
        /* The CLKOUT has to be enabled to reset MSMCAN MAX1232 watchdog */
        candev->chip[chipnr]->int_cpu_reg = iCPU_DSC | iCPU_CEN;
@@ -172,17 +172,18 @@ int msmcan_program_irq(struct candevice_t *candev)
  * on the CAN chip. You should only have to edit this function if your hardware
  * uses some specific write process.
  */
-void msmcan_write_register(unsigned data, unsigned long address)
+void msmcan_write_register(unsigned data, can_ioptr_t address)
 {
        /* address is combination of base address shifted left by 16 and index */
        can_spin_irqflags_t flags;
+       unsigned long addr=can_ioptr2ulong(address);
 
        /* the msmcan card has two registers, the data register at 0x0
           and the address register at 0x01 */
 
        can_spin_lock_irqsave(&msmcan_port_lock,flags);
-       outb(address & 0xff, (address>>16)+1);
-       outb(data, address>>16); 
+       can_outb(addr & 0xff, (addr>>16)+1);
+       can_outb(data, addr>>16); 
        can_spin_unlock_irqrestore(&msmcan_port_lock,flags);
 }
 
@@ -190,7 +191,7 @@ void msmcan_write_register(unsigned data, unsigned long address)
  * on the CAN chip. You should only have to edit this function if your hardware
  * uses some specific read process.
  */
-unsigned msmcan_read_register(unsigned long address)
+unsigned msmcan_read_register(can_ioptr_t address)
 {
        /* this is the same thing that the function write_register.
           We use the two register, we write the address where we 
@@ -198,11 +199,11 @@ unsigned msmcan_read_register(unsigned long address)
           data */
        unsigned char ret;
        can_spin_irqflags_t flags;
-    
+       unsigned long addr=can_ioptr2ulong(address);
 
        can_spin_lock_irqsave(&msmcan_port_lock,flags);
-       outb(address & 0xff, (address>>16)+1);
-       ret=inb(address>>16); 
+       can_outb(addr & 0xff, (addr>>16)+1);
+       ret=can_inb(addr>>16); 
        can_spin_unlock_irqrestore(&msmcan_port_lock,flags);
        return ret;
 }
index 0fc15c07ace6711e9bada69cdb01ec1d6f928d63..4d35965c0a24a95a0ab7fa5ffe2a9ac1a5ff1240 100644 (file)
@@ -43,7 +43,7 @@ int ns_dev_request_io(struct candevice_t *candev)
                       (unsigned long)candev->io_addr);
        }
 
-       if (!(candev->dev_base_addr = (long)ioremap(candev->io_addr, IO_RANGE))) {
+       if (!(candev->dev_base_addr = ioremap(candev->io_addr, IO_RANGE))) {
                DEBUGMSG
                    ("Failed to map IO-memory: 0x%lx - 0x%lx, mapped to 0x%lx\n",
                     (unsigned long)candev->io_addr,
@@ -76,13 +76,10 @@ int ns_dev_request_io(struct candevice_t *candev)
  */
 int ns_dev_release_io(struct candevice_t *candev)
 {
-       u16 tempReg;
-       int i;
-
        DEBUGMSG("(c%d)ns_dev_release_io (...)\n", candev->chip[0]->chip_idx);
 
        /* Release I/O memory mapping */
-       iounmap((void *)candev->dev_base_addr);
+       iounmap(candev->dev_base_addr);
 
        /* Release the memory region */
        can_release_mem_region(candev->io_addr, IO_RANGE);
@@ -148,21 +145,21 @@ int ns_dev_reset(struct candevice_t *candev)
  */
 int ns_dev_init_hw_data(struct candevice_t *candev)
 {
-       u32 sys_contVA = 0;
+       can_ioptr_t sys_contVA = NULL;
 
        /* LUCAN : Magic numbers */
-       if (!(sys_contVA = (u32) ioremap(NS9750_PERIPHERAL_BASE_ADDRESS,
+       if (!(sys_contVA = ioremap(NS9750_PERIPHERAL_BASE_ADDRESS,
                                         NS9750_PERIPHERAL_MAP_SIZE))) {
                DEBUGMSG("Failed to map FPGA memory\n");
                return -EIO;
        } else {
                DEBUGMSG("Writing to NS9750 sys cont\n");
-               writel((BUS_WIDTH_16BIT | ACTIVE_LOW_CHIP_SELECT),
+               can_writel((BUS_WIDTH_16BIT | ACTIVE_LOW_CHIP_SELECT),
                       sys_contVA + NS9750_SYSTEM_CONTROLLER_OFFSET);
        }
 
        /* We have finished with this mapping */
-       iounmap((void *)sys_contVA);
+       iounmap(sys_contVA);
 
        candev->nr_82527_chips = 0;
        candev->nr_sja1000_chips = 0;
@@ -236,12 +233,12 @@ int ns_dev_init_obj_data(struct canchip_t *chip, int objnr)
  * Return Value: The function does not return a value
  * File: src/template.c
  */
-void ns_dev_write_register(unsigned data, unsigned long address)
+void ns_dev_write_register(unsigned data, can_ioptr_t address)
 {
        int i;
        //unsigned long usecs = 1;
 
-       writew(data, address);
+       can_writew(data, address);
        //udelay( usecs );
        for (i = 0; i < 5; i++) ;
 }
@@ -256,14 +253,14 @@ void ns_dev_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/template.c
  */
-unsigned ns_dev_read_register(unsigned long address)
+unsigned ns_dev_read_register(can_ioptr_t address)
 {
        u16 value, i;
 
-       value = readw(address);
+       value = can_readw(address);
        //udelay( usecs );
        for (i = 0; i < 5; i++) ;
-       value = readw(address);
+       value = can_readw(address);
        //udelay( usecs );
        for (i = 0; i < 5; i++) ;
 
index ce9c591e1e2a6b9eafbba00a5c8cc8e27f0368b0..06d38e1e2aa968179d90306e1ec555e9b6918a94 100644 (file)
@@ -64,8 +64,8 @@ int nsi_reset(struct candevice_t *candev)
     DEBUGMSG("Resetting nsi hardware ...\n");
     /* we don't use template_write_register because we don't use the two first
        register of the card but the third in order to make a hard reset */
-    outb (1, nsican_base + candev->res_addr);
-    outb (0, nsican_base + candev->res_addr);
+    can_outb (1, nsican_base + candev->res_addr);
+    can_outb (0, nsican_base + candev->res_addr);
     for (i = 1; i < 1000; i++)
        udelay (1000);
     
@@ -124,7 +124,7 @@ int nsi_init_chip_data(struct candevice_t *candev, int chipnr)
 {
        i82527_fill_chipspecops(candev->chip[chipnr]);
        candev->chip[chipnr]->chip_base_addr=
-           candev->io_addr;
+           can_ioport2ioptr(candev->io_addr);
        candev->chip[chipnr]->clock = 16000000;
        nsican_irq=candev->chip[chipnr]->chip_irq;      
         nsican_base=candev->chip[chipnr]->chip_base_addr;
@@ -169,7 +169,7 @@ int nsi_program_irq(struct candevice_t *candev)
  * on the CAN chip. You should only have to edit this function if your hardware
  * uses some specific write process.
  */
-void nsi_write_register(unsigned data, unsigned long address)
+void nsi_write_register(unsigned data, can_ioptr_t address)
 {
     /* address is an absolute address */
 
@@ -178,14 +178,14 @@ void nsi_write_register(unsigned data, unsigned long address)
 
     /* write the relative address on the eight LSB bits 
        and the data on the eight MSB bits in one time */
-    outw(address-nsican_base + (256 * data), nsican_base); 
+    can_outw(address-nsican_base + (256 * data), nsican_base); 
 }
 
 /* The function template_read_register is used to read from hardware registers
  * on the CAN chip. You should only have to edit this function if your hardware
  * uses some specific read process.
  */
-unsigned nsi_read_register(unsigned long address)
+unsigned nsi_read_register(can_ioptr_t address)
 {
     /* this is the same thing that the function write_register.
        We use the two register, we write the address where we 
@@ -195,8 +195,8 @@ unsigned nsi_read_register(unsigned long address)
        can_spin_irqflags_t flags;
     
        can_spin_lock_irqsave(&nsican_port_lock,flags);
-       outb(address-nsican_base, nsican_base);
-       ret=inb(nsican_base+1);
+       can_outb(address-nsican_base, nsican_base);
+       ret=can_inb(nsican_base+1);
        can_spin_unlock_irqrestore(&nsican_port_lock,flags);
        return ret;
 }
index 9fbed1117562232dfdc66a94a9a36fe489e95a2e..97ce2b43ba09c6cd49ad9ccd8d67099daa3ca1db 100644 (file)
@@ -23,10 +23,10 @@ extern int mo15mask;
 #include <linux/module.h>
 
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10))
-       #define ioread32        readl
-       #define iowrite32       writel
-       #define ioread8         readb
-       #define iowrite8        writeb
+       #define ioread32        can_readl
+       #define iowrite32       can_writel
+       #define ioread8         can_readb
+       #define iowrite8        can_writeb
 #else
 #endif
 
@@ -517,7 +517,7 @@ int nsi_canpci_program_irq(struct candevice_t *candev)
  * on the CAN chip. You should only have to edit this function if your hardware
  * uses some specific write process.
  */
-void nsi_canpci_write_register(unsigned data, unsigned long address)
+void nsi_canpci_write_register(unsigned data, can_ioptr_t address)
 {
        iowrite8((u8)data,(void*)address);
 }
@@ -526,7 +526,7 @@ void nsi_canpci_write_register(unsigned data, unsigned long address)
  * on the CAN chip. You should only have to edit this function if your hardware
  * uses some specific read process.
  */
-unsigned nsi_canpci_read_register(unsigned long address)
+unsigned nsi_canpci_read_register(can_ioptr_t address)
 {
        return ioread8((void*)address);
 }
index 798e6ea51fa23c9a44605440b5321f5cb69dd2be..0c8c5afff3079ba0e8711f5e604972b128ee1643 100644 (file)
@@ -83,7 +83,7 @@ int oscar_init_chip_data(struct candevice_t *candev, int chipnr)
     // sja1000_fill_chipspecops(candev->chip[chipnr]);
     sja1000p_fill_chipspecops(candev->chip[chipnr]);
        
-    candev->chip[chipnr]->chip_base_addr = candev->io_addr;
+    candev->chip[chipnr]->chip_base_addr = can_ioport2ioptr(candev->io_addr);
     candev->chip[chipnr]->clock = 12000000;
     candev->chip[chipnr]->sja_cdr_reg = sjaCDR_CBP;  // we use an external tranceiver
     candev->chip[chipnr]->sja_ocr_reg = sjaOCR_MODE_NORMAL | sjaOCR_TX0_LH;
@@ -110,14 +110,14 @@ int oscar_program_irq(struct candevice_t *candev)
     return 0;
 }
 
-void oscar_write_register(unsigned data, unsigned long address)
+void oscar_write_register(unsigned data, can_ioptr_t address)
 {
-       outb(data,address);
+       can_outb(data,address);
 }
 
-unsigned oscar_read_register(unsigned long address)
+unsigned oscar_read_register(can_ioptr_t address)
 {
-       return inb(address);
+       return can_inb(address);
 }
 
 /* !!! Don't change this function !!! */
index c724068669dc36c8d329c2ae97b818a8d5509460..def0546ba52c356bcc2844db4e05f6890af15cb6 100644 (file)
@@ -230,7 +230,7 @@ int pci03_program_irq(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/pc-i03.c
  */
-void pci03_write_register(unsigned data, unsigned long address)
+void pci03_write_register(unsigned data, can_ioptr_t address)
 {
        unsigned int *pci03_base_ptr;
        unsigned short address_to_write;
@@ -255,7 +255,7 @@ void pci03_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/pc-i03.c
  */
-unsigned pci03_read_register(unsigned long address)
+unsigned pci03_read_register(can_ioptr_t address)
 {
        unsigned int *pci03_base_ptr;
        unsigned short address_to_read;
index ca7ef798152fc3a19934464f769336f5ed47ce0c..d2a896850d5e848f59ce5bfd77c9e8aa6b651cff 100644 (file)
@@ -140,13 +140,13 @@ char dongle_type[] = "epp_dongle";
 static void _parport_disable_irq(struct DONGLE_PORT *dng)
 {
   u16 _PC_ = (u16)dng->dwPort + 2;
-  outb(inb(_PC_) & ~0x10, _PC_);
+  can_outb(can_inb(_PC_) & ~0x10, _PC_);
 }
 
 static void _parport_enable_irq(struct DONGLE_PORT *dng)
 {
   u16 _PC_ = (u16)dng->dwPort + 2;
-  outb(inb(_PC_) | 0x10, _PC_);
+  can_outb(can_inb(_PC_) | 0x10, _PC_);
 }
 
 
@@ -157,18 +157,18 @@ static u8 pcan_dongle_sp_readreg(struct DONGLE_PORT *dng, u8 port) // read a reg
   u16 _PB_ = _PA_ + 1;
   u16 _PC_ = _PB_ + 1;
   u8  b0, b1 ;
-  u8  irqEnable = inb(_PC_) & 0x10; // don't influence irqEnable
+  u8  irqEnable = can_inb(_PC_) & 0x10; // don't influence irqEnable
   can_spin_irqflags_t flags;
 
   can_spin_lock_irqsave(&pcan_lock, flags);
 
-  outb((0x0B ^ 0x0D) | irqEnable, _PC_);
-  outb((port & 0x1F) | 0x80,      _PA_);
-  outb((0x0B ^ 0x0C) | irqEnable, _PC_);
-  b1=nibble_decode[inb(_PB_)>>3];
-  outb(0x40, _PA_);
-  b0=nibble_decode[inb(_PB_)>>3];
-  outb((0x0B ^ 0x0D) | irqEnable, _PC_);
+  can_outb((0x0B ^ 0x0D) | irqEnable, _PC_);
+  can_outb((port & 0x1F) | 0x80,      _PA_);
+  can_outb((0x0B ^ 0x0C) | irqEnable, _PC_);
+  b1=nibble_decode[can_inb(_PB_)>>3];
+  can_outb(0x40, _PA_);
+  b0=nibble_decode[can_inb(_PB_)>>3];
+  can_outb((0x0B ^ 0x0D) | irqEnable, _PC_);
 
   can_spin_unlock_irqrestore(&pcan_lock, flags);
 
@@ -179,16 +179,16 @@ static void pcan_dongle_writereg(struct DONGLE_PORT *dng, u8 port, u8 data) // w
 {
   u16 _PA_ = (u16)dng->dwPort;
   u16 _PC_ = _PA_ + 2;
-  u8  irqEnable = inb(_PC_) & 0x10; // don't influence irqEnable
+  u8  irqEnable = can_inb(_PC_) & 0x10; // don't influence irqEnable
   can_spin_irqflags_t flags;
 
   can_spin_lock_irqsave(&pcan_lock, flags);
 
-  outb((0x0B ^ 0x0D) | irqEnable, _PC_);
-  outb(port & 0x1F,               _PA_);
-  outb((0x0B ^ 0x0C) | irqEnable, _PC_);
-  outb(data,                      _PA_);
-  outb((0x0B ^ 0x0D) | irqEnable, _PC_);
+  can_outb((0x0B ^ 0x0D) | irqEnable, _PC_);
+  can_outb(port & 0x1F,               _PA_);
+  can_outb((0x0B ^ 0x0C) | irqEnable, _PC_);
+  can_outb(data,                      _PA_);
+  can_outb((0x0B ^ 0x0D) | irqEnable, _PC_);
 
   can_spin_unlock_irqrestore(&pcan_lock, flags);
 }
@@ -199,16 +199,16 @@ static u8 pcan_dongle_epp_readreg(struct DONGLE_PORT *dng, u8 port) // read a re
   u16 _PA_ = (u16)dng->dwPort;
   u16 _PC_ = _PA_ + 2;
   u8  wert;
-  u8  irqEnable = inb(_PC_) & 0x10; // don't influence irqEnable
+  u8  irqEnable = can_inb(_PC_) & 0x10; // don't influence irqEnable
   can_spin_irqflags_t flags;
 
   can_spin_lock_irqsave(&pcan_lock, flags);
 
-  outb((0x0B ^ 0x0F) | irqEnable, _PC_);
-  outb((port & 0x1F) | 0x80,      _PA_);
-  outb((0x0B ^ 0x2E) | irqEnable, _PC_);
-  wert = inb(_PA_);
-  outb((0x0B ^ 0x0F) | irqEnable, _PC_);
+  can_outb((0x0B ^ 0x0F) | irqEnable, _PC_);
+  can_outb((port & 0x1F) | 0x80,      _PA_);
+  can_outb((0x0B ^ 0x2E) | irqEnable, _PC_);
+  wert = can_inb(_PA_);
+  can_outb((0x0B ^ 0x0F) | irqEnable, _PC_);
 
   can_spin_unlock_irqrestore(&pcan_lock, flags);
 
@@ -260,8 +260,8 @@ static void setECR(struct DONGLE_PORT *dng)
 {
        u16 wEcr = dng->wEcr;
 
-       dng->ucOldECRContent = inb(wEcr);
-       outb((dng->ucOldECRContent & 0x1F) | 0x20, wEcr);
+       dng->ucOldECRContent = can_inb(wEcr);
+       can_outb((dng->ucOldECRContent & 0x1F) | 0x20, wEcr);
 
        if (dng->ucOldECRContent == 0xff)
                DEBUGMSG("%s: realy ECP mode configured?\n", DEVICE_NAME);
@@ -271,7 +271,7 @@ static void restoreECR(struct DONGLE_PORT *dng)
 {
   u16 wEcr = dng->wEcr;
 
-  outb(dng->ucOldECRContent, wEcr);
+  can_outb(dng->ucOldECRContent, wEcr);
 
   DEBUGMSG("%s: restore ECR\n", DEVICE_NAME);
 }
@@ -337,8 +337,8 @@ static int pcan_dongle_open(struct DONGLE_PORT *dng)
       wPort    = (u16)dng->dwPort;
          
      // save old port contents
-     dng->ucOldDataContent     = inb(wPort);
-     dng->ucOldControlContent  = inb(wPort + 2);
+     dng->ucOldDataContent     = can_inb(wPort);
+     dng->ucOldControlContent  = can_inb(wPort + 2);
          
      // switch to epp mode if possible
      if (dng->wType == HW_DONGLE_SJA_EPP)
@@ -364,8 +364,8 @@ static int pcan_dongle_release(struct DONGLE_PORT *dng)
     restoreECR(dng);
     
   // restore port state
-  outb(dng->ucOldDataContent, wPort);
-  outb(dng->ucOldControlContent, wPort + 2);
+  can_outb(dng->ucOldDataContent, wPort);
+  can_outb(dng->ucOldControlContent, wPort + 2);
       
   parport_release(dng->pardev);
   
@@ -605,7 +605,7 @@ int pcan_dongle_init_chip_data(struct candevice_t *candev, int chipnr)
 
 
        candev->chip[chipnr]->chip_type=CHIP_TYPE;
-       candev->chip[chipnr]->chip_base_addr=candev->io_addr;
+       candev->chip[chipnr]->chip_base_addr=can_ioport2ioptr(candev->io_addr);
        candev->chip[chipnr]->clock = 16000000;
        candev->chip[chipnr]->int_clk_reg = 0x0;
        candev->chip[chipnr]->int_bus_reg = 0x0;
@@ -679,7 +679,7 @@ int pcan_dongle_program_irq(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/template.c
  */
-void pcan_dongle_write_register(unsigned data, unsigned long address)
+void pcan_dongle_write_register(unsigned data, can_ioptr_t address)
 {
    address -= dongle_port.chip->chip_base_addr;  // it's in mutiplexed mode
 
@@ -698,7 +698,7 @@ void pcan_dongle_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/template.c
  */
-unsigned pcan_dongle_read_register(unsigned long address)
+unsigned pcan_dongle_read_register(can_ioptr_t address)
 {
    u8 val;
 
index 4d877c6f419f19c7e23ba03918c96bf1f352196b..289fa844829b7ebb4bcb59f57bda00054ba11c68 100644 (file)
@@ -108,14 +108,14 @@ int pccanf_reset(struct candevice_t *candev)
        DEBUGMSG("Resetting pccanf/s hardware ...\n");
        while (i < 1000000) {
                i++;
-               outb(0x00,candev->res_addr);
+               can_outb(0x00,candev->res_addr);
        }
-       outb(0x01,candev->res_addr);
-       outb(0x00,candev->chip[0]->chip_base_addr+SJACR);
+       can_outb(0x01,candev->res_addr);
+       can_outb(0x00,candev->chip[0]->chip_base_addr+SJACR);
 
        /* Check hardware reset status */
        i=0;
-       while ( (inb(candev->chip[0]->chip_base_addr+SJACR) & sjaCR_RR)
+       while ( (can_inb(candev->chip[0]->chip_base_addr+SJACR) & sjaCR_RR)
                                                                 && (i<=15) ) {
                udelay(20000);
                i++;
@@ -138,17 +138,17 @@ int pccand_reset(struct candevice_t *candev)
        DEBUGMSG("Resetting pccan-d hardware ...\n");
        while (i < 1000000) {
                i++;
-               outb(0x00,candev->res_addr);
+               can_outb(0x00,candev->res_addr);
        }
-       outb(0x01,candev->res_addr);
-       outb(0x00,candev->chip[0]->chip_base_addr+SJACR);
-       outb(0x00,candev->chip[1]->chip_base_addr+SJACR);
+       can_outb(0x01,candev->res_addr);
+       can_outb(0x00,candev->chip[0]->chip_base_addr+SJACR);
+       can_outb(0x00,candev->chip[1]->chip_base_addr+SJACR);
 
        /* Check hardware reset status */
        i=0;
        for (chip_nr=0; chip_nr<2; chip_nr++) {
                i=0;
-               while ( (inb(candev->chip[chip_nr]->chip_base_addr +
+               while ( (can_inb(candev->chip[chip_nr]->chip_base_addr +
                                                SJACR) & sjaCR_RR) && (i<=15) ) {
                        udelay(20000);
                        i++;
@@ -174,17 +174,17 @@ int pccanq_reset(struct candevice_t *candev)
        DEBUGMSG("Resetting pccan-q hardware ...\n");
        while (i < 100000) {
                i++;
-               outb(0x00,candev->res_addr);
+               can_outb(0x00,candev->res_addr);
        }
        outb_p(0x01,candev->res_addr);
                
-       outb(0x00,candev->chip[2]->chip_base_addr+SJACR);
-       outb(0x00,candev->chip[3]->chip_base_addr+SJACR);
+       can_outb(0x00,candev->chip[2]->chip_base_addr+SJACR);
+       can_outb(0x00,candev->chip[3]->chip_base_addr+SJACR);
 
        /* Check hardware reset status */
        for (chip_nr=0; chip_nr<2; chip_nr++) {
                i=0;
-               while( (inb(candev->chip[chip_nr]->chip_base_addr +
+               while( (can_inb(candev->chip[chip_nr]->chip_base_addr +
                                                iCPU) & iCPU_RST) && (i<=15) ) {
                        udelay(20000);
                        i++;
@@ -199,7 +199,7 @@ int pccanq_reset(struct candevice_t *candev)
        }
        for (chip_nr=2; chip_nr<4; chip_nr++) {
                i=0;
-               while( (inb(candev->chip[chip_nr]->chip_base_addr +
+               while( (can_inb(candev->chip[chip_nr]->chip_base_addr +
                                                SJACR) & sjaCR_RR) && (i<=15) ) {
                        udelay(20000);
                        i++;
@@ -267,11 +267,11 @@ int pccan_init_chip_data(struct candevice_t *candev, int chipnr)
                        candev->chip[chipnr]->sja_ocr_reg = 
                                                sjaOCR_MODE_NORMAL | sjaOCR_TX0_LH;     
                }
-               candev->chip[chipnr]->chip_base_addr=0x1000*chipnr+0x2000+candev->io_addr;
+               candev->chip[chipnr]->chip_base_addr=can_ioport2ioptr(0x1000*chipnr+0x2000+candev->io_addr);
        }
        else {
                sja1000_fill_chipspecops(candev->chip[chipnr]);
-               candev->chip[chipnr]->chip_base_addr=0x1000*chipnr+0x4000+candev->io_addr;
+               candev->chip[chipnr]->chip_base_addr=can_ioport2ioptr(0x1000*chipnr+0x4000+candev->io_addr);
                candev->chip[chipnr]->flags = 0;
                candev->chip[chipnr]->int_cpu_reg = 0;
                candev->chip[chipnr]->int_clk_reg = 0;
@@ -330,22 +330,22 @@ int pccan_program_irq(struct candevice_t *candev)
                        }
                }
        }
-       outb(irq_reg_value,0x6000+candev->io_addr);
+       can_outb(irq_reg_value,0x6000+candev->io_addr);
        DEBUGMSG("Configured pccan hardware interrupts\n");
-       outb(0x80,0x6000+candev->io_addr+0x02);
+       can_outb(0x80,0x6000+candev->io_addr+0x02);
        DEBUGMSG("Selected pccan on-board 16 MHz oscillator\n");
 
        return 0;
 }
 
-inline void pccan_write_register(unsigned data, unsigned long address)
+inline void pccan_write_register(unsigned data, can_ioptr_t address)
 {
-       outb(data,address); 
+       can_outb(data,address); 
 }
 
-unsigned pccan_read_register(unsigned long address)
+unsigned pccan_read_register(can_ioptr_t address)
 {
-       return inb(address);
+       return can_inb(address);
 }
 
 int pccanf_register(struct hwspecops_t *hwspecops)
index b568912b10ced1697484ad1554c8b097b29bb2d9..a8c0b19715cb2c2cd4dfa4cef63bb2efb2bad5d9 100644 (file)
@@ -103,13 +103,13 @@ int pcccan_reset(struct candevice_t *candev)
        DEBUGMSG("Resetting pcccan-1 hardware ...\n");
        while (i < 1000000) {
                i++;
-               outb(0x0,candev->res_addr);
+               can_outb(0x0,candev->res_addr);
        }
 
        /* Check hardware reset status */
        i=0;
-       outb(iCPU,candev->io_addr+0x1);
-       while ( (inb(candev->io_addr+0x2)&0x80) && (i<=15) ) {
+       can_outb(iCPU,candev->io_addr+0x1);
+       while ( (can_inb(candev->io_addr+0x2)&0x80) && (i<=15) ) {
                udelay(20000);
                i++;
        }
@@ -187,7 +187,7 @@ int pcccan_init_hw_data(struct candevice_t *candev)
 int pcccan_init_chip_data(struct candevice_t *candev, int chipnr)
 {
        i82527_fill_chipspecops(candev->chip[chipnr]);
-       candev->chip[chipnr]->chip_base_addr=candev->io_addr;
+       candev->chip[chipnr]->chip_base_addr=can_ioport2ioptr(candev->io_addr);
        candev->chip[chipnr]->clock = 16000000;
        candev->chip[chipnr]->int_cpu_reg = iCPU_DSC | iCPU_DMC;
        candev->chip[chipnr]->int_clk_reg = iCLK_SL1 | iCLK_CD0;
@@ -252,12 +252,12 @@ int pcccan_program_irq(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/pcccan.c
  */
-void pcccan_write_register(unsigned data, unsigned long address)
+void pcccan_write_register(unsigned data, can_ioptr_t address)
 {
        can_spin_irqflags_t flags;
        can_spin_lock_irqsave(&pcccan_port_lock,flags);
-       outb(address - pcccan_base, pcccan_base+1);
-       outb(data, pcccan_base+6);
+       can_outb(address - pcccan_base, pcccan_base+1);
+       can_outb(data, pcccan_base+6);
        can_spin_unlock_irqrestore(&pcccan_port_lock,flags);
 }
 
@@ -271,13 +271,13 @@ void pcccan_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/pcccan.c
  */
-unsigned pcccan_read_register(unsigned long address)
+unsigned pcccan_read_register(can_ioptr_t address)
 {
        unsigned ret;
        can_spin_irqflags_t flags;
        can_spin_lock_irqsave(&pcccan_port_lock,flags);
-       outb(address - pcccan_base, pcccan_base+1);
-       ret=inb(pcccan_base+2);
+       can_outb(address - pcccan_base, pcccan_base+1);
+       ret=can_inb(pcccan_base+2);
        can_spin_unlock_irqrestore(&pcccan_port_lock,flags);
        return ret;
 
index adc42939d9d2db5d65aace088926ab7453602992..b87e7a88be23d9e0f7b124a64d81f70bce1c3093 100644 (file)
  */
 int pcm3680_request_io(struct candevice_t *candev)
 {
-        unsigned long remap_addr;
+        can_ioptr_t remap_addr;
        if (!can_request_mem_region(candev->io_addr,IO_RANGE,DEVICE_NAME " - pcm3680")) {
                CANMSG("Unable to request IO-memory: 0x%lx\n",candev->io_addr);
                return -ENODEV;
        }
-       if ( !( remap_addr = (long) ioremap( candev->io_addr, IO_RANGE ) ) ) {
+       if ( !( remap_addr = ioremap( candev->io_addr, IO_RANGE ) ) ) {
                CANMSG("Unable to access I/O memory at: 0x%lx\n", candev->io_addr);
                can_release_mem_region(candev->io_addr,IO_RANGE);
                return -ENODEV;
@@ -172,7 +172,7 @@ int pcm3680_init_chip_data(struct candevice_t *candev, int chipnr)
 {
        sja1000p_fill_chipspecops(candev->chip[chipnr]);
        candev->chip[chipnr]->chip_base_addr=
-                       candev->io_addr + 0x200*chipnr;
+                       candev->dev_base_addr + 0x200*chipnr;
        candev->chip[chipnr]->clock = 16000000;
        candev->chip[chipnr]->int_clk_reg = 0x0;
        candev->chip[chipnr]->int_bus_reg = 0x0;
@@ -235,9 +235,9 @@ int pcm3680_program_irq(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/template.c
  */
-void pcm3680_write_register(unsigned data, unsigned long address)
+void pcm3680_write_register(unsigned data, can_ioptr_t address)
 {
-       writeb(data,address);
+       can_writeb(data,address);
 }
 
 /**
@@ -250,9 +250,9 @@ void pcm3680_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/template.c
  */
-unsigned pcm3680_read_register(unsigned long address)
+unsigned pcm3680_read_register(can_ioptr_t address)
 {
-       return readb(address);
+       return can_readb(address);
 }
 
 /* !!! Don't change this function !!! */
index fd0f3405d2f4626872737655bec4cade0231f080..2a4fd22939313db4c97961ce014d0d79df5564fc 100644 (file)
  */
 int pikronisa_request_io(struct candevice_t *candev)
 {
-        int remap_addr;
+        can_ioptr_t remap_addr;
        
        if (!can_request_mem_region(candev->io_addr,IO_RANGE,DEVICE_NAME " - pikronisa")) {
                CANMSG("Unable to request IO-memory: 0x%lx\n",candev->io_addr);
                return -ENODEV;
        }
-       if ( !( remap_addr = (long) ioremap( candev->io_addr, IO_RANGE ) ) ) {
+       if ( !( remap_addr = ioremap( candev->io_addr, IO_RANGE ) ) ) {
                CANMSG("Unable to access I/O memory at: 0x%lx\n", candev->io_addr);
                can_release_mem_region(candev->io_addr,IO_RANGE);
                return -ENODEV;
@@ -68,7 +68,7 @@ int pikronisa_request_io(struct candevice_t *candev)
 int pikronisa_release_io(struct candevice_t *candev)
 {
        /* release I/O memory mapping */
-       iounmap((void*)candev->dev_base_addr);
+       iounmap(candev->dev_base_addr);
        can_release_mem_region(candev->io_addr,IO_RANGE);
 
        return 0;
@@ -180,7 +180,7 @@ int pikronisa_init_chip_data(struct candevice_t *candev, int chipnr)
        /*sja1000_fill_chipspecops(candev->chip[chipnr]);*/
        sja1000p_fill_chipspecops(candev->chip[chipnr]);
 
-       candev->chip[chipnr]->chip_base_addr=candev->io_addr;
+       candev->chip[chipnr]->chip_base_addr=candev->dev_base_addr;
        candev->chip[chipnr]->clock = 24000000;
        candev->chip[chipnr]->int_clk_reg = 0x0;
        candev->chip[chipnr]->int_bus_reg = 0x0;
@@ -241,11 +241,11 @@ int pikronisa_program_irq(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/pikronisa.c
  */
-void pikronisa_write_register(unsigned data, unsigned long address)
+void pikronisa_write_register(unsigned data, can_ioptr_t address)
 {
        /*DEBUGMSG("pikronisa_write_register: addr=0x%lx data=0x%x",
                address,data);*/
-       writeb(data,address);
+       can_writeb(data,address);
 }
 
 /**
@@ -258,9 +258,9 @@ void pikronisa_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/pikronisa.c
  */
-unsigned pikronisa_read_register(unsigned long address)
+unsigned pikronisa_read_register(can_ioptr_t address)
 {
-       return readb(address);
+       return can_readb(address);
 }
 
 /* !!! Don't change this function !!! */
index 1c1a3037f199a3dc538441404df775a01848b549..00b7d6d265f8efb4442963fc418b7a1504665766 100644 (file)
@@ -133,11 +133,11 @@ int pimx1_release_io(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/pikronisa.c
  */
-void pimx1_write_register(unsigned data, unsigned long address)
+void pimx1_write_register(unsigned data, can_ioptr_t address)
 {
        /*DEBUGMSG("pimx1_write_register: addr=0x%lx data=0x%x\n",
                address,data);*/
-       writeb(data,address);
+       can_writeb(data,address);
 }
 
 /**
@@ -150,9 +150,9 @@ void pimx1_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/pikronisa.c
  */
-unsigned pimx1_read_register(unsigned long address)
+unsigned pimx1_read_register(can_ioptr_t address)
 {
-       return readb(address);
+       return can_readb(address);
 }
 
 /**
index add0feefe88d58924591366d5ebf2113525b1406..1410288069f94b8108ecce41d4db05b92d87dcf1 100644 (file)
@@ -71,13 +71,13 @@ int pip_reset(struct candevice_t *candev)
        DEBUGMSG("Resetting %s hardware ...\n", candev->hwname);
        while (i < 1000000) {
                i++;
-               outb(0x01, candev->res_addr);
+               can_outb(0x01, candev->res_addr);
        }
-       outb(0x0, candev->res_addr);
+       can_outb(0x0, candev->res_addr);
 
        /* Check hardware reset status */
        i = 0;
-       while ((inb(candev->io_addr + iCPU) & iCPU_RST) && (i <= 15)) {
+       while ((can_inb(candev->io_addr + iCPU) & iCPU_RST) && (i <= 15)) {
                udelay(20000);
                i++;
        }
@@ -106,7 +106,7 @@ int pip_init_hw_data(struct candevice_t *candev)
 int pip_init_chip_data(struct candevice_t *candev, int chipnr)
 {
        i82527_fill_chipspecops(candev->chip[chipnr]);
-       candev->chip[chipnr]->chip_base_addr = candev->io_addr;
+       candev->chip[chipnr]->chip_base_addr = can_ioport2ioptr(candev->io_addr);
        candev->chip[chipnr]->clock = 8000000;
        candev->chip[chipnr]->int_cpu_reg = 0;
        candev->chip[chipnr]->int_clk_reg = iCLK_SL1;
@@ -131,7 +131,7 @@ int pip_program_irq(struct candevice_t *candev)
        unsigned char can_addr = 0, can_reg = 0;
        DEBUGMSG("pip_program_irq\n");
        /* Reset can controller */
-       outb(0x01, candev->res_addr);
+       can_outb(0x01, candev->res_addr);
        if (strcmp(candev->hwname, "pip5") == 0) {
                irq_mask = PIP5_IRQ_MAP;
        } else if (strcmp(candev->hwname, "pip6") == 0) {
@@ -175,26 +175,26 @@ int pip_program_irq(struct candevice_t *candev)
                        return -ENODEV;
                }
        }
-       can_reg = inb(PIP_CANRES_REG);
+       can_reg = can_inb(PIP_CANRES_REG);
        DEBUGMSG("PIP_CANRES was 0x%x\n", can_reg);
        can_reg = (candev->chip[0]->chip_irq << 4) | can_addr;
        DEBUGMSG("Setting PIP_CANRES_REG to 0x%x\n", can_reg);
-       outb((candev->chip[0]->chip_irq << 4) | can_addr, PIP_CANRES_REG);
+       can_outb((candev->chip[0]->chip_irq << 4) | can_addr, PIP_CANRES_REG);
        /* re-enable the chip */
-       outb(0x00, candev->res_addr);
+       can_outb(0x00, candev->res_addr);
 
        return 0;
 }
 
 
-void pip_write_register(unsigned data, unsigned long address)
+void pip_write_register(unsigned data, can_ioptr_t address)
 {
-       outb(data, address);
+       can_outb(data, address);
 }
 
-unsigned pip_read_register(unsigned long address)
+unsigned pip_read_register(can_ioptr_t address)
 {
-       return inb(address);
+       return can_inb(address);
 }
 
 /* !!! Don't change these functions !!! */
index 3957e5f99e80bce64505a81729c1797a4f0c1384..98fbb80716f576d397094a354130410efc847482 100644 (file)
@@ -184,9 +184,10 @@ static int can_chip_procinfo(char *buf, char **start, off_t offset,
        len += sprintf(buf+len,"type    : %s\n",chip->chip_type);
        len += sprintf(buf+len,"index   : %d\n",chip->chip_idx);
        len += sprintf(buf+len,"irq     : %d\n",chip->chip_irq);
-       len += sprintf(buf+len,"addr    : %lu\n",chip->chip_base_addr);
+       len += sprintf(buf+len,"addr    : %lu\n",
+                       can_ioptr2ulong(chip->chip_base_addr));
        len += sprintf(buf+len,"config  : %s\n",
-                      (chip->flags & CHIP_CONFIGURED) ? "yes":"no");
+                       (chip->flags & CHIP_CONFIGURED) ? "yes":"no");
        len += sprintf(buf+len,"clock   : %ld Hz\n",chip->clock);
        len += sprintf(buf+len,"baud    : %ld\n",chip->baudrate);
        len += sprintf(buf+len,"num obj : %d\n",chip->max_objects);
index bce1226f1bd4f499c3d3b498c6eb4805e45fb996..619956af7c417096d3bf3ff390c850cf5ba6f25c 100644 (file)
@@ -30,9 +30,9 @@ int init_obj_struct(struct candevice_t *candev, struct canchip_t *hostchip, int
  * This function is prepared to simplify board specific xxx_request_io() function
  * for memory mapped devices.
  */
-int can_base_addr_fixup(struct candevice_t *candev, unsigned long new_base)
+int can_base_addr_fixup(struct candevice_t *candev, can_ioptr_t new_base)
 {
-       unsigned long offs;
+       long offs;
        int i, j;
        
        offs=new_base-candev->dev_base_addr;
index a7a990d5a8bcbcae6776a239fe2fe39cadb57d56..f83d8d90a8a051c67a99941230a9fe9299c6dea3 100644 (file)
@@ -41,17 +41,17 @@ int smartcan_reset(struct candevice_t *candev)
        int i=0;
 
        DEBUGMSG("Resetting smartcan hardware ...\n");
-       outb(0x00,candev->res_addr);
+       can_outb(0x00,candev->res_addr);
        while (i < 1000000) {
                i++;
-               outb(0x01,candev->res_addr);
+               can_outb(0x01,candev->res_addr);
        }
-       outb(0x00,candev->res_addr); 
+       can_outb(0x00,candev->res_addr); 
 
        /* Check hardware reset status */
        i=0;
-       outb(candev->io_addr+iCPU,candev->io_addr);
-       while ( (inb(candev->io_addr+1)&0x80) && (i<=15) ) {
+       can_outb(candev->io_addr+iCPU,candev->io_addr);
+       while ( (can_inb(candev->io_addr+1)&0x80) && (i<=15) ) {
                udelay(20000);
                i++;
        }
@@ -79,7 +79,7 @@ int smartcan_init_hw_data(struct candevice_t *candev)
 int smartcan_init_chip_data(struct candevice_t *candev, int chipnr)
 {
        i82527_fill_chipspecops(candev->chip[chipnr]);
-       candev->chip[chipnr]->chip_base_addr=candev->io_addr;
+       candev->chip[chipnr]->chip_base_addr=can_ioport2ioptr(candev->io_addr);
        candev->chip[chipnr]->clock = 16000000;
        candev->chip[chipnr]->int_cpu_reg = iCPU_DSC;
        candev->chip[chipnr]->int_clk_reg = iCLK_SL1;
@@ -100,22 +100,22 @@ int smartcan_init_obj_data(struct canchip_t *chip, int objnr)
 }
 
 
-void smartcan_write_register(unsigned data, unsigned long address)
+void smartcan_write_register(unsigned data, can_ioptr_t address)
 {
        can_spin_irqflags_t flags;
        can_spin_lock_irqsave(&smartcan_port_lock,flags);
-       outb(address-smartcan_base,smartcan_base);
-       outb(data,smartcan_base+1);
+       can_outb(address-smartcan_base,smartcan_base);
+       can_outb(data,smartcan_base+1);
        can_spin_unlock_irqrestore(&smartcan_port_lock,flags);
 }
 
-unsigned smartcan_read_register(unsigned long address)
+unsigned smartcan_read_register(can_ioptr_t address)
 {
        unsigned ret;
        can_spin_irqflags_t flags;
        can_spin_lock_irqsave(&smartcan_port_lock,flags);
-       outb(address-smartcan_base,smartcan_base);
-       ret=inb(smartcan_base+1);
+       can_outb(address-smartcan_base,smartcan_base);
+       ret=can_inb(smartcan_base+1);
        can_spin_unlock_irqrestore(&smartcan_port_lock,flags);
        return ret;
 }
index 45aef4b91ae26225b5ddb6d1f08701dd1d3c9d37..17d60ef7bdebbec05abb075fcb2f9689be5471a4 100644 (file)
@@ -12,7 +12,7 @@
 #include "../include/i82527.h"
 
 int ssvcan_irq[2]={-1,-1};
-unsigned long ssvcan_base=0x0;
+can_ioptr_t ssvcan_base=0x0;
 
 static CAN_DEFINE_SPINLOCK(ssv_port_lock);
 
@@ -137,7 +137,7 @@ int ssv_init_chip_data(struct candevice_t *candev, int chipnr)
 {
     i82527_fill_chipspecops(candev->chip[chipnr]);
     candev->chip[chipnr]->chip_base_addr=
-       candev->io_addr+0x100*chipnr;
+       can_ioport2ioptr(candev->io_addr+0x100*chipnr);
     candev->chip[chipnr]->clock = 16000000;
     ssvcan_irq[chipnr]=candev->chip[chipnr]->chip_irq;
 
@@ -183,7 +183,7 @@ int ssv_program_irq(struct candevice_t *candev)
  * on the CAN chip. You should only have to edit this function if your hardware
  * uses some specific write process.
  */
-void ssv_write_register(unsigned data, unsigned long address)
+void ssv_write_register(unsigned data, can_ioptr_t address)
 {
     /* address is an absolute address */
 
@@ -193,16 +193,16 @@ void ssv_write_register(unsigned data, unsigned long address)
     /* write the relative address on the eight LSB bits 
      and the data on the eight MSB bits in one time */
     if((address-ssvcan_base)<0x100)
-       outw(address-ssvcan_base + (256 * data), ssvcan_base);
+       can_outw(address-ssvcan_base + (256 * data), ssvcan_base);
     else
-       outw(address-ssvcan_base-0x100 + (256 * data), ssvcan_base+0x02);
+       can_outw(address-ssvcan_base-0x100 + (256 * data), ssvcan_base+0x02);
 }
 
 /* The function template_read_register is used to read from hardware registers
  * on the CAN chip. You should only have to edit this function if your hardware
  * uses some specific read process.
  */
-unsigned ssv_read_register(unsigned long address)
+unsigned ssv_read_register(can_ioptr_t address)
 {
     /* this is the same thing that the function write_register.
        We use the two register, we write the address where we 
@@ -215,15 +215,15 @@ unsigned ssv_read_register(unsigned long address)
     if((address-ssvcan_base)<0x100)
     {
        can_spin_lock_irqsave(&ssv_port_lock,flags);
-       outb(address-ssvcan_base, ssvcan_base);
-       ret=inb(ssvcan_base+1);
+       can_outb(address-ssvcan_base, ssvcan_base);
+       ret=can_inb(ssvcan_base+1);
        can_spin_unlock_irqrestore(&ssv_port_lock,flags);
     }
     else
     {
        can_spin_lock_irqsave(&ssv_port_lock,flags);
-       outb(address-ssvcan_base-0x100, ssvcan_base+0x02);
-       ret=inb(ssvcan_base+1+0x02);
+       can_outb(address-ssvcan_base-0x100, ssvcan_base+0x02);
+       ret=can_inb(ssvcan_base+1+0x02);
        can_spin_unlock_irqrestore(&ssv_port_lock,flags);
     }
 
index d99033255b2dc51fd50c2e394237e59a2c84edce..a91d9fdef75cc707eae2cf5c6774c82ea5302a2a 100644 (file)
@@ -152,7 +152,7 @@ int template_init_chip_data(struct candevice_t *candev, int chipnr)
        /*sja1000_fill_chipspecops(candev->chip[chipnr]);*/
        /*sja1000p_fill_chipspecops(candev->chip[chipnr]);*/
        
-       candev->chip[chipnr]->chip_base_addr=candev->io_addr;
+       candev->chip[chipnr]->chip_base_addr=can_ioport2ioptr(candev->io_addr);
        candev->chip[chipnr]->clock = 16000000;
        candev->chip[chipnr]->int_cpu_reg = iCPU_DSC;
        candev->chip[chipnr]->int_clk_reg = iCLK_SL1;
@@ -216,9 +216,9 @@ int template_program_irq(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/template.c
  */
-void template_write_register(unsigned data, unsigned long address)
+void template_write_register(unsigned data, can_ioptr_t address)
 {
-       outb(data,address);
+       can_outb(data,address);
 }
 
 /**
@@ -231,9 +231,9 @@ void template_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/template.c
  */
-unsigned template_read_register(unsigned long address)
+unsigned template_read_register(can_ioptr_t address)
 {
-       return inb(address);
+       return can_inb(address);
 }
 
 /* !!! Don't change this function !!! */
index e79909794edabfa292c32d21fddf50632d5f4b92..841970a2adbc14369beea8802c2f171ad949f70b 100644 (file)
@@ -136,8 +136,8 @@ int tscan1_request_io(struct candevice_t *candev)
                default:        mode=0x60; break;
        }
 
-       outb(0x00, candev->io_addr+TSCAN1_WIN_REG);
-       outb(mode, candev->io_addr+TSCAN1_MOD_REG);
+       can_outb(0x00, candev->io_addr+TSCAN1_WIN_REG);
+       can_outb(mode, candev->io_addr+TSCAN1_MOD_REG);
 
        return 0;
 }
@@ -177,7 +177,7 @@ int tscan1_release_io(struct candevice_t *candev)
                        can_release_io_region(remap_can_io_addr, TSXXX_CAN_RANGE);
        }
 
-       outb(0x20, candev->io_addr+TSCAN1_MOD_REG);
+       can_outb(0x20, candev->io_addr+TSCAN1_MOD_REG);
 
        can_release_io_region(candev->io_addr, TSXXX_IO_RANGE);
        return 0;
@@ -238,15 +238,15 @@ int tscan1_check_presence(unsigned long remap_io_addr, int *pjmp)
                return -ENODEV;
 
        do {
-               if (inb(remap_io_addr+TSXXX_ID0_REG)!=TSCAN1_ID0 ||
-                       inb(remap_io_addr+TSXXX_ID1_REG)!=TSCAN1_ID1)
+               if (can_inb(remap_io_addr+TSXXX_ID0_REG)!=TSCAN1_ID0 ||
+                       can_inb(remap_io_addr+TSXXX_ID1_REG)!=TSCAN1_ID1)
                        break;
 
-               outb(0x00, remap_io_addr+TSCAN1_WIN_REG);
-               outb(0x20, remap_io_addr+TSCAN1_MOD_REG);
+               can_outb(0x00, remap_io_addr+TSCAN1_WIN_REG);
+               can_outb(0x20, remap_io_addr+TSCAN1_MOD_REG);
 
                if(pjmp)
-                       *pjmp = inb(remap_io_addr+TSCAN1_JMP_REG);
+                       *pjmp = can_inb(remap_io_addr+TSCAN1_JMP_REG);
 
                result = 0;
        } while (0);
@@ -343,12 +343,12 @@ int ts7kv_check_presence(unsigned long remap_io_addr, int *pjmp)
                return -ENODEV;
 
        do {
-               if (inb(remap_io_addr+TSXXX_ID0_REG)!=TS7KV_ID0 ||
-                       inb(remap_io_addr+TSXXX_ID1_REG)!=TS7KV_ID1)
+               if (can_inb(remap_io_addr+TSXXX_ID0_REG)!=TS7KV_ID0 ||
+                       can_inb(remap_io_addr+TSXXX_ID1_REG)!=TS7KV_ID1)
                        break;
 
                if(pjmp)
-                       *pjmp = inb(remap_io_addr+TS7KV_JMP_REG);
+                       *pjmp = can_inb(remap_io_addr+TS7KV_JMP_REG);
 
                result = 0;
        } while (0);
@@ -580,32 +580,33 @@ int tscan1_program_irq(struct candevice_t *candev)
  * Return Value: The function does not return a value
  * File: src/tscan1.c
  */
-void tscan1_write_register(unsigned data, unsigned long address)
+void tscan1_write_register(unsigned data, can_ioptr_t address)
 {
-       outb(data, address);
+       can_outb(data, address);
 }
 
-void ts7kv_write_register(unsigned data, unsigned long address)
+void ts7kv_write_register(unsigned data, can_ioptr_t address)
 {
-       unsigned long base = address & ~0x1f;
+       unsigned long addr=can_ioptr2ulong(address);
+       can_ioptr_t base = can_ulong2ioptr(addr & ~0x1f);
        unsigned char nwin = 0x10;
        unsigned char savewin;
        
        can_spin_irqflags_t flags;
 
-       if((address&0x1f) > 0x1d) {
+       if((addr&0x1f) > 0x1d) {
                nwin++;
                address -= 0x10;
        }
 
        can_spin_lock_irqsave(&ts7kv_win_lock,flags);
-       savewin = inb(base+TS7KV_WIN_REG);
+       savewin = can_inb(base+TS7KV_WIN_REG);
        if(nwin == savewin) {
-               outb(data, address);
+               can_outb(data, address);
        }else{
-               outb(nwin, base+TS7KV_WIN_REG);
-               outb(data, address);
-               outb(savewin, base+TS7KV_WIN_REG);
+               can_outb(nwin, base+TS7KV_WIN_REG);
+               can_outb(data, address);
+               can_outb(savewin, base+TS7KV_WIN_REG);
        }
        can_spin_unlock_irqrestore(&ts7kv_win_lock,flags);
 }
@@ -620,33 +621,34 @@ void ts7kv_write_register(unsigned data, unsigned long address)
  * Return Value: The function returns the value stored in @address
  * File: src/tscan1.c
  */
-unsigned tscan1_read_register(unsigned long address)
+unsigned tscan1_read_register(can_ioptr_t address)
 {
-       return inb(address);
+       return can_inb(address);
 }
 
-unsigned ts7kv_read_register(unsigned long address)
+unsigned ts7kv_read_register(can_ioptr_t address)
 {
-       unsigned long base = address & ~0x1f;
+       unsigned long addr=can_ioptr2ulong(address);
+       can_ioptr_t base = can_ulong2ioptr(addr & ~0x1f);
        unsigned char nwin = 0x10;
        unsigned char savewin;
        unsigned val;
        
        can_spin_irqflags_t flags;
 
-       if((address&0x1f) > 0x1d) {
+       if((addr&0x1f) > 0x1d) {
                nwin++;
                address -= 0x10;
        }
 
        can_spin_lock_irqsave(&ts7kv_win_lock,flags);
-       savewin = inb(base+TS7KV_WIN_REG);
+       savewin = can_inb(base+TS7KV_WIN_REG);
        if(nwin == savewin) {
-               val = inb(address);
+               val = can_inb(address);
        }else{
-               outb(nwin, base+TS7KV_WIN_REG);
-               val = inb(address);
-               outb(savewin, base+TS7KV_WIN_REG);
+               can_outb(nwin, base+TS7KV_WIN_REG);
+               val = can_inb(address);
+               can_outb(savewin, base+TS7KV_WIN_REG);
        }
        can_spin_unlock_irqrestore(&ts7kv_win_lock,flags);
 
index 55cfbd5374a5f9525dedd8d4ebc7325408b688ae..7b27ade51705b63b41d7102bf25bdc14a37c9a7b 100644 (file)
@@ -693,12 +693,12 @@ int unican_wakeup_tx(struct canchip_t *chip, struct msgobj_t *obj)
  */
 int unican_request_io(struct candevice_t *candev)
 {
-        unsigned long remap_addr;
+        can_ioptr_t remap_addr;
        if (!can_request_mem_region(candev->io_addr,IO_RANGE,DEVICE_NAME " - unican")) {
                CANMSG("Unable to request IO-memory: 0x%lx\n",candev->io_addr);
                return -ENODEV;
        }
-       if ( !( remap_addr = (long) ioremap( candev->io_addr, IO_RANGE ) ) ) {
+       if ( !( remap_addr = ioremap( candev->io_addr, IO_RANGE ) ) ) {
                CANMSG("Unable to access I/O memory at: 0x%lx\n", candev->io_addr);
                can_release_mem_region(candev->io_addr,IO_RANGE);
                return -ENODEV;
@@ -718,7 +718,7 @@ int unican_request_io(struct candevice_t *candev)
  */
 int unican_release_io(struct candevice_t *candev)
 {
-       iounmap((void*)candev->dev_base_addr);
+       iounmap(candev->dev_base_addr);
        can_release_mem_region(candev->io_addr,IO_RANGE);
        return 0;
 }
@@ -812,7 +812,7 @@ int unican_init_chip_data(struct candevice_t *candev, int chipnr)
        chip->int_clk_reg = 0x0;
        chip->int_bus_reg = 0x0;
        chip->max_objects = 1;
-       chip->chip_base_addr=candev->io_addr;
+       chip->chip_base_addr=candev->dev_base_addr;
                        
        CANMSG("initializing unican chip operations\n");
        chip->chipspecops->chip_config=unican_chip_config;
@@ -891,7 +891,7 @@ int unican_register(struct hwspecops_t *hwspecops)
 
 int unican_pci_request_io(struct candevice_t *candev)
 {
-        unsigned long remap_addr;
+        can_ioptr_t remap_addr;
 
     #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,21))
        if(pci_request_region(candev->sysdevptr.pcidev, 0, "unican_pci") != 0){
@@ -905,11 +905,10 @@ int unican_pci_request_io(struct candevice_t *candev)
        }
     #endif /*(LINUX_VERSION_CODE > KERNEL_VERSION(2,4,21))*/
 
-       candev->dev_base_addr=pci_resource_start(candev->sysdevptr.pcidev,0);
-       candev->io_addr=candev->dev_base_addr;
-       candev->res_addr=candev->dev_base_addr;
+       candev->io_addr=pci_resource_start(candev->sysdevptr.pcidev,0);
+       candev->res_addr=candev->io_addr;
 
-       if ( !( remap_addr = (long) ioremap( candev->io_addr, IO_RANGE ) ) ) {
+       if ( !( remap_addr = ioremap( candev->io_addr, IO_RANGE ) ) ) {
                CANMSG("Unable to access I/O memory at: 0x%lx\n", candev->io_addr);
            #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,21))
                pci_release_region(candev->sysdevptr.pcidev, 0);
@@ -922,7 +921,8 @@ int unican_pci_request_io(struct candevice_t *candev)
        can_base_addr_fixup(candev, remap_addr);
        DEBUGMSG("Registered IO-memory: 0x%lx - 0x%lx\n", candev->io_addr, candev->io_addr + IO_RANGE - 1);
        DEBUGMSG("VMA: dev_base_addr: 0x%lx chip_base_addr: 0x%lx\n", 
-               candev->dev_base_addr, candev->chip[0]->chip_base_addr);
+               can_ioptr2ulong(candev->dev_base_addr),
+               can_ioptr2ulong(candev->chip[0]->chip_base_addr));
 
        return 0;
 }
@@ -930,7 +930,7 @@ int unican_pci_request_io(struct candevice_t *candev)
 
 int unican_pci_release_io(struct candevice_t *candev)
 {
-       iounmap((void*)candev->dev_base_addr);
+       iounmap(candev->dev_base_addr);
     #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,21))
        pci_release_region(candev->sysdevptr.pcidev, 0);
     #else /*(LINUX_VERSION_CODE > KERNEL_VERSION(2,4,21))*/
@@ -959,9 +959,9 @@ int unican_pci_init_hw_data(struct candevice_t *candev)
                printk(KERN_CRIT "Unican PCI region 0 is not MEM\n");
                return -EIO;
        }
-       candev->dev_base_addr=pci_resource_start(pcidev,0);
-       candev->io_addr=candev->dev_base_addr;
-       candev->res_addr=candev->dev_base_addr;
+       candev->io_addr=pci_resource_start(pcidev,0);
+       candev->res_addr=candev->io_addr;
+       candev->dev_base_addr=NULL;
        
        /*candev->flags |= CANDEV_PROGRAMMABLE_IRQ;*/