aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bnx2.c
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2012-06-16 11:45:43 -0400
committerDavid S. Miller <davem@davemloft.net>2012-06-17 01:22:59 -0400
commitaefd90e41476223c95e3c84c7dd22a65a21b1e40 (patch)
tree56575fff967f7b86d168429648a6aba6188baac8 /drivers/net/ethernet/broadcom/bnx2.c
parent13e63517f4bc425a17888e6497c59a9663c2b520 (diff)
bnx2: Read PCI function number from internal register
so that it will work on any hypervisor. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2.c')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c
index da88de73e899..c6d39438cbe3 100644
--- a/drivers/net/ethernet/broadcom/bnx2.c
+++ b/drivers/net/ethernet/broadcom/bnx2.c
@@ -7903,7 +7903,7 @@ bnx2_get_5709_media(struct bnx2 *bp)
7903 else 7903 else
7904 strap = (val & BNX2_MISC_DUAL_MEDIA_CTRL_PHY_CTRL_STRAP) >> 8; 7904 strap = (val & BNX2_MISC_DUAL_MEDIA_CTRL_PHY_CTRL_STRAP) >> 8;
7905 7905
7906 if (PCI_FUNC(bp->pdev->devfn) == 0) { 7906 if (bp->func == 0) {
7907 switch (strap) { 7907 switch (strap) {
7908 case 0x4: 7908 case 0x4:
7909 case 0x5: 7909 case 0x5:
@@ -8202,9 +8202,12 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev)
8202 8202
8203 reg = bnx2_reg_rd_ind(bp, BNX2_SHM_HDR_SIGNATURE); 8203 reg = bnx2_reg_rd_ind(bp, BNX2_SHM_HDR_SIGNATURE);
8204 8204
8205 if (bnx2_reg_rd_ind(bp, BNX2_MCP_TOE_ID) & BNX2_MCP_TOE_ID_FUNCTION_ID)
8206 bp->func = 1;
8207
8205 if ((reg & BNX2_SHM_HDR_SIGNATURE_SIG_MASK) == 8208 if ((reg & BNX2_SHM_HDR_SIGNATURE_SIG_MASK) ==
8206 BNX2_SHM_HDR_SIGNATURE_SIG) { 8209 BNX2_SHM_HDR_SIGNATURE_SIG) {
8207 u32 off = PCI_FUNC(pdev->devfn) << 2; 8210 u32 off = bp->func << 2;
8208 8211
8209 bp->shmem_base = bnx2_reg_rd_ind(bp, BNX2_SHM_HDR_ADDR_0 + off); 8212 bp->shmem_base = bnx2_reg_rd_ind(bp, BNX2_SHM_HDR_ADDR_0 + off);
8210 } else 8213 } else