diff options
author | Matt Carlson <mcarlson@broadcom.com> | 2010-02-12 09:47:09 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-12 20:05:53 -0500 |
commit | 0339e4e3effeae71e2b19c6340ef9672fb7a2cb3 (patch) | |
tree | d54025d2a5ba9e9dd76e8cb736b673acafbf5b4b /drivers/net | |
parent | 6b10c1653e425e30cff7f41d0e6f9743bfa9810f (diff) |
tg3: Turn off multiple DMA reads for 5717
The 5717's DMA read engine has a bug when initiating multiple DMA reads
across the PCIe bus. This patch disables the feature.
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Reviewed-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/tg3.c | 3 | ||||
-rw-r--r-- | drivers/net/tg3.h | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 2c5e1b7e1088..673ea314aa18 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -7915,6 +7915,9 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) | |||
7915 | RDMAC_MODE_FIFOURUN_ENAB | RDMAC_MODE_FIFOOREAD_ENAB | | 7915 | RDMAC_MODE_FIFOURUN_ENAB | RDMAC_MODE_FIFOOREAD_ENAB | |
7916 | RDMAC_MODE_LNGREAD_ENAB); | 7916 | RDMAC_MODE_LNGREAD_ENAB); |
7917 | 7917 | ||
7918 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717) | ||
7919 | rdmac_mode |= RDMAC_MODE_MULT_DMA_RD_DIS; | ||
7920 | |||
7918 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 || | 7921 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5784 || |
7919 | GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 || | 7922 | GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5785 || |
7920 | GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780) | 7923 | GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780) |
diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h index 46db4ad46bbc..a8fb53aaf742 100644 --- a/drivers/net/tg3.h +++ b/drivers/net/tg3.h | |||
@@ -1258,6 +1258,7 @@ | |||
1258 | #define RDMAC_MODE_MBUF_SBD_CRPT_ENAB 0x00002000 | 1258 | #define RDMAC_MODE_MBUF_SBD_CRPT_ENAB 0x00002000 |
1259 | #define RDMAC_MODE_FIFO_SIZE_128 0x00020000 | 1259 | #define RDMAC_MODE_FIFO_SIZE_128 0x00020000 |
1260 | #define RDMAC_MODE_FIFO_LONG_BURST 0x00030000 | 1260 | #define RDMAC_MODE_FIFO_LONG_BURST 0x00030000 |
1261 | #define RDMAC_MODE_MULT_DMA_RD_DIS 0x01000000 | ||
1261 | #define RDMAC_MODE_IPV4_LSO_EN 0x08000000 | 1262 | #define RDMAC_MODE_IPV4_LSO_EN 0x08000000 |
1262 | #define RDMAC_MODE_IPV6_LSO_EN 0x10000000 | 1263 | #define RDMAC_MODE_IPV6_LSO_EN 0x10000000 |
1263 | #define RDMAC_STATUS 0x00004804 | 1264 | #define RDMAC_STATUS 0x00004804 |