sfc: Remove pointless abstraction of memory BAR number
authorBen Hutchings <bhutchings@solarflare.com>
Fri, 23 Oct 2009 08:32:33 +0000 (08:32 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 24 Oct 2009 11:27:18 +0000 (04:27 -0700)
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/sfc/efx.c
drivers/net/sfc/efx.h
drivers/net/sfc/falcon.c

index 30951fb3d20f9c17f0639098e357ce640dd4a186..29003fe9cb4c7e926eab95329ae1d1481a4ff137 100644 (file)
@@ -818,9 +818,8 @@ static int efx_init_io(struct efx_nic *efx)
                goto fail2;
        }
 
-       efx->membase_phys = pci_resource_start(efx->pci_dev,
-                                              efx->type->mem_bar);
-       rc = pci_request_region(pci_dev, efx->type->mem_bar, "sfc");
+       efx->membase_phys = pci_resource_start(efx->pci_dev, EFX_MEM_BAR);
+       rc = pci_request_region(pci_dev, EFX_MEM_BAR, "sfc");
        if (rc) {
                EFX_ERR(efx, "request for memory BAR failed\n");
                rc = -EIO;
@@ -829,21 +828,20 @@ static int efx_init_io(struct efx_nic *efx)
        efx->membase = ioremap_nocache(efx->membase_phys,
                                       efx->type->mem_map_size);
        if (!efx->membase) {
-               EFX_ERR(efx, "could not map memory BAR %d at %llx+%x\n",
-                       efx->type->mem_bar,
+               EFX_ERR(efx, "could not map memory BAR at %llx+%x\n",
                        (unsigned long long)efx->membase_phys,
                        efx->type->mem_map_size);
                rc = -ENOMEM;
                goto fail4;
        }
-       EFX_LOG(efx, "memory BAR %u at %llx+%x (virtual %p)\n",
-               efx->type->mem_bar, (unsigned long long)efx->membase_phys,
+       EFX_LOG(efx, "memory BAR at %llx+%x (virtual %p)\n",
+               (unsigned long long)efx->membase_phys,
                efx->type->mem_map_size, efx->membase);
 
        return 0;
 
  fail4:
-       pci_release_region(efx->pci_dev, efx->type->mem_bar);
+       pci_release_region(efx->pci_dev, EFX_MEM_BAR);
  fail3:
        efx->membase_phys = 0;
  fail2:
@@ -862,7 +860,7 @@ static void efx_fini_io(struct efx_nic *efx)
        }
 
        if (efx->membase_phys) {
-               pci_release_region(efx->pci_dev, efx->type->mem_bar);
+               pci_release_region(efx->pci_dev, EFX_MEM_BAR);
                efx->membase_phys = 0;
        }
 
index ae76760d4f403683725c3afe5b11a95aae725706..179e0e3b0ec6965a3db204d3ac117d3e7796ef9a 100644 (file)
@@ -19,6 +19,9 @@
 #define FALCON_A_S_DEVID        0x6703
 #define FALCON_B_P_DEVID        0x0710
 
+/* Solarstorm controllers use BAR 0 for I/O space and BAR 2(&3) for memory */
+#define EFX_MEM_BAR 2
+
 /* TX */
 extern netdev_tx_t efx_xmit(struct efx_nic *efx,
                                  struct efx_tx_queue *tx_queue,
index e3c33fa06c863213ca682d01f69199e56a3ecb4f..ade27920a96c078d43cff07fa12a6c7718da3c83 100644 (file)
@@ -3117,7 +3117,6 @@ void falcon_update_nic_stats(struct efx_nic *efx)
  */
 
 struct efx_nic_type falcon_a_nic_type = {
-       .mem_bar = 2,
        .mem_map_size = 0x20000,
        .txd_ptr_tbl_base = FR_AA_TX_DESC_PTR_TBL_KER,
        .rxd_ptr_tbl_base = FR_AA_RX_DESC_PTR_TBL_KER,
@@ -3131,7 +3130,6 @@ struct efx_nic_type falcon_a_nic_type = {
 };
 
 struct efx_nic_type falcon_b_nic_type = {
-       .mem_bar = 2,
        /* Map everything up to and including the RSS indirection
         * table.  Don't map MSI-X table, MSI-X PBA since Linux
         * requires that they not be mapped.  */