[PATCH 1/1] net: spacemit: Check netif_carrier_ok when reading stats

Vivian Wang wangruikang at iscas.ac.cn
Mon Jan 19 20:16:53 PST 2026


On 1/19/26 23:09, Andrew Lunn wrote:
>> root at OpenWrt:~# ethtool -S eth1
>> [   71.725539] k1_emac cac81000.ethernet eth1: Read stat timeout
>> NIC statistics:
>>      rx_drp_fifo_full_pkts: 0
>>      rx_truncate_fifo_full_pkts: 0
>>
>> I just discovered that adding "motorcomm,auto-sleep-disabled" to disable
>> the sleep mode of the MotorComm PHY prevents the problem from occurring.
> This suggests that when the PHY stops the reference clock, the MAC
> hardware stops working. It needs that clock to access
> statistics. Keeping the clock ticking will increase power usage a
> little.

As per suggestion from Chukun, adding realtek,aldps-enable to the DTS on
BananaPi F3 (with, obviously, a Realtek PHY) also reproduces this
problem. So this is a good indication that it really is a problem with
this power saving thing.

> I wounder if anything else stops working? There are some MACs whos DMA
> engine stop working without the reference clock. That can cause
> problems during both probe and remove, or open and close.

At least DMA reset seems to work in this case, so it's probably not as
big of a problem, but at least I would conclude that the HW design
didn't have the reference clock stopping in mind. AFAICT from the DTS
files a bunch of other boards also have motorcomm,auto-sleep-disabled so
at least SpacemiT isn't alone in this.

> So it would be nice to have a better understanding of this. If this
> turns out to be true, maybe a comment by this poll_read_timeout()
> indicating if it does timeout, the PHY might be the problem.

I'll send a patch updating the comments and error prints.

Thanks,
Vivian "dramforever" Wang




More information about the linux-riscv mailing list