RE: [PATCH V1 net-next 0/3] net: stmmac: implement clocks
From: Joakim Zhang <hidden>
Date: 2021-02-24 09:05:36
-----Original Message----- From: Jakub Kicinski <kuba@kernel.org> Sent: 2021年2月24日 10:35 To: Joakim Zhang <redacted> Cc: peppe.cavallaro@st.com; alexandre.torgue@st.com; joabreu@synopsys.com; davem@davemloft.net; netdev@vger.kernel.org; dl-linux-imx [off-list ref] Subject: Re: [PATCH V1 net-next 0/3] net: stmmac: implement clocks On Wed, 24 Feb 2021 02:13:05 +0000 Joakim Zhang wrote:quoted
quoted
quoted
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.
Hi Jakub,
I check the code, ethtool from stmmac driver only can be used when net is running now, so the clocks are enabled.
net/ethtool/ioctl.c -> dev_ethtool()
[...]
if (dev->ethtool_ops->begin) {
rc = dev->ethtool_ops->begin(dev);
if (rc < 0)
return rc;
}
[...]
Stmmac driver implement begin callback like below:
static int stmmac_check_if_running(struct net_device *dev)
{
if (!netif_running(dev))
return -EBUSY;
return 0;
}
Best Regards,
Joakim Zhang