]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/netxen/netxen_nic_main.c
Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa...
[linux-2.6-omap-h63xx.git] / drivers / net / netxen / netxen_nic_main.c
index 3b17a79361478fa29fdd75107254ee49986cc9ea..c172b6e24a9644f35047f3c6c0ba7f742a335dad 100644 (file)
@@ -201,9 +201,9 @@ static int nx_set_dma_mask(struct netxen_adapter *adapter, uint8_t revision_id)
                adapter->pci_using_dac = 1;
                return 0;
        }
+set_32_bit_mask:
 #endif /* CONFIG_IA64 */
 
-set_32_bit_mask:
        err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
        if (!err)
                err = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK);
@@ -372,67 +372,6 @@ static void netxen_set_port_mode(struct netxen_adapter *adapter)
        }
 }
 
-#define PCI_CAP_ID_GEN  0x10
-
-static void netxen_pcie_strap_init(struct netxen_adapter *adapter)
-{
-       u32 pdevfuncsave;
-       u32 c8c9value = 0;
-       u32 chicken = 0;
-       u32 control = 0;
-       int i, pos;
-       struct pci_dev *pdev;
-
-       pdev = adapter->pdev;
-
-       adapter->hw_read_wx(adapter,
-               NETXEN_PCIE_REG(PCIE_CHICKEN3), &chicken, 4);
-       /* clear chicken3.25:24 */
-       chicken &= 0xFCFFFFFF;
-       /*
-        * if gen1 and B0, set F1020 - if gen 2, do nothing
-        * if gen2 set to F1000
-        */
-       pos = pci_find_capability(pdev, PCI_CAP_ID_GEN);
-       if (pos == 0xC0) {
-               pci_read_config_dword(pdev, pos + 0x10, &control);
-               if ((control & 0x000F0000) != 0x00020000) {
-                       /*  set chicken3.24 if gen1 */
-                       chicken |= 0x01000000;
-               }
-               printk(KERN_INFO "%s Gen2 strapping detected\n",
-                               netxen_nic_driver_name);
-               c8c9value = 0xF1000;
-       } else {
-               /* set chicken3.24 if gen1 */
-               chicken |= 0x01000000;
-               printk(KERN_INFO "%s Gen1 strapping detected\n",
-                               netxen_nic_driver_name);
-               if (adapter->ahw.revision_id == NX_P3_B0)
-                       c8c9value = 0xF1020;
-               else
-                       c8c9value = 0;
-
-       }
-       adapter->hw_write_wx(adapter,
-               NETXEN_PCIE_REG(PCIE_CHICKEN3), &chicken, 4);
-
-       if (!c8c9value)
-               return;
-
-       pdevfuncsave = pdev->devfn;
-       if (pdevfuncsave & 0x07)
-               return;
-
-       for (i = 0; i < 8; i++) {
-               pci_read_config_dword(pdev, pos + 8, &control);
-               pci_read_config_dword(pdev, pos + 8, &control);
-               pci_write_config_dword(pdev, pos + 8, c8c9value);
-               pdev->devfn++;
-       }
-       pdev->devfn = pdevfuncsave;
-}
-
 static void netxen_set_msix_bit(struct pci_dev *pdev, int enable)
 {
        u32 control;
@@ -466,9 +405,6 @@ netxen_read_mac_addr(struct netxen_adapter *adapter)
        struct net_device *netdev = adapter->netdev;
        struct pci_dev *pdev = adapter->pdev;
 
-       if (netxen_is_flash_supported(adapter) != 0)
-               return -EIO;
-
        if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) {
                if (netxen_p3_get_mac_addr(adapter, &mac_addr) != 0)
                        return -EIO;
@@ -649,7 +585,12 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                adapter->pci_mem_read = netxen_nic_pci_mem_read_2M;
                adapter->pci_mem_write = netxen_nic_pci_mem_write_2M;
 
-               mem_ptr0 = ioremap(mem_base, mem_len);
+               mem_ptr0 = pci_ioremap_bar(pdev, 0);
+               if (mem_ptr0 == NULL) {
+                       dev_err(&pdev->dev, "failed to map PCI bar 0\n");
+                       return -EIO;
+               }
+
                pci_len0 = mem_len;
                first_page_group_start = 0;
                first_page_group_end   = 0;
@@ -812,9 +753,6 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                }
                netxen_load_firmware(adapter);
 
-               if (NX_IS_REVISION_P3(revision_id))
-                       netxen_pcie_strap_init(adapter);
-
                if (NX_IS_REVISION_P2(revision_id)) {
 
                        /* Initialize multicast addr pool owners */
@@ -859,9 +797,12 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
         * See if the firmware gave us a virtual-physical port mapping.
         */
        adapter->physical_port = adapter->portnum;
-       i = adapter->pci_read_normalize(adapter, CRB_V2P(adapter->portnum));
-       if (i != 0x55555555)
-               adapter->physical_port = i;
+       if (adapter->fw_major < 4) {
+               i = adapter->pci_read_normalize(adapter,
+                               CRB_V2P(adapter->portnum));
+               if (i != 0x55555555)
+                       adapter->physical_port = i;
+       }
 
        adapter->flags &= ~(NETXEN_NIC_MSI_ENABLED | NETXEN_NIC_MSIX_ENABLED);