]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/src/nsi_canpci.c
LinCAN sources go through big white-space cleanup.
[lincan.git] / lincan / src / nsi_canpci.c
index 1fee22726cb4693a5a85a65296e0a699371cd4a5..309ec850c692c4fea062dafa152ed97a6c1608f6 100644 (file)
@@ -97,7 +97,7 @@ void nsi_canpci_disconnect_irq(struct candevice_t *candev)
 
 int nsi_canpci_config_irqs(struct canchip_t *chip, short irqs)
 {
 
 int nsi_canpci_config_irqs(struct canchip_t *chip, short irqs)
 {
-       
+
        unsigned long it_mask,it_reg;
        struct candevice_t *candev;
        it_mask=0;
        unsigned long it_mask,it_reg;
        struct candevice_t *candev;
        it_mask=0;
@@ -144,15 +144,15 @@ int nsi_canpci_i82527_chip_config(struct canchip_t *chip)
 {
        can_write_reg(chip,chip->int_cpu_reg,iCPU); // Configure cpu interface
        can_write_reg(chip,(iCTL_CCE|iCTL_INI),iCTL); // Enable configuration
 {
        can_write_reg(chip,chip->int_cpu_reg,iCPU); // Configure cpu interface
        can_write_reg(chip,(iCTL_CCE|iCTL_INI),iCTL); // Enable configuration
-       i82527_seg_write_reg(chip,chip->int_clk_reg,iCLK); // Set clock out slew rates 
+       i82527_seg_write_reg(chip,chip->int_clk_reg,iCLK); // Set clock out slew rates
        i82527_seg_write_reg(chip,chip->int_bus_reg,iBUS); /* Bus configuration */
        i82527_seg_write_reg(chip,chip->int_bus_reg,iBUS); /* Bus configuration */
-       
+
        can_write_reg(chip,P2_2|P2_1,iP2C); // The pin P2_2,P2_1 of the 527 must be set as output
        can_write_reg(chip,P2_2|P2_1,iP2O); // and P2_2 must be set to 1
        can_write_reg(chip,P2_2|P2_1,iP2C); // The pin P2_2,P2_1 of the 527 must be set as output
        can_write_reg(chip,P2_2|P2_1,iP2O); // and P2_2 must be set to 1
-       
+
        can_write_reg(chip,0x00,iSTAT); /* Clear error status register */
 
        can_write_reg(chip,0x00,iSTAT); /* Clear error status register */
 
-       /* Check if we can at least read back some arbitrary data from the 
+       /* Check if we can at least read back some arbitrary data from the
         * card. If we can not, the card is not properly configured!
         */
        canobj_write_reg(chip,chip->msgobj[1],0x25,iMSGDAT1);
         * card. If we can not, the card is not properly configured!
         */
        canobj_write_reg(chip,chip->msgobj[1],0x25,iMSGDAT1);
@@ -191,11 +191,11 @@ int nsi_canpci_i82527_chip_config(struct canchip_t *chip)
                CANMSG("Error clearing message objects\n");
                return -ENODEV;
        }
                CANMSG("Error clearing message objects\n");
                return -ENODEV;
        }
-       
+
        if (nsi_canpci_config_irqs(chip,iCTL_IE|iCTL_EIE)) { /* has been 0x0a */
                CANMSG("Error configuring interrupts\n");
                return -ENODEV;
        if (nsi_canpci_config_irqs(chip,iCTL_IE|iCTL_EIE)) { /* has been 0x0a */
                CANMSG("Error configuring interrupts\n");
                return -ENODEV;
-       }       
+       }
        return 0;
 }
 
        return 0;
 }
 
@@ -220,7 +220,7 @@ int nsi_canpci_start_chip(struct canchip_t *chip)
        rmb();
        it_reg|=it_mask|0x40;
        iowrite32(it_reg,(void*)(candev->io_addr+PLX_INTCSR));
        rmb();
        it_reg|=it_mask|0x40;
        iowrite32(it_reg,(void*)(candev->io_addr+PLX_INTCSR));
-       wmb();  
+       wmb();
        i82527_start_chip(chip);
        return 0;
 }
        i82527_start_chip(chip);
        return 0;
 }
@@ -245,7 +245,7 @@ int nsi_canpci_stop_chip(struct canchip_t *chip)
        rmb();
        it_reg&=~it_mask;
        iowrite32(it_reg,(void*)(candev->io_addr+PLX_INTCSR));
        rmb();
        it_reg&=~it_mask;
        iowrite32(it_reg,(void*)(candev->io_addr+PLX_INTCSR));
