Would there be any reason not to set BMCR_PDOWN in mt7530_phy_config_init() so we know they're in a consistent state?

Also if you happen to have an MT7621 sitting there running, would you mind setting BMCR_ANENABLE | BMCR_ANRESTART with mdio on a running port to see if it's the same behavior? The port should immediately die and then go into a loop trying to connect every few seconds / minutes depending on what it's connected to.

Whoops, spoke too soon. dsa_register_switch() (indirectly) calls phy_resume() so the phy is up while the port is down. However, adding this to mt7530_port_enable() does make it work:

    if (priv->id == ID_EN751221_EXT && phy)
        genphy_soft_reset(phy);

I note that if the port is brought up within seconds of having been reset, then it seems to work (at least sporadically) despite the BMCR_ANENABLE bug. I imagine this is something that can be tuned out, but given it's happening in the bootloader, I don't have much confidence that I'm going to find the knob to fix it. I've got a problem with my vendor OS image, but when I get that fixed I'll check that as well.

In the mean time, if any likely culprits come to mind, do let me know.

Thanks,

Caleb


_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to