]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/src/i82527.c
Added support for fasync system call and replacement of spinXXX by can_spinXXX
[lincan.git] / lincan / src / i82527.c
index cbd7870f74b2ecc746e5129fa325279a14ce5010..7a57f45c7e7601753cd0b11b35e7a5db5f01ebde 100644 (file)
@@ -520,14 +520,14 @@ irqreturn_t i82527_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
                                message_id=(id0|id1)>>5;
                        }
 
-                       spin_lock(&hardware_p->rtr_lock);
+                       can_spin_lock(&hardware_p->rtr_lock);
                        rtr_search=hardware_p->rtr_queue;
                        while (rtr_search != NULL) {
                                if (rtr_search->id == message_id)
                                        break;
                                rtr_search=rtr_search->next;
                        }
-                       spin_unlock(&hardware_p->rtr_lock);
+                       can_spin_unlock(&hardware_p->rtr_lock);
                        if ((rtr_search!=NULL) && (rtr_search->id==message_id))
                                i82527_irq_rtr_handler(chip, obj, rtr_search, message_id);
                        else
@@ -547,14 +547,14 @@ void i82527_irq_rtr_handler(struct chip_t *chip, struct msgobj_t *obj,
        canobj_write_reg(chip,obj,(MVAL_RES|TXIE_RES|RXIE_RES|INTPD_RES),iMSGCTL0);
        canobj_write_reg(chip,obj,(RMPD_RES|TXRQ_RES|MLST_RES|NEWD_RES),iMSGCTL1);
        
-       spin_lock(&hardware_p->rtr_lock);
+       can_spin_lock(&hardware_p->rtr_lock);
 
        rtr_search->rtr_message->id=message_id;
        rtr_search->rtr_message->length=(canobj_read_reg(chip,obj,iMSGCFG) & 0xf0)>>4;
        for (i=0; i<rtr_search->rtr_message->length; i++)
                rtr_search->rtr_message->data[i]=canobj_read_reg(chip,obj,iMSGDAT0+i);
        
-       spin_unlock(&hardware_p->rtr_lock);
+       can_spin_unlock(&hardware_p->rtr_lock);
 
        if (waitqueue_active(&rtr_search->rtr_wq))
                wake_up(&rtr_search->rtr_wq);
@@ -563,11 +563,11 @@ void i82527_irq_rtr_handler(struct chip_t *chip, struct msgobj_t *obj,
 int i82527_wakeup_tx(struct chip_t *chip, struct msgobj_t *obj)
 {
         /* dummy lock to prevent preemption fully portable way */
-       spinlock_t dummy_lock;
+       can_spinlock_t dummy_lock;
        
        /*  preempt_disable() */
-       spin_lock_init(&dummy_lock);
-       spin_lock(&dummy_lock);
+       can_spin_lock_init(&dummy_lock);
+       can_spin_lock(&dummy_lock);
        
        set_bit(OBJ_TX_REQUEST,&obj->flags);
        while(!test_and_set_bit(OBJ_TX_LOCK,&obj->flags)){
@@ -581,7 +581,7 @@ int i82527_wakeup_tx(struct chip_t *chip, struct msgobj_t *obj)
        }
 
        /* preempt_enable(); */
-       spin_unlock(&dummy_lock);
+       can_spin_unlock(&dummy_lock);
        return 0;
 }