diff options
author | Dhananjay Phadke <dhananjay@netxen.com> | 2009-03-09 04:50:56 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-03-10 08:10:04 -0400 |
commit | 1e2d0059fc24c84356721c16c2ad0590c38015a0 (patch) | |
tree | d968ab1ea6c4a7b3fe95cb75686576d57c0ab2e9 /drivers/net/netxen/netxen_nic_main.c | |
parent | becf46a012db667c562bbbe589c14e100b62e5a4 (diff) |
netxen: annotate board_config and board_type
Remove huge board config structure from each instance, read
only necessary fields from flash.
Replace board_type with port_type (1G/10G), there's another
board_type field describing card type (SFP/XFP/CX4).
Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/netxen/netxen_nic_main.c')
-rw-r--r-- | drivers/net/netxen/netxen_nic_main.c | 38 |
1 files changed, 9 insertions, 29 deletions
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c index 3b4d923f947d..9445277321d7 100644 --- a/drivers/net/netxen/netxen_nic_main.c +++ b/drivers/net/netxen/netxen_nic_main.c | |||
@@ -212,7 +212,7 @@ nx_update_dma_mask(struct netxen_adapter *adapter) | |||
212 | 212 | ||
213 | static void netxen_check_options(struct netxen_adapter *adapter) | 213 | static void netxen_check_options(struct netxen_adapter *adapter) |
214 | { | 214 | { |
215 | switch (adapter->ahw.boardcfg.board_type) { | 215 | switch (adapter->ahw.board_type) { |
216 | case NETXEN_BRDTYPE_P3_HMEZ: | 216 | case NETXEN_BRDTYPE_P3_HMEZ: |
217 | case NETXEN_BRDTYPE_P3_XG_LOM: | 217 | case NETXEN_BRDTYPE_P3_XG_LOM: |
218 | case NETXEN_BRDTYPE_P3_10G_CX4: | 218 | case NETXEN_BRDTYPE_P3_10G_CX4: |
@@ -250,7 +250,7 @@ static void netxen_check_options(struct netxen_adapter *adapter) | |||
250 | 250 | ||
251 | case NETXEN_BRDTYPE_P3_10G_TP: | 251 | case NETXEN_BRDTYPE_P3_10G_TP: |
252 | adapter->msix_supported = !!use_msi_x; | 252 | adapter->msix_supported = !!use_msi_x; |
253 | if (adapter->ahw.board_type == NETXEN_NIC_XGBE) | 253 | if (adapter->ahw.port_type == NETXEN_NIC_XGBE) |
254 | adapter->max_rx_desc_count = MAX_RCV_DESCRIPTORS_10G; | 254 | adapter->max_rx_desc_count = MAX_RCV_DESCRIPTORS_10G; |
255 | else | 255 | else |
256 | adapter->max_rx_desc_count = MAX_RCV_DESCRIPTORS_1G; | 256 | adapter->max_rx_desc_count = MAX_RCV_DESCRIPTORS_1G; |
@@ -261,7 +261,7 @@ static void netxen_check_options(struct netxen_adapter *adapter) | |||
261 | adapter->max_rx_desc_count = MAX_RCV_DESCRIPTORS_1G; | 261 | adapter->max_rx_desc_count = MAX_RCV_DESCRIPTORS_1G; |
262 | 262 | ||
263 | printk(KERN_WARNING "Unknown board type(0x%x)\n", | 263 | printk(KERN_WARNING "Unknown board type(0x%x)\n", |
264 | adapter->ahw.boardcfg.board_type); | 264 | adapter->ahw.board_type); |
265 | break; | 265 | break; |
266 | } | 266 | } |
267 | 267 | ||
@@ -330,7 +330,7 @@ static void netxen_set_port_mode(struct netxen_adapter *adapter) | |||
330 | { | 330 | { |
331 | u32 val, data; | 331 | u32 val, data; |
332 | 332 | ||
333 | val = adapter->ahw.boardcfg.board_type; | 333 | val = adapter->ahw.board_type; |
334 | if ((val == NETXEN_BRDTYPE_P3_HMEZ) || | 334 | if ((val == NETXEN_BRDTYPE_P3_HMEZ) || |
335 | (val == NETXEN_BRDTYPE_P3_XG_LOM)) { | 335 | (val == NETXEN_BRDTYPE_P3_XG_LOM)) { |
336 | if (port_mode == NETXEN_PORT_MODE_802_3_AP) { | 336 | if (port_mode == NETXEN_PORT_MODE_802_3_AP) { |
@@ -523,8 +523,6 @@ netxen_setup_pci_map(struct netxen_adapter *adapter) | |||
523 | void __iomem *mem_ptr2 = NULL; | 523 | void __iomem *mem_ptr2 = NULL; |
524 | void __iomem *db_ptr = NULL; | 524 | void __iomem *db_ptr = NULL; |
525 | 525 | ||
526 | unsigned long first_page_group_end; | ||
527 | unsigned long first_page_group_start; | ||
528 | unsigned long mem_base, mem_len, db_base, db_len = 0, pci_len0 = 0; | 526 | unsigned long mem_base, mem_len, db_base, db_len = 0, pci_len0 = 0; |
529 | 527 | ||
530 | struct pci_dev *pdev = adapter->pdev; | 528 | struct pci_dev *pdev = adapter->pdev; |
@@ -562,14 +560,10 @@ netxen_setup_pci_map(struct netxen_adapter *adapter) | |||
562 | SECOND_PAGE_GROUP_SIZE); | 560 | SECOND_PAGE_GROUP_SIZE); |
563 | mem_ptr2 = ioremap(mem_base + THIRD_PAGE_GROUP_START, | 561 | mem_ptr2 = ioremap(mem_base + THIRD_PAGE_GROUP_START, |
564 | THIRD_PAGE_GROUP_SIZE); | 562 | THIRD_PAGE_GROUP_SIZE); |
565 | first_page_group_start = FIRST_PAGE_GROUP_START; | ||
566 | first_page_group_end = FIRST_PAGE_GROUP_END; | ||
567 | } else if (mem_len == NETXEN_PCI_32MB_SIZE) { | 563 | } else if (mem_len == NETXEN_PCI_32MB_SIZE) { |
568 | mem_ptr1 = ioremap(mem_base, SECOND_PAGE_GROUP_SIZE); | 564 | mem_ptr1 = ioremap(mem_base, SECOND_PAGE_GROUP_SIZE); |
569 | mem_ptr2 = ioremap(mem_base + THIRD_PAGE_GROUP_START - | 565 | mem_ptr2 = ioremap(mem_base + THIRD_PAGE_GROUP_START - |
570 | SECOND_PAGE_GROUP_START, THIRD_PAGE_GROUP_SIZE); | 566 | SECOND_PAGE_GROUP_START, THIRD_PAGE_GROUP_SIZE); |
571 | first_page_group_start = 0; | ||
572 | first_page_group_end = 0; | ||
573 | } else if (mem_len == NETXEN_PCI_2MB_SIZE) { | 567 | } else if (mem_len == NETXEN_PCI_2MB_SIZE) { |
574 | adapter->hw_write_wx = netxen_nic_hw_write_wx_2M; | 568 | adapter->hw_write_wx = netxen_nic_hw_write_wx_2M; |
575 | adapter->hw_read_wx = netxen_nic_hw_read_wx_2M; | 569 | adapter->hw_read_wx = netxen_nic_hw_read_wx_2M; |
@@ -589,8 +583,6 @@ netxen_setup_pci_map(struct netxen_adapter *adapter) | |||
589 | return -EIO; | 583 | return -EIO; |
590 | } | 584 | } |
591 | pci_len0 = mem_len; | 585 | pci_len0 = mem_len; |
592 | first_page_group_start = 0; | ||
593 | first_page_group_end = 0; | ||
594 | 586 | ||
595 | adapter->ahw.ddr_mn_window = 0; | 587 | adapter->ahw.ddr_mn_window = 0; |
596 | adapter->ahw.qdr_sn_window = 0; | 588 | adapter->ahw.qdr_sn_window = 0; |
@@ -611,8 +603,6 @@ netxen_setup_pci_map(struct netxen_adapter *adapter) | |||
611 | 603 | ||
612 | adapter->ahw.pci_base0 = mem_ptr0; | 604 | adapter->ahw.pci_base0 = mem_ptr0; |
613 | adapter->ahw.pci_len0 = pci_len0; | 605 | adapter->ahw.pci_len0 = pci_len0; |
614 | adapter->ahw.first_page_group_start = first_page_group_start; | ||
615 | adapter->ahw.first_page_group_end = first_page_group_end; | ||
616 | adapter->ahw.pci_base1 = mem_ptr1; | 606 | adapter->ahw.pci_base1 = mem_ptr1; |
617 | adapter->ahw.pci_base2 = mem_ptr2; | 607 | adapter->ahw.pci_base2 = mem_ptr2; |
618 | 608 | ||
@@ -679,7 +669,7 @@ netxen_start_firmware(struct netxen_adapter *adapter) | |||
679 | 669 | ||
680 | /* Initialize multicast addr pool owners */ | 670 | /* Initialize multicast addr pool owners */ |
681 | val = 0x7654; | 671 | val = 0x7654; |
682 | if (adapter->ahw.board_type == NETXEN_NIC_XGBE) | 672 | if (adapter->ahw.port_type == NETXEN_NIC_XGBE) |
683 | val |= 0x0f000000; | 673 | val |= 0x0f000000; |
684 | netxen_crb_writelit_adapter(adapter, | 674 | netxen_crb_writelit_adapter(adapter, |
685 | NETXEN_MAC_ADDR_CNTL_REG, val); | 675 | NETXEN_MAC_ADDR_CNTL_REG, val); |
@@ -870,7 +860,6 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
870 | struct netxen_adapter *adapter = NULL; | 860 | struct netxen_adapter *adapter = NULL; |
871 | int i = 0, err; | 861 | int i = 0, err; |
872 | int first_driver; | 862 | int first_driver; |
873 | u32 val; | ||
874 | int pci_func_id = PCI_FUNC(pdev->devfn); | 863 | int pci_func_id = PCI_FUNC(pdev->devfn); |
875 | uint8_t revision_id; | 864 | uint8_t revision_id; |
876 | 865 | ||
@@ -936,7 +925,6 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
936 | 925 | ||
937 | /* This will be reset for mezz cards */ | 926 | /* This will be reset for mezz cards */ |
938 | adapter->portnum = pci_func_id; | 927 | adapter->portnum = pci_func_id; |
939 | adapter->status &= ~NETXEN_NETDEV_STATUS; | ||
940 | adapter->rx_csum = 1; | 928 | adapter->rx_csum = 1; |
941 | adapter->mc_enabled = 0; | 929 | adapter->mc_enabled = 0; |
942 | if (NX_IS_REVISION_P3(revision_id)) | 930 | if (NX_IS_REVISION_P3(revision_id)) |
@@ -974,7 +962,7 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
974 | netxen_initialize_adapter_ops(adapter); | 962 | netxen_initialize_adapter_ops(adapter); |
975 | 963 | ||
976 | /* Mezz cards have PCI function 0,2,3 enabled */ | 964 | /* Mezz cards have PCI function 0,2,3 enabled */ |
977 | switch (adapter->ahw.boardcfg.board_type) { | 965 | switch (adapter->ahw.board_type) { |
978 | case NETXEN_BRDTYPE_P2_SB31_10G_IMEZ: | 966 | case NETXEN_BRDTYPE_P2_SB31_10G_IMEZ: |
979 | case NETXEN_BRDTYPE_P2_SB31_10G_HMEZ: | 967 | case NETXEN_BRDTYPE_P2_SB31_10G_HMEZ: |
980 | if (pci_func_id >= 2) | 968 | if (pci_func_id >= 2) |
@@ -1007,15 +995,7 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1007 | 995 | ||
1008 | nx_update_dma_mask(adapter); | 996 | nx_update_dma_mask(adapter); |
1009 | 997 | ||
1010 | netxen_nic_flash_print(adapter); | 998 | netxen_nic_get_firmware_info(adapter); |
1011 | |||
1012 | if (NX_IS_REVISION_P3(revision_id)) { | ||
1013 | adapter->hw_read_wx(adapter, | ||
1014 | NETXEN_MIU_MN_CONTROL, &val, 4); | ||
1015 | adapter->ahw.cut_through = (val & 0x4) ? 1 : 0; | ||
1016 | dev_info(&pdev->dev, "firmware running in %s mode\n", | ||
1017 | adapter->ahw.cut_through ? "cut through" : "legacy"); | ||
1018 | } | ||
1019 | 999 | ||
1020 | /* | 1000 | /* |
1021 | * See if the firmware gave us a virtual-physical port mapping. | 1001 | * See if the firmware gave us a virtual-physical port mapping. |
@@ -1066,7 +1046,7 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1066 | 1046 | ||
1067 | pci_set_drvdata(pdev, adapter); | 1047 | pci_set_drvdata(pdev, adapter); |
1068 | 1048 | ||
1069 | switch (adapter->ahw.board_type) { | 1049 | switch (adapter->ahw.port_type) { |
1070 | case NETXEN_NIC_GBE: | 1050 | case NETXEN_NIC_GBE: |
1071 | dev_info(&adapter->pdev->dev, "%s: GbE port initialized\n", | 1051 | dev_info(&adapter->pdev->dev, "%s: GbE port initialized\n", |
1072 | adapter->netdev->name); | 1052 | adapter->netdev->name); |
@@ -1460,7 +1440,7 @@ static void netxen_nic_handle_phy_intr(struct netxen_adapter *adapter) | |||
1460 | linkup = (val == XG_LINK_UP_P3); | 1440 | linkup = (val == XG_LINK_UP_P3); |
1461 | } else { | 1441 | } else { |
1462 | val = adapter->pci_read_normalize(adapter, CRB_XG_STATE); | 1442 | val = adapter->pci_read_normalize(adapter, CRB_XG_STATE); |
1463 | if (adapter->ahw.board_type == NETXEN_NIC_GBE) | 1443 | if (adapter->ahw.port_type == NETXEN_NIC_GBE) |
1464 | linkup = (val >> port) & 1; | 1444 | linkup = (val >> port) & 1; |
1465 | else { | 1445 | else { |
1466 | val = (val >> port*8) & 0xff; | 1446 | val = (val >> port*8) & 0xff; |