* [PATCH net v4 0/3] stmmac: dwmac-mediatek: fix clock issue
@ 2022-07-13 10:09 Biao Huang
2022-07-13 10:10 ` [PATCH net v4 1/3] " Biao Huang
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Biao Huang @ 2022-07-13 10:09 UTC (permalink / raw)
To: David Miller, Matthias Brugger
Cc: Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
AngeloGioacchino Del Regno, Biao Huang, netdev, linux-stm32,
linux-arm-kernel, linux-kernel, linux-mediatek, macpaul.lin,
Jisheng Zhang, Mohammad Athari Bin Ismail
changes in v4:
1. improve commit message and test ko insertion/remove as Matthias's comments.
2. add patch "net: stmmac: fix pm runtime issue in stmmac_dvr_remove()" to
fix vlan filter deletion issue.
3. add patch "net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow"
to fix unbalanced ptp clock issue in suspend/resume flow.
changes in v3:
1. delete mediatek_dwmac_exit() since there is no operation in it,
as Matthias's comments.
changes in v2:
1. clock configuration is still needed in probe,
and invoke mediatek_dwmac_clks_config() instead.
2. update commit message.
v1:
remove duplicated clock configuration in init/exit.
Biao Huang (3):
stmmac: dwmac-mediatek: fix clock issue
net: stmmac: fix pm runtime issue in stmmac_dvr_remove()
net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow
.../ethernet/stmicro/stmmac/dwmac-mediatek.c | 49 ++++++++-----------
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 21 ++++----
.../ethernet/stmicro/stmmac/stmmac_platform.c | 8 ++-
3 files changed, 39 insertions(+), 39 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH net v4 1/3] stmmac: dwmac-mediatek: fix clock issue 2022-07-13 10:09 [PATCH net v4 0/3] stmmac: dwmac-mediatek: fix clock issue Biao Huang @ 2022-07-13 10:10 ` Biao Huang 2022-07-13 12:11 ` Matthias Brugger 2022-07-13 10:10 ` [PATCH net v4 2/3] net: stmmac: fix pm runtime issue in stmmac_dvr_remove() Biao Huang 2022-07-13 10:10 ` [PATCH net v4 3/3] net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow Biao Huang 2 siblings, 1 reply; 10+ messages in thread From: Biao Huang @ 2022-07-13 10:10 UTC (permalink / raw) To: David Miller, Matthias Brugger Cc: Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Maxime Coquelin, AngeloGioacchino Del Regno, Biao Huang, netdev, linux-stm32, linux-arm-kernel, linux-kernel, linux-mediatek, macpaul.lin, Jisheng Zhang, Mohammad Athari Bin Ismail The pm_runtime takes care of the clock handling in current stmmac drivers, and dwmac-mediatek implement the mediatek_dwmac_clks_config() as the callback for pm_runtime. Then, stripping duplicated clocks handling in old init()/exit() to fix clock issue in suspend/resume test. As to clocks in probe/remove, vendor need symmetric handling to ensure clocks balance. Test pass, including suspend/resume and ko insertion/remove. Fixes: 3186bdad97d5 ("stmmac: dwmac-mediatek: add platform level clocks management") Signed-off-by: Biao Huang <biao.huang@mediatek.com> --- .../ethernet/stmicro/stmmac/dwmac-mediatek.c | 49 ++++++++----------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c index 6ff88df58767..ca8ab290013c 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c @@ -576,32 +576,7 @@ static int mediatek_dwmac_init(struct platform_device *pdev, void *priv) } } - ret = clk_bulk_prepare_enable(variant->num_clks, plat->clks); - if (ret) { - dev_err(plat->dev, "failed to enable clks, err = %d\n", ret); - return ret; - } - - ret = clk_prepare_enable(plat->rmii_internal_clk); - if (ret) { - dev_err(plat->dev, "failed to enable rmii internal clk, err = %d\n", ret); - goto err_clk; - } - return 0; - -err_clk: - clk_bulk_disable_unprepare(variant->num_clks, plat->clks); - return ret; -} - -static void mediatek_dwmac_exit(struct platform_device *pdev, void *priv) -{ - struct mediatek_dwmac_plat_data *plat = priv; - const struct mediatek_dwmac_variant *variant = plat->variant; - - clk_disable_unprepare(plat->rmii_internal_clk); - clk_bulk_disable_unprepare(variant->num_clks, plat->clks); } static int mediatek_dwmac_clks_config(void *priv, bool enabled) @@ -643,7 +618,6 @@ static int mediatek_dwmac_common_data(struct platform_device *pdev, plat->addr64 = priv_plat->variant->dma_bit_mask; plat->bsp_priv = priv_plat; plat->init = mediatek_dwmac_init; - plat->exit = mediatek_dwmac_exit; plat->clks_config = mediatek_dwmac_clks_config; if (priv_plat->variant->dwmac_fix_mac_speed) plat->fix_mac_speed = priv_plat->variant->dwmac_fix_mac_speed; @@ -712,13 +686,32 @@ static int mediatek_dwmac_probe(struct platform_device *pdev) mediatek_dwmac_common_data(pdev, plat_dat, priv_plat); mediatek_dwmac_init(pdev, priv_plat); + ret = mediatek_dwmac_clks_config(priv_plat, true); + if (ret) + return ret; + ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res); if (ret) { stmmac_remove_config_dt(pdev, plat_dat); - return ret; + goto err_drv_probe; } return 0; + +err_drv_probe: + mediatek_dwmac_clks_config(priv_plat, false); + return ret; +} + +static int mediatek_dwmac_remove(struct platform_device *pdev) +{ + struct mediatek_dwmac_plat_data *priv_plat = get_stmmac_bsp_priv(&pdev->dev); + int ret; + + ret = stmmac_pltfr_remove(pdev); + mediatek_dwmac_clks_config(priv_plat, false); + + return ret; } static const struct of_device_id mediatek_dwmac_match[] = { @@ -733,7 +726,7 @@ MODULE_DEVICE_TABLE(of, mediatek_dwmac_match); static struct platform_driver mediatek_dwmac_driver = { .probe = mediatek_dwmac_probe, - .remove = stmmac_pltfr_remove, + .remove = mediatek_dwmac_remove, .driver = { .name = "dwmac-mediatek", .pm = &stmmac_pltfr_pm_ops, -- 2.25.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH net v4 1/3] stmmac: dwmac-mediatek: fix clock issue 2022-07-13 10:10 ` [PATCH net v4 1/3] " Biao Huang @ 2022-07-13 12:11 ` Matthias Brugger 2022-07-14 1:18 ` Biao Huang 0 siblings, 1 reply; 10+ messages in thread From: Matthias Brugger @ 2022-07-13 12:11 UTC (permalink / raw) To: Biao Huang, David Miller Cc: Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Maxime Coquelin, AngeloGioacchino Del Regno, netdev, linux-stm32, linux-arm-kernel, linux-kernel, linux-mediatek, macpaul.lin, Jisheng Zhang, Mohammad Athari Bin Ismail On 13/07/2022 12:10, Biao Huang wrote: > The pm_runtime takes care of the clock handling in current > stmmac drivers, and dwmac-mediatek implement the > mediatek_dwmac_clks_config() as the callback for pm_runtime. > > Then, stripping duplicated clocks handling in old init()/exit() > to fix clock issue in suspend/resume test. > > As to clocks in probe/remove, vendor need symmetric handling to > ensure clocks balance. > > Test pass, including suspend/resume and ko insertion/remove. > > Fixes: 3186bdad97d5 ("stmmac: dwmac-mediatek: add platform level clocks management") > Signed-off-by: Biao Huang <biao.huang@mediatek.com> > --- > .../ethernet/stmicro/stmmac/dwmac-mediatek.c | 49 ++++++++----------- > 1 file changed, 21 insertions(+), 28 deletions(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c > index 6ff88df58767..ca8ab290013c 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c > @@ -576,32 +576,7 @@ static int mediatek_dwmac_init(struct platform_device *pdev, void *priv) > } > } > > - ret = clk_bulk_prepare_enable(variant->num_clks, plat->clks); > - if (ret) { > - dev_err(plat->dev, "failed to enable clks, err = %d\n", ret); > - return ret; > - } > - > - ret = clk_prepare_enable(plat->rmii_internal_clk); > - if (ret) { > - dev_err(plat->dev, "failed to enable rmii internal clk, err = %d\n", ret); > - goto err_clk; > - } > - > return 0; > - > -err_clk: > - clk_bulk_disable_unprepare(variant->num_clks, plat->clks); > - return ret; > -} > - > -static void mediatek_dwmac_exit(struct platform_device *pdev, void *priv) > -{ > - struct mediatek_dwmac_plat_data *plat = priv; > - const struct mediatek_dwmac_variant *variant = plat->variant; > - > - clk_disable_unprepare(plat->rmii_internal_clk); > - clk_bulk_disable_unprepare(variant->num_clks, plat->clks); > } > > static int mediatek_dwmac_clks_config(void *priv, bool enabled) > @@ -643,7 +618,6 @@ static int mediatek_dwmac_common_data(struct platform_device *pdev, > plat->addr64 = priv_plat->variant->dma_bit_mask; > plat->bsp_priv = priv_plat; > plat->init = mediatek_dwmac_init; > - plat->exit = mediatek_dwmac_exit; > plat->clks_config = mediatek_dwmac_clks_config; > if (priv_plat->variant->dwmac_fix_mac_speed) > plat->fix_mac_speed = priv_plat->variant->dwmac_fix_mac_speed; > @@ -712,13 +686,32 @@ static int mediatek_dwmac_probe(struct platform_device *pdev) > mediatek_dwmac_common_data(pdev, plat_dat, priv_plat); > mediatek_dwmac_init(pdev, priv_plat); > > + ret = mediatek_dwmac_clks_config(priv_plat, true); > + if (ret) > + return ret; > + > ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res); > if (ret) { > stmmac_remove_config_dt(pdev, plat_dat); > - return ret; > + goto err_drv_probe; > } > > return 0; > + > +err_drv_probe: > + mediatek_dwmac_clks_config(priv_plat, false); > + return ret; > +} > + > +static int mediatek_dwmac_remove(struct platform_device *pdev) > +{ > + struct mediatek_dwmac_plat_data *priv_plat = get_stmmac_bsp_priv(&pdev->dev); > + int ret; > + > + ret = stmmac_pltfr_remove(pdev); > + mediatek_dwmac_clks_config(priv_plat, false); > + We enalbe the clocks after calling stmmac_probe_config_dt(), so we should disable them before calling stmmac_pltfr_remove(), correct? Other then that: Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com> > + return ret; > } > > static const struct of_device_id mediatek_dwmac_match[] = { > @@ -733,7 +726,7 @@ MODULE_DEVICE_TABLE(of, mediatek_dwmac_match); > > static struct platform_driver mediatek_dwmac_driver = { > .probe = mediatek_dwmac_probe, > - .remove = stmmac_pltfr_remove, > + .remove = mediatek_dwmac_remove, > .driver = { > .name = "dwmac-mediatek", > .pm = &stmmac_pltfr_pm_ops, ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net v4 1/3] stmmac: dwmac-mediatek: fix clock issue 2022-07-13 12:11 ` Matthias Brugger @ 2022-07-14 1:18 ` Biao Huang 0 siblings, 0 replies; 10+ messages in thread From: Biao Huang @ 2022-07-14 1:18 UTC (permalink / raw) To: Matthias Brugger, David Miller Cc: Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Maxime Coquelin, AngeloGioacchino Del Regno, netdev, linux-stm32, linux-arm-kernel, linux-kernel, linux-mediatek, macpaul.lin, Jisheng Zhang, Mohammad Athari Bin Ismail Dear Matthias, Thanks for your comments~ On Wed, 2022-07-13 at 14:11 +0200, Matthias Brugger wrote: > > On 13/07/2022 12:10, Biao Huang wrote: > > The pm_runtime takes care of the clock handling in current > > stmmac drivers, and dwmac-mediatek implement the > > mediatek_dwmac_clks_config() as the callback for pm_runtime. > > > > Then, stripping duplicated clocks handling in old init()/exit() > > to fix clock issue in suspend/resume test. > > > > As to clocks in probe/remove, vendor need symmetric handling to > > ensure clocks balance. > > > > Test pass, including suspend/resume and ko insertion/remove. > > > > Fixes: 3186bdad97d5 ("stmmac: dwmac-mediatek: add platform level > > clocks management") > > Signed-off-by: Biao Huang <biao.huang@mediatek.com> > > --- > > .../ethernet/stmicro/stmmac/dwmac-mediatek.c | 49 ++++++++---- > > ------- > > 1 file changed, 21 insertions(+), 28 deletions(-) > > > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c > > b/drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c > > index 6ff88df58767..ca8ab290013c 100644 > > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c > > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c > > @@ -576,32 +576,7 @@ static int mediatek_dwmac_init(struct > > platform_device *pdev, void *priv) > > } > > } > > > > - ret = clk_bulk_prepare_enable(variant->num_clks, plat->clks); > > - if (ret) { > > - dev_err(plat->dev, "failed to enable clks, err = %d\n", > > ret); > > - return ret; > > - } > > - > > - ret = clk_prepare_enable(plat->rmii_internal_clk); > > - if (ret) { > > - dev_err(plat->dev, "failed to enable rmii internal clk, > > err = %d\n", ret); > > - goto err_clk; > > - } > > - > > return 0; > > - > > -err_clk: > > - clk_bulk_disable_unprepare(variant->num_clks, plat->clks); > > - return ret; > > -} > > - > > -static void mediatek_dwmac_exit(struct platform_device *pdev, void > > *priv) > > -{ > > - struct mediatek_dwmac_plat_data *plat = priv; > > - const struct mediatek_dwmac_variant *variant = plat->variant; > > - > > - clk_disable_unprepare(plat->rmii_internal_clk); > > - clk_bulk_disable_unprepare(variant->num_clks, plat->clks); > > } > > > > static int mediatek_dwmac_clks_config(void *priv, bool enabled) > > @@ -643,7 +618,6 @@ static int mediatek_dwmac_common_data(struct > > platform_device *pdev, > > plat->addr64 = priv_plat->variant->dma_bit_mask; > > plat->bsp_priv = priv_plat; > > plat->init = mediatek_dwmac_init; > > - plat->exit = mediatek_dwmac_exit; > > plat->clks_config = mediatek_dwmac_clks_config; > > if (priv_plat->variant->dwmac_fix_mac_speed) > > plat->fix_mac_speed = priv_plat->variant- > > >dwmac_fix_mac_speed; > > @@ -712,13 +686,32 @@ static int mediatek_dwmac_probe(struct > > platform_device *pdev) > > mediatek_dwmac_common_data(pdev, plat_dat, priv_plat); > > mediatek_dwmac_init(pdev, priv_plat); > > > > + ret = mediatek_dwmac_clks_config(priv_plat, true); > > + if (ret) > > + return ret; > > + > > ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res); > > if (ret) { > > stmmac_remove_config_dt(pdev, plat_dat); > > - return ret; > > + goto err_drv_probe; > > } > > > > return 0; > > + > > +err_drv_probe: > > + mediatek_dwmac_clks_config(priv_plat, false); > > + return ret; > > +} > > + > > +static int mediatek_dwmac_remove(struct platform_device *pdev) > > +{ > > + struct mediatek_dwmac_plat_data *priv_plat = > > get_stmmac_bsp_priv(&pdev->dev); > > + int ret; > > + > > + ret = stmmac_pltfr_remove(pdev); > > + mediatek_dwmac_clks_config(priv_plat, false); > > + > > We enalbe the clocks after calling stmmac_probe_config_dt(), so we > should > disable them before calling stmmac_pltfr_remove(), correct? > > Other then that: > Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com> To ensure the hw configuration in stmmac_pltfr_remove behavior normally, we should disable clocks after stmmac_pltfr_remove. And there is no order requirement between clocks configured by stmmac_probe_config_dt/stmmac_remove_config_dt and clocks configured by mediatek_dwmac_clks_config, so it's safe for current snippet. Best Regards! Biao > > > + return ret; > > } > > > > static const struct of_device_id mediatek_dwmac_match[] = { > > @@ -733,7 +726,7 @@ MODULE_DEVICE_TABLE(of, mediatek_dwmac_match); > > > > static struct platform_driver mediatek_dwmac_driver = { > > .probe = mediatek_dwmac_probe, > > - .remove = stmmac_pltfr_remove, > > + .remove = mediatek_dwmac_remove, > > .driver = { > > .name = "dwmac-mediatek", > > .pm = &stmmac_pltfr_pm_ops, ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH net v4 2/3] net: stmmac: fix pm runtime issue in stmmac_dvr_remove() 2022-07-13 10:09 [PATCH net v4 0/3] stmmac: dwmac-mediatek: fix clock issue Biao Huang 2022-07-13 10:10 ` [PATCH net v4 1/3] " Biao Huang @ 2022-07-13 10:10 ` Biao Huang 2022-07-13 10:10 ` [PATCH net v4 3/3] net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow Biao Huang 2 siblings, 0 replies; 10+ messages in thread From: Biao Huang @ 2022-07-13 10:10 UTC (permalink / raw) To: David Miller, Matthias Brugger Cc: Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Maxime Coquelin, AngeloGioacchino Del Regno, Biao Huang, netdev, linux-stm32, linux-arm-kernel, linux-kernel, linux-mediatek, macpaul.lin, Jisheng Zhang, Mohammad Athari Bin Ismail If netif is running when stmmac_dvr_remove is invoked, the unregister_netdev will call ndo_stop(stmmac_release) and vlan_kill_rx_filter(stmmac_vlan_rx_kill_vid). Currently, stmmac_dvr_remove() will disable pm runtime before unregister_netdev. When stmmac_vlan_rx_kill_vid is invoked, pm_runtime_resume_and_get in it returns EACCESS error number, and reports: dwmac-mediatek 11021000.ethernet eth0: stmmac_dvr_remove: removing driver dwmac-mediatek 11021000.ethernet eth0: FPE workqueue stop dwmac-mediatek 11021000.ethernet eth0: failed to kill vid 0081/0 Move the pm_runtime_disable to the end of stmmac_dvr_remove to fix this issue. Fixes: 6449520391dfc ("net: stmmac: properly handle with runtime pm in stmmac_dvr_remove()") Signed-off-by: Biao Huang <biao.huang@mediatek.com> --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index d1a7cf4567bc..197fac587ad5 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -7213,8 +7213,6 @@ int stmmac_dvr_remove(struct device *dev) netdev_info(priv->dev, "%s: removing driver", __func__); pm_runtime_get_sync(dev); - pm_runtime_disable(dev); - pm_runtime_put_noidle(dev); stmmac_stop_all_dma(priv); stmmac_mac_set(priv, priv->ioaddr, false); @@ -7241,6 +7239,9 @@ int stmmac_dvr_remove(struct device *dev) mutex_destroy(&priv->lock); bitmap_free(priv->af_xdp_zc_qps); + pm_runtime_disable(dev); + pm_runtime_put_noidle(dev); + return 0; } EXPORT_SYMBOL_GPL(stmmac_dvr_remove); -- 2.25.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net v4 3/3] net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow 2022-07-13 10:09 [PATCH net v4 0/3] stmmac: dwmac-mediatek: fix clock issue Biao Huang 2022-07-13 10:10 ` [PATCH net v4 1/3] " Biao Huang 2022-07-13 10:10 ` [PATCH net v4 2/3] net: stmmac: fix pm runtime issue in stmmac_dvr_remove() Biao Huang @ 2022-07-13 10:10 ` Biao Huang 2022-07-14 3:39 ` Jakub Kicinski 2022-07-14 22:40 ` kernel test robot 2 siblings, 2 replies; 10+ messages in thread From: Biao Huang @ 2022-07-13 10:10 UTC (permalink / raw) To: David Miller, Matthias Brugger Cc: Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Maxime Coquelin, AngeloGioacchino Del Regno, Biao Huang, netdev, linux-stm32, linux-arm-kernel, linux-kernel, linux-mediatek, macpaul.lin, Jisheng Zhang, Mohammad Athari Bin Ismail Current stmmac driver will prepare/enable ptp_ref clock in stmmac_init_tstamp_counter(). The stmmac_pltfr_noirq_suspend will disable it once in suspend flow. But in resume flow, stmmac_pltfr_noirq_resume --> stmmac_init_tstamp_counter stmmac_resume --> stmmac_hw_setup --> stmmac_init_ptp --> stmmac_init_tstamp_counter ptp_ref clock reference counter increases twice, which leads to unbalance ptp clock when resume back. Move ptp_ref clock prepare/enable out of stmmac_init_tstamp_counter to fix it. Fixes: 0735e639f129d ("net: stmmac: skip only stmmac_ptp_register when resume from suspend") Signed-off-by: Biao Huang <biao.huang@mediatek.com> --- .../net/ethernet/stmicro/stmmac/stmmac_main.c | 16 ++++++++-------- .../ethernet/stmicro/stmmac/stmmac_platform.c | 8 +++++++- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 197fac587ad5..c230b8b9aab1 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -839,14 +839,6 @@ int stmmac_init_tstamp_counter(struct stmmac_priv *priv, u32 systime_flags) if (!(priv->dma_cap.time_stamp || priv->dma_cap.atime_stamp)) return -EOPNOTSUPP; - ret = clk_prepare_enable(priv->plat->clk_ptp_ref); - if (ret < 0) { - netdev_warn(priv->dev, - "failed to enable PTP reference clock: %pe\n", - ERR_PTR(ret)); - return ret; - } - stmmac_config_hw_tstamping(priv, priv->ptpaddr, systime_flags); priv->systime_flags = systime_flags; @@ -3270,6 +3262,14 @@ static int stmmac_hw_setup(struct net_device *dev, bool ptp_register) stmmac_mmc_setup(priv); + if (ptp_register) { + ret = clk_prepare_enable(priv->plat->clk_ptp_ref); + if (ret < 0) + netdev_warn(priv->dev, + "failed to enable PTP reference clock: %pe\n", + ERR_PTR(ret)); + } + ret = stmmac_init_ptp(priv); if (ret == -EOPNOTSUPP) netdev_info(priv->dev, "PTP not supported by HW\n"); diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c index 11e1055e8260..9f5cac4000da 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c @@ -815,7 +815,13 @@ static int __maybe_unused stmmac_pltfr_noirq_resume(struct device *dev) if (ret) return ret; - stmmac_init_tstamp_counter(priv, priv->systime_flags); + ret = clk_prepare_enable(priv->plat->clk_ptp_ref); + if (ret < 0) { + netdev_warn(priv->dev, + "failed to enable PTP reference clock: %pe\n", + ERR_PTR(ret)); + return ret; + } } return 0; -- 2.25.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH net v4 3/3] net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow 2022-07-13 10:10 ` [PATCH net v4 3/3] net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow Biao Huang @ 2022-07-14 3:39 ` Jakub Kicinski 2022-07-14 5:37 ` Biao Huang 2022-07-14 22:40 ` kernel test robot 1 sibling, 1 reply; 10+ messages in thread From: Jakub Kicinski @ 2022-07-14 3:39 UTC (permalink / raw) To: Biao Huang Cc: David Miller, Matthias Brugger, Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, Eric Dumazet, Paolo Abeni, Maxime Coquelin, AngeloGioacchino Del Regno, netdev, linux-stm32, linux-arm-kernel, linux-kernel, linux-mediatek, macpaul.lin, Jisheng Zhang, Mohammad Athari Bin Ismail On Wed, 13 Jul 2022 18:10:02 +0800 Biao Huang wrote: > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > index 197fac587ad5..c230b8b9aab1 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > @@ -839,14 +839,6 @@ int stmmac_init_tstamp_counter(struct stmmac_priv *priv, u32 systime_flags) > if (!(priv->dma_cap.time_stamp || priv->dma_cap.atime_stamp)) > return -EOPNOTSUPP; > > - ret = clk_prepare_enable(priv->plat->clk_ptp_ref); > - if (ret < 0) { > - netdev_warn(priv->dev, > - "failed to enable PTP reference clock: %pe\n", > - ERR_PTR(ret)); > - return ret; > - } > - > stmmac_config_hw_tstamping(priv, priv->ptpaddr, systime_flags); > priv->systime_flags = systime_flags; > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:837:6: warning: unused variable 'ret' [-Wunused-variable] int ret; ^ ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net v4 3/3] net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow 2022-07-14 3:39 ` Jakub Kicinski @ 2022-07-14 5:37 ` Biao Huang 0 siblings, 0 replies; 10+ messages in thread From: Biao Huang @ 2022-07-14 5:37 UTC (permalink / raw) To: Jakub Kicinski Cc: David Miller, Matthias Brugger, Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, Eric Dumazet, Paolo Abeni, Maxime Coquelin, AngeloGioacchino Del Regno, netdev, linux-stm32, linux-arm-kernel, linux-kernel, linux-mediatek, macpaul.lin, Jisheng Zhang, Mohammad Athari Bin Ismail Dear Jakub, Thanks for your comments~ On Wed, 2022-07-13 at 20:39 -0700, Jakub Kicinski wrote: > On Wed, 13 Jul 2022 18:10:02 +0800 Biao Huang wrote: > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > > b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > > index 197fac587ad5..c230b8b9aab1 100644 > > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > > @@ -839,14 +839,6 @@ int stmmac_init_tstamp_counter(struct > > stmmac_priv *priv, u32 systime_flags) > > if (!(priv->dma_cap.time_stamp || priv->dma_cap.atime_stamp)) > > return -EOPNOTSUPP; > > > > - ret = clk_prepare_enable(priv->plat->clk_ptp_ref); > > - if (ret < 0) { > > - netdev_warn(priv->dev, > > - "failed to enable PTP reference clock: > > %pe\n", > > - ERR_PTR(ret)); > > - return ret; > > - } > > - > > stmmac_config_hw_tstamping(priv, priv->ptpaddr, systime_flags); > > priv->systime_flags = systime_flags; > > > > > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:837:6: warning: > unused variable 'ret' [-Wunused-variable] > int ret; > ^ OK, I'll fix it in next send. Best Regards! Biao ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net v4 3/3] net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow 2022-07-13 10:10 ` [PATCH net v4 3/3] net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow Biao Huang 2022-07-14 3:39 ` Jakub Kicinski @ 2022-07-14 22:40 ` kernel test robot 2022-07-15 7:52 ` Biao Huang 1 sibling, 1 reply; 10+ messages in thread From: kernel test robot @ 2022-07-14 22:40 UTC (permalink / raw) To: Biao Huang, David Miller, Matthias Brugger Cc: llvm, kbuild-all, netdev, Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Maxime Coquelin, AngeloGioacchino Del Regno, Biao Huang, linux-stm32, linux-arm-kernel, linux-kernel, linux-mediatek, macpaul.lin, Jisheng Zhang, Mohammad Athari Bin Ismail Hi Biao, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on net/master] url: https://github.com/intel-lab-lkp/linux/commits/Biao-Huang/stmmac-dwmac-mediatek-fix-clock-issue/20220713-181044 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 22b9c41a3fb8ef4624bcda312665937d2ba98aa7 config: x86_64-randconfig-a016 (https://download.01.org/0day-ci/archive/20220715/202207150612.B3phHNEY-lkp@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 5e61b9c556267086ef9b743a0b57df302eef831b) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel-lab-lkp/linux/commit/f145c999bcff52c22cc849bf17f2b30c5e991c0a git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Biao-Huang/stmmac-dwmac-mediatek-fix-clock-issue/20220713-181044 git checkout f145c999bcff52c22cc849bf17f2b30c5e991c0a # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/net/ethernet/stmicro/stmmac/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:837:6: warning: unused variable 'ret' [-Wunused-variable] int ret; ^ 1 warning generated. vim +/ret +837 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c 891434b18ec0a2 Rayagond Kokatanur 2013-03-26 820 a6da2bbb0005e6 Holger Assmann 2021-11-21 821 /** a6da2bbb0005e6 Holger Assmann 2021-11-21 822 * stmmac_init_tstamp_counter - init hardware timestamping counter a6da2bbb0005e6 Holger Assmann 2021-11-21 823 * @priv: driver private structure a6da2bbb0005e6 Holger Assmann 2021-11-21 824 * @systime_flags: timestamping flags a6da2bbb0005e6 Holger Assmann 2021-11-21 825 * Description: a6da2bbb0005e6 Holger Assmann 2021-11-21 826 * Initialize hardware counter for packet timestamping. a6da2bbb0005e6 Holger Assmann 2021-11-21 827 * This is valid as long as the interface is open and not suspended. a6da2bbb0005e6 Holger Assmann 2021-11-21 828 * Will be rerun after resuming from suspend, case in which the timestamping a6da2bbb0005e6 Holger Assmann 2021-11-21 829 * flags updated by stmmac_hwtstamp_set() also need to be restored. a6da2bbb0005e6 Holger Assmann 2021-11-21 830 */ a6da2bbb0005e6 Holger Assmann 2021-11-21 831 int stmmac_init_tstamp_counter(struct stmmac_priv *priv, u32 systime_flags) a6da2bbb0005e6 Holger Assmann 2021-11-21 832 { a6da2bbb0005e6 Holger Assmann 2021-11-21 833 bool xmac = priv->plat->has_gmac4 || priv->plat->has_xgmac; a6da2bbb0005e6 Holger Assmann 2021-11-21 834 struct timespec64 now; a6da2bbb0005e6 Holger Assmann 2021-11-21 835 u32 sec_inc = 0; a6da2bbb0005e6 Holger Assmann 2021-11-21 836 u64 temp = 0; a6da2bbb0005e6 Holger Assmann 2021-11-21 @837 int ret; a6da2bbb0005e6 Holger Assmann 2021-11-21 838 a6da2bbb0005e6 Holger Assmann 2021-11-21 839 if (!(priv->dma_cap.time_stamp || priv->dma_cap.atime_stamp)) a6da2bbb0005e6 Holger Assmann 2021-11-21 840 return -EOPNOTSUPP; a6da2bbb0005e6 Holger Assmann 2021-11-21 841 a6da2bbb0005e6 Holger Assmann 2021-11-21 842 stmmac_config_hw_tstamping(priv, priv->ptpaddr, systime_flags); a6da2bbb0005e6 Holger Assmann 2021-11-21 843 priv->systime_flags = systime_flags; a6da2bbb0005e6 Holger Assmann 2021-11-21 844 a6da2bbb0005e6 Holger Assmann 2021-11-21 845 /* program Sub Second Increment reg */ a6da2bbb0005e6 Holger Assmann 2021-11-21 846 stmmac_config_sub_second_increment(priv, priv->ptpaddr, a6da2bbb0005e6 Holger Assmann 2021-11-21 847 priv->plat->clk_ptp_rate, a6da2bbb0005e6 Holger Assmann 2021-11-21 848 xmac, &sec_inc); a6da2bbb0005e6 Holger Assmann 2021-11-21 849 temp = div_u64(1000000000ULL, sec_inc); a6da2bbb0005e6 Holger Assmann 2021-11-21 850 a6da2bbb0005e6 Holger Assmann 2021-11-21 851 /* Store sub second increment for later use */ a6da2bbb0005e6 Holger Assmann 2021-11-21 852 priv->sub_second_inc = sec_inc; a6da2bbb0005e6 Holger Assmann 2021-11-21 853 a6da2bbb0005e6 Holger Assmann 2021-11-21 854 /* calculate default added value: a6da2bbb0005e6 Holger Assmann 2021-11-21 855 * formula is : a6da2bbb0005e6 Holger Assmann 2021-11-21 856 * addend = (2^32)/freq_div_ratio; a6da2bbb0005e6 Holger Assmann 2021-11-21 857 * where, freq_div_ratio = 1e9ns/sec_inc a6da2bbb0005e6 Holger Assmann 2021-11-21 858 */ a6da2bbb0005e6 Holger Assmann 2021-11-21 859 temp = (u64)(temp << 32); a6da2bbb0005e6 Holger Assmann 2021-11-21 860 priv->default_addend = div_u64(temp, priv->plat->clk_ptp_rate); a6da2bbb0005e6 Holger Assmann 2021-11-21 861 stmmac_config_addend(priv, priv->ptpaddr, priv->default_addend); a6da2bbb0005e6 Holger Assmann 2021-11-21 862 a6da2bbb0005e6 Holger Assmann 2021-11-21 863 /* initialize system time */ a6da2bbb0005e6 Holger Assmann 2021-11-21 864 ktime_get_real_ts64(&now); a6da2bbb0005e6 Holger Assmann 2021-11-21 865 a6da2bbb0005e6 Holger Assmann 2021-11-21 866 /* lower 32 bits of tv_sec are safe until y2106 */ a6da2bbb0005e6 Holger Assmann 2021-11-21 867 stmmac_init_systime(priv, priv->ptpaddr, (u32)now.tv_sec, now.tv_nsec); a6da2bbb0005e6 Holger Assmann 2021-11-21 868 a6da2bbb0005e6 Holger Assmann 2021-11-21 869 return 0; a6da2bbb0005e6 Holger Assmann 2021-11-21 870 } a6da2bbb0005e6 Holger Assmann 2021-11-21 871 EXPORT_SYMBOL_GPL(stmmac_init_tstamp_counter); a6da2bbb0005e6 Holger Assmann 2021-11-21 872 -- 0-DAY CI Kernel Test Service https://01.org/lkp ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net v4 3/3] net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow 2022-07-14 22:40 ` kernel test robot @ 2022-07-15 7:52 ` Biao Huang 0 siblings, 0 replies; 10+ messages in thread From: Biao Huang @ 2022-07-15 7:52 UTC (permalink / raw) To: kernel test robot, David Miller, Matthias Brugger Cc: llvm, kbuild-all, netdev, Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Maxime Coquelin, AngeloGioacchino Del Regno, linux-stm32, linux-arm-kernel, linux-kernel, linux-mediatek, macpaul.lin, Jisheng Zhang, Mohammad Athari Bin Ismail Hi, This warning is fixed in v5 send, please test with v5. Best Regards! Biao On Fri, 2022-07-15 at 06:40 +0800, kernel test robot wrote: > Hi Biao, > > Thank you for the patch! Perhaps something to improve: > > [auto build test WARNING on net/master] > > url: > https://urldefense.com/v3/__https://github.com/intel-lab-lkp/linux/commits/Biao-Huang/stmmac-dwmac-mediatek-fix-clock-issue/20220713-181044__;!!CTRNKA9wMg0ARbw!zSIorkBYIMJM_lsS_i-iPXUHkJnImzF7_legwMzhyi3I_4dNo9-GDn7_MBAjUJw2wA$ > > base: > https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git__;!!CTRNKA9wMg0ARbw!zSIorkBYIMJM_lsS_i-iPXUHkJnImzF7_legwMzhyi3I_4dNo9-GDn7_MBA1ViIHxA$ > 22b9c41a3fb8ef4624bcda312665937d2ba98aa7 > config: x86_64-randconfig-a016 ( > https://urldefense.com/v3/__https://download.01.org/0day-ci/archive/20220715/202207150612.B3phHNEY-lkp@intel.com/config__;!!CTRNKA9wMg0ARbw!zSIorkBYIMJM_lsS_i-iPXUHkJnImzF7_legwMzhyi3I_4dNo9-GDn7_MBDrBZ7cUQ$ > ) > compiler: clang version 15.0.0 ( > https://urldefense.com/v3/__https://github.com/llvm/llvm-project__;!!CTRNKA9wMg0ARbw!zSIorkBYIMJM_lsS_i-iPXUHkJnImzF7_legwMzhyi3I_4dNo9-GDn7_MBB4_f7rKw$ > $ 5e61b9c556267086ef9b743a0b57df302eef831b) > reproduce (this is a W=1 build): > wget > https://urldefense.com/v3/__https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross__;!!CTRNKA9wMg0ARbw!zSIorkBYIMJM_lsS_i-iPXUHkJnImzF7_legwMzhyi3I_4dNo9-GDn7_MBBCyTTgjA$ > -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # > https://urldefense.com/v3/__https://github.com/intel-lab-lkp/linux/commit/f145c999bcff52c22cc849bf17f2b30c5e991c0a__;!!CTRNKA9wMg0ARbw!zSIorkBYIMJM_lsS_i-iPXUHkJnImzF7_legwMzhyi3I_4dNo9-GDn7_MBCdfrCTBg$ > > git remote add linux-review > https://urldefense.com/v3/__https://github.com/intel-lab-lkp/linux__;!!CTRNKA9wMg0ARbw!zSIorkBYIMJM_lsS_i-iPXUHkJnImzF7_legwMzhyi3I_4dNo9-GDn7_MBAnpXqSbQ$ > > git fetch --no-tags linux-review Biao-Huang/stmmac-dwmac- > mediatek-fix-clock-issue/20220713-181044 > git checkout f145c999bcff52c22cc849bf17f2b30c5e991c0a > # save the config file > mkdir build_dir && cp config build_dir/.config > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross > W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash > drivers/net/ethernet/stmicro/stmmac/ > > If you fix the issue, kindly add following tag where applicable > Reported-by: kernel test robot <lkp@intel.com> > > All warnings (new ones prefixed by >>): > > > > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:837:6: warning: > > > unused variable 'ret' [-Wunused-variable] > > int ret; > ^ > 1 warning generated. > > > vim +/ret +837 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > > 891434b18ec0a2 Rayagond Kokatanur 2013-03-26 820 > a6da2bbb0005e6 Holger Assmann 2021-11-21 821 /** > a6da2bbb0005e6 Holger Assmann 2021-11-21 822 * > stmmac_init_tstamp_counter - init hardware timestamping counter > a6da2bbb0005e6 Holger Assmann 2021-11-21 823 * @priv: driver > private structure > a6da2bbb0005e6 Holger Assmann 2021-11-21 824 * @systime_flags: > timestamping flags > a6da2bbb0005e6 Holger Assmann 2021-11-21 825 * Description: > a6da2bbb0005e6 Holger Assmann 2021-11-21 826 * Initialize > hardware counter for packet timestamping. > a6da2bbb0005e6 Holger Assmann 2021-11-21 827 * This is valid > as long as the interface is open and not suspended. > a6da2bbb0005e6 Holger Assmann 2021-11-21 828 * Will be rerun > after resuming from suspend, case in which the timestamping > a6da2bbb0005e6 Holger Assmann 2021-11-21 829 * flags updated > by stmmac_hwtstamp_set() also need to be restored. > a6da2bbb0005e6 Holger Assmann 2021-11-21 830 */ > a6da2bbb0005e6 Holger Assmann 2021-11-21 831 int > stmmac_init_tstamp_counter(struct stmmac_priv *priv, u32 > systime_flags) > a6da2bbb0005e6 Holger Assmann 2021-11-21 832 { > a6da2bbb0005e6 Holger Assmann 2021-11-21 833 bool xmac = > priv->plat->has_gmac4 || priv->plat->has_xgmac; > a6da2bbb0005e6 Holger Assmann 2021-11-21 834 struct > timespec64 now; > a6da2bbb0005e6 Holger Assmann 2021-11-21 835 u32 sec_inc = > 0; > a6da2bbb0005e6 Holger Assmann 2021-11-21 836 u64 temp = 0; > a6da2bbb0005e6 Holger Assmann 2021-11-21 @837 int ret; > a6da2bbb0005e6 Holger Assmann 2021-11-21 838 > a6da2bbb0005e6 Holger Assmann 2021-11-21 839 if (!(priv- > >dma_cap.time_stamp || priv->dma_cap.atime_stamp)) > a6da2bbb0005e6 Holger Assmann 2021-11-21 840 return > -EOPNOTSUPP; > a6da2bbb0005e6 Holger Assmann 2021-11-21 841 > a6da2bbb0005e6 Holger Assmann 2021-11-21 842 stmmac_config_h > w_tstamping(priv, priv->ptpaddr, systime_flags); > a6da2bbb0005e6 Holger Assmann 2021-11-21 843 priv- > >systime_flags = systime_flags; > a6da2bbb0005e6 Holger Assmann 2021-11-21 844 > a6da2bbb0005e6 Holger Assmann 2021-11-21 845 /* program Sub > Second Increment reg */ > a6da2bbb0005e6 Holger Assmann 2021-11-21 846 stmmac_config_s > ub_second_increment(priv, priv->ptpaddr, > a6da2bbb0005e6 Holger Assmann 2021-11-21 847 > priv->plat->clk_ptp_rate, > a6da2bbb0005e6 Holger Assmann 2021-11-21 848 > xmac, &sec_inc); > a6da2bbb0005e6 Holger Assmann 2021-11-21 849 temp = > div_u64(1000000000ULL, sec_inc); > a6da2bbb0005e6 Holger Assmann 2021-11-21 850 > a6da2bbb0005e6 Holger Assmann 2021-11-21 851 /* Store sub > second increment for later use */ > a6da2bbb0005e6 Holger Assmann 2021-11-21 852 priv- > >sub_second_inc = sec_inc; > a6da2bbb0005e6 Holger Assmann 2021-11-21 853 > a6da2bbb0005e6 Holger Assmann 2021-11-21 854 /* calculate > default added value: > a6da2bbb0005e6 Holger Assmann 2021-11-21 855 * formula is : > a6da2bbb0005e6 Holger Assmann 2021-11-21 856 * addend = > (2^32)/freq_div_ratio; > a6da2bbb0005e6 Holger Assmann 2021-11-21 857 * where, > freq_div_ratio = 1e9ns/sec_inc > a6da2bbb0005e6 Holger Assmann 2021-11-21 858 */ > a6da2bbb0005e6 Holger Assmann 2021-11-21 859 temp = > (u64)(temp << 32); > a6da2bbb0005e6 Holger Assmann 2021-11-21 860 priv- > >default_addend = div_u64(temp, priv->plat->clk_ptp_rate); > a6da2bbb0005e6 Holger Assmann 2021-11-21 861 stmmac_config_a > ddend(priv, priv->ptpaddr, priv->default_addend); > a6da2bbb0005e6 Holger Assmann 2021-11-21 862 > a6da2bbb0005e6 Holger Assmann 2021-11-21 863 /* initialize > system time */ > a6da2bbb0005e6 Holger Assmann 2021-11-21 864 ktime_get_real_ > ts64(&now); > a6da2bbb0005e6 Holger Assmann 2021-11-21 865 > a6da2bbb0005e6 Holger Assmann 2021-11-21 866 /* lower 32 > bits of tv_sec are safe until y2106 */ > a6da2bbb0005e6 Holger Assmann 2021-11-21 867 stmmac_init_sys > time(priv, priv->ptpaddr, (u32)now.tv_sec, now.tv_nsec); > a6da2bbb0005e6 Holger Assmann 2021-11-21 868 > a6da2bbb0005e6 Holger Assmann 2021-11-21 869 return 0; > a6da2bbb0005e6 Holger Assmann 2021-11-21 870 } > a6da2bbb0005e6 Holger Assmann 2021-11- > 21 871 EXPORT_SYMBOL_GPL(stmmac_init_tstamp_counter); > a6da2bbb0005e6 Holger Assmann 2021-11-21 872 > ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-07-15 7:52 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-07-13 10:09 [PATCH net v4 0/3] stmmac: dwmac-mediatek: fix clock issue Biao Huang 2022-07-13 10:10 ` [PATCH net v4 1/3] " Biao Huang 2022-07-13 12:11 ` Matthias Brugger 2022-07-14 1:18 ` Biao Huang 2022-07-13 10:10 ` [PATCH net v4 2/3] net: stmmac: fix pm runtime issue in stmmac_dvr_remove() Biao Huang 2022-07-13 10:10 ` [PATCH net v4 3/3] net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow Biao Huang 2022-07-14 3:39 ` Jakub Kicinski 2022-07-14 5:37 ` Biao Huang 2022-07-14 22:40 ` kernel test robot 2022-07-15 7:52 ` Biao Huang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).