-       wmb();  
+       wmb();
        i82527_stop_chip(chip);
        return 0;
 }
        i82527_stop_chip(chip);
        return 0;
 }
@@ -272,7 +272,7 @@ int nsi_canpci_irq_handler(int irq, struct canchip_t *chip)
                        {
                                retcode=CANCHIP_IRQ_HANDLED;
                        }
                        {
                                retcode=CANCHIP_IRQ_HANDLED;
                        }
-               
+
                }
        }
        else
                }
        }
        else
@@ -286,7 +286,7 @@ int nsi_canpci_irq_handler(int irq, struct canchip_t *chip)
                        }else
                        {
                                retcode=CANCHIP_IRQ_HANDLED;
                        }else
                        {
                                retcode=CANCHIP_IRQ_HANDLED;
-                       }       
+                       }
                }
        }
        return retcode;
                }
        }
        return retcode;
@@ -301,11 +301,11 @@ int nsi_canpci_request_io(struct candevice_t *candev)
 {
   (void)candev;
   if(candev->dev_base_addr==0)
 {
   (void)candev;
   if(candev->dev_base_addr==0)
-       return -EIO;  
+       return -EIO;
   return 0;
 }
 
   return 0;
 }
 
-/* The function template_release_io is used to free the previously reserved 
+/* The function template_release_io is used to free the previously reserved
  * io-memory. In case you reserved more memory, don't forget to free it here.
  */
 int nsi_canpci_release_io(struct candevice_t *candev)
  * io-memory. In case you reserved more memory, don't forget to free it here.
  */
 int nsi_canpci_release_io(struct candevice_t *candev)
@@ -313,7 +313,7 @@ int nsi_canpci_release_io(struct candevice_t *candev)
        unsigned long reg_reset;
        struct pci_dev *pcidev = candev->sysdevptr.pcidev;
        DEBUGMSG("Releasing board io\n");
        unsigned long reg_reset;
        struct pci_dev *pcidev = candev->sysdevptr.pcidev;
        DEBUGMSG("Releasing board io\n");
-       
+
        nsi_canpci_disconnect_irq(candev);
        // First, set RESET signal to 0
        reg_reset = ioread32( (void*)(candev->io_addr+PLX_CNTRL));
        nsi_canpci_disconnect_irq(candev);
        // First, set RESET signal to 0
        reg_reset = ioread32( (void*)(candev->io_addr+PLX_CNTRL));
@@ -333,8 +333,8 @@ int nsi_canpci_release_io(struct candevice_t *candev)
        kfree((void*)(candev->dev_base_addr));
        pci_release_region(pcidev,0);
        pci_release_region(pcidev,1);
        kfree((void*)(candev->dev_base_addr));
        pci_release_region(pcidev,0);
        pci_release_region(pcidev,1);
-       pci_release_region(pcidev,2);                   
-       pci_release_region(pcidev,3);                   
+       pci_release_region(pcidev,2);
+       pci_release_region(pcidev,3);
        return 0;
 }
 
        return 0;
 }
 
