diff options
Diffstat (limited to 'drivers/net/netxen/netxen_nic_init.c')
| -rw-r--r-- | drivers/net/netxen/netxen_nic_init.c | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c index 45fa33e0cb90..70d1b22ced22 100644 --- a/drivers/net/netxen/netxen_nic_init.c +++ b/drivers/net/netxen/netxen_nic_init.c | |||
| @@ -203,21 +203,6 @@ void netxen_initialize_adapter_sw(struct netxen_adapter *adapter) | |||
| 203 | } | 203 | } |
| 204 | } | 204 | } |
| 205 | 205 | ||
| 206 | void netxen_initialize_adapter_hw(struct netxen_adapter *adapter) | ||
| 207 | { | ||
| 208 | int ports = 0; | ||
| 209 | struct netxen_board_info *board_info = &(adapter->ahw.boardcfg); | ||
| 210 | |||
| 211 | if (netxen_nic_get_board_info(adapter) != 0) | ||
| 212 | printk("%s: Error getting board config info.\n", | ||
| 213 | netxen_nic_driver_name); | ||
| 214 | get_brd_port_by_type(board_info->board_type, &ports); | ||
| 215 | if (ports == 0) | ||
| 216 | printk(KERN_ERR "%s: Unknown board type\n", | ||
| 217 | netxen_nic_driver_name); | ||
| 218 | adapter->ahw.max_ports = ports; | ||
| 219 | } | ||
| 220 | |||
| 221 | void netxen_initialize_adapter_ops(struct netxen_adapter *adapter) | 206 | void netxen_initialize_adapter_ops(struct netxen_adapter *adapter) |
| 222 | { | 207 | { |
| 223 | switch (adapter->ahw.board_type) { | 208 | switch (adapter->ahw.board_type) { |
| @@ -765,18 +750,13 @@ int netxen_flash_unlock(struct netxen_adapter *adapter) | |||
| 765 | 750 | ||
| 766 | int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose) | 751 | int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose) |
| 767 | { | 752 | { |
| 768 | int addr, val, status; | 753 | int addr, val; |
| 769 | int n, i; | 754 | int n, i; |
| 770 | int init_delay = 0; | 755 | int init_delay = 0; |
| 771 | struct crb_addr_pair *buf; | 756 | struct crb_addr_pair *buf; |
| 772 | u32 off; | 757 | u32 off; |
| 773 | 758 | ||
| 774 | /* resetall */ | 759 | /* resetall */ |
| 775 | status = netxen_nic_get_board_info(adapter); | ||
| 776 | if (status) | ||
| 777 | printk("%s: netxen_pinit_from_rom: Error getting board info\n", | ||
| 778 | netxen_nic_driver_name); | ||
| 779 | |||
| 780 | netxen_crb_writelit_adapter(adapter, NETXEN_ROMUSB_GLB_SW_RESET, | 760 | netxen_crb_writelit_adapter(adapter, NETXEN_ROMUSB_GLB_SW_RESET, |
| 781 | NETXEN_ROMBUS_RESET); | 761 | NETXEN_ROMBUS_RESET); |
| 782 | 762 | ||
| @@ -860,10 +840,10 @@ int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose) | |||
| 860 | netxen_nic_pci_change_crbwindow(adapter, 1); | 840 | netxen_nic_pci_change_crbwindow(adapter, 1); |
| 861 | } | 841 | } |
| 862 | if (init_delay == 1) { | 842 | if (init_delay == 1) { |
| 863 | msleep(2000); | 843 | msleep(1000); |
| 864 | init_delay = 0; | 844 | init_delay = 0; |
| 865 | } | 845 | } |
| 866 | msleep(20); | 846 | msleep(1); |
| 867 | } | 847 | } |
| 868 | kfree(buf); | 848 | kfree(buf); |
| 869 | 849 | ||
| @@ -938,12 +918,28 @@ int netxen_initialize_adapter_offload(struct netxen_adapter *adapter) | |||
| 938 | 918 | ||
| 939 | void netxen_free_adapter_offload(struct netxen_adapter *adapter) | 919 | void netxen_free_adapter_offload(struct netxen_adapter *adapter) |
| 940 | { | 920 | { |
| 921 | int i; | ||
| 922 | |||
| 941 | if (adapter->dummy_dma.addr) { | 923 | if (adapter->dummy_dma.addr) { |
| 942 | pci_free_consistent(adapter->ahw.pdev, | 924 | i = 100; |
| 925 | do { | ||
| 926 | if (dma_watchdog_shutdown_request(adapter) == 1) | ||
| 927 | break; | ||
| 928 | msleep(50); | ||
| 929 | if (dma_watchdog_shutdown_poll_result(adapter) == 1) | ||
| 930 | break; | ||
| 931 | } while (--i); | ||
| 932 | |||
| 933 | if (i) { | ||
| 934 | pci_free_consistent(adapter->ahw.pdev, | ||
| 943 | NETXEN_HOST_DUMMY_DMA_SIZE, | 935 | NETXEN_HOST_DUMMY_DMA_SIZE, |
| 944 | adapter->dummy_dma.addr, | 936 | adapter->dummy_dma.addr, |
| 945 | adapter->dummy_dma.phys_addr); | 937 | adapter->dummy_dma.phys_addr); |
| 946 | adapter->dummy_dma.addr = NULL; | 938 | adapter->dummy_dma.addr = NULL; |
| 939 | } else { | ||
| 940 | printk(KERN_ERR "%s: dma_watchdog_shutdown failed\n", | ||
| 941 | adapter->netdev->name); | ||
| 942 | } | ||
| 947 | } | 943 | } |
| 948 | } | 944 | } |
| 949 | 945 | ||
