}
/* grant access to the command buffer */
- can_spin_lock(candev->device_lock);
+ can_spin_lock(&candev->device_lock);
// check command buffer status
if (readb(dpram_addr + OF_BCI_SYNC) != 0)
{
/* something went wrong ... */
- can_spin_unlock(candev->device_lock);
+ can_spin_unlock(&candev->device_lock);
DEBUGMSG ("ipci165_bci_command: command buffer is busy\n");
return (-EBUSY);
}
{
/* timeout occured */
/* release the lock */
- can_spin_unlock(candev->device_lock);
+ can_spin_unlock(&candev->device_lock);
CANMSG ("BCI timeout!\n");
return -EBUSY;
}
/* release the buffer */
writeb(0, dpram_addr + OF_BCI_SYNC);
/* unlock the access */
- can_spin_unlock(candev->device_lock);
+ can_spin_unlock(&candev->device_lock);
DEBUGMSG ("ipci165_bci_command: invalid answer\n");
return -EIO;
/* release the buffer */
writeb(0, dpram_addr + OF_BCI_SYNC);
/* unlock the access */
- can_spin_unlock(candev->device_lock);
+ can_spin_unlock(&candev->device_lock);
return 0;
}
DEBUGMSG ("ipci165_do_tx_timeout: finished\n");
}
+/**
+ * ipci165_attach_to_chip: - attaches to the chip, setups registers and state
+ * @chip: pointer to chip state structure
+ *
+ * Return Value: negative value reports error.
+ * File: src/ipci165.c
+ */
+int ipci165_attach_to_chip(struct canchip_t *chip)
+{
+ return 0;
+}
+
+/**
+ * ipci165_release_chip: - called before chip structure removal if %CHIP_ATTACHED is set
+ * @chip: pointer to chip state structure
+ *
+ * Return Value: negative value reports error.
+ * File: src/ipci165.c
+ */
+int ipci165_release_chip(struct canchip_t *chip)
+{
+ ipci165_stop_chip(chip);
+ /* disable interrupts in the hardware, etc. */
+ return 0;
+}
+
/* * * iPC-I 165/PCI Board Functionality * * */
/**
candev->nr_all_chips=2;
candev->flags |= CANDEV_PROGRAMMABLE_IRQ*0;
/* initialize device spinlock */
- can_spin_lock_init(candev->device_lock);
+ can_spin_lock_init(&candev->device_lock);
return 0;
}
chip->chip_data = chip_data;
CANMSG("initializing ipci165 chip operations\n");
+ chip->chipspecops->attach_to_chip=ipci165_attach_to_chip;
+ chip->chipspecops->release_chip=ipci165_release_chip;
chip->chipspecops->chip_config=ipci165_chip_config;
chip->chipspecops->baud_rate=ipci165_baud_rate;
chip->chipspecops->set_btregs=ipci165_set_btregs;