@@ -345,9 +345,9 @@ int nsi_canpci_release_io(struct candevice_t *candev)
 int nsi_canpci_reset(struct candevice_t *candev)
 {
        unsigned long reg_reset;
 int nsi_canpci_reset(struct candevice_t *candev)
 {
        unsigned long reg_reset;
-       
+
        DEBUGMSG("Board reset !!!\n");
        DEBUGMSG("Board reset !!!\n");
-       // Before reset disconnet interrupt to avoir freeze     
+       // Before reset disconnet interrupt to avoir freeze
        nsi_canpci_disconnect_irq(candev);
        // First, set RESET signal to 0
        reg_reset = ioread32( (void*)(candev->io_addr+PLX_CNTRL));
        nsi_canpci_disconnect_irq(candev);
        // First, set RESET signal to 0
        reg_reset = ioread32( (void*)(candev->io_addr+PLX_CNTRL));
@@ -360,9 +360,9 @@ int nsi_canpci_reset(struct candevice_t *candev)
        wmb();
        udelay(2500); // Waiting for some additionnal time before writing in the 82527
        DEBUGMSG("Reset done !!!\n");
        wmb();
        udelay(2500); // Waiting for some additionnal time before writing in the 82527
        DEBUGMSG("Reset done !!!\n");
-       
+
        nsi_canpci_connect_irq(candev);
        nsi_canpci_connect_irq(candev);
-       return 0;       
+       return 0;
 }
 
 /* The function template_init_hw_data is used to initialize the hardware
 }
 
 /* The function template_init_hw_data is used to initialize the hardware
@@ -374,7 +374,7 @@ int nsi_canpci_reset(struct candevice_t *candev)
  * the hardware uses programmable interrupts.
  */
 
  * the hardware uses programmable interrupts.
  */
 
-int nsi_canpci_init_hw_data(struct candevice_t *candev) 
+int nsi_canpci_init_hw_data(struct candevice_t *candev)
 {
        struct pci_dev *pcidev;
 
 {
        struct pci_dev *pcidev;
 
@@ -387,7 +387,7 @@ int nsi_canpci_init_hw_data(struct candevice_t *candev)
                return -ENODEV;
        }
 
                return -ENODEV;
        }
 
-       CANMSG ("NSI CANPCI device found\n");  
+       CANMSG ("NSI CANPCI device found\n");
 
   /* enable it */
   if (pci_enable_device (pcidev))
 
   /* enable it */
   if (pci_enable_device (pcidev))
@@ -400,7 +400,7 @@ int nsi_canpci_init_hw_data(struct candevice_t *candev)
   candev->res_addr=0;
   candev->nr_82527_chips=2;
   candev->nr_sja1000_chips=0;
   candev->res_addr=0;
   candev->nr_82527_chips=2;
   candev->nr_sja1000_chips=0;
-  candev->nr_all_chips=2; 
+  candev->nr_all_chips=2;
   /* initialize device spinlock */
   can_spin_lock_init(&candev->device_lock);
 
   /* initialize device spinlock */
   can_spin_lock_init(&candev->device_lock);
 
@@ -417,7 +417,7 @@ int nsi_canpci_init_hw_data(struct candevice_t *candev)
                        {
                        pci_release_region(pcidev,0);
                        pci_release_region(pcidev,1);
                        {
                        pci_release_region(pcidev,0);
                        pci_release_region(pcidev,1);
-                       pci_release_region(pcidev,2);                   
+                       pci_release_region(pcidev,2);
                        goto error_io;
                        }
                }
                        goto error_io;
                        }
                }
@@ -433,16 +433,16 @@ int nsi_canpci_init_hw_data(struct candevice_t *candev)
        pci_release_region(pcidev,0);
        goto error_io;
        }
        pci_release_region(pcidev,0);
        goto error_io;
        }
-  }  
+  }
   else
   {
        goto error_io;
   }
   else
   {
        goto error_io;
   }
-  candev->dev_base_addr=(unsigned long)(kmalloc(sizeof(t_CardArray),GFP_ATOMIC));  
-  
+  candev->dev_base_addr=(unsigned long)(kmalloc(sizeof(t_CardArray),GFP_ATOMIC));
+
   if((unsigned long)candev->dev_base_addr==0)
        goto error_io;
   if((unsigned long)candev->dev_base_addr==0)
        goto error_io;
-  //PLX register 
+  //PLX register
   ((t_CardArray*)(candev->dev_base_addr))->addr_BAR_remap[0]=ioremap(pci_resource_start(pcidev,0),pci_resource_len(pcidev,0) );
   //PLX IO
   ((t_CardArray*)(candev->dev_base_addr))->addr_BAR_remap[1]=ioremap(pci_resource_start(pcidev,1),pci_resource_len(pcidev,1) );
   ((t_CardArray*)(candev->dev_base_addr))->addr_BAR_remap[0]=ioremap(pci_resource_start(pcidev,0),pci_resource_len(pcidev,0) );
   //PLX IO
   ((t_CardArray*)(candev->dev_base_addr))->addr_BAR_remap[1]=ioremap(pci_resource_start(pcidev,1),pci_resource_len(pcidev,1) );
@@ -450,10 +450,10 @@ int nsi_canpci_init_hw_data(struct candevice_t *candev)
   ((t_CardArray*)(candev->dev_base_addr))->addr_BAR_remap[2]=ioremap(pci_resource_start(pcidev,2),pci_resource_len(pcidev,2) );
   //Chip 1
   ((t_CardArray*)(candev->dev_base_addr))->addr_BAR_remap[3]=ioremap(pci_resource_start(pcidev,3),pci_resource_len(pcidev,3) );
   ((t_CardArray*)(candev->dev_base_addr))->addr_BAR_remap[2]=ioremap(pci_resource_start(pcidev,2),pci_resource_len(pcidev,2) );
   //Chip 1
   ((t_CardArray*)(candev->dev_base_addr))->addr_BAR_remap[3]=ioremap(pci_resource_start(pcidev,3),pci_resource_len(pcidev,3) );
