> -----Original Message----- > From: Florian Fainelli <f.faine...@gmail.com> > Sent: 2021年2月24日 11:54 > To: Joakim Zhang <qiangqing.zh...@nxp.com>; Jakub Kicinski > <k...@kernel.org> > Cc: peppe.cavall...@st.com; alexandre.tor...@st.com; > joab...@synopsys.com; da...@davemloft.net; netdev@vger.kernel.org; > dl-linux-imx <linux-...@nxp.com> > Subject: Re: [PATCH V1 net-next 0/3] net: stmmac: implement clocks > > > > On 2/23/2021 6:47 PM, Joakim Zhang wrote: > > > >> -----Original Message----- > >> From: Jakub Kicinski <k...@kernel.org> > >> Sent: 2021年2月24日 10:35 > >> To: Joakim Zhang <qiangqing.zh...@nxp.com> > >> Cc: peppe.cavall...@st.com; alexandre.tor...@st.com; > >> joab...@synopsys.com; da...@davemloft.net; netdev@vger.kernel.org; > >> dl-linux-imx <linux-...@nxp.com> > >> Subject: Re: [PATCH V1 net-next 0/3] net: stmmac: implement clocks > >> > >> On Wed, 24 Feb 2021 02:13:05 +0000 Joakim Zhang wrote: > >>>>> The aim is to enable clocks when it needs, others keep clocks disabled. > >>>> > >>>> Understood. Please double check ethtool callbacks work fine. People > >>>> often forget about those when disabling clocks in .close. > >>> > >>> Hi Jakub, > >>> > >>> If NIC is open then clocks are always enabled, so all ethtool > >>> callbacks should be okay. > >>> > >>> Could you point me which ethtool callbacks could be invoked when NIC > >>> is closed? I'm not very familiar with ethtool use case. Thanks. > >> > >> Well, all of them - ethtool does not check if the device is open. > >> User can access and configure the device when it's closed. > >> Often the callbacks access only driver data, but it's implementation > >> specific so you'll need to validate the callbacks stmmac implements. > > > > Thanks Jakub, I will check these callbacks. > > You can implement ethtool_ops::begin and ethtool_ops::complete where you > would enable the clock, and respectively disable it just for the time of the > operation. The ethtool framework guarantees that begin is called at the > beginning and complete at the end. You can also make sure that if the > interface > is disabled you only return a cached copy of the settings/MIB counters (they > are not updating since the HW is disabled) and conversely only store > parameters in a cached structure and apply those when the network device > gets opened again. Either way would work.
Hi Florian, Thanks for you hint. Yes, I noticed stmmac driver has implemented ethtool_ops::begin, which let ethtool only can be used when interface is enabled. Thanks a lot. Best Regards, Joakim Zhang > -- > Florian