tg3: Don't touch RCB nic addresses
authorMatt Carlson <mcarlson@broadcom.com>
Fri, 13 Nov 2009 13:03:34 +0000 (13:03 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 Nov 2009 06:14:36 +0000 (22:14 -0800)
This patch avoids reprogramming the RCB NIC addresses for all 5755 and
later devices.  The address is incorrect for 5717 devices and should be
correct by default for all other affected devices.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tg3.c

index fc9df25f76b19f7c3a8141b1d3f23be462a3ec21..e1f4a18ebb813f046b9d864309c936889970b568 100644 (file)
@@ -7404,8 +7404,9 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
             ((u64) tpr->rx_std_mapping >> 32));
        tw32(RCVDBDI_STD_BD + TG3_BDINFO_HOST_ADDR + TG3_64BIT_REG_LOW,
             ((u64) tpr->rx_std_mapping & 0xffffffff));
-       tw32(RCVDBDI_STD_BD + TG3_BDINFO_NIC_ADDR,
-            NIC_SRAM_RX_BUFFER_DESC);
+       if (!(tp->tg3_flags3 & TG3_FLG3_5755_PLUS))
+               tw32(RCVDBDI_STD_BD + TG3_BDINFO_NIC_ADDR,
+                    NIC_SRAM_RX_BUFFER_DESC);
 
        /* Disable the mini ring */
        if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS))
@@ -7428,8 +7429,9 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
                        tw32(RCVDBDI_JUMBO_BD + TG3_BDINFO_MAXLEN_FLAGS,
                             (RX_JUMBO_MAX_SIZE << BDINFO_FLAGS_MAXLEN_SHIFT) |
                             BDINFO_FLAGS_USE_EXT_RECV);
-                       tw32(RCVDBDI_JUMBO_BD + TG3_BDINFO_NIC_ADDR,
-                            NIC_SRAM_RX_JUMBO_BUFFER_DESC);
+                       if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS))
+                               tw32(RCVDBDI_JUMBO_BD + TG3_BDINFO_NIC_ADDR,
+                                    NIC_SRAM_RX_JUMBO_BUFFER_DESC);
                } else {
                        tw32(RCVDBDI_JUMBO_BD + TG3_BDINFO_MAXLEN_FLAGS,
                             BDINFO_FLAGS_DISABLED);