diff options
author | Michael Chan <mchan@broadcom.com> | 2011-07-13 13:24:22 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-07-14 11:46:08 -0400 |
commit | 41c2178adce37b249147063624f8a27b064b471e (patch) | |
tree | e74bf9c8c56954848fba61a863df040630c4f5f9 | |
parent | ecdbf6e0d555d353188647d1b2dee9a79db69c68 (diff) |
bnx2: Read iSCSI config from shared memory during ->probe()
The scratchpad location that we were reading from has not been
initialized yet during ->probe(), so we were getting inaccurate
information.
Update version to 2.1.10.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Reviewed-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/bnx2.c | 13 | ||||
-rw-r--r-- | drivers/net/bnx2.h | 7 |
2 files changed, 16 insertions, 4 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index d105f1f23391..4816d6a5fe62 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c | |||
@@ -56,8 +56,8 @@ | |||
56 | #include "bnx2_fw.h" | 56 | #include "bnx2_fw.h" |
57 | 57 | ||
58 | #define DRV_MODULE_NAME "bnx2" | 58 | #define DRV_MODULE_NAME "bnx2" |
59 | #define DRV_MODULE_VERSION "2.1.6" | 59 | #define DRV_MODULE_VERSION "2.1.10" |
60 | #define DRV_MODULE_RELDATE "Mar 7, 2011" | 60 | #define DRV_MODULE_RELDATE "July 12, 2011" |
61 | #define FW_MIPS_FILE_06 "bnx2/bnx2-mips-06-6.2.1.fw" | 61 | #define FW_MIPS_FILE_06 "bnx2/bnx2-mips-06-6.2.1.fw" |
62 | #define FW_RV2P_FILE_06 "bnx2/bnx2-rv2p-06-6.0.15.fw" | 62 | #define FW_RV2P_FILE_06 "bnx2/bnx2-rv2p-06-6.0.15.fw" |
63 | #define FW_MIPS_FILE_09 "bnx2/bnx2-mips-09-6.2.1a.fw" | 63 | #define FW_MIPS_FILE_09 "bnx2/bnx2-mips-09-6.2.1a.fw" |
@@ -385,6 +385,9 @@ static int bnx2_register_cnic(struct net_device *dev, struct cnic_ops *ops, | |||
385 | if (cp->drv_state & CNIC_DRV_STATE_REGD) | 385 | if (cp->drv_state & CNIC_DRV_STATE_REGD) |
386 | return -EBUSY; | 386 | return -EBUSY; |
387 | 387 | ||
388 | if (!bnx2_reg_rd_ind(bp, BNX2_FW_MAX_ISCSI_CONN)) | ||
389 | return -ENODEV; | ||
390 | |||
388 | bp->cnic_data = data; | 391 | bp->cnic_data = data; |
389 | rcu_assign_pointer(bp->cnic_ops, ops); | 392 | rcu_assign_pointer(bp->cnic_ops, ops); |
390 | 393 | ||
@@ -8215,8 +8218,10 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev) | |||
8215 | bp->timer.function = bnx2_timer; | 8218 | bp->timer.function = bnx2_timer; |
8216 | 8219 | ||
8217 | #ifdef BCM_CNIC | 8220 | #ifdef BCM_CNIC |
8218 | bp->cnic_eth_dev.max_iscsi_conn = | 8221 | if (bnx2_shmem_rd(bp, BNX2_ISCSI_INITIATOR) & BNX2_ISCSI_INITIATOR_EN) |
8219 | bnx2_reg_rd_ind(bp, BNX2_FW_MAX_ISCSI_CONN); | 8222 | bp->cnic_eth_dev.max_iscsi_conn = |
8223 | (bnx2_shmem_rd(bp, BNX2_ISCSI_MAX_CONN) & | ||
8224 | BNX2_ISCSI_MAX_CONN_MASK) >> BNX2_ISCSI_MAX_CONN_SHIFT; | ||
8220 | #endif | 8225 | #endif |
8221 | pci_save_state(pdev); | 8226 | pci_save_state(pdev); |
8222 | 8227 | ||
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h index 0f0ad2b44c28..fc50d4267df8 100644 --- a/drivers/net/bnx2.h +++ b/drivers/net/bnx2.h | |||
@@ -7368,6 +7368,13 @@ struct bnx2_rv2p_fw_file { | |||
7368 | #define BNX2_RPHY_SERDES_LINK 0x374 | 7368 | #define BNX2_RPHY_SERDES_LINK 0x374 |
7369 | #define BNX2_RPHY_COPPER_LINK 0x378 | 7369 | #define BNX2_RPHY_COPPER_LINK 0x378 |
7370 | 7370 | ||
7371 | #define BNX2_ISCSI_INITIATOR 0x3dc | ||
7372 | #define BNX2_ISCSI_INITIATOR_EN 0x00080000 | ||
7373 | |||
7374 | #define BNX2_ISCSI_MAX_CONN 0x3e4 | ||
7375 | #define BNX2_ISCSI_MAX_CONN_MASK 0xffff0000 | ||
7376 | #define BNX2_ISCSI_MAX_CONN_SHIFT 16 | ||
7377 | |||
7371 | #define HOST_VIEW_SHMEM_BASE 0x167c00 | 7378 | #define HOST_VIEW_SHMEM_BASE 0x167c00 |
7372 | 7379 | ||
7373 | #define DP_SHMEM_LINE(bp, offset) \ | 7380 | #define DP_SHMEM_LINE(bp, offset) \ |