Merge branch 'master' into can-usb1
[lincan.git] / lincan / src / proc.c
index a73f71e..e423b92 100644 (file)
@@ -27,6 +27,12 @@ int remove_object_from_procdir(int chip_nr);
 static int can_proc_readlink(struct proc_dir_entry *ent, char *page);
 #endif
 
+#if  LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,25)
+#define CAN_PROC_ROOT (&proc_root)
+#else /* >= 2.6.26 */
+#define CAN_PROC_ROOT (NULL)
+#endif /* >= 2.6.26 */
+
 static int cc=0; /* static counter for each CAN chip */
 
 static struct canproc_t can_proc_base;
@@ -156,7 +162,7 @@ int can_init_procdir(void)
        mutex_init(&proc_mutex);
 
        base->can_proc_entry = can_create_proc_entry("can", S_IFDIR | S_IRUGO |
-                                       S_IXUGO, &proc_root);
+                                       S_IXUGO, CAN_PROC_ROOT);
        if (base->can_proc_entry == NULL)
                return -ENODEV;
 
@@ -186,7 +192,7 @@ int can_delete_procdir(void)
        if (remove_channels_from_procdir())
                return -ENODEV;
        /* name: "can" */
-       if (can_remove_proc_entry(base->can_proc_entry, &proc_root))
+       if (can_remove_proc_entry(base->can_proc_entry, CAN_PROC_ROOT))
                return -ENODEV;
 
        return 0;
@@ -211,9 +217,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);