equal
deleted
inserted
replaced
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 |