X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/2a4663dd0b20d96d1ffe20993dd0c63ed2ca9f20..831ccb1f14f7472962fc2d185f32e18105209bd7:/lincan/src/pcccan.c diff --git a/lincan/src/pcccan.c b/lincan/src/pcccan.c index f83b1c5..a8c0b19 100644 --- a/lincan/src/pcccan.c +++ b/lincan/src/pcccan.c @@ -20,7 +20,7 @@ int pcccan_irq=-1; unsigned long pcccan_base=0x0; -static can_spinlock_t pcccan_port_lock=SPIN_LOCK_UNLOCKED; +static CAN_DEFINE_SPINLOCK(pcccan_port_lock); /* * IO_RANGE is the io-memory range that gets reserved, please adjust according @@ -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; @@ -217,7 +217,7 @@ int pcccan_init_chip_data(struct candevice_t *candev, int chipnr) * Return Value: The function always returns zero * File: src/pcccan.c */ -int pcccan_init_obj_data(struct chip_t *chip, int objnr) +int pcccan_init_obj_data(struct canchip_t *chip, int objnr) { chip->msgobj[objnr]->obj_base_addr=(objnr+1)*0x10; @@ -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;