X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/2a4663dd0b20d96d1ffe20993dd0c63ed2ca9f20..fed27ce228698b4e0420639201209545bc1d0bd8:/lincan/src/bfadcan.c diff --git a/lincan/src/bfadcan.c b/lincan/src/bfadcan.c index d91603c..f04fe9f 100644 --- a/lincan/src/bfadcan.c +++ b/lincan/src/bfadcan.c @@ -18,18 +18,16 @@ #include "../include/can.h" #include "../include/can_sysdep.h" #include "../include/main.h" -#include "../include/i82527.h" #include "../include/sja1000p.h" #define __NO_VERSION__ #include -long clock_freq; -MODULE_PARM(clock_freq,"i"); +#define CAN_BFAD_CLOCKFREQ 20000000 /* cli and sti are not allowed in 2.5.5x SMP kernels */ #ifdef WINDOWED_ACCESS -static can_spinlock_t bfadcan_win_lock=SPIN_LOCK_UNLOCKED; +static CAN_DEFINE_SPINLOCK(bfadcan_win_lock); #endif /* @@ -105,7 +103,7 @@ int bfadcan_reset(struct candevice_t *candev) { int i; - struct chip_t *chip=candev->chip[0]; + struct canchip_t *chip=candev->chip[0]; unsigned cdr; bfadcan_write_register(sjaMOD_RM, chip->chip_base_addr+SJAMOD); @@ -198,13 +196,10 @@ int bfadcan_init_chip_data(struct candevice_t *candev, int chipnr) unsigned int id1, id2; sja1000p_fill_chipspecops(candev->chip[chipnr]); candev->chip[chipnr]->chip_base_addr=candev->io_addr; - candev->chip[chipnr]->clock = clock_freq; - candev->chip[chipnr]->int_cpu_reg = iCPU_DSC; - candev->chip[chipnr]->int_clk_reg = iCLK_SL1; - candev->chip[chipnr]->int_bus_reg = iBUS_CBY; + if(candev->chip[chipnr]->clock<=0) + candev->chip[chipnr]->clock = CAN_BFAD_CLOCKFREQ; candev->chip[chipnr]->sja_cdr_reg = sjaCDR_CBP | sjaCDR_CLK_OFF; - candev->chip[chipnr]->sja_ocr_reg = sjaOCR_MODE_NORMAL | - sjaOCR_TX0_LH; + candev->chip[chipnr]->sja_ocr_reg = sjaOCR_MODE_NORMAL | sjaOCR_TX0_LH; id1 = inb(0xe284); id2 = inb(0xe285); @@ -234,7 +229,7 @@ int bfadcan_init_chip_data(struct candevice_t *candev, int chipnr) * Return Value: The function always returns zero * File: src/bfadcan.c */ -int bfadcan_init_obj_data(struct chip_t *chip, int objnr) +int bfadcan_init_obj_data(struct canchip_t *chip, int objnr) { chip->msgobj[objnr]->obj_base_addr=chip->chip_base_addr+(objnr+1)*0x10;