mirror of https://gitee.com/openkylin/linux.git
tg3: Delay mdio bus init until fw finishes
The device firmware uses the MDIO bus during early setup. If the driver modifies the MDIO bus configuration while it is in use by the firmware, any number of bad things can happen. This patch delays MDIO setup until after the firmware posts its magic signature, signifying initialization is complete. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b3df9a514f
commit
0a9140cff2
|
@ -6348,14 +6348,14 @@ static int tg3_chip_reset(struct tg3 *tp)
|
||||||
tw32_f(MAC_MODE, 0);
|
tw32_f(MAC_MODE, 0);
|
||||||
udelay(40);
|
udelay(40);
|
||||||
|
|
||||||
tg3_mdio_start(tp);
|
|
||||||
|
|
||||||
tg3_ape_unlock(tp, TG3_APE_LOCK_GRC);
|
tg3_ape_unlock(tp, TG3_APE_LOCK_GRC);
|
||||||
|
|
||||||
err = tg3_poll_fw(tp);
|
err = tg3_poll_fw(tp);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
tg3_mdio_start(tp);
|
||||||
|
|
||||||
if ((tp->tg3_flags2 & TG3_FLG2_PCI_EXPRESS) &&
|
if ((tp->tg3_flags2 & TG3_FLG2_PCI_EXPRESS) &&
|
||||||
tp->pci_chip_rev_id != CHIPREV_ID_5750_A0) {
|
tp->pci_chip_rev_id != CHIPREV_ID_5750_A0) {
|
||||||
val = tr32(0x7c00);
|
val = tr32(0x7c00);
|
||||||
|
|
Loading…
Reference in New Issue