diff options
| -rw-r--r-- | drivers/net/ethernet/broadcom/tg3.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index 0f493c8dc28b..c777b9013164 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c | |||
| @@ -1800,6 +1800,9 @@ static int tg3_poll_fw(struct tg3 *tp) | |||
| 1800 | int i; | 1800 | int i; |
| 1801 | u32 val; | 1801 | u32 val; |
| 1802 | 1802 | ||
| 1803 | if (tg3_flag(tp, NO_FWARE_REPORTED)) | ||
| 1804 | return 0; | ||
| 1805 | |||
| 1803 | if (tg3_flag(tp, IS_SSB_CORE)) { | 1806 | if (tg3_flag(tp, IS_SSB_CORE)) { |
| 1804 | /* We don't use firmware. */ | 1807 | /* We don't use firmware. */ |
| 1805 | return 0; | 1808 | return 0; |
| @@ -10404,6 +10407,13 @@ static int tg3_reset_hw(struct tg3 *tp, bool reset_phy) | |||
| 10404 | */ | 10407 | */ |
| 10405 | static int tg3_init_hw(struct tg3 *tp, bool reset_phy) | 10408 | static int tg3_init_hw(struct tg3 *tp, bool reset_phy) |
| 10406 | { | 10409 | { |
| 10410 | /* Chip may have been just powered on. If so, the boot code may still | ||
| 10411 | * be running initialization. Wait for it to finish to avoid races in | ||
| 10412 | * accessing the hardware. | ||
| 10413 | */ | ||
| 10414 | tg3_enable_register_access(tp); | ||
| 10415 | tg3_poll_fw(tp); | ||
| 10416 | |||
| 10407 | tg3_switch_clocks(tp); | 10417 | tg3_switch_clocks(tp); |
| 10408 | 10418 | ||
| 10409 | tw32(TG3PCI_MEM_WIN_BASE_ADDR, 0); | 10419 | tw32(TG3PCI_MEM_WIN_BASE_ADDR, 0); |
