> Hi Andrew, > > I honestly tried to find any doc with a glimpse of errata for RTL8211E > PHY, but with no luck. Official datasheet didn't have any info regarding > possible hw bugs too. Thus I had no choice but to find a fix of the > problem myself. > > It took me some time to figure out why the events weren't reported after > the very first link setup (turned out only a full HW reset clears the > PC1R.10 bit state). I thought it could have been connected with some > sleep/idle/power-safe mode. So I disabled the EEE initialization in the > STMMAC driver. It worked. Then I left the EEE mode enabled, but called the > phy_init_eee(phy, 0) method with "clk_stop_enable==0", so PHY wouldn't > stop RXC in LPI mode. And it wonderfully worked. Then I started to dig in > from another side. I left "RXC disable in LPI" mode enabled and tried to > figure out what was going on with the PHY when it stopped reporting events > just by reading from its CSR using phytool utility. It was curious to > discover that any attempt to read from any PHY register caused the problem > disappearance (LED2 started blinking, events got to be reported). Since I > did nothing but a mere reading from a random even EEE-unrelated register I > inferred that the problem must be in some HW/PHY bug. That's how I've got > to the patch introduced here. If you have any better idea what could be a > reason of that weird behavior I'd be glad to test it out on my device.
It is a reasonable explanation, and a read should not do any harm. Reviewed-by: Andrew Lunn <and...@lunn.ch> Andrew