]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bnx2x: mark functions as loaded on shared memory
authorYuval Mintz <yuvalmin@broadcom.com>
Mon, 12 Mar 2012 08:53:11 +0000 (08:53 +0000)
committerJoe Jin <joe.jin@oracle.com>
Wed, 16 May 2012 14:52:52 +0000 (22:52 +0800)
This change enables the FW to make more accurate decisions regarding the
active functions.

(cherry picked from commit 9ce392d4fa43c3abb9ab02a29e225084ed84451e)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/bnx2x/bnx2x_cmn.c

index 16d0d4689e5a81f6fa3450782dc4faa31f6622ff..32afd95e782b8ee6146dba061525dffc62bbc714 100644 (file)
@@ -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