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); |