[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <f63d455c-7593-4382-86ef-9c31a1ebd283@iscas.ac.cn>
Date: Tue, 20 Jan 2026 12:16:53 +0800
From: Vivian Wang <wangruikang@...as.ac.cn>
To: Andrew Lunn <andrew@...n.ch>, Chukun Pan <amadeus@....edu.cn>
Cc: andrew+netdev@...n.ch, davem@...emloft.net, dlan@...too.org,
edumazet@...gle.com, kuba@...nel.org, linux-kernel@...r.kernel.org,
linux-riscv@...ts.infradead.org, netdev@...r.kernel.org, pabeni@...hat.com,
spacemit@...ts.linux.dev
Subject: Re: [PATCH 1/1] net: spacemit: Check netif_carrier_ok when reading
stats
On 1/19/26 23:09, Andrew Lunn wrote:
>> root@...nWrt:~# 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
Powered by blists - more mailing lists