Thanks for the review. I have prepared v3 with the following changes.
For the idle error counter, QCA8337 data sheet 80-Y0619-3 Rev. D,
Table 5-352, page 325 confirms that reads consume the count. My MDIO
model reproduces the loss with v2. The revision keeps
genphy_read_status(), so a steady autonegotiated link no longer causes
the extra MII_STAT1000 read. Reads on link transitions remain as in
the generic path.
For MSFAIL, page 324 confirms that the bit clears on read. The model
reproduces the reported difference when a one-shot fault and AN complete
are visible together. I have not established whether QCA8337 can reach
that combination on hardware. Keeping genphy_read_status() restores
the master/slave-before-LPA order and the generic error handling.
For MDI-X control, I confirmed that QCA8337 has no configuration path
that writes the crossover setting. The revision clears mdix_ctrl to
ETH_TP_MDI_INVALID after each successful status read, including steady
polls, while retaining the MDI-X status report. It does not add a
configuration callback or change the generic ethtool setter.
The revised model checks and arm64 W=1 object build pass. v3 has not
been tested on hardware. I will send it separately.
Thanks,
Yongzhao Chen
pw-bot: cr