bnx2x: Fix self-test for 20g devices
20g-capable devices are not configured properly for self-test, using 10g as their speed which cause the link indication to remain down and fail the internal loopback test. Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com> Signed-off-by: Ariel Elior <Ariel.Elior@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
bb9e9c1d20
Коммит
2f43b821b5
|
@ -2347,12 +2347,16 @@ int bnx2x_initial_phy_init(struct bnx2x *bp, int load_mode)
|
|||
if (load_mode == LOAD_DIAG) {
|
||||
struct link_params *lp = &bp->link_params;
|
||||
lp->loopback_mode = LOOPBACK_XGXS;
|
||||
/* do PHY loopback at 10G speed, if possible */
|
||||
if (lp->req_line_speed[cfx_idx] < SPEED_10000) {
|
||||
/* Prefer doing PHY loopback at highest speed */
|
||||
if (lp->req_line_speed[cfx_idx] < SPEED_20000) {
|
||||
if (lp->speed_cap_mask[cfx_idx] &
|
||||
PORT_HW_CFG_SPEED_CAPABILITY_D0_10G)
|
||||
PORT_HW_CFG_SPEED_CAPABILITY_D0_20G)
|
||||
lp->req_line_speed[cfx_idx] =
|
||||
SPEED_10000;
|
||||
SPEED_20000;
|
||||
else if (lp->speed_cap_mask[cfx_idx] &
|
||||
PORT_HW_CFG_SPEED_CAPABILITY_D0_10G)
|
||||
lp->req_line_speed[cfx_idx] =
|
||||
SPEED_10000;
|
||||
else
|
||||
lp->req_line_speed[cfx_idx] =
|
||||
SPEED_1000;
|
||||
|
|
Загрузка…
Ссылка в новой задаче