aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/netxen/netxen_nic_main.c
diff options
context:
space:
mode:
authorDhananjay Phadke <dhananjay@netxen.com>2009-03-09 04:50:56 -0400
committerDavid S. Miller <davem@davemloft.net>2009-03-10 08:10:04 -0400
commit1e2d0059fc24c84356721c16c2ad0590c38015a0 (patch)
treed968ab1ea6c4a7b3fe95cb75686576d57c0ab2e9 /drivers/net/netxen/netxen_nic_main.c
parentbecf46a012db667c562bbbe589c14e100b62e5a4 (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.c38
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
213static void netxen_check_options(struct netxen_adapter *adapter) 213static 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;