devices/e100-2.6.33-ethercat.c
branchstable-1.5
changeset 2222 28e99697f6e6
parent 2201 7aeb32a5bb6d
child 2421 bc2d4bf9cbe5
child 2589 2b9c78543663
equal deleted inserted replaced
2221:194bbfa734eb 2222:28e99697f6e6
   204 #include <linux/if_vlan.h>
   204 #include <linux/if_vlan.h>
   205 #include <linux/skbuff.h>
   205 #include <linux/skbuff.h>
   206 #include <linux/ethtool.h>
   206 #include <linux/ethtool.h>
   207 #include <linux/string.h>
   207 #include <linux/string.h>
   208 #include <linux/firmware.h>
   208 #include <linux/firmware.h>
       
   209 #include <asm/unaligned.h>
   209 
   210 
   210 // EtherCAT includes
   211 // EtherCAT includes
   211 #include "../globals.h"
   212 #include "../globals.h"
   212 #include "ecdev.h"
   213 #include "ecdev.h"
   213 
   214 
   214 #define DRV_NAME		"ec_e100"
   215 #define DRV_NAME		"ec_e100"
   215 #include <asm/unaligned.h>
       
   216 
       
   217 
       
   218 #define DRV_EXT			"-NAPI"
   216 #define DRV_EXT			"-NAPI"
   219 #define DRV_VERSION		"3.5.24-k2"DRV_EXT
   217 #define DRV_VERSION		"3.5.24-k2"DRV_EXT
   220 #define DRV_DESCRIPTION		"Intel(R) PRO/100 Network Driver"
   218 #define DRV_DESCRIPTION		"Intel(R) PRO/100 Network Driver"
   221 #define DRV_COPYRIGHT		"Copyright(c) 1999-2006 Intel Corporation"
   219 #define DRV_COPYRIGHT		"Copyright(c) 1999-2006 Intel Corporation"
   222 #define PFX			DRV_NAME ": "
   220 #define PFX			DRV_NAME ": "
  2992 	/* ack any pending wake events, disable PME */
  2990 	/* ack any pending wake events, disable PME */
  2993 	pci_pme_active(pdev, false);
  2991 	pci_pme_active(pdev, false);
  2994 
  2992 
  2995 	// offer device to EtherCAT master module
  2993 	// offer device to EtherCAT master module
  2996 	nic->ecdev = ecdev_offer(netdev, e100_ec_poll, THIS_MODULE);
  2994 	nic->ecdev = ecdev_offer(netdev, e100_ec_poll, THIS_MODULE);
       
  2995 
       
  2996 	if (!nic->ecdev) {
       
  2997 		strcpy(netdev->name, "eth%d");
       
  2998 		if((err = register_netdev(netdev))) {
       
  2999 			DPRINTK(PROBE, ERR, "Cannot register net device, aborting.\n");
       
  3000 			goto err_out_free;
       
  3001 		}
       
  3002 	}
       
  3003 
       
  3004 	nic->cbs_pool = pci_pool_create(netdev->name,
       
  3005 			   nic->pdev,
       
  3006 			   nic->params.cbs.max * sizeof(struct cb),
       
  3007 			   sizeof(u32),
       
  3008 			   0);
       
  3009 	DPRINTK(PROBE, INFO, "addr 0x%llx, irq %d, MAC addr %pM\n",
       
  3010 		(unsigned long long)pci_resource_start(pdev, use_io ? 1 : 0),
       
  3011 		pdev->irq, netdev->dev_addr);
       
  3012 
  2997 	if (nic->ecdev) {
  3013 	if (nic->ecdev) {
  2998 		if (ecdev_open(nic->ecdev)) {
  3014 		if (ecdev_open(nic->ecdev)) {
  2999 			ecdev_withdraw(nic->ecdev);
  3015 			ecdev_withdraw(nic->ecdev);
  3000 			goto err_out_free;
  3016 			goto err_out_free;
  3001 		}
  3017 		}
  3002 	} else {
  3018 	}
  3003 		strcpy(netdev->name, "eth%d");
       
  3004 		if((err = register_netdev(netdev))) {
       
  3005 			DPRINTK(PROBE, ERR, "Cannot register net device, aborting.\n");
       
  3006 			goto err_out_free;
       
  3007 		}
       
  3008 		nic->cbs_pool = pci_pool_create(netdev->name,
       
  3009 			   nic->pdev,
       
  3010 			   nic->params.cbs.max * sizeof(struct cb),
       
  3011 			   sizeof(u32),
       
  3012 			   0);
       
  3013 	}
       
  3014 	DPRINTK(PROBE, INFO, "addr 0x%llx, irq %d, MAC addr %pM\n",
       
  3015 		(unsigned long long)pci_resource_start(pdev, use_io ? 1 : 0),
       
  3016 		pdev->irq, netdev->dev_addr);
       
  3017 
  3019 
  3018 	return 0;
  3020 	return 0;
  3019 
  3021 
  3020 err_out_free:
  3022 err_out_free:
  3021 	e100_free(nic);
  3023 	e100_free(nic);