drivers/8139too.c
branchkernel2.6
changeset 33 f4171b8aadf8
parent 27 d75ef6b46e33
child 34 c1e8d61fa395
equal deleted inserted replaced
32:7d9809fbf7b9 33:f4171b8aadf8
   200 // Device index for EtherCAT device selection
   200 // Device index for EtherCAT device selection
   201 static int ec_device_index = -1;
   201 static int ec_device_index = -1;
   202 static int ec_device_master_index = 0;
   202 static int ec_device_master_index = 0;
   203 
   203 
   204 static EtherCAT_device_t rtl_ecat_dev;
   204 static EtherCAT_device_t rtl_ecat_dev;
   205 static EtherCAT_master_t *rtl_ecat_master = NULL;
   205 int rtl_ecat_dev_registered = 0;
   206 
   206 
   207 /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
   207 /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
   208 
   208 
   209 /*
   209 /*
   210  * Receive ring size 
   210  * Receive ring size 
  2964 
  2964 
  2965         printk(KERN_INFO "Initializing RTL8139-EtherCAT module.\n");
  2965         printk(KERN_INFO "Initializing RTL8139-EtherCAT module.\n");
  2966 
  2966 
  2967         EtherCAT_device_init(&rtl_ecat_dev);
  2967         EtherCAT_device_init(&rtl_ecat_dev);
  2968         rtl_ecat_dev.isr = rtl8139_interrupt;
  2968         rtl_ecat_dev.isr = rtl8139_interrupt;
       
  2969         rtl_ecat_dev.module = THIS_MODULE;
  2969 
  2970 
  2970         if (pci_module_init(&rtl8139_pci_driver) < 0)
  2971         if (pci_module_init(&rtl8139_pci_driver) < 0)
  2971         {
  2972         {
  2972           printk(KERN_ERR "Could not init PCI module.\n");
  2973           printk(KERN_ERR "Could not init PCI module.\n");
  2973           return -1;
  2974           return -1;
  2975 
  2976 
  2976         printk(KERN_INFO "EtherCAT device index is %i.\n", ec_device_index);
  2977         printk(KERN_INFO "EtherCAT device index is %i.\n", ec_device_index);
  2977 
  2978 
  2978         if (rtl_ecat_dev.dev)
  2979         if (rtl_ecat_dev.dev)
  2979         {
  2980         {
  2980           if ((rtl_ecat_master = EtherCAT_master(ec_device_master_index)) == NULL)
       
  2981           {
       
  2982             printk(KERN_ERR "Could not get EtherCAT master %i.\n",
       
  2983                    ec_device_master_index);
       
  2984             goto out_module;
       
  2985           }
       
  2986 
       
  2987           printk(KERN_INFO "Registering EtherCAT device...\n");
  2981           printk(KERN_INFO "Registering EtherCAT device...\n");
  2988           if (EtherCAT_register_device(rtl_ecat_master, &rtl_ecat_dev) < 0)
  2982           if (EtherCAT_register_device(ec_device_master_index, &rtl_ecat_dev) < 0)
  2989           {
  2983           {
  2990             printk(KERN_ERR "Could not register device.\n");
  2984             printk(KERN_ERR "Could not register device.\n");
  2991             goto out_module;
  2985             goto out_module;
  2992           }
  2986           }
       
  2987 
       
  2988           rtl_ecat_dev_registered = 1;
  2993 
  2989 
  2994           printk(KERN_INFO "EtherCAT device registered and opened.\n");
  2990           printk(KERN_INFO "EtherCAT device registered and opened.\n");
  2995         }
  2991         }
  2996         else
  2992         else
  2997         {
  2993         {
  3013 {
  3009 {
  3014         /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
  3010         /* EtherCAT >>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
  3015 
  3011 
  3016         printk(KERN_INFO "Cleaning up RTL8139-EtherCAT module...\n");
  3012         printk(KERN_INFO "Cleaning up RTL8139-EtherCAT module...\n");
  3017 
  3013 
  3018         if (rtl_ecat_master && rtl_ecat_dev.dev)
  3014         if (rtl_ecat_dev_registered && rtl_ecat_dev.dev)
  3019         {
  3015         {
  3020           printk(KERN_INFO "Unregistering RTL8139-EtherCAT device...\n");
  3016           printk(KERN_INFO "Unregistering RTL8139-EtherCAT device...\n");
  3021           EtherCAT_unregister_device(rtl_ecat_master, &rtl_ecat_dev);
  3017           EtherCAT_unregister_device(ec_device_master_index, &rtl_ecat_dev);
  3022         }
  3018         }
  3023 
  3019 
  3024 	pci_unregister_driver(&rtl8139_pci_driver);
  3020 	pci_unregister_driver(&rtl8139_pci_driver);
  3025         EtherCAT_device_clear(&rtl_ecat_dev);
  3021         EtherCAT_device_clear(&rtl_ecat_dev);
  3026 
  3022