tg3: Restore LAA sooner in shutdown sequence
authorMatt Carlson <mcarlson@broadcom.com>
Mon, 20 Apr 2009 06:58:52 +0000 (06:58 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Apr 2009 08:41:03 +0000 (01:41 -0700)
After a shutdown reset, the LAA needs to be restored before posting the
post-reset signature in shared memory.  If the LAA is not restored
before then, the bootcode will assume the factory default MAC address
and WOL will not work with the LAA.

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

index 0501fb48a004be2405003290a8c196613227cd0a..f2b7ff80df98a3b14140e85cb3c118dd85cb245a 100644 (file)
@@ -2456,8 +2456,6 @@ static int tg3_set_power_state(struct tg3 *tp, pci_power_t state)
                }
        }
 
-       __tg3_set_mac_addr(tp, 0);
-
        if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) {
                u32 val;
 
@@ -6357,6 +6355,8 @@ static int tg3_halt(struct tg3 *tp, int kind, int silent)
        tg3_abort_hw(tp, silent);
        err = tg3_chip_reset(tp);
 
+       __tg3_set_mac_addr(tp, 0);
+
        tg3_write_sig_legacy(tp, kind);
        tg3_write_sig_post_reset(tp, kind);