From 6cd132beee0b2265d6e30fffa7b055a95de49020 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Mon, 1 Dec 2003 10:33:45 -0800 Subject: [PATCH] [TG3]: Do not drop existing GRC_MODE_HOST_STACKUP when writing to GRC_MODE. --- drivers/net/tg3.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 9a208b975e94b..66e1eb46c181d 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c @@ -4541,7 +4541,10 @@ static int tg3_reset_hw(struct tg3 *tp) tg3_chip_reset(tp); - tw32(GRC_MODE, tp->grc_mode); + val = tr32(GRC_MODE); + val &= GRC_MODE_HOST_STACKUP; + tw32(GRC_MODE, val | tp->grc_mode); + tg3_write_mem(tp, NIC_SRAM_FIRMWARE_MBOX, NIC_SRAM_FIRMWARE_MBOX_MAGIC1); @@ -6716,6 +6719,7 @@ static int __devinit tg3_get_invariants(struct tg3 *tp) u32 misc_ctrl_reg; u32 cacheline_sz_reg; u32 pci_state_reg, grc_misc_cfg; + u32 val; u16 pci_cmd; int err; @@ -6912,7 +6916,9 @@ static int __devinit tg3_get_invariants(struct tg3 *tp) udelay(40); /* Initialize data/descriptor byte/word swapping. */ - tw32(GRC_MODE, tp->grc_mode); + val = tr32(GRC_MODE); + val &= GRC_MODE_HOST_STACKUP; + tw32(GRC_MODE, val | tp->grc_mode); tg3_switch_clocks(tp); -- 2.53.0