diff options
author | Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> | 2013-10-18 12:22:31 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-10-18 13:42:19 -0400 |
commit | 6177a95a93fe6eed2f59fa17720057988a81913c (patch) | |
tree | d42d28e562acd046ec93dbdbf715775bec02b2e8 /drivers/net/ethernet/qlogic | |
parent | 891e71b1bc7a09c4bceb1a11e5529f55a379a4c7 (diff) |
qlcnic: Update ethtool standard pause settings.
Update ethtool standard pause parameter settings and display
Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic')
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 18 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h | 3 |
2 files changed, 18 insertions, 3 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c index c2df4cea524d..268fda6f256e 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | |||
@@ -3369,10 +3369,21 @@ void qlcnic_83xx_get_pauseparam(struct qlcnic_adapter *adapter, | |||
3369 | } | 3369 | } |
3370 | config = ahw->port_config; | 3370 | config = ahw->port_config; |
3371 | if (config & QLC_83XX_CFG_STD_PAUSE) { | 3371 | if (config & QLC_83XX_CFG_STD_PAUSE) { |
3372 | if (config & QLC_83XX_CFG_STD_TX_PAUSE) | 3372 | switch (MSW(config)) { |
3373 | case QLC_83XX_TX_PAUSE: | ||
3374 | pause->tx_pause = 1; | ||
3375 | break; | ||
3376 | case QLC_83XX_RX_PAUSE: | ||
3377 | pause->rx_pause = 1; | ||
3378 | break; | ||
3379 | case QLC_83XX_TX_RX_PAUSE: | ||
3380 | default: | ||
3381 | /* Backward compatibility for existing | ||
3382 | * flash definitions | ||
3383 | */ | ||
3373 | pause->tx_pause = 1; | 3384 | pause->tx_pause = 1; |
3374 | if (config & QLC_83XX_CFG_STD_RX_PAUSE) | ||
3375 | pause->rx_pause = 1; | 3385 | pause->rx_pause = 1; |
3386 | } | ||
3376 | } | 3387 | } |
3377 | 3388 | ||
3378 | if (QLC_83XX_AUTONEG(config)) | 3389 | if (QLC_83XX_AUTONEG(config)) |
@@ -3415,7 +3426,8 @@ int qlcnic_83xx_set_pauseparam(struct qlcnic_adapter *adapter, | |||
3415 | ahw->port_config &= ~QLC_83XX_CFG_STD_RX_PAUSE; | 3426 | ahw->port_config &= ~QLC_83XX_CFG_STD_RX_PAUSE; |
3416 | ahw->port_config |= QLC_83XX_CFG_STD_TX_PAUSE; | 3427 | ahw->port_config |= QLC_83XX_CFG_STD_TX_PAUSE; |
3417 | } else if (!pause->rx_pause && !pause->tx_pause) { | 3428 | } else if (!pause->rx_pause && !pause->tx_pause) { |
3418 | ahw->port_config &= ~QLC_83XX_CFG_STD_TX_RX_PAUSE; | 3429 | ahw->port_config &= ~(QLC_83XX_CFG_STD_TX_RX_PAUSE | |
3430 | QLC_83XX_CFG_STD_PAUSE); | ||
3419 | } | 3431 | } |
3420 | status = qlcnic_83xx_set_port_config(adapter); | 3432 | status = qlcnic_83xx_set_port_config(adapter); |
3421 | if (status) { | 3433 | if (status) { |
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h index 533e150503af..2883b57b20f6 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h | |||
@@ -363,6 +363,9 @@ enum qlcnic_83xx_states { | |||
363 | #define QLC_83XX_LINK_EEE(data) ((data) & BIT_13) | 363 | #define QLC_83XX_LINK_EEE(data) ((data) & BIT_13) |
364 | #define QLC_83XX_DCBX(data) (((data) >> 28) & 7) | 364 | #define QLC_83XX_DCBX(data) (((data) >> 28) & 7) |
365 | #define QLC_83XX_AUTONEG(data) ((data) & BIT_15) | 365 | #define QLC_83XX_AUTONEG(data) ((data) & BIT_15) |
366 | #define QLC_83XX_TX_PAUSE 0x10 | ||
367 | #define QLC_83XX_RX_PAUSE 0x20 | ||
368 | #define QLC_83XX_TX_RX_PAUSE 0x30 | ||
366 | #define QLC_83XX_CFG_STD_PAUSE (1 << 5) | 369 | #define QLC_83XX_CFG_STD_PAUSE (1 << 5) |
367 | #define QLC_83XX_CFG_STD_TX_PAUSE (1 << 20) | 370 | #define QLC_83XX_CFG_STD_TX_PAUSE (1 << 20) |
368 | #define QLC_83XX_CFG_STD_RX_PAUSE (2 << 20) | 371 | #define QLC_83XX_CFG_STD_RX_PAUSE (2 << 20) |