bnx2x: Pause settings
Pause settings - 1G pause was not working due to missing write to the emac block (TX_MODE_FLOW_EN) - The flow control should use the negotiated result (after autoneg) so we should save both the requested autoneg and the result - The HW credits with flow control at 1G speed were not optimized and caused low throughput - It is recommended to turn off flow control if the MTU is bigger than 5000B due to internal buffers size Signed-off-by: Yaniv Rosner <yanivr@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
57963ed94c
commit
8c99e7b043
@@ -1946,7 +1946,14 @@ static u8 bnx2x_initial_phy_init(struct bnx2x *bp)
|
||||
u8 rc;
|
||||
|
||||
/* Initialize link parameters structure variables */
|
||||
bp->link_params.mtu = bp->dev->mtu;
|
||||
/* It is recommended to turn off RX FC for jumbo frames
|
||||
for better performance */
|
||||
if (IS_E1HMF(bp))
|
||||
bp->link_params.req_fc_auto_adv = FLOW_CTRL_BOTH;
|
||||
else if (bp->dev->mtu > 5000)
|
||||
bp->link_params.req_fc_auto_adv = FLOW_CTRL_TX;
|
||||
else
|
||||
bp->link_params.req_fc_auto_adv = FLOW_CTRL_BOTH;
|
||||
|
||||
bnx2x_acquire_phy_lock(bp);
|
||||
rc = bnx2x_phy_init(&bp->link_params, &bp->link_vars);
|
||||
|
Reference in New Issue
Block a user