diff options
author | Yuval Mintz <yuvalmin@broadcom.com> | 2012-03-12 04:53:11 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-03-12 20:10:49 -0400 |
commit | 9ce392d4fa43c3abb9ab02a29e225084ed84451e (patch) | |
tree | a92594c502c403d5573f8e1081c913b30628038d /drivers | |
parent | 259afa1f725dc7ec1626835b9ac54827a46cdf80 (diff) |
bnx2x: mark functions as loaded on shared memory
This change enables the FW to make more accurate decisions regarding the
active functions.
Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c index f82dfff58243..c11e50d328c4 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | |||
@@ -2007,6 +2007,15 @@ int bnx2x_nic_load(struct bnx2x *bp, int load_mode) | |||
2007 | bnx2x_cnic_notify(bp, CNIC_CTL_START_CMD); | 2007 | bnx2x_cnic_notify(bp, CNIC_CTL_START_CMD); |
2008 | #endif | 2008 | #endif |
2009 | 2009 | ||
2010 | /* mark driver is loaded in shmem2 */ | ||
2011 | if (SHMEM2_HAS(bp, drv_capabilities_flag)) { | ||
2012 | u32 val; | ||
2013 | val = SHMEM2_RD(bp, drv_capabilities_flag[BP_FW_MB_IDX(bp)]); | ||
2014 | SHMEM2_WR(bp, drv_capabilities_flag[BP_FW_MB_IDX(bp)], | ||
2015 | val | DRV_FLAGS_CAPABILITIES_LOADED_SUPPORTED | | ||
2016 | DRV_FLAGS_CAPABILITIES_LOADED_L2); | ||
2017 | } | ||
2018 | |||
2010 | /* Wait for all pending SP commands to complete */ | 2019 | /* Wait for all pending SP commands to complete */ |
2011 | if (!bnx2x_wait_sp_comp(bp, ~0x0UL)) { | 2020 | if (!bnx2x_wait_sp_comp(bp, ~0x0UL)) { |
2012 | BNX2X_ERR("Timeout waiting for SP elements to complete\n"); | 2021 | BNX2X_ERR("Timeout waiting for SP elements to complete\n"); |
@@ -2060,6 +2069,14 @@ int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode) | |||
2060 | int i; | 2069 | int i; |
2061 | bool global = false; | 2070 | bool global = false; |
2062 | 2071 | ||
2072 | /* mark driver is unloaded in shmem2 */ | ||
2073 | if (SHMEM2_HAS(bp, drv_capabilities_flag)) { | ||
2074 | u32 val; | ||
2075 | val = SHMEM2_RD(bp, drv_capabilities_flag[BP_FW_MB_IDX(bp)]); | ||
2076 | SHMEM2_WR(bp, drv_capabilities_flag[BP_FW_MB_IDX(bp)], | ||
2077 | val & ~DRV_FLAGS_CAPABILITIES_LOADED_L2); | ||
2078 | } | ||
2079 | |||
2063 | if ((bp->state == BNX2X_STATE_CLOSED) || | 2080 | if ((bp->state == BNX2X_STATE_CLOSED) || |
2064 | (bp->state == BNX2X_STATE_ERROR)) { | 2081 | (bp->state == BNX2X_STATE_ERROR)) { |
2065 | /* We can get here if the driver has been unloaded | 2082 | /* We can get here if the driver has been unloaded |