aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/qlogic
diff options
context:
space:
mode:
authorJitendra Kalsaria <jitendra.kalsaria@qlogic.com>2013-10-18 12:22:31 -0400
committerDavid S. Miller <davem@davemloft.net>2013-10-18 13:42:19 -0400
commit6177a95a93fe6eed2f59fa17720057988a81913c (patch)
treed42d28e562acd046ec93dbdbf715775bec02b2e8 /drivers/net/ethernet/qlogic
parent891e71b1bc7a09c4bceb1a11e5529f55a379a4c7 (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.c18
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h3
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)