diff options
Diffstat (limited to 'drivers/net/bnx2.c')
-rw-r--r-- | drivers/net/bnx2.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index 49fa1e4413fa..790dc926acae 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c | |||
@@ -1916,11 +1916,11 @@ bnx2_set_rx_mode(struct net_device *dev) | |||
1916 | BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG); | 1916 | BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG); |
1917 | sort_mode = 1 | BNX2_RPM_SORT_USER0_BC_EN; | 1917 | sort_mode = 1 | BNX2_RPM_SORT_USER0_BC_EN; |
1918 | #ifdef BCM_VLAN | 1918 | #ifdef BCM_VLAN |
1919 | if (!bp->vlgrp) { | 1919 | if (!bp->vlgrp && !(bp->flags & ASF_ENABLE_FLAG)) |
1920 | rx_mode |= BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG; | 1920 | rx_mode |= BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG; |
1921 | } | ||
1922 | #else | 1921 | #else |
1923 | rx_mode |= BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG; | 1922 | if (!(bp->flags & ASF_ENABLE_FLAG)) |
1923 | rx_mode |= BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG; | ||
1924 | #endif | 1924 | #endif |
1925 | if (dev->flags & IFF_PROMISC) { | 1925 | if (dev->flags & IFF_PROMISC) { |
1926 | /* Promiscuous mode. */ | 1926 | /* Promiscuous mode. */ |
@@ -3218,6 +3218,10 @@ bnx2_init_chip(struct bnx2 *bp) | |||
3218 | 3218 | ||
3219 | REG_WR(bp, BNX2_HC_ATTN_BITS_ENABLE, STATUS_ATTN_BITS_LINK_STATE); | 3219 | REG_WR(bp, BNX2_HC_ATTN_BITS_ENABLE, STATUS_ATTN_BITS_LINK_STATE); |
3220 | 3220 | ||
3221 | if (REG_RD_IND(bp, bp->shmem_base + BNX2_PORT_FEATURE) & | ||
3222 | BNX2_PORT_FEATURE_ASF_ENABLED) | ||
3223 | bp->flags |= ASF_ENABLE_FLAG; | ||
3224 | |||
3221 | /* Initialize the receive filter. */ | 3225 | /* Initialize the receive filter. */ |
3222 | bnx2_set_rx_mode(bp->dev); | 3226 | bnx2_set_rx_mode(bp->dev); |
3223 | 3227 | ||