]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/src/open.c
The first enhanced version of Linux CAN-bus driver for OCERA project
[lincan.git] / lincan / src / open.c
index 862a297c217ca575d627d4ae058c25d9ea9cb5c8..f9ff10847c481077449ae900d6a0d9084f5c51eb 100644 (file)
 #endif
 
 #include <linux/fs.h>
+#include <linux/version.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
 #include <linux/malloc.h>
+#else
+#include <linux/slab.h>
+#endif
 #include <linux/version.h>
 
 #include "../include/main.h"
@@ -78,7 +83,7 @@ int can_open(struct inode *inode, struct file *file)
        fifo->rx_size = MAX_BUF_LENGTH * sizeof(struct canmsg_t);
        fifo->tx_size = fifo->rx_size;
 
-#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,2,19))
+#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,3,0))
        init_waitqueue(&fifo->readq);
        init_waitqueue(&fifo->writeq);
 #else
@@ -89,12 +94,13 @@ int can_open(struct inode *inode, struct file *file)
        fifo->rx_in_progress = 0;
        fifo->tx_in_progress = 0;
 
-       fifo->head = fifo->tail = 0; //TEMP!!
+       chip->flags |= BUFFERS_ALLOCATED;
 
        if (chip->chipspecops->pre_read_config(chip,obj)<0)
                CANMSG("Error initializing chip for receiving\n");
                
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,50))
        MOD_INC_USE_COUNT;
-       
+#endif 
        return 0;
 }