-  
+
   //Short acces to plx register
   candev->io_addr=(unsigned long)(((t_CardArray*)(candev->dev_base_addr))->addr_BAR_remap[0]);
   //Short acces to plx register
   candev->io_addr=(unsigned long)(((t_CardArray*)(candev->dev_base_addr))->addr_BAR_remap[0]);
-  return 0;  
+  return 0;
 
 error_io:
        can_pci_dev_put(pcidev);
 
 error_io:
        can_pci_dev_put(pcidev);
@@ -483,14 +483,14 @@ int nsi_canpci_init_chip_data(struct candevice_t *candev, int chipnr)
        //u8 irq_line;
        CANMSG ("NSI chip data init %d\n",chipnr);
        i82527_fill_chipspecops(candev->chip[chipnr]);
        //u8 irq_line;
        CANMSG ("NSI chip data init %d\n",chipnr);
        i82527_fill_chipspecops(candev->chip[chipnr]);
-       
+
        candev->chip[chipnr]->chipspecops->chip_config =nsi_canpci_i82527_chip_config;
        candev->chip[chipnr]->chipspecops->start_chip=nsi_canpci_start_chip;
        candev->chip[chipnr]->chipspecops->stop_chip=nsi_canpci_stop_chip;
        candev->chip[chipnr]->chipspecops->config_irqs=nsi_canpci_config_irqs;
        candev->chip[chipnr]->chipspecops->irq_handler=nsi_canpci_irq_handler;
        /*candev->chip[chipnr]->chip_data = NULL;*/
        candev->chip[chipnr]->chipspecops->chip_config =nsi_canpci_i82527_chip_config;
        candev->chip[chipnr]->chipspecops->start_chip=nsi_canpci_start_chip;
        candev->chip[chipnr]->chipspecops->stop_chip=nsi_canpci_stop_chip;
        candev->chip[chipnr]->chipspecops->config_irqs=nsi_canpci_config_irqs;
        candev->chip[chipnr]->chipspecops->irq_handler=nsi_canpci_irq_handler;
        /*candev->chip[chipnr]->chip_data = NULL;*/
-       
+
        candev->chip[chipnr]->chip_base_addr= (unsigned long) (((t_CardArray*)(candev->dev_base_addr))->addr_BAR_remap[chipnr+2]);
        candev->chip[chipnr]->clock = iCLOCK;
        candev->chip[chipnr]->chip_irq=candev->sysdevptr.pcidev->irq;
        candev->chip[chipnr]->chip_base_addr= (unsigned long) (((t_CardArray*)(candev->dev_base_addr))->addr_BAR_remap[chipnr+2]);
        candev->chip[chipnr]->clock = iCLOCK;
        candev->chip[chipnr]->chip_irq=candev->sysdevptr.pcidev->irq;
@@ -506,7 +506,7 @@ int nsi_canpci_init_chip_data(struct candevice_t *candev, int chipnr)
  * CAN chip. In case of the sja1000 there's only one message object but on the
  * i82527 chip there are 15.
  * The code below is for a i82527 chip and initializes the object base addresses
  * CAN chip. In case of the sja1000 there's only one message object but on the
  * i82527 chip there are 15.
  * The code below is for a i82527 chip and initializes the object base addresses
- * The entry obj_base_addr represents the first memory address of the message 
+ * The entry obj_base_addr represents the first memory address of the message
  * object. In case of the sja1000 obj_base_addr is taken the same as the chips
  * base address.
  * Unless the hardware uses a segmented memory map, flags can be set zero.
  * object. In case of the sja1000 obj_base_addr is taken the same as the chips
  * base address.
  * Unless the hardware uses a segmented memory map, flags can be set zero.
@@ -514,10 +514,10 @@ int nsi_canpci_init_chip_data(struct candevice_t *candev, int chipnr)
 int nsi_canpci_init_obj_data(struct canchip_t *chip, int objnr)
 {
 
 int nsi_canpci_init_obj_data(struct canchip_t *chip, int objnr)
 {
 
-       
+
        chip->msgobj[objnr]->obj_base_addr=
            chip->chip_base_addr+(objnr+1)*0x10;
        chip->msgobj[objnr]->obj_base_addr=
            chip->chip_base_addr+(objnr+1)*0x10;
-       
+
        return 0;
 }
 
        return 0;
 }