From: Yuval Mintz Date: Mon, 12 Mar 2012 08:53:11 +0000 (+0000) Subject: bnx2x: mark functions as loaded on shared memory X-Git-Tag: v2.6.39-400.9.0~423^2~19^2~11^2~473 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=9d861530047040d67767a037ed4823c45fbe5347;p=users%2Fjedix%2Flinux-maple.git bnx2x: mark functions as loaded on shared memory This change enables the FW to make more accurate decisions regarding the active functions. (cherry picked from commit 9ce392d4fa43c3abb9ab02a29e225084ed84451e) Signed-off-by: Yuval Mintz Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller Signed-off-by: Joe Jin --- diff --git a/drivers/net/bnx2x/bnx2x_cmn.c b/drivers/net/bnx2x/bnx2x_cmn.c index 16d0d4689e5a8..32afd95e782b8 100644 --- a/drivers/net/bnx2x/bnx2x_cmn.c +++ b/drivers/net/bnx2x/bnx2x_cmn.c @@ -1953,6 +1953,15 @@ int bnx2x_nic_load(struct bnx2x *bp, int load_mode) bnx2x_cnic_notify(bp, CNIC_CTL_START_CMD); #endif + /* mark driver is loaded in shmem2 */ + if (SHMEM2_HAS(bp, drv_capabilities_flag)) { + u32 val; + val = SHMEM2_RD(bp, drv_capabilities_flag[BP_FW_MB_IDX(bp)]); + SHMEM2_WR(bp, drv_capabilities_flag[BP_FW_MB_IDX(bp)], + val | DRV_FLAGS_CAPABILITIES_LOADED_SUPPORTED | + DRV_FLAGS_CAPABILITIES_LOADED_L2); + } + /* Wait for all pending SP commands to complete */ if (!bnx2x_wait_sp_comp(bp, ~0x0UL)) { BNX2X_ERR("Timeout waiting for SP elements to complete\n"); @@ -2006,6 +2015,14 @@ int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode) int i; bool global = false; + /* mark driver is unloaded in shmem2 */ + if (SHMEM2_HAS(bp, drv_capabilities_flag)) { + u32 val; + val = SHMEM2_RD(bp, drv_capabilities_flag[BP_FW_MB_IDX(bp)]); + SHMEM2_WR(bp, drv_capabilities_flag[BP_FW_MB_IDX(bp)], + val & ~DRV_FLAGS_CAPABILITIES_LOADED_L2); + } + if ((bp->state == BNX2X_STATE_CLOSED) || (bp->state == BNX2X_STATE_ERROR)) { /* We can get here if the driver has been unloaded