tg3: Ensure boot code has completed initialization before accessing hardware
authorNithin Sujir <nsujir@broadcom.com>
Tue, 21 May 2013 12:57:32 +0000 (12:57 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 22 May 2013 21:51:11 +0000 (14:51 -0700)
commitfb03a43f5fb42000dcc62d91138c1c24fca609b0
tree025c606b5f33c3570ed847e3d6ac14707b1b92b9
parent3ccfc1b1d2fa78f8ece83646027982916fcc794b
tg3: Ensure boot code has completed initialization before accessing hardware

After resetting the device, the driver waits for a signature to be
updated to know that firmware has completed initialization. However, the
call to tg3_poll_fw() is being done too late and we're writing to the
GRC_MODE register before it has completely initialized, causing
contention with firmware.  This logic has existed since day one but is
causing PCIE link to go down randomly at startup on one platform once
every few hundred reboots.

Move the tg3_poll_fw() up to before we write to the GRC_MODE register
after reset.

Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/tg3.c