aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYaniv Rosner <yanivr@broadcom.com>2011-08-02 18:59:10 -0400
committerDavid S. Miller <davem@davemloft.net>2011-08-03 06:22:17 -0400
commit9d5b36be64b42058e7fd12b71266bbf2bb7600fc (patch)
tree61b7fd9e56a738cd18b42dc6980053012c813a64
parentc28aa38567101bad4e020f4392df41d0bf6c165c (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.c6
-rw-r--r--drivers/net/bnx2x/bnx2x_reg.h2
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)