diff options
author | Yaniv Rosner <yanivr@broadcom.com> | 2011-08-02 18:59:10 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-08-03 06:22:17 -0400 |
commit | 9d5b36be64b42058e7fd12b71266bbf2bb7600fc (patch) | |
tree | 61b7fd9e56a738cd18b42dc6980053012c813a64 | |
parent | c28aa38567101bad4e020f4392df41d0bf6c165c (diff) |
bnx2x: Fix missing pause on for 578xx
When link speed is 1G and below, pause weren't sent due to missing pause setting in the UMAC.
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>
-rw-r--r-- | drivers/net/bnx2x/bnx2x_link.c | 6 | ||||
-rw-r--r-- | drivers/net/bnx2x/bnx2x_reg.h | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/bnx2x/bnx2x_link.c b/drivers/net/bnx2x/bnx2x_link.c index bcd8f0038628..aa9958e37445 100644 --- a/drivers/net/bnx2x/bnx2x_link.c +++ b/drivers/net/bnx2x/bnx2x_link.c | |||
@@ -1546,6 +1546,12 @@ static void bnx2x_umac_enable(struct link_params *params, | |||
1546 | vars->line_speed); | 1546 | vars->line_speed); |
1547 | break; | 1547 | break; |
1548 | } | 1548 | } |
1549 | if (!(vars->flow_ctrl & BNX2X_FLOW_CTRL_TX)) | ||
1550 | val |= UMAC_COMMAND_CONFIG_REG_IGNORE_TX_PAUSE; | ||
1551 | |||
1552 | if (!(vars->flow_ctrl & BNX2X_FLOW_CTRL_RX)) | ||
1553 | val |= UMAC_COMMAND_CONFIG_REG_PAUSE_IGNORE; | ||
1554 | |||
1549 | REG_WR(bp, umac_base + UMAC_REG_COMMAND_CONFIG, val); | 1555 | REG_WR(bp, umac_base + UMAC_REG_COMMAND_CONFIG, val); |
1550 | udelay(50); | 1556 | udelay(50); |
1551 | 1557 | ||
diff --git a/drivers/net/bnx2x/bnx2x_reg.h b/drivers/net/bnx2x/bnx2x_reg.h index 02461fef8751..d84642aca450 100644 --- a/drivers/net/bnx2x/bnx2x_reg.h +++ b/drivers/net/bnx2x/bnx2x_reg.h | |||
@@ -4771,9 +4771,11 @@ | |||
4771 | The fields are: [4:0] - tail pointer; 10:5] - Link List size; 15:11] - | 4771 | The fields are: [4:0] - tail pointer; 10:5] - Link List size; 15:11] - |
4772 | header pointer. */ | 4772 | header pointer. */ |
4773 | #define UCM_REG_XX_TABLE 0xe0300 | 4773 | #define UCM_REG_XX_TABLE 0xe0300 |
4774 | #define UMAC_COMMAND_CONFIG_REG_IGNORE_TX_PAUSE (0x1<<28) | ||
4774 | #define UMAC_COMMAND_CONFIG_REG_LOOP_ENA (0x1<<15) | 4775 | #define UMAC_COMMAND_CONFIG_REG_LOOP_ENA (0x1<<15) |
4775 | #define UMAC_COMMAND_CONFIG_REG_NO_LGTH_CHECK (0x1<<24) | 4776 | #define UMAC_COMMAND_CONFIG_REG_NO_LGTH_CHECK (0x1<<24) |
4776 | #define UMAC_COMMAND_CONFIG_REG_PAD_EN (0x1<<5) | 4777 | #define UMAC_COMMAND_CONFIG_REG_PAD_EN (0x1<<5) |
4778 | #define UMAC_COMMAND_CONFIG_REG_PAUSE_IGNORE (0x1<<8) | ||
4777 | #define UMAC_COMMAND_CONFIG_REG_PROMIS_EN (0x1<<4) | 4779 | #define UMAC_COMMAND_CONFIG_REG_PROMIS_EN (0x1<<4) |
4778 | #define UMAC_COMMAND_CONFIG_REG_RX_ENA (0x1<<1) | 4780 | #define UMAC_COMMAND_CONFIG_REG_RX_ENA (0x1<<1) |
4779 | #define UMAC_COMMAND_CONFIG_REG_SW_RESET (0x1<<13) | 4781 | #define UMAC_COMMAND_CONFIG_REG_SW_RESET (0x1<<13) |